Утиліти
SWH.FontTool — повний набір C#-інструментів (Core / Analyzer / CLI) для впровадження повного українського алфавіту у власний бінарний формат шрифтів гри (.fnt + .png), реверс-інжинірингований побайтово, без жодної документації розробника. Кожна з 66 українських літер отримує повністю нову геометрію у розширеному просторі PNG; базова лінія та висота тіла калібруються від оригінальної латиниці шрифту (гарантовано коректної), а не від кирилиці, яка подекуди сама була невідповідного розміру в тих самих файлах. Індивідуальний вимірюваний трекінг-коефіцієнт (XAdvance) для кожного шрифту окремо — від ~0.64 для конденсованих шрифтів до ~1.0 для звичайного тексту, універсальна формула тут не працює. Безпечна 3-рівнева система донорів для гліфів без прямого відповідника (Ё/Ъ/ё тощо), яка уникає символів, зайнятих іншими локалізаціями в тому самому файлі. Рендер шрифтами родини Fira Sans (Extra Condensed Bold для заголовків, SemiBold для основного тексту) — замінили початкові Oswald/Comfortaa після перевірки походження: кириличне розширення обох виконувала одна й та сама студія з рф, тоді як латиницю й кирилицю Fira Sans створила одна команда (Carrois Type Design / болгарські дизайнери Nikoltchev-Kateliev) без стосунку до неї. Консольне меню повністю двомовне (UA/EN). Замінює попередній FontGenMaster.
SWH.LocEditor — WPF-застосунок (розділений на SWH.LocEditor.Core — чиста логіка без залежності від GUI, і SWH.LocEditor.GUI — інтерфейс) для роботи з мовним CSV гри (.csv/.csv.z) напряму, без проміжних кроків через QuickBMS. Живі перевірки перекладу під час редагування (кирилиця у службових змінних, незбалансовані теги, підозріло довший/коротший за оригінал переклад — пороги підібрані під природну довшість української мови), автоматичне визначення технічних рядків (лише символи/плейсхолдери або явний коментар розробника “do not translate”) і дублікатів оригіналу з одним кліком розповсюдження перекладу на всю групу та окремим маркером, якщо дублікати вже розійшлися. Редагована колонка “Вичитка” з готовими позначками або довільним коментарем, автозбереження робочого TSV. Чітке розмежування джерел даних: ключ/оригінал/коментар розробника завжди беруться з оригінального CSV гри, а колонки для людей-рецензентів програма ніколи не читає й не перезаписує. Темна/світла тема, масштаб шрифту, фільтри за статусом із живими лічильниками, файлове логування ключових операцій для діагностики.
TextValidator — двомовний (UA/EN) валідатор перекладу: злиття перевірених рядків назад у формат гри з автоматичною перевіркою тегів, змінних %, переносів рядка та випадкової кирилиці у службових змінних (запобігає крашам рушія), звіт про ключі оригіналу, відсутні в review-файлі.
ImpakRepacker — двомовний репакер DLC-архівів .impak зі збереженням оригінальних рівнів стиснення кожного файлу (запобігає артефактам і крашам через невідповідне стиснення). Меню вибору конкретного DLC або пакування всіх одразу, зі статусом готовності кожного.
OllamaTranslatorClient — двомовний клієнт для автоматизованого першого проходу перекладу через локальну модель TranslateGemma 12B (Ollama), із захистом ігрових тегів від пошкодження та автоматичною QA-перевіркою результату.
Додаткові інструменти
QuickBMS — використовується для розпакування та пакування текстових архівів .z і .csv.z гри.
Вимоги
Windows 10/11 x64/x86. SWH.LocEditor: self-contained збірки (win-x64/win-x86) не потребують встановленого .NET; framework-dependent версія потребує .NET 10 Desktop Runtime. Решта утиліт — .NET 10 SDK для збірки з коду.
Завантаження
Актуальні релізи доступні на GitHub Releases.
Безпека та прозорість
Вихідний код інсталятора та всіх утиліт повністю відкритий. Інсталятор (Inno Setup, packexe.iss) виконує лише операції копіювання файлів у теці гри: заміну текстового архіву, розгортання власних атласів шрифтів і оновлення DLC перепакованими архівами. Реєстр використовується виключно для стандартного запису в HKEY_CURRENT_USER — підтримка деінсталятора через Панель керування Windows та відстеження версії (запобігання дублюванню встановлення). Жодні глобальні системні налаштування, драйвери чи параметри безпеки не змінюються; деінсталятор повністю видаляє всі записи реєстру та встановлені файли.
Попередження Windows SmartScreen виникають виключно через відсутність платного цифрового підпису — це норма для некомерційних проєктів. Актуальний звіт VirusTotal доступний на сторінці Nexus Mods.
Пов’язаний проєкт
Розроблено для SteamWorld Heist — Українська локалізація.
Подяки
- QuickBMS — екстракція та імпорт
.zархівів - Inno Setup — інсталятор з підтримкою версійності
- Fira Sans / Fira Sans Extra Condensed (Carrois Type Design для Mozilla/Telefónica, OFL) — шрифтова родина, використана для рендеру всіх нових українських гліфів
- SixLabors.ImageSharp / ImageSharp.Drawing — обробка PNG-атласів та рендер гліфів у SWH.FontTool
- Ollama / TranslateGemma 12B — локальна модель для першого проходу перекладу без хмарних API-ключів
- sb8gapi та спільнота Graj po Polsku — дослідження структури
.fntфайлів SteamWorld Heist - Steam Community — технічні деталі роботи з
.zархівами - AI-асистент (Claude) — частина коду написана за його допомогою; всі технічні рішення, вимірювання, перевірка в грі та фінальне ухвалення лишаються за автором