Файлы .json
(Выдержка из истории изменений ERA по json-файлам)

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 работает схожим образом, но перенаправления применяются только к отсутствующим ресурсам.
Например, можно удалять часть картинок вроде zpic1005.pcx и перенаправить их на другие, всё ещё присутствующие в lod/pac файлах.
Вы можете прописать такие перенаправления, если ваш мод зависит от другого графического мода, но вы хотите дать пользователям возможность использовать его и в отдельности.