Интернационализация
MODX поставляется с концепцией Лексиконов которая помочь с интернационализацией (i18n). Они представляют собой пары key=>value
для каждого языка, к которым можно получить доступ различными способами.
Соответствующие настройки
Для правильной поддержки i18n настройте следующие параметры:
- Для менеджера установите
manager_language
двухсимвольный код языка. - Для фронтенда:
- Установить
cultureKey
двухсимвольный код языка, чтобы указать, какую лексикон следует загружать. - Установить
locale
установку полной локали (например,de_DE.UTF8
) среди прочего использовать локаль для форматов времени/даты/чисел.
- Установить
Лексиконы
Темы лексиконов должны быть загружены перед использованием.
Использование лексиконов в шаблонах
[[%key? &topic=`topicname` &namespace=`namespace_name` &language=`en`]]
Использование лексиконов в PHP
$modx->lexicon->load('namespace_name:topicname');
echo $modx->lexicon('key');
Создание многоязычного сайта
Для создания многоязычных сайтов в MODX обычно есть два подхода.
Первый включает в себя настройку контекстов для языка. Вы направите посетителя в нужный контекст по (суб) домену или подпапке, используя gateway плагин, virtual host, или сторонние дополнения как xRouting или LangRouter.
С многоконтекстным подходом Babel может быть полезным для связи переводов в разных контекстах. Вы также можете использовать лексиконы в своих шаблонах в разных контекстах, создав соответствующие параметры контекста cultureKey
и locale
.
Другой подход заключается в управлении всеми языками из единого контекста. Это требует сторонних дополнений, таких как Lingua.