
Плагин Polylang – удобный инструмент создания многоязычных сайтов на WordPress. В отличие от WPML, у расширения есть бесплатная версия, возможности которой устраивают большинство пользователей. Расширение полностью интегрируется в Elementor и добавляет в визуальный конструктор виджет переключателя языков Polylanguage Switcher. Переключатель вставляется в виджет или навигационное меню. С помощью функции pll_the_languages() можно разместить Switcher в произвольном месте шаблона.
Общие сведения о плагине:
- разработчик: DeckerWeb, Дэвид Декер;
- версия WordPress: 4.7 и выше;
- проверена совместимость до версии WP: 5.4.2;
- версия PHP: 5.6 и выше;
- текущая версия плагина: 1.0.0;
- последнее обновление: 4 месяца назад;
- локализация: английский, французский, немецкий;
- рейтинг WordPress: 5.00;
- количество активных установок: 30000+;
- цена: бесплатно/99 евро.
Преимущества плагина:
- поддержка языков RTL (арабский, иврит, другие);
- создание копий страниц/записей на других языках;
- перевод меню и виджетов;
- перевод записей, страниц, тегов, категорий и так далее;
- интеграция Polylang в Elementor Finder;
- опция установки переключателя языков customize polylanguage switcher;
- перевод пользовательских типов записей и таксономий;
- добавление переключателя в меню;
- интуитивно понятный виджет Polylang Language Switcher для конструктора Elementor;
- перевод через файлы .pot;
- поддержка стандартов локализации;
- возможность использования одного URL версиями страниц на разных языках;
- динамические теги для визуального редактора;
- достаточно функциональная бесплатная версия;
- расширение функциональности за счет дополнительных плагинов;
- подробная документация (на английском);
- добавление переключателя в любое место сайта с помощью функции pll_the_languages().
Дополнения

Основное дополнение, без которого установка Polylang теряет всякий смысл – конструктор Elementor Page Builder. Плагин интегрируется в Elementor Finder, добавляет в визуальный редактор виджет переключателя языков. Опцией customize polylanguage switcher можно установить переключатель в меню или любое место, где предусмотрено размещение виджета. Чтобы поставить Switcher в произвольном месте шаблона, придется воспользоваться функцией pll_the_languages().
Polylang удобно использовать в паре с Loco Translate, расширением для локализации тем и дополнений WordPress через файлы .mo и .po. Для полной интеграции с WooCommerce потребуется плагин Hyyan WooCommerce Polylang Integration. Для CF7 – Contact Form 7 Polylang Module.
Для перехода с WPML на Polylang понадобится дополнительное расширение WPML to Polylang. Плагин переносит не только языки, но и опции WPML, если у них существуют аналоги в Polylang. Импортируются посты и переводы, в том числе для кастомных типов записей и кастомных категорий. Чтобы старые записи корректно отображались, их язык должен совпадать с языком сайта по умолчанию.
Настройки
Перейдите в консоли администрирования в раздел Languages и добавьте все языки, которые будут использоваться на веб-сайте. Отметьте язык по умолчанию.

Настройки:
- URL modifications: задает вид адреса языковых версий ресурса (возможно размещение на сторонних доменах, на поддоменах, в поддиректории на основном домене);
- Detect browser language: включение/выключение автоматического определения языка браузера пользователя;
- Media: включение/выключение переводов файлов изображений (мета) и других медиа;
- Custom post types: задает многоязычные типы записей и категорий;
- Synchronization: синхронизация при обновлении одной из языковых версий;
- WPML compatibility: совместимость с WPML;
- Tools: опция удаления данных расширения после его деинсталляции.
В опциях Custom post types и Synchronization желательно включить все. Также стоит выбрать режим совместимости с WPML. Опцию Tools нужно включать только в том случае, если вместе с удалением плагина должны будут удалиться и результаты его работы.
Функции Polylang
Типовые манипуляции осуществляются в соответствующем разделе консоли и в конструкторе. Однако в некоторых случаях возникает необходимость вмешательства в код PHP. Например, если у плагина отсутствует файл .po и его интерфейс не получается перевести расширением наподобие Loco Translate.

В этом случае можно «точечно» перевести слова и словосочетания, предварительно зарегистрировав строки в базе плагина Polylang с помощью функции pll_register_string(). Зарегистрированные строки появляются в секции ‘Strings translations’ раздела ‘Languages’ панели Polylang на административной панели, где им можно задать значения для разных языков.
Функции плагина подробно описаны в документации. Перечислим некоторые из них:
- pll_the_languages: отображает переключатель языков в произвольном месте страницы;
- pll_current_language, pll_default_language: возвращает текущий язык или язык по умолчанию;
- pll_get_post: возвращает перевод записи или страницы;
- pll_get_term: возвращает перевод категории или тега записи;
- pll_home_url: возвращает адрес главной страницы сайта WordPress;
- pll_register_string: регистрация строк для последующего перевода;
- pll__: перевод строки, предварительно зарегистрированной функцией pll_register_string;
- pll_e: отображение переведенной строки, предварительно зарегистрированной функцией pll_register_string;
- другие функции.
Заключение
Бесплатная версия плагина Polylang достаточно функциональна для создания многоязычных сайтов на WordPress. Типовые операции легко выполняются в соответствующем разделе консоли управления и конструкторе drag-and-drop и не требуют вмешательства в код. Есть удобные дополнения для перехода на Polylang c WPML, для более тесной интеграции с плагинами Contact Form 7, ACF, WooCommerce. Расширение определяет несколько функций для «точечной» подстройки работы плагина и задания произвольного размещения переключателя языков на странице. Функционал подробно описан в документации к дополнению.