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

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

Переключатели языка вашего сайта добавляются и настраиваются на странице WPML -> Языки.

Глобальные параметры переключателя языка

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

Основной раздел параметров переключателя языка

Основной раздел параметров переключателя языка

Настройки для сохранения аргументов URL

В разделе параметров переключателя языка содержится диалоговое окно Сохранить аргументы URL.

Аргументы URL могут понадобиться для работы некоторых плагинов и вы захотите сохранить их при переключении языка – в чем и состоит цель этой функции. Аргументы, которые вы хотите сохранить, следует добавить в качестве разделенного запятыми списка.

Диалоговое окно «Сохранить аргументы URL»

Диалоговое окно «Сохранить аргументы URL»

Рассмотрим следующий пример использования этой функции:

  • Предположим, вы добавили следующие аргументы: bar, foo.
  • Вы перевели запись блога «Привет, мир».
  • Откройте во внешнем интерфейсе запись «Привет, мир» и добавьте в конце URL-адреса следующее: ?bar=10&foo=100&lost=1000 (обратите внимание, что мы добавили два аргумента и еще lost)
  • Переключите язык – в конце URL-адреса будет только ?bar=10&foo=100

Отдельные разделы для различных видов переключателей языка

У каждого вида переключателя языка есть отдельный раздел. Параметры разных видов переключателей языка применяются к каждому переключателю соответственно. На странице Языки отображается рабочий предварительный просмотр различных активных переключателей языка на вашем сайте, как на следующем рисунке.

Отдельные разделы для каждого типа переключателя языка

Отдельные разделы для каждого типа переключателя языка

В каждом разделе есть своя кнопка «добавить» (для добавления другого переключателя языка того же вида), значок «карандаш» для редактирования существующего переключателя, и значок «корзина».

Полное управление каждым переключателем языка

У каждого типа переключателя языка свои настройки. Таким образом обеспечивается полный и независимый контроль над содержимым и его внешним видом.

Например, на следующем изображении показано диалоговое окно с настройками переключателя языка в меню.

Настройки переключателя языка в меню

Настройки переключателя языка в меню

Динамический просмотр параметров переключателя языка

При изменении настроек переключателя языка предварительный просмотр обновляется. Предварительный просмотр является «схематичным». Он не загружает CSS внешнего интерфейса (его загрузка в панели администратора WordPress – довольно плохая идея), поэтому стиль переключателя языка будет в действительности отличаться. Тем не менее, он покажет эффект различных параметров, цветовых настроек, порядок и контент.

HTML-структура переключателей языка в меню

Начиная с версии WPML 3.6, переключатели языка не обрабатываются при помощи встроенного HTML. Вместо этого, он внедряет элементы «переключателя языка» в структуру меню. Таким образом, ваша тема обрабатывает переключатель языка так же, как и другие пункты меню.

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

Переключатель языка в меню во внешнем интерфейсе

Переключатель языка в меню во внешнем интерфейсе

Настройка переключателей языка в меню

Специально для переключателей языка в меню, в версии WPML 3.6 был добавлен новый класс CSS – wpml-ls-menu-item. Он упрощает настройку элементов вашего переключателя в меню (ссылок).

Например, если на вашем сайте используется тема Twenty Sixteen и переключатель языка в меню отображает только флажки языков, обработка во внешнем интерфейсе будет довольно странной. Как видно из изображения ниже, пункты меню необычно широкие.

Переключатель языка только с флажками в теме Twenty Sixteen

Переключатель языка только с флажками в теме Twenty Sixteen

Это можно легко исправить при помощи класса CSS wpml-ls-menu-item.


li.wpml-ls-menu-item ul li a {

width: auto;

}

Нет необходимости редактировать CSS-файл вашей темы, просто добавьте свои правила в раздел Дополнительный CSS в Параметрах переключателя языка.

Теперь ширина элементов списка станет нормальной, как показано на изображении ниже.

Переключатель языка в меню после применения пользовательского CSS

Переключатель языка в меню после применения пользовательского CSS

Отображение переключателей языка WPML в определенных пользователем местах

Иногда требуется добавить переключатель языка в определенном пользователем месте. Это можно сделать в PHP-шаблонах темы или непосредственно на страницах и в записях.

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

Использование PHP-функций

Для отображения переключателя языка в файлах шаблонов PHP вашей темы, можно использовать следующие два действия.

  • do_action(‘wpml_add_language_selector’); – выводит переключатель языка с параметрами, заданными в разделе Пользовательские переключатели языка.
  • do_action( ‘wpml_footer_language_selector’ ); – выводит переключатель языка с параметрами, заданными в разделе Переключатель языка в нижнем колонтитуле, даже если параметр Отображать переключатель языка в нижнем колонтитуле отключен.

Использование коротких кодов WPML

В записях и на страницах можно использовать один из двух WPML коротких кодов ниже. Опять же, разница заключается в отображаемом переключателе языка.

  • [wpml_language_selector_widget] – выводит переключатель языка с параметрами, заданными в разделе Пользовательские переключатели языка.
  • [wpml_language_selector_footer] – выводит переключатель языка с параметрами, заданными в разделе Переключатель языка в нижнем колонтитуле, даже если параметр Отображать переключатель языка в нижнем колонтитуле отключен.

Собственные переключатели языка

Если необходимо, можно создать свой собственный уникальный переключатель языка. Пользовательский переключатель языка позволит включить все необходимые параметры так, как вы этого хотите. Часто его используют для отображения собственных флажков языков или для применения индивидуального порядка языков.

Пользовательский переключатель языка

Пользовательский переключатель языка

Существует два способа создания: с помощью шаблонов Twig или API PHP.

Начиная с версии WPML 3.6 обеспечена поддержка создания пользовательских переключателей языка с помощью шаблонов Twig. Это предпочтительный и простой способ, не требующий программирования на PHP. Самое лучшее в использовании шаблонов Twig – это то, что вы можете легко добавлять их в темы, и они будут отображаться для пользователей в качестве параметров.

Другой способ – создание пользовательских переключателей языка с помощью API PHP. Для него требуются знания PHP.