
2.9.11: Добавлена %T(ключ_переводимой_строки_из_json) интерполяция в ^...^ строках. Теперь переводы без параметров можно вставлять напрямую.
2.8.4: Все языковые файлы Lang/*.json загружаются и из каталога карт (например, Maps/Arrogance/Lang/arrogance.json), а также записываются в сохранения и подгружаются при загрузке игры. Таким образом можно выпускать карты с поддержкой перевода.
2.8.3: Улучшен синтаксис json-файлов (Mod\Lang\*.json, UTF-8 encoding).
Поддерживаются вложенные объекты.
В json объекты – множества вида «Ключ - Значение» между фигурными скобками.
{
"wogrev": {
"no_gold_message": "Нет больше золота, @name@!",
"no_mercy": "Пощады не будет!"
}
}
Выше приведённый документ аналогичен следующему:
{
"wogrev.no_gold_message": "Нет больше золота, @name@!",
"wogrev.no_mercy": "Пощады не будет!"
}
Но вместо постоянного повтора с префиксом имени ввода используются вложенные ключи.
2.6.2: Добавлена поддержка локализации ERM скриптов.
Все Lang/*.json файлы грузятся и объединяются в один словарь типа «Ключ - Значение»,
в котором хранятся строки с переводом.
Json-файлы должны сохраняться в кодировке UTF-8, предпочтительно с Unix маркерами концов строк (#10 = 0x0A в качестве разделителя строк).
Формат файлов следующий:
{
"уникальный глобальный ключ-ID строки": "перевод строки",
"другой ключ": "перевод другой строки"
}
Во время загрузки текст автоматически конвертируется из кодировки UTF-8 (Юникод, например китайской,польской) в локальную кодировку ANSI, используемую ОС игрока. Для русскоязычного сегмента пользователей это чаще всего Windows-1251 (Кириллица, она же CP-1251).Пример из практики:
{
"eqs.this_day_savegame_name": "@day@_@player@",
"eqs.end_turn_autosave_name": "@day@_@player@_End",
"eqs.quicksave_name": "@day@_@player@_Quick",
"eqs.saved_msg": "Сохранено!",
"eqs.quicksaved_msg": "Быстрое сохранение!"
}
Рекомендуется давать префикс каждому ключу в виде аббревиатуры мода или имени автора, например "pm." для Феникс-Мода.
Переводы могут также содержать подставляемые параметры в виде "@имя параметра@". Такие параметры заменяются на конкретные значения во время перевода. ERA-команда !!SN:T как раз и служит для получения перевода по ключу.
2.47.0: Добавлена возможность глобального перенаправления ресурсов через JSON-файлы.
Data\Redirections\*.json
Формат:
{
"старое имя ресурса": "новое имя ресурса",
"старое имя ресурса": "новое имя ресурса"...
}
Папка Data\Redirections\Missing\*.json работает схожим образом, но перенаправления применяются только к отсутствующим ресурсам.