- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки от автора
Описание
Компонент Polylang позволяет создавать мультиязычные сайты без дополнительных контекстов.
Возможности
- Локализация полей документов Modx
- Локализация Tv
- Локализация полей miniShop2 (добавленных через msFieldsManager)
- Локализация опций miniShop2
- Изменения типа ввода данных для полей
- Изменения порядка вывода полей в админке
- Изменение порядка вывода языков на сайте
- Автоматический перевод поля или группы полей локализации через google translate или yandex translate
- Задание полей, для которых следует использовать автоматический перевод
- Автоматическое создание локализаций для документа с автоматическим переводом полей
- Индексация полей локализаций в mSearch2
- Авто определение языковой версии сайта при первом его посещении
- URL с слэшем на конце и без
Интеграция
- msFieldsManager — Да
- mSearch2 — Да
- pdoTools — Да
- msImportExport — В планах
- msMultiCurrency — В планах
Видео-обзор
Основная настройка компонента
- Настройка “Использовать дружественные URL” (friendly_urls) должна быть включена (установлена в состояние “Да”)
- Настройка “Строгий режим дружественных URL” (friendly_urls_strict) должна быть выключена (установлена в состояние “Нет”)
- Настройка “Схема URL” (link_tag_scheme) должна быть либо abs, либо full
- Для того чтобы URL всех страниц был без слеша на конце, необходимо указать пустое значение в настройке “Суффикс контейнера” (container_suffix)
- Включение системной настройки “Автоопределение языка посетителя” (polylang_detect_visitor_language) позволяет при первом посещении сайта перебросить посетителя на языковую версию сайта, определенную на основании языка его системы.
- Системная настройка “Ключ языка посетителя по-умолчанию” (polylang_visitor_default_language) позволяет указать языковую версию сайта, на которую следует перебросить посетителя при первом визите, если для языка его системы нет языковой версии сайта.
Настройка веб-сервера nginx
Для того, чтобы веб-сервер nginx корректно обрабатывал URL адреса и корректно отдавал статичные ресурсы, в раздел server вашего сайта добавьте следующие строки:
для любых адресов типа mysite.ru/XX/ (где XX — например en, ua, es и т.д.)
#language rewrite
location ~ "^/([a-z]{2})/" {
rewrite "^/([a-z]{2})/(.*)" /$2 last;
}
если вы хотите жестко прописать доступные языковые версии (например только en, ua и es):#language rewrite
location ~ "^/(en|ua|es)/" {
rewrite "^/(en|ua|es)/(.*)" /$2 last;
}
для любых адресов вида http://(ЯЗЫК).mysite.ru/server_name mysite.ru *.mysite.ru;
если вы хотите жестко прописать доступные языковые версии (например только en, ua и es):server_name mysite.ru en.mysite.ru ua.mysite.ru es.mysite.ru;
Настройка веб-сервера apache
В файл .htaccess (в корневой директории сайта) перед # The Friendly URLs part необходимо внести следующие строки:# Language rewrite
RewriteCond %{REQUEST_URI} ^/(en|ua|es)/assets/.*
RewriteRule ^(en|ua|es)/assets/(.*)$ assets/$2 [L,QSA]
RewriteCond %{REQUEST_URI} ^/(en|ua|es)/(.*)
RewriteRule ^(en|ua|es)/(.*)$ $2 [L,QSA]
# В некоторых случаях RewriteRule ^(en|ua|es)/(.*)$ $2 [L,QSA] нужно заменить на RewriteRule ^(en|ua|es)/(.*)$ $2 [QSA]
# The Friendly URLs part
...
Теги fastField
Теги fastField, т/е конструкции типа [[#15.pagetitle]] не поддерживаются, место них стоит использовать сниппет pdoFieldСниппеты
PolylangLinks — Сниппет выводит список языков на фронтенде.
Параметры:
tpl — Fenom чанк оформления работы сниппета. По умолчанию: tpl.PolylangLinks
mode — Вид вывода. Доступные значения:dropdown;list. По умолчанию: dropdown
scheme — Схема формирования URL.(аналогично параметру $scheme метода $modx->makeUrl) По умолчанию: значение и системной настройки link_tag_scheme.
showActive — Показывать ли ссылку текущего языка. По умолчанию: 0.
activeClass — Класс для текущего языка.
js — если вы хотите использовать собственные скрипты — укажите путь к ним здесь, или очистите параметр и загрузите их вручную через шаблон сайта.
css — если вы хотите использовать собственные стили — укажите путь к ним здесь, или очистите параметр и загрузите их вручную через шаблон сайта.
PolylangMakeUrl — Сниппет создает URL для ресурса с учетом выбранной языковой версии сайта.
Параметры:
id — ID ресурса. По умолчанию: текущий
scheme — Схема формирования URL.(аналогично параметру $scheme метода $modx->makeUrl) По умолчанию: значение и системной настройки link_tag_scheme.
PolylangCanonical — Сниппет выводит canonical ссылки.
Параметры:
tpl — Fenom чанк оформления работы сниппета.
TV и опции miniShop2
Для того, что бы необходимые TV или опции miniShop2 появились в окне локализации, необходимо на странице настройки TV отметить чекбокс “TV доступно в локализациях”, а на странице настройки опции miniShop2 отметить чекбокс “Опция доступна в локализациях”
Индексация в mSearch2
Для того, что бы поля локализаций индексировались в mSearch2, необходимо в системных настройках Polylang включить опцию “Индексировать поля в mSearch2” (polylang_mse2_index), полсе чего все поля указанные в системной настройки mSearch2 “Индексация полей” (mse2_index_fields), для которых есть перевод в Polylang, будут так же индексироваться. Для добавление в индекс опций товара, необходимо к ее названию добавить префикс “option_”
Перевод
Из “коробки” перевод можно осуществить с помощью API google translate или yandex translate. Для этого в системной настройке Polylang “Класс переводчика” (polylang_class_translator) нужно указать одно из двух значений: PolylangTranslatorGoogl или PolylangTranslatorYandex.
Для использования PolylangTranslatorGoogl необходимо получит ключ доступа https://cloud.google.com/translate/ к API и указать его в системной настройке “API ключ для Google переводчика” (polylang_translate_google_key).
Для использования PolylangTranslatorYandex необходимо получит ключ доступа https://translate.yandex.ru/developers/keys к API и указать его в системной настройке “API ключ для Яндекс переводчика” (polylang_translate_yandex_key).
pdoTools
Если при установки Polylang вы не отметили чекбокс “Переопределить класс pdoFetch” и вам нужно, что бы сниппеты пакета pdoTools (pdoResources, pdoMenu) работали с перевеленными полями, то необходимо изменить значение системной настройки:
pdoFetch.class на PolylangFetch и pdofetch_class_path на {core_path}components/polylang/model/polylang/
mFilter2
Для правильной работы с mFilter2 существует специальный класс обработчик. Для его активации нужно указать в системной настройке mSearch2 “Класс-обработчик фильтров” (mse2_filters_handler_class) значение mse2PolylangFilter
Локализация пользовательского текста
Для локализации разнообразного текста на фронтенде можно создать нужные переводы в словаре компонента в теме “site”.

Polylang 1.0.9
- Добавлено: Сниппет PolylangCanonical.
- Исправлено: Создание полного URL
- Исправлено: Автозаполнение полей
Polylang 1.0.8
- Исправлено: Сохранение данных в редакторах: CKEditor;TinyMCE
Polylang 1.0.7
- Исправлено: Сохранение данных полей: размеры и теги
Polylang 1.0.6
- Добавлено: Системная опция polylang_reload_lexicon
- Исправлено: Получение языка по умолчанию
Polylang 1.0.5
- Добавлено: Работа google translate с обозначением украинского языка "ua"
Polylang 1.0.4
- Исправлено: Вкладка «Опции товара»
Polylang 1.0.3
- Добавлено: Локализация возможных значений Tv полей
Polylang 1.0.2
- Добавлено: Сниппеты "PolylangMsOptions" and "Polylang2BaseUrl"
Polylang 1.0.1
- Исправлено: Отображение TV richtext поля
Последние обсуждения в сообществе MODX.pro