Многоязычный сайт на WordPress

Подписаться на комментарии по RSS
Метки: |

От одного клиента поступил заказ – сделать двуязычный сайт. Структура сайта вполне можно было реализовать на движке WordPress, но как быть с многоязычностью? Погуглив, нашел замечательный плагин qtranslate. Легкий, удобный, функциональный! Решил поделиться опытом его установки и настройки – может, кому-нибудь будет полезным.

Итак, качаем плагин с сайта и стандартно заливаем в папку с плагинами на хостинге. Сразу в папке wp-incledes создаем подпапку languages и даем ей права 777. Затем идем в панель управления WordPress и активируем плагин. Теперь можно приступать к его настройке.

У меня по умолчанию русский язык в плагине установлен не был. Ставил «ручками». Для этого на странице настройки плагина в разделе «Add Language» вбил в строки следующие данные:

  1. Language Code – ru
  2. Flag – ru.png
  3. Name – Russian
  4. Date Format – пусто
  5. Time Format – пусто
  6. Not Available Message - Sorry, this entry is only available in %LANG:, : and %

И нажал «Add Language». Язык добавился. Теперь в сводной таблице сделал нужные языки активными, и один из них сделал «языком по умолчанию» - Default.

Кстати, не язык у меня хоть и русский, но флаг установлен казахский, так как сайт рассчитан на аудиторию из этой страны.

Далее, на той же странице настройки плагина, поставил галочки в полях «Hide Untranslated Content» и «Detect Browser Language». Первая опция отвечает за то, чтобы в списке постов выводились только те, которые имеют перевод на выбранный язык. Вторая опция позволяет автоматически определять, какой язык в браузере посетителя определен как дефолтный, и, в зависимости от этого, показывать ему версию сайта на том или ином языке. Другими словами, предположим, что у вас сайт на двух языках – русском и английском. Русский язык у вас в плагине установлен как дефолтный. К вам приходит посетитель, у которого в браузере основной язык – русский. Он увидит ваш сайт на русском языке. Потом к вам придет пользователь с основным языком браузера – английским. Плагин сам подсуетиться, и пользователь сразу увидит английскую версию вашего сайта. А вот если к вам придет юзер с языком, например, немецким, то плагин продемонстрирует ему сайт на языке, который вы установили для него основным – т.е. на русском. Надеюсь, понятно :)

Идем далее. В настройках есть опция - Advanced Settings (Show). Кликаем на Show, получаем дополнительные опции настройки. Тут можно ничего не трогать, кроме двух пунктов.

URL Modification Mode – выберите, как страницы на разных языках будут отличаться друг от друга. Вариантов три:

  • к каждой странице будет добавлено окончание типа ?lang=en (http://site.ru/hello.php?lang=en)
  • будет добавлен префикс после домена (http://site.ru/en/hello.php)
  • будет добавлен префикс до имени домена (http://en.site.ru/hello.php)

Что выбрать – решать вам. Мне понравился второй вариант.

И еще можно поставить галочку в «Hide URL language information for default language.». Если вы эту опцию активируете, что для языка, который вы выбрали «дефолтным», никакие префиксы и окончания добавляться не будут. Т.е. если сайт на трех языках – русском, немецком и английском, и русский – дефолтный, то адреса страниц при будут выглядеть так:

  • http://site.ru/hello.php - на русском
  • http://site.ru/en/hello.php - на английском
  • http://site.ru/gr/hello.php - на немецком

А если вы эту опцию не активируете, то, соответственно, получите такой вариант

  • http://site.ru/ru/hello.php - на русском
  • http://site.ru/en/hello.php - на английском
  • http://site.ru/gr/hello.php - на немецком

После выбора всех настроек не забудьте их сохранить, нажав клавишу «Save Changes»!


Комментариев: 4

  1. 2012-11-21 в 16:58:17 | Алексей

    Указанный вами сайт явно взломали - сплошные перенаправления на нехорошую страницу с рекламой и загрузкой трояноподобной программы (принудительно предлагает загрузить odnoclassniki.exe и ничего о Франции).

  2. 2012-11-21 в 17:02:35 | Admin

    Это уже не моя версия сайта. Владельцы, видимо, его снова переделали. Спасибо за информацию, сейчас уберу ссылку со своего блога.

  3. 2014-07-29 в 23:34:02 | regedit

    Сделал всё как написано, но ничего не произошло, сайт не перевёл, как был русский - так и остался, что делать?!

  4. 2014-07-30 в 01:26:29 | Admin

    Этот плагин не переводит сайт. После его добавления появляется функционал, который позволяет при создания записей вводить текст на нескольких языках - например, русском и английском. А затем пользователь может выбирать, на каком языке эти записи будут отображаться.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)




(обязательно)