支持的引擎 · TyranoBuilder / TyranoScript
TyranoBuilder(及其底层的 TyranoScript)是一款日式视觉小说引擎,在 itch.io、DLsite 和 Steam 上的独立发行版中很受欢迎。RuneTranslate 会同时检测 Electron 封装版(resources/app.asar 内含 tyrano/tyrano.js + data/scenario/*.ks)和 HTML5 独立版(根目录下的松散文件)。它翻译每一个 .ks 脚本文件(包括加密版游戏使用的 _preview.ks 和 system/_*.ks 镜像)、用于 UI 字符串的 tyrano/lang.js、用于配置字符串的 data/system/Config.tjs,还会把角色显示名注入一个 chara_define.ks 块 — 内联的 [<JP-id>] 说话者简写会自动变成规范的 [chara_new name=... jname=...] 条目。搭配 Supporter 等级的术语表功能,可在第一批翻译运行前把角色名单里的每个角色名锁定为特定呈现。源语言默认为日语,但可按项目设置 — 中文、韩语、英语等都可用,因此非日语的 Tyrano 版本也能以相同方式提取。
TyranoBuilder 的角色名注入已经给了你一份干净的说话者简表 — 但脚本里的其他一切(地名、组织名、招牌忍术 / 法术名)默认仍会前后不一。把它们加进术语表。内联 KAG 标签([r]、[p]、[font color=...])会被标签遮罩,因此术语表替换绝不会意外破坏某个内联指令 — 这正是手动编辑的 tyrano 翻译常见的失败方式。 术语表入门 →
将 RuneTranslate 指向游戏根目录。引擎检测能处理两种布局:Electron 封装版(resources/app.asar 内含 tyrano/)和 HTML5 独立版(根目录下的 data/scenario/)。对于 Electron 版本,RuneTranslate 会通过 @electron/asar 透明地读取并重打包 app.asar。
RuneTranslate 会扫描 data/scenario/**/*.ks(包括加密版本使用的 _preview.ks 和 system/_*.ks 镜像)、用于引擎 UI 的 tyrano/lang.js,以及用于配置级字符串的 data/system/Config.tjs。内联 KAG 标签([r]、[p]、[改ページ]、[font color])和以日语命名的标签会通过一个理解 Unicode 的正则表达式被遮罩,使 LLM 无法破坏它们。
当脚本使用内联 [<JP-id>] 说话者简写但没有对应的 chara_define.ks 条目时,RuneTranslate 会生成一个含 [chara_new name="<EN>" jname="<JP>"] 条目的 chara_define.ks 块 — 保留引擎的角色查找。内联引用保持不动,因此存档和 CG 图库仍能匹配。
对于 HTML5 版本,RuneTranslate 会就地写入修改后的 .ks 文件。对于 Electron 版本,会重打包修改后的 app.asar。二进制 / 加密的 .ks 文件(通过 UTF-8 嗅探检测)绝不会被覆盖。翻译后的版本在 TyranoBuilder 中运行起来与日语原版完全一致。