如何将 TyranoBuilder / TyranoScript 游戏翻译成英语
用 RuneTranslate 翻译 TyranoBuilder / TyranoScript 视觉小说 —— 提取 data/scenario/*.ks 脚本、屏蔽 KAG 标记、翻译角色显示名,并导出一个可玩的 HTML5 或 Electron 构建。
TyranoBuilder 和底层的 TyranoScript 引擎支撑着一大批独立日语视觉小说 —— 它是 Kirikiri 和 Ren'Py 的 Web 技术(HTML5 / JavaScript)替代品,发布形式要么是独立的 HTML5 文件夹,要么是 Electron 封装的可执行文件。它的剧本使用与 Kirikiri 相同的 KAG 风格 .ks 语法,所以一旦你知道文本住在哪里,就很容易触及。本指南带你端到端地用 RuneTranslate 翻译一个 TyranoBuilder 游戏,包括大多数工具漏掉的部分:角色显示名。
你需要准备什么
- Windows 版 RuneTranslate —— 免费,每一种引擎和翻译服务都已解锁。
- 一个 TyranoBuilder 游戏:一个独立的 HTML5 文件夹(松散的
data/和tyrano/目录),或一个 Electron 构建(一个承载tyrano/tyrano.js和data/scenario/*.ks的resources/app.asar)。RuneTranslate 两者都检测。 - 一个目标语言 —— 英语、西班牙语、法语、德语、中文,以及 30 多种其他语言。
- 一个翻译服务。视觉小说对话量大,所以 LLM(OpenAI / Anthropic)或 DeepL 读起来最好;免费的 Google Translate 开箱即用。
第 1 步:打开游戏文件夹
启动 RuneTranslate,点击 新建项目,把它指向游戏目录(Electron 构建则指向含 .exe 的文件夹)。检测会从它的 tyrano/ 运行时加上 data/scenario/ 脚本识别出 TyranoBuilder;对于 Electron 构建,它直接读取 app.asar,所以你从不拆包任何东西。你的原始游戏永远不会被修改。
第 2 步:字符串如何被提取
RuneTranslate 从 TyranoBuilder 存储文本的每一处拉出可翻译文本:
- 剧本脚本 —— 每一个
data/scenario/**/*.ks文件,包括_preview.ks和加密构建所依赖的system/_*.ks镜像。 - UI 和配置 ——
tyrano/lang.js和data/system/Config.tjs。 - 角色显示名 —— 对话上方显示的说话者标签(下一节)。
KAG 内联标记 —— [r] 换行、[p] 点击等待、[改ページ] 分页、[font color=...],以及日语命名的标记 —— 在任何东西到达翻译服务之前被屏蔽在数字 [[U#]] 占位符之后,然后在导出时被还原,于是格式原封不动地保留。二进制或加密的 .ks 文件通过一次 UTF-8 嗅探被检测到,并绝不覆盖。
第 3 步:角色名 —— Tyrano 特有的部分
剧本常常用一个内联简写来称呼说话者,比如 [yuki] —— 一个角色 ID,而非显示文本。RuneTranslate 从不改写那些引用(那会破坏引擎的角色查找并让场景崩溃)。取而代之,它翻译显示名,并在导出时把一个正规的 [chara_new name=... jname=...] 条目注入 data/system/chara_define.ks。屏幕上显示的名字被翻译;脚本使用的 ID 保持不动。
第 4 步:翻译并审校
选一个翻译服务并运行。一个 LLM(OpenAI / Anthropic)对角色声线读起来最好;DeepL 对旁白又快又干净;免费的 Google Translate 覆盖菜单。先给你的角色阵容和反复出现的术语建好术语表,让名字在每条路线上渲染得一模一样 —— 参见 术语表 101。每一行都落进编辑器里,紧挨它的源文;就地编辑(失焦或 Ctrl+Enter 时保存)、用查找替换,或运行可选的 AI 润色器 做一遍上下文感知的二次处理。免费档位在速度上被适度限流 —— 在 AI 服务上大约是付费吞吐量的一半 —— 输出质量完全相同。
第 5 步:导出可玩的版本
点击 导出。对于独立的 HTML5 游戏,RuneTranslate 会把译好的 .ks 脚本、lang.js、配置和注入的 chara_define.ks 写进游戏的一个副本。对于 Electron 构建,它重新打包一个修改过的 app.asar。无论哪种方式,你都在你选择的位置得到一个完整、可运行的副本 —— 启动它,它就用你的目标语言游玩。
已知的局限
- 加密的
.ks文件(被检测为非 UTF-8)保持不动,所以一个加密构建里的剧本不会翻译。 - 图片文字(标志、手绘 UI、CG 说明)在机器翻译范围之外。
- 在运行时构建对话的自定义插件可能需要在编辑器里快速手修。
为什么这比旧办法更容易
手动路线意味着拆开 app.asar、找到每一个 .ks 文件(包括易漏的系统镜像)、手工绕过 KAG 标记翻译、弄清角色名注入,然后在不损坏 asar 的情况下重新打包。RuneTranslate 把整条链折叠进点几下鼠标,同时保持编辑器打开,让你掌控措辞。
查看 TyranoBuilder 引擎页面了解完整功能清单,读 Kirikiri 指南看相关的 KAG 引擎,或下载 RuneTranslate在一个真实游戏上试一试。

