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: Добавлена поддержка локализации ЕРМ скриптов. Все 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." для Феникс-Мода.
Переводы могут также содержать подставляемые параметры в виде "@имя параметра@". Такие параметры заменяются на конкретные значения во время перевода.
Новая ЕРМ команда !!SN:T служит для получения перевода по ключу.
!!SN:T(ключ)/?(z-переменная, куда записать перевод)/(имя параметра 1)/(значение параметра 1)/(имя параметра 2)/(значение параметра 2)...;
test.json:
{ "test.gold_amount_report": "У Вас осталось @gold@ золота. Не плохо!" }
!!SN:T^test.gold_amount_report^/?z2/^gold^/2000; z2 = "У Вас осталось 2000 золота. Не плохо!"
------------------------------------------------
2.47.0: Добавлена возможность глобального перенаправления ресурсов через JSON файлы.
Data\Redirections\*.json
Format:
{ "старое имя ресурса": "новое имя ресурса", "старое имя ресурса": "новое имя ресурса"... }
Папка "Data\Redirections\Missing\*.json" работает схожим образом, но перенаправления применяются только к отсутствующим ресурсам.
Например, можно удалять часть картинок вроде zpic1005.pcx и перенаправить их на другие, всё ещё присутствующие в lod/pac файлах.
Вы можете прописать такие перенаправления, если ваш мод зависит от другого графического мода, но вы хотите дать пользователям возможность
использовать его и в отдельности.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|