BF1 Localization Tool

WPF-редактор локалізацій для Star Wars: Battlefront (Classic 2004) та Battlefront II (2005). Читає й пише core.lvl напряму в пам'яті власним ucfb-рушієм, без сторонніх утиліт. Валідація маркерів, детектор технічних рядків, ін'єкція кириличних гліфів у шрифтовий атлас BF1.

Можливості

BF1LocalizationTool.GUI — WPF-редактор для створення й редагування локалізацій обох ігор. Читає й пише core.lvl напряму в пам’яті через власний UcfbReader/UcfbWriter — без сторонніх утиліт (QuickBMS, munge/unmunge). Автовизначення версії гри за шляхом до файлу та формату рядків (текстовий .txt чи бінарний Locl) — за фактичним вмістом чанка. Фільтри рядків за мовою, статусом перекладу й технічністю (Технічний / Перекладено / Без перекладу — взаємовиключні); валідатор збереження технічних маркерів (%s %d %i %f %c %u, {btn...}, [X], переноси рядка) з жорстким відхиленням російських літер, що потрапили в переклад; налаштовуваний поріг “задовгого” перекладу (за замовчуванням 1,3× оригіналу + запас), відкалібрований на реальних випадках обрізання тексту в грі; автовизначення технічних рядків, які не потребують перекладу (URL, числа, ідентифікатори, назви клавіш, чит-коди, copyright); автозбереження прогресу, файлове логування; експорт/імпорт CSV для пакетного перекладу через зовнішні сервіси. Темна/світла тема.

BF1LocalizationTool.Diagnostic (консольний, розповсюджується лише як вихідний код) вирішує головне обмеження BF1: текстовий канал .txt (Latin1) сам по собі не підтримує кирилицю. Інструмент ін’єктує нові кириличні гліфи (реальні Unicode-коди, без таблиці-мапера) напряму в шрифтовий атлас core.lvl, не обрізаючи жодного англійського гліфа. Растеризація й метричні моделі гліфів — окремим модулем BF1LocalizationTool.FontGenerator.

Формат файлів

Гра зберігає ресурси в ієрархічних .lvl-контейнерах (ucfb, Pandemic Studios). Рядки локалізації лежать у core.lvl → localization → [мова] в одному з двох форматів: текстовий .txt (0xHASH текст, Latin1, обидві гри — без підтримки кирилиці) або бінарний Locl (hash + текст, UTF-16LE, лише BF2 — повна підтримка кирилиці з коробки). Увесь текст BF1 підтверджено лежить рівно у двох файлах (Data\_LVL_PC\core.lvl і аддон Tat3\...\core.lvl), шрифти — лише в першому; аддон Tat3 не має власних шрифтів і використовує атлас базової гри.

Вимоги

Windows 10/11, Star Wars: Battlefront (Classic 2004) і/або Battlefront II у Steam. Готові збірки (win-x64/win-x86) не потребують встановленого .NET; варіант generic потребує .NET 10 Desktop Runtime. Генерація кириличного core.lvl через BF1LocalizationTool.Diagnostic (лише з коду) додатково потребує .NET 10 SDK.

Завантаження

Актуальні релізи (готовий .zip з GUI-редактором) доступні на GitHub Releases. Реліз містить лише GUI; BF1LocalizationTool.Diagnostic збирається з коду окремо.

Безпека та прозорість

Вихідний код усіх компонентів повністю відкритий, уся логіка перетворень .lvl-файлів прозора — це дозволяє верифікувати мод на Nexus Mods. Репозиторій не містить видобутих файлів гри та жодних .ttf-файлів шрифтів (вони публічні на Google Fonts, посилання — у розділі подяк).

Пов’язаний проєкт

Розроблено для Star Wars: Battlefront (Classic 2004) — Українська локалізація.

Подяки

  • Спільнота Gametoast — документація форматів гри
  • swbf-unmunge — початковий аналіз структури ucfb
  • Sofia Sans Extra Condensed (Lettersoup — Botio Nikoltchev, Ani Petrova, SIL OFL) — шрифт для рендеру кириличних гліфів BF1
  • Unbounded (Web3 Foundation / Studio Koto / NaN / Parity Technologies, SIL OFL) та Exo 2 (Natanael Gama, SIL OFL) — шрифти для рендеру кириличних гліфів BF2