XUnity.AutoTranslator 完整指南:10 分钟让 Unity 游戏实现游戏内实时翻译
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
XUnity.AutoTranslator 是一款开源的 Unity 游戏翻译插件:它在游戏运行期间自动抓取界面文字,调用你选定的翻译服务,再把译文贴回原位置。适合想在日、韩、英文 Unity 游戏里直接看中文的玩家,也适合想给 Mod 加汉化能力的开发者。
先确认能不能用:兼容性速查
装之前先对号入座,能省很多折腾。关键看三点:游戏用的脚本运行时、文本框架、你打算配的插件管理器。
| 检查项 | 支持情况 |
|---|---|
| 标准 Mono 的 Unity 游戏 | ✅ 完整支持,是首选目标 |
| IL2CPP 编译的游戏 | 部分支持:必须用 IL2CPP 专用安装包;部分文本变更检测不到,IMGUI 翻译与TextGetterCompatibilityMode不可用 |
| 插件管理器 | BepInEx(官方推荐)、MelonLoader、IPA、UnityInjector,另有不依赖管理器的 ReiPatcher 独立方案 |
| 文本框架 | UGUI、TextMeshPro、NGUI 默认开启;IMGUI(老式菜单界面用的文本系统)和 TextMesh(3D 空间里漂浮的文字)默认关闭;另支持 FairyGUI、Utage 等 |
怎么判断 IL2CPP:看游戏*_Data/Managed目录里有没有Assembly-CSharp.dll,通常没有就是 IL2CPP。这类游戏装上插件后,个别界面文字不刷新时按ALT+U手动补一次挂钩即可。
安装与首次启动:BepInEx 三步走
结论先行:新手直接用 BepInEx 包,三步搞定。
- 先按 BepInEx 自己的说明给游戏装好插件管理器;
- 下载 XUnity.AutoTranslator-BepInEx 安装包,整体解压到游戏根目录,dll 会自动落到
BepInEx/plugins/XUnity.AutoTranslator/; - 启动游戏,等它自动生成配置。
首次启动后,配置文件出现在BepInEx/config/AutoTranslatorConfig.ini,翻译缓存默认写入Translation\{Lang}\Text\_AutoGeneratedTranslations.txt(BepInEx 方式下位于 BepInEx 目录内,MelonLoader 方式则放在游戏目录的AutoTranslator文件夹里)。{Lang}是目标语言的占位符,比如zh。
其他路线一句话带过:MelonLoader 用户解压到Mods和UserLibs即可;不想装任何管理器就走 ReiPatcher 独立包,运行SetupReiPatcherAndAutoTranslator.exe后用生成的快捷方式启动游戏。⚠️ 游戏里已经装了 BepInEx 之类管理器就别走 ReiPatcher,两套机制会冲突。
基础设置:三个键值加两个快捷键
打开配置文件,先只改这三项:
| 配置项 | 示例 | 说明 |
|---|---|---|
Endpoint | GoogleTranslate | 翻译引擎。免密钥的有 Google、Bing、DeepL、Papago 等;Baidu、Watson 等需填 AppId/Key |
Language | zh | 翻译成什么语言 |
FromLanguage | ja | 游戏原文语言;不确定可填auto,但部分引擎下识别率略降 |
Endpoint=GoogleTranslate Language=zh FromLanguage=ja再记两个快捷键:
- ALT+U:手动触发一次文本挂钩。默认挂钩不总能逮住所有文字(比如动态生成的),按它补一次最管用;
- ALT+T:在译文和原文之间来回切换,校对翻译时非常好用。
另外确认你游戏的文本框架开关:多数现代 Unity 游戏就是 UGUI + TextMeshPro,默认已开;玩到老式菜单或 3D 飘字,再把EnableIMGUI、EnableTextMesh设为True。
从能用到精准:手动修正、正则与中文字体
手动修正优先于重翻。自动缓存文件_AutoGeneratedTranslations.txt里逐行记录了原文和译文,哪句不满意直接改,按ALT+R立刻重载,不用重启游戏。注意这个文件优先级最低:同一句话若在你自建的文件里出现过,用你的版本。自建文件随意起名的.txt放在翻译目录下即可,还支持打包成 zip。
正则翻译治"模板句"。物品名、技能名经常带编号,例如:
r:"^シンプルリング ([0-9]+)$"=简单戒指 $1把"シンプルリング 12"翻成"简单戒指 12"。注意:正则不能写在文件名以_开头的自动生成文件里,要放进普通翻译文件。
分割正则治"组合句"。游戏有时把序号和名称拼一起显示,如01 シンプルリング。与其为每个编号写一条规则,不如先拆开再各自查翻译:
sr:"^([0-9]{2}) ([\S\s]+)$"=$1 $2一条规则覆盖所有编号变体,进阶玩家最常用的一招。
中文方块字用字体方案解决。日文游戏自带字体往往不含中文字形,译文会显示成"□□□"。UGUI 界面填OverrideFont指定一个中文字体;TextMeshPro 优先用FallbackFontTextMeshPro(回退字体只在缺字时生效,比整体覆盖OverrideFontTextMeshPro更稳)。仓库发布页提供了一批现成的 TextMeshPro 字体资源包,下载后放进游戏目录、在配置里写上文件名即可。
最后说缓存的价值:每翻过一句都会落盘缓存,同一句话一辈子只请求一次网络。配合EnableBatching=True(合并请求)和UseStaticTranslations=True(内置约 2000 条常用短语,高频台词不联网),网络压力会越来越小——你的缓存文件越攒越厚,就是自己的翻译资产,记得备份。
开发者接入:两条路接你自己的翻译管道
内置端点集中在 Translators 端点源码 下,每个子目录一个独立插件。接自家服务有两条路:
- 最轻:CustomTranslate。它向
[Custom] Url=指定的地址发 GET 请求,带from、to、text三个查询参数,响应体只返回译文纯文本就工作。注意 Unity 老版本的 Mono 对 SSL 支持不佳,内网测试建议先用 HTTP。 - 最正规:自写端点插件。实现
ITranslateEndpoint接口(不想从零写也可以继承HttpEndpoint/WwwEndpoint基类),编译出的 dll 丢进Translators文件夹,配置里就能像原生端点一样选用。接口定义在 ITranslateEndpoint.cs,完整说明见 官方 README。
另一块基础设施是内置的资源重定向模块(XUnity.ResourceRedirector):开启EnableTextAssetRedirector后,游戏加载的 TextAsset 等文本资源会被重定向到PreferredStoragePath指定的目录,你可以直接覆写文件内容,连贴图资源也能这样替换——这是做"不动原文件的精翻汉化包"的地基,重定向资源支持 zip 压缩存储,启动时自动索引。
常见问题
会修改我的游戏文件吗?BepInEx、MelonLoader 等管理器方式是纯运行时注入,不碰原文件;ReiPatcher 方式会打补丁,但移除插件文件即可恢复。
在线服务会不会把额度烧穿?不会,插件内置了 16 项防刷机制:新文字先等 1 秒确认不再变化才请求、单次会话最多 8000 条请求、同一时刻只发 1 个请求、队列积压 4000 条自动停机、连续 5 次无结果自动停机等。比手动乱点稳得多。
想临时看原文?按ALT+T切换即可;纯想看某句对照,把ALT+T按个几秒钟很顺手。
完全不想联网行不行?行。选 ezTrans XP(需装该软件和 Ehnd)或 LEC Power Translator(需装软件并填InstallationPath),全程离线。
游戏一开翻译就卡死或逻辑错乱?先试TextGetterCompatibilityMode=True:它的原理是让游戏"以为"屏幕上显示的仍是原文,专治用界面文字驱动游戏逻辑的标题。
怎么彻底关掉自动翻译?按ALT+0在插件界面里选空端点,或把Endpoint=置空。插件被错误停机后,用ALT+Q重启。
下一步:今晚就能跑起来
流程其实就三步:挑一条安装路线(新手选 BepInEx)、解压安装包进游戏目录、启动后改Endpoint、Language、FromLanguage三处配置。剩下的时间用来攒你的缓存文件——自动翻译负责兜底,手动精修负责打磨,玩到第十个小时你会发现,这个插件已经比翻译软件更懂你玩的这款游戏。
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考