Files
ave-cms/help/modules/localization.md
T
2026-07-27 12:58:44 +03:00

2.9 KiB
Raw Blame History

Перевод интерфейса модуля

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

Добавление перевода

Положите XML рядом с административной частью модуля:

modules/example/admin/language/
├── ru/common.xml
└── en/common.xml

Для модуля, который существует только внутри панели:

<admin-directory>/modules/Example/language/en/common.xml

Пример словаря:

<?xml version="1.0" encoding="utf-8"?>
<language>
    <phrase data="example_title">Example</phrase>
    <phrase data="example_saved">Example saved</phrase>
</language>

Начинайте ключи с кода модуля. Общие кнопки уже доступны как btn_save, btn_cancel, btn_delete, btn_close.

В Twig:

<h1>{{ lang.example_title|default('Пример') }}</h1>
<button>{{ lang.btn_save|default('Сохранить') }}</button>

Обычный статический текст Twig также переводится автоматически. Стабильные ключи нужны в первую очередь для фраз, которые используются из PHP и JavaScript.

В JavaScript:

Adminx.Toast.show(
  Adminx.t('example_saved', 'Пример сохранён'),
  'success'
);

Пункт меню переводится ключом nav_<code>, где code взят из секции navigation файла module.php. Если перевода нет, панель показывает исходную русскую подпись, поэтому неполный словарь не ломает работу.

После добавления фраз JavaScript выполните:

php tools/adminx-i18n.php --build-client

Команда создаст компактный client.xml. Полный серверный словарь в каждую страницу не встраивается.

Справку модуля также можно перевести. Английская копия текущего файла должна лежать в help/en/modules/localization.md; остальные языки используют такую же структуру каталога.

Подробный технический контракт находится в docs/development/adminx-localization.md.