Перейти к содержанию

Перевод модов Project Zomboid Build 42: JSON-файлы

Структура каталогов локализации Build 42, JSON-файлы для имён, подсказок, рецептов, интерфейса и параметров песочницы, формат ключей и типовые ошибки. Примеры и точная версия требуют проверки на целевом билде.

Перевод мода прост и помогает познакомить с ним больше игроков. Автор отмечает, что у Project Zomboid большое сообщество, не говорящее по-английски, в том числе многочисленные испаноязычные игроки, а тысячи игровых строк ещё не переведены. Далее рассматриваются каталоги и ключи переводов Build 42.

Главное правило

Автор утверждает, что Build 42 читает только файлы .json, а старые текстовые файлы Build 41 — например ItemName_ES.txt и Sandbox_ES.txt — игнорируются без предупреждения: вместо переведённой строки игра показывает сам ключ, например Tooltip_MiMod_Algo. Это утверждение о поведении игры не проверялось; в 42.21 возможны сообщения о пропущенном переводе. Сверьте формат и диагностику с целевым билдом.

Куда поместить файлы

Структура из руководства:

Папки перевода мода: media/lua/shared/Translate/ ├── ES/ │ ├── ItemName.json │ ├── Tooltip.json │ ├── Recipes.json │ ├── IG_UI.json │ └── Sandbox.json └── EN/ └── (те же файлы)

Для каждого языка создайте папку с его кодом, например ES, EN, PTBR, FR или RU. Автор советует сверять точные коды по папкам, поставляемым вместе с игрой, в media/lua/shared/Translate/.

Какой ключ указывать в каждом файле

Таблица источника связывает категории JSON с назначением и форматом ключа:

ФайлНазначениеКлючПример
ItemName.jsonНазвания предметовModule.Item"SL.SableLuz": "Lightsaber"
Tooltip.jsonОписание, показываемое при наведении курсораЗначение, указанное для Tooltip = у предмета"Tooltip_SL_SableLuz": "Glows when you wield it."
Recipes.jsonНазвания рецептовИмя craftRecipe"SLEnsamblarSable": "Assemble lightsaber"
IG_UI.jsonТекст интерфейса, названия машин и заголовки контейнеровКлюч, который используется в Lua"IGUI_VehicleNameWanaco": "Wanaco"
Sandbox.jsonПараметры песочницы модаSandbox_ + имя параметра"Sandbox_MiMod_Dificultad": "Difficulty"

Полный пример ES/ItemName.json. В английском EN/ItemName.json используются те же ключи, но английские значения:

ES/ItemName.json (код источника): { "SL.SableLuz": "Sable de Luz", "SL.CristalKyber": "Cristal Kyber (rojo)", "SL.EmpunaduraSable": "Empuñadura de Sable de Luz" }

Советы по файлам

  • Сохраняйте файлы в UTF-8, иначе символы с диакритикой, например é и ñ, могут отображаться неправильно.
  • Лишняя запятая делает JSON некорректным; после последней записи запятую не ставят. Если перевод не показывается, автор советует проверить JSON валидатором.
  • Автор рекомендует включать английский и испанский переводы и утверждает, что английский служит резервным для остальных языков. Это редакционная рекомендация, а резервное поведение нужно подтвердить для целевого билда; наличие обоих языков не объявляется универсальным требованием игры.
  • Названия оставляйте короткими, а подробности переносите в подсказку.