Добавление пользовательского языка¶
XC_VM использует файловую систему перевода. Каждый язык представляет собой отдельный файл .ini в каталоге src/resources/langs/. Добавление нового языка не требует изменения кода — просто создайте файл, и он автоматически появится в панели администратора.
быстрый старт¶
- Скопируйте файл ссылки на английском языке в качестве шаблона:
Замените xx кодом языка ISO 639-1 (например, it для итальянского, pl для польского, ja для японского).
- Откройте
xx.iniи переведите значения (справа от=).:
[Language]
a_to_z = "A to Z" ; ← translate this
access_code = "Access Code" ; ← translate this
actions = "Actions" ; ← translate this
- Перейдите к Настройки → Интерфейс → Язык интерфейса и выберите новый код языка.
Вот и все. Перезагрузка не требуется.
Формат файла¶
Каждый файл .ini имеет следующую структуру:
Rules:
- Заголовок раздела
[Language]равен требуемый в первой строке. - Ключами являются идентификаторы
snake_case— не меняйте их. - Значения должны быть заключены в двойные кавычки.
- Строки отсортированы в алфавитном порядке по ключу для обеспечения согласованности.
- Кодировка файла должна быть UTF-8 (без спецификации).
как это работает¶
| Шаг | Что происходит |
|---|---|
| Панель загрузки | Translator::init() проверяет src/resources/langs/ на наличие *.ini файлов |
| Список языков | Translator::available() возвращает все найденные языковые коды |
| Выбор пользователя | Язык сохраняется в файле cookie lang (для каждого браузера) и в столбце базы данных settings.language (по умолчанию). |
| Отсутствующий ключ | If a translation key is used in code but missing from your .ini file, the system automatically appends it with the key name as the default value |
Доступные языки¶
| Код | Файл |
|---|---|
bg |
bg.ini — Болгарский |
de |
de.ini — Немецкий |
en |
en.ini — Английский (справочный) |
es |
es.ini — Испанский |
fr |
fr.ini — Французский |
pt |
pt.ini — Португальский |
ru |
ru.ini — Русский |
Чаевые¶
- Всегда используйте
en.iniв качестве источника истины — содержит все ключи. В других файлах могут отсутствовать ключи, которые автоматически заполняются во время выполнения. - Автоматическое создание недостающих ключей: если в вашем файле отсутствует ключ,
Translatorавтоматически добавитkey = "key"к вашему файлу. Затем вы сможете найти и перевести эти непереведенные записи. - Поиск непереведенных ключей — поиск строк, в которых ключ равен значению:
- Проверьте свой файл — убедитесь, что
parse_ini_file()может это прочитать:
Дополнительные переводы¶
Внести свой вклад в перевод проекта:
- Разветвите репозиторий.
- Создайте свой языковой файл, как описано выше.
- Отправьте запрос на извлечение с новым файлом
.ini.
Пожалуйста, убедитесь, что все ключи из en.ini присутствуют и переведены.
Связанные файлы¶
| Файл | Роль |
|---|---|
src/Core/Localization/Translator.php |
Поиск перевода |
src/resources/langs/ |
Языковые файлы |