
KenshiModTranslate
通过AI的模组自动翻译器。可以使用本地模型或通过API使用任何其他模型
查看大图Kenshi RU — Переводчик модов ([url=https://github.com/KorolevOl/KenshiModTranslate]https://github.com/KorolevOl/KenshiModTranslate[/url])
Моды Steam Workshop → на русский. Локальный ИИ переводит, ты можешь править каждую фразу в [code]translate.csv[/code] (Excel) и пересобирать [code].mod[/code]. Перевод пишется [b]на месте[/b] — в папке мода в Steam, в [code]mods\[/code] ничего не копируется. Резервная копия оригинала — рядом ( [code].orig_<хэш>.backup[/code]).
[line]
[heading]🚀 Запуск: 3 шага[/heading]
[b]Шаг 1. Установка (один раз, ~2 минуты).[/b] Двойной клик по: [code]install.bat[/code] Он сам: [list] []проверит Python и поставит зависимости;[/] []проверит .NET 9 — если нет, [b]сам скачает[/b] (~50 МБ, без админ-прав, в папку проекта);[/] []найдёт Kenshi и Workshop-моды в Steam и [b]сам впишет пути[/b] в [code]config.json[/code].[/] [/list]Финал окна: «[ OK ]» по всем пунктам + «Установлено». (Если нет Python — поставить один раз: python.org → Windows installer → галка [b]«Add Python to PATH»[/b] → Install, затем повторить [code]install.bat[/code].)
[b]Шаг 2. Кто переводит (один раз).[/b] В [code]config.json[/code] прописать блок [code]llm[/code] — любой OpenAI-совместимый сервер ИИ (локальный, локальная GPU, облачный):
"llm": {
"base_url": "http://localhost:11234/v1",
"model": "qwen3.8:27b",
"api_key": null
}
Сервер должен быть запущен; проверьте: [code]curl http://localhost:11234/v1/models[/code].
[b]Шаг 3. Переводить.[/b] Двойной клик по: [code]translate_mods.bat[/code] Прогресс-бары ALL/NOW (счётчик — в токенах). [code]Ctrl+C[/code] останавливает без потери прогресса; повторный запуск продолжает с того же места.
[line]
[heading]🗣 Повседневное использование[/heading]
[table][tr][th]Что хотите[/th] [th]Что запустить (двойной клик)[/th] [/tr] [tr][td]Перевести все моды[/td] [td][code]translate_mods.bat[/code][/td] [/tr] [tr][td]Только один мод[/td] [td][code]translate_mods.bat "имя мода"[/code][/td] [/tr] [tr][td]Пере-перевести заново (игнорируя кеш)[/td] [td][code]translate_mods.bat --force "имя мода"[/code][/td] [/tr] [tr][td]Посмотреть/поправить перевод[/td] [td]файл [code]translate.csv[/code] в папке мода (Excel) → сохранить → [code]assemble_mod.bat "имя мода"[/code][/td] [/tr] [tr][td]Пересобрать все [code].mod[/code] из кеша (без ИИ)[/td] [td][code]rebuild.bat[/code][/td] [/tr] [tr][td]Проверить качество / починить[/td] [td][code]verify_translations.bat[/code], [code]fix_translations.bat "имя мода"[/code][/td] [/tr] [tr][td]Убрать мод из кеша[/td] [td][code]verify_translations.bat --purge "имя мода"[/code][/td] [/tr] [tr][td]Найти, где во всех модах лежит фраза[/td] [td][code]search_mods.py "фраза"[/code][/td] [/tr] [/table][code]translate.csv[/code] — Excel-таблица мода: разделитель [code]|[/code], столбец 1 = оригинал («якорь», [b]не трогать[/b]), столбец 2 = перевод (пусто = строка остаётся как была).
[b]Полный цикл[/b]: перевести → поправить CSV в Excel → [code]assemble_mod.bat[/code] → игра. Откат: вернуть [code]имя.mod.prev[/code] обратно в [code]имя.mod[/code].
[line]
[heading]⚙️ Настройки — [code]config.json[/code][/heading]
[table][tr][th]Поле[/th] [th]Что[/th] [/tr] [tr][td][code]llm.base_url[/code] / [code]llm.model[/code] / [code]llm.api_key[/code][/td] [td]сервер и модель ИИ (шаг 2). Локальному серверу [code]api_key: null[/code][/td] [/tr] [tr][td][code]paths.game[/code][/td] [td]папка Kenshi (обычно вписал [code]install.bat[/code])[/td] [/tr] [tr][td][code]paths.workshop[/code][/td] [td]папка Workshop-модов [code]content\233860[/code] (аналогично)[/td] [/tr] [/table]Правило путей: [b]относительные[/b] — от папки проекта, [b]абсолютные[/b] — каталоги на другом диске. Изменил файл → следующий запуск подхватит. Остальные параметры уже разумные по умолчанию (см. «Детали»).
[heading]🆘 «Что-то не работает»[/heading]
[table][tr][th]Симптом[/th]
[th]Что делать[/th]
[/tr]
[tr][td][code]python not found in PATH[/code][/td]
[td]Установи Python 3.10+ и добавь в PATH[/td]
[/tr]
[tr][td][code]dotnet CLI failed[/code][/td]
[td].NET Desktop Runtime 9 не установлен, либо bin\Release[/td] [/tr] [tr][td]et9.0-windows\kenshi-modtranslate.dll отсутствует (должна быть в репо)[/td]
[td][/td]
[/tr]
[tr][td]Ложный-мод / пустой кеш[/td]
[td][code]verify_translations.bat --details[/code], затем
[code]--fix[/code][/td]
[/tr]
[tr][td]Неверный порядок/потеря строк[/td]
[td][code]fix_translations.bat "имя"[/code] — починит только битое[/td]
[/tr]
[tr][td]Удалить кеш мода[/td]
[td][code]verify_translations.bat --purge "имя"[/code][/td]
[/tr]
[tr][td]Перевести заново[/td]
[td][code]translate_mods.bat --force "имя"[/code] (резервный остаётся)[/td]
[/tr]
[/table]Резервные копии (на месте, в папке мода)
[code]<имя>.mod ← текущий (обычно RU) <имя>.mod.orig_<хэш>.backup ← оригинал (из Steam) <имя>.mod.prev ← предыдущая RU (откат: переназвать назад) <имя>.mod.new ← временный (появляется при apply)[/code]
[line]
[heading]🔄 Полный цикл «сделал — поправил — собрал»[/heading]
[list=1] [][code]translate_mods.bat "Pocket Change 2.0"[/code] — перевести (или уже переведено)[/] []Посмотреть перевод: в игре или в [code].../1173662576/translate.csv[/code] (открыть в Excel) — [b]если всё устраивает, останавливаемся здесь[/b]. Остальные шаги не нужны. [quote][code]id[/code] в URL/путь (например, [code]1173662576[/code]) [b]— это Steam ID мода[/b]. У каждого мода Workshop есть уникальный цифровой ID (виден в ссылке steamcommunity.com/shared/filedetails/[b]1173662576[/b]), по нему названа папка в Steam. В этой папке и лежит [code]translate.csv[/code].[/quote][/] [](Только если что-то не так) Править 2‑ю колонку (RU) в translate.csv, сохранить[/] [][code]assemble_mod.bat "Pocket Change 2.0"[/code] — пересобрать .mod из CSV[/] []Запустить игру снова[/] [/list]Если что-то пошло не так — откат (переименовать файлы): :: в cmd (Command Prompt):
move /Y "Pocket Change 2.0.mod" "Pocket Change 2.0.mod.broken"
move /Y "Pocket Change 2.0.mod.prev" "Pocket Change 2.0.mod"
в PowerShell:
move -Force "Pocket Change 2.0.mod" "Pocket Change 2.0.mod.broken"
move -Force "Pocket Change 2.0.mod.prev" "Pocket Change 2.0.mod"
[quote][code]move[/code] — встроенная команда, которая есть у всех Windows (ставится вместе с ОС, ничего доустанавливать не нужно). В [b]cmd[/b] добавьте [code]/Y[/code] (не спрашивать «заменить? да»), в [b]PowerShell[/b] — [code]-Force[/code] (разрешить перезапись). Вариант [code]ren[/code] (cmd) работает аналогично, но в PowerShell нет — [code]move[/code] универсальнее.[/quote][line]
[heading]📌 Краткая шпаргалка[/heading]
[code]# перевести translate_mods.bat "имя" | --force | --list-file f.txt | --include-excluded
выгрузить CSV
export_mod_csv.bat "имя"
пересобрать из CSV
assemble_mod.bat "имя"
пересобрать ВСЕ из кеша (без LLM, без CSV)
rebuild.bat | <Steam-ID> | <имя>
проверить
verify_translations.bat [--details] [--fix] [--purge]
поиск
python search_mods.py "фраза" [--en|--ru|--dll]
список доступных имён/ID
python csv_mod.py --list[/code]
[line]
📚 Детали для продвинутых
Всего выше достаточно, чтобы запустить и пользоваться. Здесь — как устроено внутри, ручная установка «от руки» и тонкие настройки. Новичок может смело пролистать этот отдел.
[heading]⚙️ Как это устроено внутри (кратко)[/heading]
[list] [][b]Словарь [/b] [code]dict.json[/code] — ваши канонические термины ( [code]exact[/code] = точные строки, [code]words[/code] = слова); вставляется в промпт LLM, подстраховывает перевод скриптом.[/] [][b]Показатели из локали игры[/b] — для чанков подтяиваются соответствующие пары EN→RU из [code]gamedata.po[/code] / [code]main.po[/code] (названия рас, фракций, зданий) — не влезая в контекст полностью.[/] [][b]Пред-LM фильтры[/b] — строки без латиницы и уже переведённые (в словаре, в локали игры, в кеше других модов) [b]не отправляются[/b] в LLM — экономит токены и время.[/] [][b]Чёрный список [/b] [code]exclude.txt[/code] — моды, которые не переводить (регулярки).[/] [][b]Промт [/b] [code]prompt.txt[/code] — инструкции LLM; текст между [code]/…/[/code] (теги вроде [code]/HOLYGREET/[/code]) [b]не переводится[/b].[/] [][b]Сборка перевода[/b] — [code].mod[/code] переписывается на месте, старые — сохраняются как [code].orig_<hash>.backup[/code] / [code].prev[/code].[/] [/list][heading]📦 Установочные шаги (подробно)[/heading]
Проект рассчитан на [b]Windows 10/11[/b]. Стоимость: [b]0 ₽[/b] — всё работает локально (кроме самого Kenshi в Steam и LLM-сервера, если он у вас платный/облачный).
Шаг 1. Получить проект
[b]Вариант A — Git (рекомендуется):[/b]
git clone https://github.com/KorolevOl/KenshiModTranslate.git
cd KenshiModTranslate
[b]Вариант B — просто скопировать папку[/b] (без Git): Скачайте ZIP с GitHub (зелёная кнопка «Code» → «Download ZIP») → распакуйте в папку, например [code]C:\KenshiModTranslate[/code]. Дальше — то же самое.
[quote]⚠️ При копировании вручную убедитесь, что папка содержит: [code]translate_mods.bat[/code], [code]translate_mods.py[/code], [code]config.json[/code], [code]bin\Release\net9.0-windows\kenshi-modtranslate.dll[/code], [code]bin\Release\net9.0-windows\KenshiCore.dll[/code].[/quote]Шаг 2. Python
[url=https://github.com/KorolevOl/KenshiModTranslate#%D1%88%D0%B0%D0%B3-2-python][/url]
Установить [b]Python 3.10+[/b] с галкой «Add Python to PATH» (python.org → Windows → installer). Проверить:
python --version # 3.10+
pip --version
Зависимости (всего 1 пакет — tqdm):
pip install -r requirements.txt
[quote]Если tqdm уже есть — [code]pip install -r requirements.txt[/code] скажет «already satisfied», это ок.[/quote]Шаг 3. .NET 9 Desktop Runtime
[url=https://github.com/KorolevOl/KenshiModTranslate#%D1%88%D0%B0%D0%B3-3-net-9-desktop-runtime][/url]
[b]DLL уже в этом репо[/b] — [code]bin\Release\net9.0-windows\kenshi-modtranslate.dll[/code] закоммичен вместе с зависимостями ( [code]KenshiCore.dll[/code], [code].runtimeconfig.json[/code], [code].deps.json[/code] ). Вам нужен только [b].NET 9 Desktop Runtime[/b] на машине (не SDK — только для запуска):
# Скачать: https://dotnet.microsoft.com/download/dotnet/9.0 → .NET Desktop Runtime 9.0.x → x64
# Установить. После установки:
dotnet --list-runtimes # содержит Microsoft.WindowsDesktop.App 9.0.x
[quote][code]dotnet[/code] = команда-запускатель рантайма, не отдельное приложение — ставится вместе с [code]Desktop Runtime[/code] в [code]%ProgramFiles%\dotnet[/code]. В [code]config.json[/code] укажите полный путь к нему, если [code]dotnet[/code] не в [code]PATH[/code]: [code]"dotnet": "C:\\Program Files\\dotnet\\dotnet.exe"[/code].[/quote][b]Если хотите менять C#-код[/b] (добавить фичи, патчить) — тогда нужен [b].NET 9 SDK[/b] + соседний репо [code]KenshiTranslator[/code]:
папка\\
├─ KenshiModTranslate\\ ← этот репо (ksm csproj ссылается на ..\KenshiTranslator\KenshiCore)
└─ KenshiTranslator\\
└─ KenshiCore\\KenshiCore.csproj
cd KenshiModTranslate
dotnet build -c Release
# => bin\Release\net9.0-windows\kenshi-modtranslate.dll (новый)
git add bin/Release/net9.0-windows/kenshi-modtranslate.dll && git commit
Шаг 4. LLM-сервер (локальный)
В [code]config.json[/code]:
"llm": {
"base_url": "http://localhost:11234/v1",
"model": "qwen3.8:27b",
"api_key": null
}
Проверить, что сервер отвечает:
curl http://localhost:11234/v1/models
Должен вернуть JSON со списком моделей. Если сервер под другим именем/портом — поправь [code]base_url[/code].
Шаг 5. Пути в [code]config.json[/code][url=https://github.com/KorolevOl/KenshiModTranslate#%D1%88%D0%B0%D0%B3-5-%D0%BF%D1%83%D1%82%D0%B8-%D0%B2-configjson][/url]
Правило: [b]абсолютные[/b] — только для каталогов [b]вне[/b] папки проекта (game, workshop на [code]E:[/code]); [b]относительные к папке проекта[/b] — для всего, что рядом ( [code]state[/code], [code]dotnet[/code], [code]modtranslate_cli[/code]).
"paths": {
"game": "E:\\steamlibrary\\steamapps\\common\\kenshi",
"workshop": "E:\\steamlibrary\\steamapps\\workshop\\content\\233860",
"dotnet": "../dotnet9/dotnet.exe",
"modtranslate_cli": "bin/Release/net9.0-windows/kenshi-modtranslate.dll",
"state": "state"
}
[table][tr][th]Поле[/th] [th]Что (пример значения в этом репо)[/th] [/tr] [tr][td][code]game[/code][/td] [td]Каталог игры ( Kenshi, [code]kenshi.exe[/code] внутри ) — абсолютный, на твоём диске[/td] [/tr] [tr][td][code]workshop[/code][/td] [td]Папка Steam Workshop — [code]content\233860[/code] ( appId Kenshi = 233860 ) — абсолютный[/td] [/tr] [tr][td][code]dotnet[/code][/td] [td][code]../dotnet9/dotnet.exe[/code] [b]относительно папки проекта[/b] (или просто абсолютный, если dotnet где-то ещё)[/td] [/tr] [tr][td][code]modtranslate_cli[/code][/td] [td][code]bin/Release/net9.0-windows/kenshi-modtranslate.dll[/code] (относительно папки проекта, после [code]dotnet build[/code])[/td] [/tr] [tr][td][code]state[/code][/td] [td][code]state[/code] — кеш переводов, [b]по умолчанию внутри папки проекта[/b][/td] [/tr] [/table][quote]Относительные пути всегда резолвятся [b]относительно папки проекта[/b], где лежит [code]config.json[/code] — работает из любого CWD и из любого [code].bat[/code].[/quote]Шаг 6. (Опционально) Словарь / Чёрный список / Промт
Файлы уже есть с разумными дефолтами, можно править: [list] [][code]dict.json[/code] — свои «канонические» термины ( [code]exact[/code], [code]words[/code] — см. раздел «Словарь терминов»)[/] [][code]exclude.txt[/code] — регулярные выражения, какие моды не трогать[/] [][code]prompt.txt[/code] — инструкции ИИ (тон, правила, адаптация)[/] [/list]Шаг 7. Самопроверка (без LLM, без переводов)
verify_translations.bat
python search_mods.py "test"
Если ничего не падает — можно переводить:
translate_mods.bat "Pocket Change 2.0"
Шаг 8. Обновление проекта (когда появится новый релиз)
cd KenshiModTranslate
git pull
pip install -r requirements.txt # если requirements.txt поменялся
[quote][code]dotnet build[/code] [b]НЕ нужен[/b] в 99% случаев — DLL уже в репозитории и обновляется вместе с кодом при новом релизе. Нужен только если вы [b]сами[/b] правите [code]Program.cs[/code].[/quote]Типичные ошибки установки
[table][tr][th]Симптом[/th] [th]Причина / Fix[/th] [/tr] [tr][td][code]python not found in PATH[/code][/td] [td]Python не добавлен в PATH — переустановить с галкой[/td] [/tr] [tr][td][code]dotnet: command not found[/code][/td] [td].NET не в PATH — добавить [code]C:\Program Files\dotnet[/code] в PATH[/td] [/tr] [tr][td][code]dotnet CLI failed: The application to execute does not exist[/code][/td] [td][code]paths.modtranslate_cli[/code] в [code]config.json[/code] неверен — проверьте, что [code]bin\Release\net9.0-windows\kenshi-modtranslate.dll[/code] существует (в репо)[/td] [/tr] [tr][td][code]You must install or update .NET[/code][/td] [td]Не установлен [b].NET Desktop Runtime 9[/b] — ставится с dotnet.microsoft.com[/td] [/tr] [tr][td][code]KenshiCore.csproj[/code] не найден при сборке[/td] [td]Нет соседнего [code]..\KenshiTranslator\KenshiCore\KenshiCore.csproj[/code] – скачать рядом[/td] [/tr] [tr][td][code]Connection refused: localhost:11234[/code][/td] [td]LLM-сервер не запущен – поднять ollama/ollama-weldbook[/td] [/tr] [tr][td][code]404 /v1/models[/code][/td] [td][code]base_url[/code] в [code]config.json[/code] неверен[/td] [/tr] [tr][td][code]Mod not found[/code] (мод не в списке)[/td] [td][code]paths.workshop[/code] не та папка или мод отключён в Steam[/td] [/tr] [/table][line]
➕ Любая внешняя LLM (OpenAI-совместимый API)
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。