Поддерживаемый движок · NScripter / ONScripter
NScripter (от Наоки Такахаси) — Windows-движок с закрытым кодом, на котором была создана огромная доля японских додзин- и коммерческих визуальных новелл; ONScripter — среда выполнения с открытым кодом (GPL) и кроссплатформенная — Linux, macOS, Android, ONScripter-EN, Ponscripter — на которой фан-переводчики фактически выпускают свои переведённые сборки. RuneTranslate покрывает обе. Он читает россыпной скрипт игры — nscript.dat или pscript.dat, где каждый байт XOR-нут с 0x84, или текстовый 0.utf / 0.txt — декодирует диалоги Shift-JIS / CP932 (или UTF-8), перечисляет каждую переводимую строку и при экспорте перекодирует и заново обфусцирует его (XOR 0x84), когда оригинальный .dat использовал это, записывая россыпной скрипт, который движок загружает поверх любого архива. Он автоматически применяет однобайтовый текстовый маркер, чтобы переведённая английская строка не была неверно разобрана как команда (классическая ловушка NScripter), и переводит текст на исходном языке (по умолчанию японский), запечённый в заставки, меню и кнопки, через OCR текста на изображениях. Большинство игр поставляют скрипт россыпью (что полностью поддерживается), скрипт, упакованный только внутри архива .nsa / .sar, пока не читается, а SPB-сжатый графический арт всё ещё укрепляется. Проверьте на реальной игре перед распространением.
Визуальные новеллы опираются на фиксированный состав и повторяющуюся терминологию на протяжении тысяч строк, и машинный перевод напишет имя героини тремя разными способами в трёх главах. Внесите ваших персонажей, названия мест и повторяющиеся термины в глоссарий заранее, чтобы каждая строка диалога и каждое меню отображали их одинаково. Глоссарий: основы →
Укажите RuneTranslate на каталог игры — папку с .exe игры (или бинарником ONScripter), скриптом (nscript.dat, pscript.dat или текстовым 0.utf / 0.utf.txt / 0.txt) и архивами .nsa / .sar. Определение опирается на эти маркеры скриптов — голого 0.txt или одиночного .nsa самого по себе недостаточно, нужен подтверждающий сигнал NScripter (шрифт движка, бинарник ONScripter или настоящий файл скрипта). Ваша исходная папка никогда не изменяется.
RuneTranslate снимает XOR с nscript.dat / pscript.dat относительно 0x84 (или читает текстовый 0.utf / 0.txt напрямую), декодирует текст Shift-JIS / CP932 (или UTF-8) и перечисляет каждую переводимую строку в редакторе, сгруппированную по файлам. Разметка движка и командные токены маскируются за числовыми плейсхолдерами, чтобы провайдер их не искажал.
Эти игры насыщены диалогами и чувствительны к тону, поэтому LLM (OpenAI GPT-4o / Anthropic Claude) или DeepL обычно читаются лучше всего; бесплатный Google Translate или локальная модель (Ollama / LM Studio) покрывают короткие строки меню, а OpenAI-совместимого провайдера можно направить на OpenRouter или NanoGPT. Необязательный второй проход AI-доработчика подтягивает буквальные формулировки.
Большая часть интерфейса NScripter — это предварительно отрисованный арт, поэтому японский на заставках и кнопках — это пиксели, а не строки. Обведите каждый фрагмент текста на изображении, распознайте его, переведите, и при экспорте переведённое изображение записывается россыпью в экспорт, чтобы движок загрузил его поверх архива .nsa.
При экспорте RuneTranslate копирует игру и записывает переведённый скрипт обратно как россыпной файл — перекодированный в Shift-JIS / CP932 и заново обфусцированный XOR 0x84, если оригинальный .dat использовал это, с применённым однобайтовым текстовым маркером — плюс любые переведённые изображения россыпью рядом. Запустите экспортированную копию на NScripter или ONScripter — и она играется на вашем языке.