引擎指南FAQPatreonDiscord下载
登录
RuneTranslate · 端到端翻译日式游戏
引擎指南对比图片文字存档编辑器作弊模式FAQ下载PatreonDiscordYouTube隐私政策服务条款联系我们
全部文章
renpy · tutorial · engine

如何将 Ren'Py 游戏翻译成英语(完整教程)

2026年6月9日·6 分钟阅读

用 RuneTranslate 把 Ren'Py 视觉小说翻译成英语 —— 处理松散的 .rpy、编译的 .rpyc 和归档的 .rpa 游戏、屏蔽标记、捆绑一个 CJK/非拉丁字体,并导出一个游戏启动时加载的翻译。

Ren'Py 是支撑大多数西方和日本视觉小说的基于 Python 的引擎 —— 从小小的 itch.io 游戏 jam 作品到商业 DLsite 作品。它是最干净的可翻译引擎之一:RuneTranslate 从不覆盖原始脚本,它把翻译分层叠在上面,让游戏保持完整。本指南带你端到端地用 RuneTranslate 把一个 Ren'Py 游戏翻译成英语(或任意语言),包括一个 Ren'Py 游戏发布的三种形态 —— 松散的 .rpy 源代码、只编译的 .rpyc,以及归档的 .rpa。

你需要准备什么

  • Windows 版 RuneTranslate —— 免费,每一种引擎和翻译服务都已解锁。
  • 一个 Ren'Py 游戏文件夹。这是包含游戏 .exe 加一个 game/ 子文件夹(承载 .rpy、.rpyc 和/或 .rpa 文件)的目录。
  • 一个目标语言 —— 英语、西班牙语、法语、德语、葡萄牙语、俄语、中文、意大利语、土耳其语、越南语,以及 20 多种其他语言。
  • 一个翻译服务。免费的 Google Translate 开箱即用;DeepL 有免费档位;OpenAI、Anthropic、一个本地模型(Ollama / LM Studio),以及任意 OpenAI 兼容 API 都需要自备密钥。视觉小说对话量大、对语气敏感,所以 LLM(OpenAI / Anthropic)或 DeepL 通常读起来最好。

第 1 步:打开游戏文件夹

启动 RuneTranslate,点击 新建项目,把它指向 Ren'Py 游戏目录(含 .exe 的文件夹,或内层的 game/ 文件夹)。引擎检测会自动运行,一看到 game/ 目录树就把项目识别为 Ren'Py。

文本如何被读取取决于开发者发布了什么:

  • 源代码游戏 —— game/ 下松散的 .rpy 脚本。RuneTranslate 直接解析它们。这是最理想的情形。
  • 只编译的游戏 —— 只有 .rpyc 字节码。一个捆绑的 unrpyc 附属程序先把它们反编译回可读的 .rpy,然后照常解析。
  • 归档的游戏 —— 脚本打进一个 .rpa 归档里。RuneTranslate 用一个内置改造过的 rpatool 把它拆进一个每项目的工作区,位于 %APPDATA%/RuneTranslate/renpy-workspace/<projectId>/,反编译,然后解析。我们的 rpatool 分支会自动检测混淆的和供应商自定义的 RPA-x.y 归档密钥,所以它能打开许多上游工具拒绝的归档。

你的原始游戏文件夹永远不会被修改。

第 2 步:Ren'Py 文本如何被提取

RuneTranslate 从脚本中拉出 say 语句(对话)、menu 选项和可翻译的 UI 文本,并在编辑器里按文件分组列出。Ren'Py 文本标记 —— {b}、{color=#fff}、{w} 等待、{i} 斜体,以及 [player_name] 式的变量插值 —— 在任何东西到达翻译服务之前被屏蔽在数字 [[R#]] 占位符之后,然后在出去的路上被还原。机器从不看到标记,所以它无法弄乱、丢弃或翻译它们。

第 3 步:翻译

选一个翻译服务并运行。对于一部中等长度的视觉小说(约 8,000–15,000 行),在赞助者档位上:

  • OpenAI / Anthropic —— 最适合角色声线、笑话和风格化台词;整个游戏的 API 成本大约几美元。编辑器会在你投入前显示一个 token + USD 估算。
  • DeepL —— 对旁白又快又干净;免费档位每月覆盖 50 万字符。
  • 免费的 Google Translate —— $0,对菜单和短行够用,对对话较弱。

