FTB Quests Lang Splitter
📰 Введение
Этот мод добавляет функцию разделения lang-файлов для лучшего контроля версий, а также некоторые вспомогательные команды.
📦 Установка
Мод доступен на CurseForge.
🔧 Функции
👨💻 Команды
split
Разделяет lang-файл на отдельные файлы по категориям, а для квестов, заданий и ссылок на квесты они группируются по главам.
lang/
├─ en_us/
│ ├─ chapters/
│ │ ├─ chapter1.snbt # Содержит идентификаторы квестов, заданий и ссылок на квесты
│ │ ├─ chapter2.snbt
│ │ └─ chapter3.snbt
│ ├─ chapter.snbt # Названия глав
│ ├─ chapter_group.snbt # Названия групп глав
│ ├─ file.snbt # Название книги квестов
│ └─ reward_table.snbt # Названия таблиц наград
└─ en_us.snbt # Исходный файл, он обновляется из разделенных файлов при загрузке/перезагрузке
replace_unmerged: boolean (в основном следует использовать false, если только вы не уверены, что хотите перезаписать ранее сгенерированные и не объединенные разделенные файлы)
locale: код локали (например: pt_br, zh_ch, ko_kr)
/langsplitter split <replace_unmerged> [<locale>]
# Если локаль не указана, будут разделены все доступные языки.
fill_missing_translation
Заполняет отсутствующие языковые записи на основе локали en_us
и выполняет разделение. Примечание: Проверить все новые добавленные записи можно в файле debug.log.
/langsplitter fill_missing_translation <replace_unmerged> <locale>
purge_merged
При загрузке или перезагрузке квестов, если имеются доступные для чтения разделенные файлы, они объединяются в исходный файл, после чего переименовываются в .snbt_merged. Этой командой можно очистить их из папки, если наличие таких файлов нежелательно.
/langsplitter purge_merged
Использование
- Настройте ваш .gitignore:
# FTB Quests Lang Splitter
# игнорировать исходные lang-файлы, например en_us.snbt
config/ftbquests/quests/lang/*.snbt
# игнорировать файлы восстановления
config/ftbquests/quests/lang/recovery/*.snbt
# игнорировать уже объединенные файлы
config/ftbquests/quests/lang/**/*.snbt_merged
Для переводчиков:
- начните с команды
fill_missing_translation
, чтобы сгенерировать файлы, содержащие все записи. - переведите необходимое
- выполните
/ftbquests reload
, чтобы объединить ваши изменения - теперь ваши файлы будут переименованы в .snbt_merged
- если все еще требуется внести больше изменений, вы можете:
- снова выполнить команду
split
для генерации файла - или отредактировать теперь уже файл
.snbt_merged
и после завершения переименовать его обратно в.snbt
- и теперь снова перезагрузить для объединения новых изменений
- если все готово для коммита, просто выполните
split
в последний раз и создайте PR с соответствующими файлами (выполнитеpurge_merged
, если они мешают, но правильный .gitignore должен с этим справиться).
- начните с команды
Для сопровождающих:
- обновите .gitignore в вашем репозитории
- теперь папка /lang/ должна содержать только папки локалей, а не файлы.
- чтобы сгенерировать эти начальные файлы, выполните команду
split
и закоммитьте файлы. - после настройки папок теперь вы можете удалить исходный .snbt файл локали (теперь они генерируются автоматически при объединении из разделенных файлов во время выполнения)
- отныне принимайте только PRs/коммиты, которые относятся к разделенным файлам.
О папке
recovery
:- когда файлы объединяются и они заменяют существующую запись (например, при повторном переводе записи), будет создана резервная копия этой записи в папке
recovery
, содержащая следующее: - будет сгенерирован файл с именем вида
en_us_<timestamp>.snbt
(например:en_us_1755120819.snbt
)
- когда файлы объединяются и они заменяют существующую запись (например, при повторном переводе записи), будет создана резервная копия этой записи в папке
{
"chapters/basic_armor.snbt": {
quest.004D61425172324F.quest_subtitle: {
new: "This is my new subtitle"
old: "This is the old subtitle"
}
}
}