ITDEQ
Notes

Мультиязычный Wordpress на основе qTranslate X

26.10.2017

В последнее время мне очень часто попадаются заказы по созданию мультиязычных сайтов. Например, для страничек компаний стран Прибалтики, местный и русский язык — это как само собой разумеющее. Очень часто присутствует еще и английский.

Для таких сайтов я использую плагин qTranslate X (конечно же, если бэкенд WordPress). Он очень удобен, прост и гибок в настройке. С помощью его можно перевести абсолютно всё, включая фразы, встроенные в программный код страничек.


1. Установка плагина

Расширение устанавливается через поиск в установщике плагинов в админке, либо непосредственно загрузив папку qtranslate-x в директорию /wp-content/plugins/.

Внимание! Разработчики плагина официально прекратили поддержку решения. Версия, доступная на официальном сайте WP, не поддерживает PHP 7.

Плагин очень удобен и функционален, поэтому энтузиасты сообщества Github выпустили новую версию решения - qTranslate-XT, которая работает на последней версии PHP и поддерживает все доступные интеграции для qTranslate-X.
Скачать данную версию можно в соответствующей ветке на Github. Устанавливается также, как и любой другой плагин через установщик.

Я же предподчитаю установку через терминал:

Идём в директорию:
cd /home/dev/wordpress/wp-content/plugins/

Установим и активируем плагин:
wp plugin install https://github.com/qtranslate/qtranslate-xt/archive/master.zip --activate


2. Базовая настройка плагина

После успешной установки плагина, его настройки будут доступны в разделе Языки.

Общие настройки:

Выбор языка по умолчанию — всё предельно ясно - выбираем язык по умолчанию для всего сайта.

Режим URL-Модификации — выбор режима изменения адреса сайта, при переключении языков. Существуют варианты:

  • добавление ?lang=lv в конец адреса страниц;
  • добавление директории языка после адреса сайта (например: yoursite.com/lv);
  • использование режима поддомена — новые языки будут доступны на поддоменах (например: lv.yoursite.com). Требуется дополнительная настройкиа DNS на стороне хостера.

Я выбираю второй вариант, т.к. он способствует более лучшему продвижению сайта. Также здесь ставим галочку возле: Скрыть URL языка для языка по умолчанию.

Непереведенный контент — выбор действия, которое будет выполняться, если Вы попали на страницу с непереведенным контентом:

  • Скрыть контент, который не доступен для выбранного языка — ставим галочку, если не хотим видеть страницы с непереведенным контентом для выбранного языка.
  • Показывать префикс языка, когда содержимое недоступно для выбранного языка — при выборе данного пункта, будет отображаться язык, на котором доступен данный контент (например: Русский - Мультиязычный WordPress на основе qTranslate X). Данную настройку я не использую.
  • Show content in an alternative language when translation is not available for the selected language — отображение доступного контента, при отсутствии перевода. Этот пункт я отмечаю галочкой, т.к. даже если на сайт зайдет иностранный пользователь без знаний русского языка — браузер предложит ему перевод статьи. Также задействуем пункты «Language Names» и «Определить язык браузера».

Дополнительные настройки:

Post Types — выбор типов записей, для которых будет работать плагин. Я выбираю все доступные.

Editor Mode — выбор типа редактора по-умолчанию при переводе контента.

Use Language Switching Buttons (LSB) — добавляет кнопки переключения языков в редактор. Очень просто и удобно — я использую этот тип.

Raw режим редактора. Do not use Language Switching Buttons to edit multi-language text entries — по-умолчанию перевод контента осуществляется при использовании шорткодов плагина.

Например:

[:ru]автомобиль[:en]car[:lv]automašīna[:] 

Таким способом удобно переводить контент различных типов записей.

Single Language Mode. The language edited is the same as admin language — альтернативный режим перевода контента с помощью шорткодов. Используется при проблемах с переводом при работе с первыми двумя типами редакторов.

Остальные настройки оставляем по-умолчанию.


3. Добавление нового языка

Для добавления нового языка переходим в Настройки-Языки-Языки.
В плагине предустановлено 29 языков, каждый из которых можно активировать в данном разделе. Но что делать, если нужного языка нет в данном списке? Добавим его.

Для этого заполним форму слева:

  • введём код языка
  • выберем картинку с флагом
  • укажем название, локаль, формат даты и времени
  • введём текст сообщения о недоступности перевода

После нажмём Добавить язык и найдя его в списке — включим. Все пункты имеют хорошее пояснение, думаю вопросов не должно возникнуть.


4. Вывод переключателя языка

Вывести переключатели языков на страницы сайта можно различными способами:

Виджет переключателя языка — вывести переключатель можно через админку в разделе Внешний вид - Виджеты. Выбираем слева из списка виджетов нужный и перетаскиваем его в одну из зон справа. Настройки виджета позволяют скрыть его название, указать нужное нам отображение языков по умолчанию, указать свой формат отображения, а также задать свои CSS-стили виджета.

Вывод переключателя языка в меню сайта — переходим в Внешний вид - Меню. Слева блок Переключатель языка, который можно добавить в выбранное нами меню. По умолчанию будет отображаться флажок и название языка.


5. Хитрости использования qTranslate X

Плагин весьма гибок и позволяет выводить статичный текст в файлах шаблона. Для этого используем код:

<?php echo __('[:en]car[:ru]автомобиль[:lv]automašīna'); ?>

Для вывода кода с проверкой языка (вывод разного кода в каждом из языков), используем функцию:

<?php
if ( qtrans_getLanguage() == 'en' ) { 
echo 'язык английский';
}
elseif ( qtrans_getLanguage() == 'ru' ) {
echo 'язык русский';
 }
else { 
echo 'другой язык';
}?>

Также можно использовать и такой вариант:

<?php if(get_locale() == 'ru_RU') { ?>
Русский
<?php } else { ?>
English
<?php } ?>

Для перевода полей в виджетах, плагинах и других элементах используем шорткоды:

[:ru]язык[:en]language[:lv]valoda[:]

Успехов в разработке мультиязычного сайта на Wordpress 🎉🙌
  • About me
  • Last works
  • Quick contact
  • Dev notes
  • Choose lang