Языковые пакеты
Языковые пакеты и lang.json
Если вы хотите, чтобы один мод одновременно поддерживал китайский, английский, испанский, русский и другие языки, используйте языковой пакет.
Папка
MyFirstMod/
├── pack.json
└── jsons/
└── lang/
└── lang.jsonТакже можно использовать lang.json5.
Минимальный пример
{
"_languages": [
{ "code": "es", "name": "Español", "isCJK": false },
{ "code": "ru", "name": "Русский", "isCJK": false }
],
"LoadingTips": [
{
"en": "Sun is your core resource.",
"zh": "阳光是你的核心资源。",
"es": "El sol es tu recurso principal.",
"ru": "Солнце - ваш основной ресурс."
}
]
}_languages
Это необязательное поле, которое используется для регистрации дополнительных языков в игре.
Каждая запись обычно содержит:
code: код языка, напримерes,ruилиjaname: имя, отображаемое в настройкахisCJK: использовать ли правила ширины текста CJK
Текстовые записи
Внутри одной текстовой записи просто укажите несколько языковых полей рядом, например:
enzhesru
Как применить
- Поместите языковой пакет в
gp-next/packs/ - Откройте Patcher в игре
- Нажмите Save & Reload
- Переключите язык в настройках игры
- Вернитесь на нужный экран и проверьте текст
Связь с другими патчами
Как и другие патч-файлы, lang.json поддерживает глубокое слияние.
Это значит:
- не нужно копировать всю языковую таблицу
- достаточно указать только те текстовые узлы, которые вы хотите переопределить
Другие места, где можно переводить
Некоторые JSON-патчи уже содержат многоязычные структуры, например:
PlantAlmanac- некоторые отображаемые названия в магазине
- некоторые поля имени в файлах Features
В таких случаях дополнительные языковые поля можно добавлять прямо в эти файлы.
На что обратить внимание при создании языкового пакета
- по возможности используйте стандартные коды языков
- сначала проверьте, что базовые значения
en/zhуказаны верно - при добавлении нового языка начинайте с небольшого объема текста
