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 в качестве разделителя строк).
Формат файлов следующий:
Во время загрузки текст автоматически конвертируется из кодировки UTF-8 (Юникод, например китайской,польской) в локальную кодировку ANSI, используемую ОС игрока. Для русскоязычного сегмента пользователей это чаще всего Windows-1251 (Кириллица, она же CP-1251).{ "уникальный глобальный ключ-ID строки": "перевод строки", "другой ключ": "перевод другой строки" }
Пример из практики:
Рекомендуется давать префикс каждому ключу в виде аббревиатуры мода или имени автора, например "pm." для Феникс-Мода.{ "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": "Быстрое сохранение!" }
Переводы могут также содержать подставляемые параметры в виде "@имя параметра@". Такие параметры заменяются на конкретные значения во время перевода. ERA-команда !!SN:T как раз и служит для получения перевода по ключу.
2.47.0: Добавлена возможность глобального перенаправления ресурсов через JSON-файлы.
Data\Redirections\*.json
Формат:
Папка Data\Redirections\Missing\*.json работает схожим образом, но перенаправления применяются только к отсутствующим ресурсам.{ "старое имя ресурса": "новое имя ресурса", "старое имя ресурса": "новое имя ресурса"... }