Мультиязычность wordpress
Сегодня мы будем учиться делать наш блог на wordpress мультиязычным. Конечно, большинство блогеров ориентируются на российский сегмент рынка, но для корпоративных сайтов вполне приемлемо иметь как минимум 2 версии сайта - Русскую и English. И тут есть 2 способа: либо держать 2 физических копии wordpress в разных папках, либо воспользоваться плагином.
Сегодня мы разберем второй способ.
Для этих целей я использую плагин qTranslate.
Устанавливаем в нашу сборку wordpress и активируем. Видим, что появился пункт Параметры/Languages (при этом может выкинуть из админки, тогда при следующем входе, админка будет на английском языке). Помимо этого внизу добавилось: Deutsch, English, 中文. Но договоримся, что нам нужно только 2 языка: русский и английский.
Для этого переходим в пункт: Settings/Languages (Параметры/Languages) и заполняем поля для добавления языка (потому что Русского языка по-умолчанию нету):
В поле Language Code пишем - ru.
В выпадающем списке выбираем нужный флаг (ru.png).
В поле Name пишем - Russian.
В поле Locale пишем - ru_RU.
В поле Date Format пишем - %e%m%Y.
В поле Time Format пишем - %T.
В поле Not Available Message пишем - Страница в стадии наполнения.
И нажимаем: Add language>>. Вот и все, язык добавлен.
Теперь в списке справа можно деактивировать не нужные языки и активировать Русский:
После этого поставить Русский - языком по-умолчанию (вверху страницы):
Если админка не стала русской, то слева нажимаем на Russian:
Попробуем добавить запись. Заходим в Записи/Добавить новую и видим какие-то непонятные предупреждения. Не пугаемся. Заполняем все поля для русского варианта (он по-умолчанию), после этого кликаем в место: clicking here в надписи предупреждения:
И видим, что появились поля для заполнения на английском языке! Превосходно, заполняем их:
После заполнения публикуем запись. Ура, запись опубликована. Теперь русский вариант доступен по site.ru/title, а английский по site.ru/en/title (в моем варианте - site.ru/zagolovok и site.ru/en/zagolovok соответственно). Но это можно поменять в настройках.
Текст в шаблоне
Теперь разберем ситуацию, когда надо перевести какой-то текст в шаблоне (который выводится не записью и не страницей).
Для этого необходимо использовать следующий код:
<?php _e("<!--:en-->English text<!--:--><!--:ru-->Русский текст<!--:-->"); ?>
Ссылки
Если нужно поправить статичную ссылку, то это следует делать так:
<a href="<?php _e("<!--:en-->/en<!--:--><!--:ru-->/ru<!--:-->"); ?>">Languages</a>
То есть условие ставится вместо атрибута href.
Смена языков
Чтобы вставить смену языков, надо использовать:
<?php qtrans_generateLanguageSelectCode($type='image'); ?>
Вставляете его в нужное место шаблонов вашей темы. Это маркированный список, который отобразит список флагов. Но оформить их через css как вам нужно - не проблема. Помимо флагов можно вывести просто названия языков. Для этого вместо image используйте тип text.
Название сайта
Для этого идем: Общие настройки -> Заголовок сайта и пишем:
[:ru]Мой сайт[:en]My site
Меню, виджеты и прочее
Есть иной способ вывода текста. Он пригодится для других плагинов, меню или виджетов.
<!--:ru-->Русский текст<!--:--><!--:en-->English text<!--:-->
Вот и все. Используя этот нехитрый плагин qTranslate можно добиться мультиязычности на вашем сайте под управлением wordpress.
Карта сайта для мультиязычного сайта
Чтобы построить корректную карту сайта с использованием плагина qTranslate, используйте плагин Google XML Sitemaps v3 for qTranslate.