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

如何制作汉化补丁

2026年8月18日·9 分钟阅读

汉化补丁是一个民间译者真正产出的东西:那些译文,以及它们在游戏里各自归属的位置。这是从头到尾的整件活 —— 在运行时覆盖层和打过补丁的构建之间做选择、提取文本、翻译、修正机器译错的地方、导出、在游戏里测试,以及分享补丁文件而不是游戏本身。

汉化补丁不是游戏的一份副本。它是译者的成果 —— 那些译文,加上足以说明哪一条译文属于哪个位置的信息 —— 以别人能应用到自己那份游戏上的形式存在。每个市场对这件东西都有自己的叫法:中文叫汉化补丁,韩语叫 한글패치,俄语叫 русификатор。产物在哪里都是同一个东西,做出它的那件活也是。

两种补丁,这个岔路决定了一切

在动任何文本之前,先决定你要做的是哪一种,因为后面几乎每一个决定都由它推出来。

运行时覆盖层在游戏运行时翻译。有个东西和游戏一起加载 —— 引擎内部的一个插件、一个读取游戏内存的文本钩子,或者一个读像素的屏幕捕捉 —— 在每一行即将被画出来时接住它,换成译文。游戏在磁盘上的任何东西都不变。XUnity.AutoTranslator 是 Unity 上众所周知的例子,而 MTool 在 RPG Maker 上就是这样工作的。

打过补丁的构建把译文放进游戏自己的文件里。文本从引擎真正加载的数据里读出来、翻译、写回去,结果是一个能自己启动、自己运行、旁边不需要跑任何东西的游戏文件夹。这是 RuneTranslate 产出的东西,也是 Translator++ 在它能解析的引擎上产出的东西。

老实说的取舍是:

  • 覆盖层不需要针对每款游戏做工作 —— 它要么挂得上这个引擎,要么挂不上 —— 但什么都留不下。每一行在每一次通关、每一台机器上都要重新翻一遍,而且每一个玩家都得自己安装和配置这个覆盖层。
  • 覆盖层只够得到文字被画出来那一刻。画进美术图里的文字、从来不经过被挂钩组件的文字,以及由自定义渲染器绘制的文字,都会保持未翻译。
  • 打过补丁的构建要你付出一步导出和一遍测试,而且游戏更新时得重做。你换回来的是永久性:文件里装着译文,所以游戏就是被翻译了,离线也是,任何人应用你的成果都是。
  • 打过补丁的构建给你一份可编辑的记录。半年后你可以只修一条烂译文,不必重翻别的任何东西 —— 覆盖层没有什么可修的,只有一个缓存可以清。

如果你只是为自己翻一次,而且是在一个你解析不了的引擎上,那么覆盖层是个合理的答案,没什么好丢人的。如果你打算把成果交给别人,你要的是打过补丁的构建 —— 因为一个补丁只有以文件的形式存在,才谈得上分享。

开始之前你需要什么

  • 一份你拥有的游戏,装好且能玩。先玩上几分钟 —— 你要是从没见过上下文,就没法判断一段译文读起来对不对。
  • 知道它用的是哪个引擎。这决定了文本怎么出来、怎么回去的一切。
  • 一门你真的读得懂的目标语言。机器翻译给你的是草稿,不是补丁。
  • 放第二份游戏的磁盘空间。打过补丁的构建是一个单独的文件夹 —— 你的原件永远不会被修改。

