如何将 Kirikiri / KAG 视觉小说翻译成英语
用 RuneTranslate 把 Kirikiri / KAG 视觉小说翻译成英语 —— 用移植的 GARbro 方案读取加密的 .xp3 归档、翻译 KAG .ks 剧本和 PSB 场景,并导出游戏自动加载的 patch.xp3。
Kirikiri(吉里吉里)及其 KAG 剧本层支撑着日语视觉小说的一大部分 —— 包括大多数商业美少女作品目录。难点在于:Kirikiri 把它的脚本、美术和音频打进加密的 .xp3 归档里,而许多工作室在其上再施加一套每游戏各异的加密方案。这就是为什么 Kirikiri 有难翻译的名声。本指南带你端到端地用 RuneTranslate 做这件事:读取 .xp3、处理加密、翻译 KAG .ks 剧本,并导出游戏自动加载的补丁。
你需要准备什么
- Windows 版 RuneTranslate —— 免费,每一种引擎和翻译服务都已解锁。
- 一个 Kirikiri 游戏文件夹 —— 含有游戏
.exe和一个或多个.xp3归档(通常是data.xp3、scenario.xp3等)的目录。带.exe.emb/.xp3.sig文件的签名 KirikiriZ 构建也会被识别。 - 一个目标语言 —— 英语、西班牙语、法语、德语、葡萄牙语、俄语、中文、意大利语、土耳其语、越南语,以及 20 多种其他语言。
- 一个翻译服务。视觉小说对话量大,所以 LLM(OpenAI / Anthropic)或 DeepL 通常读起来最好;免费的 Google Translate 开箱即用。
第 1 步:打开游戏并拆开 XP3
启动 RuneTranslate,点击 新建项目,把它指向 Kirikiri 游戏目录。引擎检测会自动运行。内置的 XP3 读取器会打开归档索引 —— 包括大归档使用的 17 字节压缩索引头 —— 并取出剧本文件。你的原始归档永远不会被修改。
如果归档是加密的,RuneTranslate 会尝试用一个约两打移植过的 GARbro 加密方案库来解密它,外加一个通用的单字节 XOR 暴力求解器,应对更简单的每文件打乱。大多数零售游戏落入其中之一。需要每归档运行时状态或工作室持有密钥的方案仍不支持 —— 那些是真正被锁死的异类。
第 2 步:Kirikiri 对话如何被提取
Kirikiri 把对话存在 KAG .ks 剧本脚本里。RuneTranslate 解析它们,并在编辑器里列出可翻译的文本:
- 对话和旁白 —— 原始剧本行。
- 智能属性提取 —— 像
[ruby/]、[ch text="..."]、[name text="..."]和[button text="..."]这样的标记里的可读文本被抠出来翻译,而标记结构本身保留。
KAG 内联控制标记在任何东西到达翻译服务之前被屏蔽在数字 [[K#]] 占位符之后,让机器无法破坏引擎的格式。一些 KirikiriZ 游戏还把剧本作为编译过的 PSB .scn 二进制(PSB\0 格式)发布 —— RuneTranslate 也会解析并重新打包未加密的 PSB 剧本(格式版本 1 到 4),于是那些游戏翻译起来就像文本脚本一样。
第 3 步:翻译并审校
选一个翻译服务并运行。对于角色声线和风格化台词,像 OpenAI 或 Anthropic 这样的 LLM 读起来最好;DeepL 对旁白又快又干净;免费的 Google Translate 覆盖菜单。事先给你的角色阵容和反复出现的术语建好术语表,让每条路线都把名字渲染得一模一样 —— 参见 术语表 101。在免费档位上翻译会被适度限流 —— 在 AI 服务上大约慢 2 倍,在免费抓取器上更少 —— 输出质量完全相同;付费档位以全速运行并增加翻译记忆。
每一行都落进编辑器里,紧挨它的源文。就地编辑(失焦或 Ctrl+Enter 时保存)、用查找替换,或运行可选的 AI 润色器 做一遍上下文感知的二次校对 —— 在长 VN 路线上很有价值。
第 4 步:导出一个补丁
点击 导出。RuneTranslate 把译好的剧本作为松散文件写出,加上一个启动钩子,并且在有帮助的地方加一个扁平的 patch.xp3。它使用两条覆盖路径,因为没有单独一条是通用的:
- 松散文件 + 启动钩子 —— 钩子的
addAutoPath调用把松散文件提到游戏归档之上。因为不同构建运行不同的初始化入口,RuneTranslate 会把钩子以游戏使用的全部三个名字写出 ——AfterInit2.tjs、xAfterInit2.tjs和xAfterInit.tjs—— 让游戏调用的那一个把它接起来。 - patch.xp3 —— Kirikiri 会以高于游戏自己归档的优先级自动挂载
patch.xp3/patch2.xp3("后来的路径胜出"),所以即便游戏禁用了启动钩子它也能覆盖。在加密构建上,它的条目用游戏自己的方案预先加密。注意,强制归档签名的构建会拒绝一个额外的patch.xp3,所以在那些上面,松散文件钩子才是承载翻译的路径。
输出就是你的译文丢在原始游戏旁边。启动 .exe,它就用你的目标语言游玩。
已知的局限
- 带有需要运行时状态、查找表或工作室持有密钥的每游戏方案的加密 XP3 不支持 —— 内置约两打 GARbro 方案加一个 XOR 暴力求解器,这覆盖大多数零售游戏,但不是每一个异类。
- 加密 / MDF 压缩的 PSB
.scn剧本被跳过;只支持未加密的 PSB(版本 1–4)。 - 编译过或标记化的 KAG
.ks字节码(二进制 /jk魔数,不能被反打乱成文本)被跳过 —— 只解析可读的 KAG 脚本和未加密的 PSB 剧本。 - 图片文字(标志、手绘 UI、CG 说明)不翻译 —— 在机器翻译范围之外。
为什么这比旧办法更容易
手动路线意味着辨认加密方案、用 GARbro 提取 XP3、手工找出 KAG 标记里的可读文本、在不弄坏标记的情况下翻译它,然后重新打包或正确接上一条覆盖路径。RuneTranslate 把整条链 —— 解密、提取、屏蔽标记、翻译、构建松散钩子和 patch.xp3 —— 折叠进点几下鼠标,同时保持编辑器打开,让你掌控措辞。
查看 Kirikiri 引擎页面了解完整功能清单,读 Ren'Py 指南看另一个视觉小说引擎,或下载 RuneTranslate在一个真实游戏上试一试。