事先给你的角色阵容和反复出现的术语建好术语表,让每一幕都把名字渲染得一模一样 —— 参见 术语表 101。在免费档位上翻译会被适度限流 —— 在 AI 服务上大约慢 2 倍,在免费抓取器上更少(更低的并发、更小的批次、批次间短暂停顿)—— 输出质量完全相同。付费档位以全速运行,并增加翻译记忆和翻译服务分流。

第 4 步:在编辑器里审校

每一行都落进表格里,紧挨它的源文 —— 默认日语,或你把项目设成的任意语言(中文、韩语、英语等等)。就地编辑机器弄错的任何东西(失焦或 Ctrl+Enter 时自动保存)、对你改过名的术语用查找替换,或运行可选的 AI 润色器 做一遍上下文感知的二次校对。因为 Ren'Py 对话是长篇的,这里就是打磨发生的地方。

第 5 步:导出可玩的版本

点击 导出。RuneTranslate 不依赖 Ren'Py 偏好 tl/ 里的松散 .rpy —— 那只对由对话 id 索引的文本有效,而编译过的游戏不可靠地给出这些 id。取而代之,它把几个文件丢进 game/ 并在运行时应用翻译:

  • rt_translations.json —— 一个覆盖每一条对话和菜单行的"源文本 → 译文"映射。
  • zzz_runetranslate_language.rpy —— 一个小的运行时钩子,安装一个 config.say_menu_text_filter。它把游戏即将显示的每一行与映射比对并换入你的译文,并强制游戏的活动语言为译好的那个,让屏幕和 UI 文本随之而变。
  • tl/translated/translation.rpy —— 只承载 _() 的 UI / 屏幕字符串(按钮、菜单、工具提示),这些是 Ren'Py 确实能可靠地用它自己的机制解析的。
  • 当目标语言需要时,一个捆绑的字体加 zzz_runetranslate_font.rpy —— 见下面的非拉丁说明。

运行游戏的 .exe,它就用你的目标语言游玩,原始脚本和归档原封不动。要切回去,移除 RuneTranslate 添加的文件 —— rt_translations.json、zzz_runetranslate_language.rpy、捆绑的字体及其 .rpy,以及 tl/translated/。

非拉丁语言

大多数 Ren'Py 游戏只发布拉丁字体,所以中文、韩语、日语、泰语或阿拉伯语否则会渲染成空白方块。当你针对其中之一时,RuneTranslate 会捆绑一个合适的字体(NanumGothic / Noto Sans),并把游戏使用的每一个字体都通过 Ren'Py 的 config.font_replacement_map 路由,让译好的文字正确显示,而无需编辑游戏自己的资源。

已知的局限

  • 标准的 RPA-2 / RPA-3 / RPA-3.2 / RPA-4.0 和常见的供应商混淆归档会自动打开;一个真正非标准的容器或一个外部持有的密钥可能拆不开。
  • 烘焙进图像里的文本(标题标志、手绘 UI、CG 说明)是像素活儿,不翻译 —— 在机器翻译范围之外。
  • 在运行时从变量构建字符串的高度脚本化屏幕,可能需要在编辑器里快速手修一遍。

为什么这比旧办法更容易

手动路线意味着手工反编译 .rpyc、对归档运行 rpatool,然后要么就地翻译源代码(并在下次游戏更新时重新弄坏它),要么一行一行地手工撰写 tl/ 块 —— 还要在非拉丁语言上与缺失字体搏斗。RuneTranslate 点几下就完成反编译 + 拆包 + 提取 + 运行时钩子这条链,同时保持编辑器打开,让你掌控措辞。

查看 Ren'Py 引擎页面了解完整功能清单,读 Kirikiri 视觉小说指南看另一个 VN 引擎,或下载 RuneTranslate在一个真实游戏上试一试。

相关阅读
01

如何翻译游戏的 .po 和 .mo 文件(gettext)

gettextpomoenginetutorial2026年8月4日 · 7 分钟
阅读 →
02

如何将 Godot 游戏翻译成英语

godotenginetutorial2026年6月17日 · 6 分钟
阅读 →
03

如何将 Kirikiri / KAG 视觉小说翻译成英语

kirikiritutorialengine2026年6月9日 · 6 分钟
阅读 →

准备好试用 RuneTranslate 了吗?

免费版即可解锁全部引擎 + 全部翻译服务商。支持者($3/mo)解锁全速翻译。

下载 Windows 版