支持的引擎 · NScripter / ONScripter
NScripter(由高橋直樹打造)是那个闭源 Windows 引擎,一大批日语同人及商业视觉小说都在它上面创作;ONScripter 是开源(GPL)的跨平台运行时 —— Linux、macOS、Android、ONScripter-EN、Ponscripter —— 粉丝译者实际用它来发布译好的构建。RuneTranslate 两者都覆盖。它读取游戏松散的脚本 —— 一个每字节都对 0x84 做 XOR 的 nscript.dat 或 pscript.dat,或一个纯文本的 0.utf / 0.txt —— 解码 Shift-JIS / CP932(或 UTF-8)对话、列出每一条可翻译的行,并在导出时重新编码,当原始 .dat 用了它时重新混淆(XOR 0x84),写出一个引擎加载在任何归档之上的松散脚本。它会自动施加单字节文本标记,让一条译好的英语行不被误解析为命令(经典的 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 对 nscript.dat / pscript.dat 做对 0x84 的反 XOR(或直接读取纯文本 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 UI 是预渲染的美术,所以标题画面和按钮上的日语是像素,不是字符串。在一张图像上框住每一段文字、识别它、翻译它,然后导出时译好的图像被松散地写进导出,让引擎加载它覆盖 .nsa 归档。
导出时,RuneTranslate 会复制游戏,并把译好的脚本作为一个松散文件写回 —— 重新编码为 Shift-JIS / CP932,如果原始 .dat 用了 XOR 0x84 则重新混淆,并施加单字节文本标记 —— 加上任何译好的图像在旁边。在 NScripter 或 ONScripter 上运行导出的副本,它就用你的语言游玩。