认引擎通常看一眼游戏文件夹就够了。一个装满 JSON 的 www/data 或 data 文件夹是 RPG Maker MV 或 MZ;一个 <Game>_Data 文件夹是 Unity;game/*.rpy 或 .rpa 归档是 Ren'Py;.xp3 归档是 Kirikiri。能解析什么、各自的特征是什么,完整清单在引擎页面 —— RuneTranslate 覆盖 17 种引擎和格式,而且你把它指向文件夹之后,检测是自动的。

工作流程

不管什么引擎,做补丁都是同样五步、同样顺序。人们最想跳过的是第三步。别跳。

  1. 提取 —— 把游戏自己文件里每一条可翻译字符串读进一个你能在里面干活的列表。
  2. 翻译 —— 把这个列表跑一遍机器翻译服务,拿到一份完整的初稿。
  3. 审校 —— 逐条过一遍机器必然会译错的地方:名字、敬称、术语,以及任何带占位符的东西。
  4. 导出 —— 把译文按游戏的格式写回去,产出一份可直接游玩的构建。
  5. 测试 —— 启动那份构建,真的玩一玩。

提取

提取是引擎知识挣钱的地方。对话很少躺在一个纯文本文件里:RPG Maker 把它存在事件命令码里,Unity 存在二进制资源文件内部的 TextAsset 数据块和 MonoBehaviour 字段里,Kirikiri 存在一个加密归档内部的脚本里,Unreal 存在一个 .pak 内部的 .locres 表里。一个好的提取器还知道有什么不该交给你 —— 场景名、变量键、比较操作数和资源路径看起来都像字符串,而且翻了都会把游戏弄坏。画进美术图里的文字是另一个问题、另一个工具;见图片文字翻译。

翻译

先拿到一份完整的机器初稿再动手改,这样你是在修正文本,而不是盯着一个空列发呆。RuneTranslate 带 9 个翻译服务 —— Google、免费 DeepL 和 DeepL Classic / Next-gen 完全不需要 API 密钥;DeepL 的 API、OpenAI、Anthropic Claude、DeepSeek、任意 OpenAI 兼容端点,以及通过 Ollama 或 LM Studio 跑的本地模型是其余的。免费档位把它们和每一种引擎全部解锁;它限的是吞吐,以及同时持有超过一个项目。哪种游戏适合哪个翻译服务,见翻译服务对比。

审校

这一步决定了一个补丁值不值得被应用。机器输出很流畅,而且会在可预测的地方自信地出错,所以要有针对性地处理那些地方,而不是从头到尾读一遍:

  • 角色名。机器每见一次就译得不一样,有时还会把名字当成词来译。拼法一次定下来。
  • 敬称和语域。保留还是去掉 -san / -chan 是整个项目的决定,不是逐行的决定。某个角色说不说敬语也一样。
  • 术语。技能、道具、地名、系统,以及游戏自造的一切。一个技能名在菜单、提示框和战斗日志里有三种写法,读起来就是一款坏掉的游戏。
  • 占位符和控制码。像 \C[1]、{player} 或 [name] 这样的东西必须完好无损地活下来。一个被翻译掉的占位符是一次崩溃或一片空白,不是一个错别字。
  • 原样返回的行。通常是拟声词,通常也是翻译服务在那一行上放弃了的信号。

术语一致性

被弃坑的汉化补丁,因为前后不一致而死的比因为文笔差而死的多。玩家会原谅一句生硬的句子;他们不会原谅同一个角色在一段对话里先后叫 Yuuki、Yuki 和 Snow,因为这会让他们没法跟上谁在说话。修法是一份术语表:一张列出原文术语、以及每一个必须变成的确切目标术语的清单,在翻译之前就应用上去,让翻译服务根本没有即兴发挥的机会。早点建,从你第一个小时里遇到的名字开始,一边做一边加 —— 术语表指南讲了它和标记屏蔽如何相互作用,以及为什么它该放在开头,而不是留到最后做一次查找替换。

字体

日语游戏带的是日语字体,而日语字体经常没有西里尔文、希腊文、韩文、泰文,或者波兰语、土耳其语和越南语里那些带重音字母的字形。翻成其中之一,游戏就渲染出一堆空方块 —— 译文是对的,字体只是画不出来。有些引擎已经替你处理好了:Ren'Py 的导出会捆绑一款够用的字体,并把游戏的字体重新映射过去。没有自动处理的地方,把导出构建里的字体文件换掉通常就能解决。字面的问号则完全是另一种毛病 —— 那是引擎自己的字符串编码拒绝了某个字符,不是缺字形 —— 在你去找错的修法之前,值得先知道这个区别。两种情况常见问题里都讲了。

测试构建

一次没报错的导出,不等于一个测过的补丁。启动它,检查那些会安静坏掉的东西:

  • 游戏能进标题画面并开始新游戏。在这里就失败的构建,通常是栽在一条根本不是文本的字符串上 —— 一个被翻译掉的标识符。
  • 消息框装得下它的文本。译文比日语长;留意有没有行跑出框外或者被截掉。
  • 菜单、物品名和提示框 —— 也就是长单词会撑爆定宽按钮的那些地方。
  • 原版游戏的存档仍然读得进来,在打过补丁的构建里新存的档也读得进来。
  • 游戏深处的某一个场景,而不只是开头。提取上的缺口表现为一段段没翻译的文字,而不是报错。

分享你的成果

接下来这部分,决定了你的补丁是不是一个你能发出去的东西。你做出来的是译文 —— 那些行。游戏不是你的,而打包一份翻译过的游戏副本,意味着在分发别人的游戏。汉化补丁诚实的形态,是只有成果本身,由每一位接收者应用到自己已经拥有的那份游戏上。

RuneTranslate 导出的正是这个:一个 .rtpatch 文件。它带着单元 id、每一条译文所匹配的原文行,以及你的译文。没有游戏文件,没有素材,没有可执行文件 —— 这个文件就是你的文字,别的什么都没有,所以它小到可以直接附在一条消息里,也可以放心交给任何人。

接收者那一侧是三步:

  1. 他们用自己装好的同一款游戏建一个项目,这会在他们机器上提取出同样那些行。
  2. 他们导入你的 .rtpatch,用你的译文把那些行填上。
  3. 他们从自己的游戏文件导出自己那份可直接游玩的构建。

匹配先按单元 id 来,当 id 漂移时(游戏更新,或者提取器改了)回退到按原文行本身匹配。正是这个回退,让一个补丁在游戏更新之后仍然可用。导入会先检查引擎和目标语言是否一致,然后才应用任何东西,所以一个为 Unity 游戏做的补丁不会被误丢进一个 Ren'Py 项目。在免费档位上,补丁分享按每滚动三天一次导出、一次导入计量;做补丁的其他一切都不按功能限制。

同一个文件也是团队协作的方式 —— 一个人翻剧情,另一个人翻菜单,补丁合并进一个项目 —— 它同样是你在游戏更新后保住自己成果的方式:从新版本重新提取,导入你的旧补丁,只有真正变了的那些行需要处理。

一款游戏本身能不能被再分发,是权利人的决定,不是你的,也不是我们的。分享补丁,告诉大家它是针对游戏的哪个版本做的,让他们自己带上自己的那份游戏。

各引擎的具体情况

上面讲的是这件活的形状。各引擎不同的是文本住在哪里、导出产出什么、什么够不着 —— 这些值得在开始之前读,而不是在导出给了你一个意外之后:Unity、RPG Maker、Ren'Py,或者另外十四种见完整引擎清单。

RuneTranslate 运行在 Windows 10 和 11 上,Linux 和 Steam Deck 可在 Wine 或 Proton 下运行。首次启动需要一个免费的 Patreon 登录;免费档位打开每一种引擎和每一个翻译服务。如果你正在把它和人们通常先想到的那些覆盖层与工具箱做比较,各项对比列出了每种做法实际能给你什么。

相关阅读
01

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

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

如何将日语游戏翻译成中文(新手指南)

getting-startedtutorial2026年7月20日 · 6 分钟
阅读 →
03

如何将 Godot 游戏翻译成英语

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

准备好试用 RuneTranslate 了吗?

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

下载 Windows 版