Языки (PRO)
Многоязычность без копий дерева ресурсов и без отдельных контекстов MODX. Язык — это значение context_key у блока, строки таблицы или ресурса.
PageBlocks → Конструктор → Языки.
Настройки языка
| Настройка | Что делает |
|---|---|
| Ключ | То, что попадёт в context_key. Например de. Обязательное |
| Название | Как язык подписан в списках. Обязательное |
| Culture key | Папка в App/lang/ и код для переводчика. По умолчанию равен ключу |
| Локаль | Системная локаль, de_DE.UTF-8 |
| Префикс URL | Сегмент адреса. Пусто — берётся ключ |
| Переводчик | Кто переводит машинно — см. Переводчики |
| Настройки | JSON, применяется как настройки MODX на время запроса |
| По умолчанию | Язык без префикса в адресе. Может быть только один |
| Активно | Неактивный язык сайту не виден |
Контент не дублируется
Это главное отличие от привычного подхода с контекстами. Строка не копируется под каждый язык целиком — у перевода свой context_key, и всё. Не переведённое остаётся одним экземпляром и не требует внимания.
Настройки под язык
Поле Настройки принимает JSON и подменяет системные настройки MODX на время запроса:
{"site_name": "Comstil", "emailsender": "info@example.com"}Так у немецкой версии своё имя сайта и свой адрес отправителя писем, без единого условия в шаблоне.
Язык по умолчанию всегда без префикса
Он один, и адрес у него голый: /about, а не /ru/about. Остальные живут под своим префиксом. Поэтому переключение основного языка меняет все канонические адреса сайта — решать это надо до запуска, а не после.