Unity游戏满屏外语看不懂?XUnity.AutoTranslator实时翻译插件实战指南
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
你是不是也遇到过这种情况:千辛万苦下载了一款心心念念的日文 RPG,结果打开游戏,菜单是日文,对话是日文,连设置界面都看不懂,玩五分钟就劝退了。别慌,这类问题有一个非常成熟的解决方案——XUnity.AutoTranslator,一款专为 Unity 游戏打造的实时自动翻译插件。装上它之后,游戏里的对话、菜单、物品说明会在几秒内翻译成你设定的语言,而且完全免费开源。这篇文章就从原理讲到实战,帮你一步步把它跑起来,再教你把翻译质量从"勉强能看"调到"接近精翻"。
先搞清楚它到底是怎么"隔空"翻译的
在动手安装之前,花两分钟弄懂它的工作方式,能帮你少踩 90% 的坑。用大白话说,这个插件在游戏里干了三件事:
- 挂钩文本组件:Unity 游戏里的文字最终都要显示在某个文本组件上,插件就是"截胡"这些组件,把即将显示的文字抓下来。
- 查本地词典:抓到文字后,先在自己的翻译缓存里查一遍。查到了就直接用,查不到才走下一步。
- 请求在线翻译:把没查到的新文本发给翻译引擎(比如 Google、DeepL),拿到结果后替换到游戏画面上,同时存进本地缓存文件。
整个过程是异步的,不会卡住游戏画面。插件还内置了一整套防滥用机制:同一个文本出现后会先等 1 秒再请求,避免把滚动中的文字反复送去翻译;单次游戏会话最多发 8000 个请求,且同一时刻只发一个;翻译结果全部缓存到内存和磁盘,同一句话绝不重复花钱翻译。
它能识别哪些文本框架?
"文本框架"说白了就是游戏显示文字用的那套 UI 技术。Unity 生态里常见的有好几套,XUnity.AutoTranslator 基本都覆盖了:
| 文本框架 | 默认状态 | 适用场景 |
|---|---|---|
| UGUI | 开启 | 绝大多数现代 Unity 游戏的界面 |
| NGUI | 开启 | 老牌 Unity 游戏 UI |
| TextMeshPro | 开启 | 现在最主流的文字渲染方案 |
| TextMesh | 关闭 | 3D 空间漂浮文字 |
| IMGUI | 关闭 | 老式即时模式 UI,很多 Mod 界面用它 |
| FairyGUI / Utage | 开启 | 部分国产游戏和视觉小说引擎 |
注意表格里那两个"关闭"的选项。很多玩家装上插件后发现"部分文字没翻译",八成就是游戏用了 TextMesh 或 IMGUI 而这两个默认是关的。到配置文件里把它们打开就行,后面会细说。
十分钟跑通:从下载到第一次看到中文
路线一:BepInEx 安装(最推荐)
BepInEx 是目前 Unity 游戏圈最主流的插件管理器,装好后插件管理、更新、卸载都省心。流程就五步:
- 先把 BepInEx 本体装进游戏(网上教程很多,装到游戏根目录即可)。
- 从项目仓库的 releases 页面下载
XUnity.AutoTranslator-BepInEx-{版本号}.zip。 - 把压缩包内容直接解压到游戏根目录,让里面的 dll 文件各自落进 BepInEx 文件夹对应位置。
- 启动一次游戏,让插件自动生成配置文件。
- 关掉游戏,开始改配置。
解压完你可以对照检查一下,正确落位后应该是这样的结构:
游戏目录/BepInEx/plugins/XUnity.AutoTranslator/ ├── XUnity.AutoTranslator.Plugin.Core.dll ├── XUnity.AutoTranslator.Plugin.BepInEx.dll ├── XUnity.AutoTranslator.Plugin.ExtProtocol.dll ├── ExIni.dll └── Translators/ ← 各种翻译引擎 dll 都在这这一步最容易出问题的地方就是解压路径。记住一个原则:zip 里的内容要直接解到游戏根目录,而不是解出一个嵌套文件夹再丢进去,否则插件加载不到,游戏启动时什么都不会发生。
路线二:不想装插件管理器?用独立版
如果你嫌 BepInEx 麻烦,或者某款老游戏装插件管理器容易冲突,项目还提供了完全独立的 ReiPatcher 方案:下载XUnity.AutoTranslator-ReiPatcher包,解压到游戏目录,运行SetupReiPatcherAndAutoTranslator.exe完成打补丁,之后用生成的快捷方式启动游戏即可。这种方式不依赖任何外部管理器,对大多数 Unity 游戏都是"双击就能跑",但它和插件管理器方案会互相干扰,二选一就好。
其他框架怎么装
除了 BepInEx,项目也给了 MelonLoader、IPA、UnityInjector 三个框架的安装包,解压位置分别是Mods/UserLibs、Plugins、UnityInjector目录。玩法跟上面大同小异,都是"解压到对应目录 → 启动游戏 → 生成配置"。如果你玩的是 IL2CPP 内核的游戏(近几年的新游戏很多都是),需要额外注意:BepInEx 要装 6 系版本,插件包也要选带IL2CPP字样的专用包,普通包是给 Mono 游戏用的。
第一次启动后,这三个配置项必须动
启动游戏后,插件会在BepInEx/config/AutoTranslatorConfig.ini生成一份完整配置。文件很长,但真正需要你手动的核心就三个:
| 配置项 | 含义 | 新手推荐值 |
|---|---|---|
[Service] Endpoint | 用哪个翻译引擎 | GoogleTranslate或DeepLTranslate |
[General] Language | 翻译成什么语言 | 中文就填zh |
[General] FromLanguage | 游戏原文是什么语言 | 日文游戏填ja,一般不推荐填auto |
把这三项改好,保存,重开游戏,你就能看到菜单和对话开始变成中文了。如果Language填zh后翻译出来了但没显示出来,多半是字体问题,这个在后面的进阶部分有解。
值得记住的快捷键
插件给常用操作都绑了快捷键,熟练之后效率翻倍:
| 快捷键 | 功能 |
|---|---|
| ALT + 0 | 打开/关闭翻译设置界面 |
| ALT + T | 原文与译文一键切换 |
| ALT + R | 热重载翻译文件,改完立刻生效 |
| ALT + U | 手动触发文本挂钩,处理没被抓到的文字 |
| ALT + F | 切换自定义字体与默认字体 |
| ALT + Q | 重启因连续错误而关闭的插件 |
其中 ALT + U 是你排查"某段文字没翻译"时的第一张牌。有些游戏的文字是动态生成或者藏在奇怪组件里的,默认挂钩抓不到,按一下 ALT + U 手动扫一遍往往就好了。
翻译引擎怎么挑:免费的香,但别指望永远稳
项目内置了十几种翻译引擎,代码都在src/Translators/目录下,每个引擎一个独立模块。选引擎之前先记住一个行业真相:免费接口随时可能因为官方改版而失效,README 里也明确警告了这一点。所以把翻译引擎理解成"能换的零件"就好,坏了就换,不用慌。
免费派:开箱即用
| 引擎 | 特点 |
|---|---|
| GoogleTranslate / V2 / Compat | 支持语言最全,免费不限量,但稳定性一般 |
| DeepLTranslate | 免费版就能用,翻译质量公认最强 |
| BingTranslate | 微软家的免费接口,日文翻译表现不错 |
| PapagoTranslate | Naver 出品,韩文翻译是强项 |
认证派:稳定但要点钱
| 引擎 | 说明 |
|---|---|
| BaiduTranslate | 需要 AppId 和 AppSecret,新用户每月前 5 万字符免费 |
| YandexTranslate | 需要 API Key,每天前 100 万字符免费 |
| DeepLTranslateLegitimate | 需要 API Key,适合追求质量的专业场景 |
| GoogleTranslateLegitimate | 云翻译 API,注册送一年 300 美元额度 |
| CustomTranslate | 自定义 HTTP 翻译端点,留给会写接口的开发者 |
我的推荐组合
日常玩日文游戏,直接Endpoint=DeepLTranslate起步,质量最好还免费;如果某天 DeepL 免费接口挂了,切回GoogleTranslate应急;要是玩的是韩文游戏,优先试PapagoTranslate。给翻译引擎"配一个备胎"也是好习惯——配置文件里的FallbackEndpoint就是干这个的,主引擎失败时自动切换。
另外有个细节值得夸:插件对所有在线引擎都做了节流保护,同一时刻只发一个请求、相同文本只翻译一次、每句话发送前会检查是否包含源语言字符。这意味着你不用担心游戏疯狂刷文本把翻译 API 打爆,付费引擎也能放心用。
从"能翻译"到"翻得好":四个进阶操作
自动翻译只是下限,想要接近精翻的手感,下面这四招值得逐条试。
第一招:手动修正自动翻译,ALT + R 热加载
插件每翻译一句话,都会把"原文=译文"写进Translation/{语言}/Text/_AutoGeneratedTranslations.txt。你直接编辑这个文件修正错译,比如把
シンプルリング=Simple Ring改成你想要的中文,保存后按 ALT + R,游戏里立刻生效,不用重启。长期玩同一款游戏,这个文件就是你的私人词典,越攒越准。
第二招:正则表达式,专治模板化文本
游戏里大量文本是模板拼出来的,比如装备名"アイテム 01"。给每个编号写一条翻译显然不现实,这时候用正则一行搞定:
r:"^アイテム ([0-9]+)$"=物品 $1以r:开头的是标准正则翻译,直接匹配整段文本并替换。还有一种更高级的sr:分割器正则,适合处理"前半段是编号、后半段是物品名"这种复合文本——它先把文本拆成几段分别翻译,再拼回去:
sr:"^([0-9]{2}) ([\S\s]+)$"=$1 $2注意:正则文件不能放在以_开头的自动生成文件里,建议单独建一个文件,并且只对确实有规律的游戏文本使用,滥用正则会影响性能。
第三招:乱码方块字?换字体
中文、日文这类非 ASCII 字符,很多游戏自带的字体根本不含这些字形,翻译出来了也显示成一个个方块。解决办法是配置字体替换:
OverrideFont:全局替换字体,仅对 UGUI 生效。FallbackFontTextMeshPro:给 TextMeshPro 加一个回退字体,某个字符主字体没有时自动用回退字体显示,是 TMP 场景下最推荐的做法。
字体文件需要你自己准备,可以从网上下载现成的 TMP 字体资源包,放到游戏目录后把文件名填进配置即可。
第四招:纹理翻译与资源重定向
游戏里还有一类文字是"画"在图片上的(比如标题画面、CG 里的字幕),文本挂钩抓不到。插件提供了纹理翻译功能:在配置里打开[Texture] EnableTextureDumping=True,游戏会把能替换的贴图导出到Translation/{语言}/Texture目录,你用 PS 改好图片放回原位,再开启EnableTextureTranslation=True就能替换。另外还有一套独立的资源重定向模块(核心是XUnity.ResourceRedirector.dll),可以把游戏加载的 TextAsset 等资源重定向到你提供的文件,支持把替换文件打包成 zip 放进指定目录,专治"挂钩不了但资源文件能定位"的情况。这两个功能默认都是关闭的,按需开启即可。
翻车现场排查手册
最后把这几年社区里最常见的三个问题给你列出来,遇到别慌,对号入座。
问题一:装了没反应,一段文字都没翻译
按这个顺序排查:先确认游戏确实加载了插件(打开 ALT + 0 看界面能不能弹出来);再看配置文件里Endpoint、Language是否填对;然后试试 ALT + U 手动挂钩;如果游戏用了 TextMesh 或 IMGUI 框架,去[TextFrameworks]里把对应开关改成True。
问题二:翻译上了,但游戏卡死或闪退
优先试TextGetterCompatibilityMode=True。有些游戏会把显示给玩家的文字拿去当逻辑判断依据,翻译后文字变了,游戏逻辑就懵了。这个选项会让插件"骗"游戏说文字还是原文,很多崩溃问题都是这样解决的。另外把EnableUIResizing暂时关掉也能排除 UI 调整引起的开销问题。
问题三:翻译正常但全是方块/乱码
这是字体问题,不是翻译问题。按上面"第三招"配置字体即可。注意 UGUI 和 TextMeshPro 用的是两组不同配置,别填错位置。
补充一句:IL2CPP 游戏的现状
插件对 IL2CPP 游戏是"能用但有短板":部分文本组件的变化检测不到,可能需要辅助插件配合;TextGetterCompatibilityMode和 IMGUI 翻译暂不支持。买游戏前先确认一下内核类型,能少走很多弯路。
写在最后
XUnity.AutoTranslator 的价值在于它把"Unity 游戏翻译"这件事拆成了两个清晰的层次:自动翻译帮你快速读懂游戏,手动词典、正则、资源重定向这些工具则让你能慢慢把翻译打磨到接近专业汉化组的水平。安装十分钟,配置半小时,之后它就会安安静静地待在游戏里,帮你扫清最后一层语言障碍。
看完这篇指南,挑一款你一直想玩但被语言劝退的 Unity 游戏,动手装一次吧。第一次看到菜单变成熟悉文字的那一刻,你会觉得之前所有折腾都值了。
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考