Quests Lang Splitter: делим языковые файлы FTB Quests

Quests Lang Splitter: зачем делить языковые файлы FTB Quests Если вы собираете модпак с квестами, вы наверняка сталкивались с тем, что один большой en_us.snbt превращается в «монолит»: правки сливаются в одном diff, конфликты в Git становятся болью, а переводчикам неудобно работать параллельно. М...

Скачать ftbquestslangsplitter для Minecraft 1.21.1

Оригинальное название: ftbquestslangsplitter

Версии Minecraft: 1.21.1

Загрузчик: NeoForge

ФайлВерсияЗагрузчикРазмер
ftbquestslangsplitter-1.0.0.jar1.21.1NeoForge194 КБСкачать
ftbquestslangsplitter-1.0.1.jar1.21.1NeoForge194 КБСкачать
ftbquestslangsplitter-1.0.2.jar1.21.1NeoForge196 КБСкачать
ftbquestslangsplitter-1.0.3.jar1.21.1NeoForge196 КБСкачать
ftbquestslangsplitter-1.0.5.jar1.21.1NeoForge196 КБСкачать
ftbquestslangsplitter-1.0.6.jar1.21.1NeoForge197 КБСкачать
ftbquestslangsplitter-1.0.7.jar1.21.1NeoForge197 КБСкачать

Quests Lang Splitter: зачем делить языковые файлы FTB Quests

Если вы собираете модпак с квестами, вы наверняка сталкивались с тем, что один большой en_us.snbt превращается в «монолит»: правки сливаются в одном diff, конфликты в Git становятся болью, а переводчикам неудобно работать параллельно. Мод Quests Lang Splitter решает именно эту задачу: он помогает разбить lang-файлы на логичные части, чтобы версионирование, ревью и локализация шли спокойнее. Ниже разберём механику, команды и рабочий процесс без лишней теории — так, как это обычно делают на серверах и в сборках с FTB Quests.

Что меняется в структуре папок

После разбиения вместо одного «плоского» файла появляется аккуратная иерархия в lang/: отдельные сниппеты для глав, групп глав, названия книги квестов, таблиц наград и т. д. Для квестов, задач и связей квестов записи группируются по главам — это сильно упрощает навигацию по блокам текста и снижает риск случайно затронуть чужую главу.

  • chapters/ — файлы вида chapter1.snbt, где сосредоточены id квестов, задач и связей для конкретной главы
  • chapter.snbt — имена глав
  • chapter_group.snbt — имена групп глав
  • file.snbt — название квестбука
  • reward_table.snbt — названия таблиц наград
  • en_us.snbt — исходный файл, который при загрузке/перезагрузке может обновляться из разделённых файлов

Такой подход особенно полезен командам, которые живут в Git: меньше «шумных» изменений, проще ревью, проще параллельная работа переводчиков. Кстати, если вы часто ставите моды и пересобираете клиент, установка дополнений вроде этого становится проще с хорошим лаунчером: этот мод можно легко установить через лаунчер foxygame.net — удобный, гибкий и современный лаунчер для Minecraft, где можно скачать моды прямо из меню, не теряясь в ручной возне с jar-файлами.

Команды: split, fill_missing_translation и purge_merged

Утилита ориентирована на админов сборки и мейнтейнеров контента. Команда /langsplitter split принимает параметр replace_unmerged (чаще всего вы захотите false, если не планируете перезаписывать уже сгенерированные и не смерженные split-файлы) и опционально locale (например, pt_br, zh_cn, ko_kr). Если локаль не указать, разделение выполнится для всех доступных языков.

Команда /langsplitter fill_missing_translation заполняет отсутствующие строки на основе en_us и затем запускает split. Полезно стартовать переводчикам: сначала появляется полный каркас записей, дальше вы точечно переводите нужное. Новые добавленные записи можно отслеживать в debug.log — это спасает, когда нужно понять, что именно «подтянулось» автоматически.

Когда вы загружаете или перезагружаете квесты и split-файлы существуют, они мержатся обратно в исходный файл, после чего на диске могут появиться файлы с суффиксом .snbt_merged. Если такие артефакты раздражают визуально, команда /langsplitter purge_merged поможет их убрать. В идеале это дополняется корректным .gitignore, чтобы репозиторий оставался чистым.

Практика для переводчиков и мейнтейнеров

Переводчикам обычно удобно начать с fill_missing_translation, затем перевести нужные фрагменты, выполнить /ftbquests reload, чтобы изменения смержились. Если правки продолжаются, можно снова запустить split или отредактировать .snbt_merged, переименовать обратно в .snbt и снова перезагрузить. Перед коммитом часто делают финальный split и отправляют в репозиторий только релевантные split-файлы; при необходимости — purge_merged.

Мейнтейнерам имеет смысл обновить .gitignore: в lang/ остаются папки локалей, а «оригинальные» монолитные *.snbt в корне lang для локали можно убрать из версионирования, потому что они дальше генерируются при мерже из split-файлов на запуске. После того как структура папок настроена, политика простая: принимать PR только с split-файлами — так проще жить на разных версиях Minecraft и не ломать историю изменений.

Папка recovery: страховка от случайных перезаписей

Если при мерже заменяется существующая запись (например, вы снова перевели строку), мод может сохранить резервную копию в recovery. Там появится файл вида en_us_<timestamp>.snbt с указанием пути файла, ключа и пар old/new. Это не «магия», а обычная дисциплина контента: вы быстрее откатываете спорные правки и спокойнее обновляете модпак между релизами.

Лицензия и когда мод реально нужен

Проект распространяется под лицензией MIT — это обычно хороший знак для интеграции в сборки и форков. Если ваш проект серьёзно опирается на FTB Quests и у вас растёт команда локализации, Quests Lang Splitter почти неизбежно окупается: меньше конфликтов, понятнее структура, проще сопровождение обновлений и контроль качества текстов.

В итоге мод не «рисует новые биомы» и не меняет игровые механики в прямом смысле, но делает инфраструктуру квестов зрелой: вы переводите и правите контент так, как положено взрослой разработке — маленькими, осмысленными кусками, с предсказуемым мержем и понятными командами для обслуживания.

--- **Обновление 27.08.2026:** Добавлено 2 файла для версии 1.21.1 (NeoForge).