从零到实战:XUnity.AutoTranslator Unity游戏翻译插件终极上手指南
从零到实战:XUnity.AutoTranslator Unity游戏翻译插件终极上手指南
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
小A为了打通那款心仪已久的日文RPG,翻遍了论坛汉化帖,装了三四个"傻瓜补丁",结果不是版本对不上就是闪退黑屏。直到他发现了 XUnity.AutoTranslator——这款开源的 Unity 游戏翻译插件,能用十分钟把任何 Unity 游戏变成"实时双语版",从此再也不挑游戏玩了。
一句话看懂
它就像是游戏界的"同声传译耳机":插件挂在游戏进程里,实时"偷听"屏幕上出现的每一段文字,翻译完再"塞"回去,整个过程你几乎感觉不到它的存在。
适合谁:玩外语单机游戏又等不起汉化组的玩家、想自己做汉化补丁的爱好者、需要给游戏加翻译功能的 Mod 开发者。不适合谁:只玩网游竞技的玩家(它只支持离线单机类 Unity 游戏)、想改游戏服务器端数据的用户。
五分钟上手
第一步:确认游戏类型。右键游戏 exe 查看属性,能确认是 Unity 引擎(通常游戏目录里有xxx_Data文件夹)即可继续。
第二步:下载代码。执行命令拉取完整项目:
git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator第三步:选择安装包。项目按插件框架分了多个版本,最省事的是ReiPatcher 独立版——它不需要额外装任何管理器,双击就能用。推荐配置是 BepInEx 版,适合已装 BepInEx 的环境。
第四步:解压到游戏根目录。确保SetupReiPatcherAndAutoTranslator.exe和游戏 exe 放在同一级目录。
第五步:双击运行并启动游戏。第一次运行会弹一个安装窗口,点确定,游戏目录会自动生成AutoTranslatorConfig.ini。进游戏看到台词变成中文(或你设定的目标语言),就成功了。
预期结果:游戏启动后,文本被自动替换为翻译结果;按
ALT+0可开关翻译界面,ALT+T可在原文和译文间切换。
核心能力拆解
实时文本捕捉:看不见的"文字搬运工"
功能是什么:自动检测游戏界面上的所有文字并实时翻译。为什么你需要:它覆盖了 UGUI、NGUI、TextMeshPro、IMGUI、TextMesh、FairyGUI、Utage 等主流 UI 框架,几乎不用你操心"这个文本能不能翻"。怎么用:默认配置即可工作。个别框架默认关闭(如 3D 漂浮文字的 TextMesh),遇到没翻译的文本就去配置文件里把EnableTextMesh=True打开。背后原理一句话:插件通过 Harmony/MonoMod 钩子拦截文本组件的读写方法,相当于在"游戏写文字"和"屏幕显示文字"之间插了一个翻译层。
多翻译服务切换:选对"翻译官"
功能是什么:内置十几种翻译端点,可自由切换或设置主备。为什么你需要:不同端点质量和稳定性差异很大,免费端点可能随时失效。怎么用:编辑配置文件的[Service]节:
[Service] Endpoint=GoogleTranslate ; 主翻译引擎 FallbackEndpoint=BingTranslate ; 主端点失败时自动降级到备用背后原理一句话:翻译端点就是放在Translators子目录里的独立 DLL 插件,项目通过统一接口调度它们。
手动翻译文件:机器翻译的"人工校准"
功能是什么:允许你用文本文件精确指定某句话的翻译。为什么你需要:机器翻译常把角色名、技能名翻得乱七八糟,手动词条能一锤定音。怎么用:在Translation\{Lang}\Text目录下新建任意.txt文件,一行一条:
シンプルリング=Simple Ring 生命值=HP保存后按ALT+R立即生效,不用重启游戏。背后原理一句话:插件本质是一个"原文→译文"的字典,机器翻译结果只是自动写入字典,你的手动文件优先级永远更高。
纹理替换:连图片都能"汉化"
功能是什么:把游戏里的图片(如教程截图、地图贴图)替换成你准备好的版本。为什么你需要:很多游戏的汉化死角都在图片里。怎么用:开启[Texture]节的EnableTextureDumping=True和EnableTextureTranslation=True,运行游戏把贴图导出到Translation\{Lang}\Texture,PS 改好后按原文件名放回即可。背后原理一句话:插件按图片哈希建立索引,加载时用同名本地文件替换游戏资源。
场景实战
场景一:新手玩家——日文游戏中文直译
配置目标:零门槛、免费、立即可用。只需把[General]设置成:
[General] Language=zh FromLanguage=ja启动游戏就能看到中文。免费端点选 DeepLTranslate 质量最好,缺点是偶尔不稳定;追求稳定可以注册百度翻译开放平台,填入BaiduAppId和BaiduAppSecret(每月前 50 万字符免费)。
场景二:进阶玩家——术语表 + 正则精修
玩法是"先粗翻,再精修":跑一遍游戏生成_AutoGeneratedTranslations.txt,把其中翻错的台词剪切到自己的词条文件里改正;再用替换文件把反复翻错的名字统一掉:
アルベルト=阿尔贝特遇到"01 シンプルリング""02 シンプルリング"这类带编号的复合文本,用拆分正则一条搞定:
sr:"^([0-9]{2}) ([\S\s]+)$"=$1 $2场景三:Mod 开发者——给游戏插件加翻译
其他 Mod 的界面通常走 IMGUI,默认是关闭的,在配置中开启:
[TextFrameworks] EnableIMGUI=True之后你还能通过TranslationRegistry.DefaultAPI 在自己的 Mod 里用代码注册翻译包,把译文直接打包进 DLL 分发。
参数说明书
| 参数 | 取值 | 作用 | 推荐值 |
|---|---|---|---|
Endpoint | GoogleTranslate / DeepLTranslate / BaiduTranslate 等 | 选择翻译引擎 | 按需切换 |
Language | zh / en / romaji 等 | 目标语言 | 你的母语 |
FromLanguage | ja / en / auto | 游戏原文语言 | 明确语言优于 auto |
MaxCharactersPerTranslation | 1~1000 | 单条文本最大翻译字数,超长文本被忽略 | 200 |
EnableBatching | True / False | 合并多条请求为一次,省流量 | True |
EnableUGUI | True / False | 是否翻译 UGUI 文本 | True |
EnableIMGUI | True / False | 是否翻译 IMGUI(Mod 界面) | 需要时 True |
TextGetterCompatibilityMode | True / False | 兼容"用文本做逻辑判断"的游戏 | 出问题才开 |
EnableUIResizing | True / False | 译文过长时自动调整 UI 溢出 | True |
OverrideFont | 字体文件路径 | 覆盖游戏字体(解决中文方块字) | 需要时配置 |
IgnoreWhitespaceInDialogue | True / False | 对话去掉空白再翻译,提升质量 | True |
白话解读:MaxCharactersPerTranslation是"翻译流量水龙头",调大能翻更长台词,但会成倍消耗免费额度;OverrideFont是"中文显示救星",英文游戏默认字体根本不含中文字形,翻成中文后全是方块,配一个中文字体文件就解决了。
避坑指南
问题:翻出来的中文全是"口口口"方块。原因:游戏字体不含中文字形。 解决:配置OverrideFont(UGUI)或FallbackFontTextMeshPro(TextMeshPro)指向一款中文字体资源。
问题:翻译后游戏逻辑错乱,选项点了没反应。原因:游戏用"当前显示的文本"来判断执行什么逻辑,译文破坏了匹配。 解决:设置TextGetterCompatibilityMode=True。
问题:已经装了 BepInEx,又用了 ReiPatcher 独立版。原因:两套钩子体系打架。 解决:二选一。用管理器就只用对应版本,别混装。
问题:部分台词一直不翻译。原因:该文本来自默认关闭的框架(TextMesh/IMGUI),或钩子没抓到。 解决:开启对应框架开关;仍不行就在游戏里按ALT+U手动捕获。
问题:免费端点(Google/DeepL 网页版)忽然全部失效。原因:在线服务改了接口,免费端点"随时可能断"是官方明示的。 解决:切换到带 API Key 的正式端点,或配置FallbackEndpoint兜底。
问题:改了翻译文件但游戏里没变化。原因:译文被内存缓存了。 解决:按ALT+R强制重载翻译文件。
横向对比
| 方案 | 实时性 | 覆盖范围 | 上手难度 | 扩展性 |
|---|---|---|---|---|
| XUnity.AutoTranslator | 实时 | 全部 Unity 文本框架 | 低 | 极高(可自定义端点) |
| Translator++ | 非实时(打包汉化) | 需逐游戏适配 | 中 | 中 |
| 专用汉化补丁 | 实时 | 单一游戏 | 极低 | 无 |
| OCR 截图翻译 | 准实时 | 任意游戏 | 中 | 低 |
一句话结论:如果你要的是"今天下载、今天玩上、什么游戏都能试",XUnity.AutoTranslator 是唯一满足全部条件的方案;它牺牲的只是"翻译质量需要自己调教"的便利。
生态与贡献
项目采用模块化设计,想贡献可以从三个方向入手:
- 新增翻译端点:在 src/Translators/ 下实现
ITranslateEndpoint接口,几十行代码就能接入一个新翻译服务,这也是官方鼓励的第三方扩展方式。 - 核心逻辑优化:文本捕捉、缓存、防刷机制都在 src/XUnity.AutoTranslator.Plugin.Core/,其中
AutoTranslator.cs是总调度入口。 - 资源重定向:src/XUnity.ResourceRedirector/ 负责资源替换,是纹理汉化的基石。
写代码前建议先读 README 中的 "Implementing a Translator" 章节,并跑一遍测试项目 test/ 里的用例。第三方端点生态(LLM 翻译、离线 Sugoi 等)也相当活跃,可以直接借鉴。
收尾行动号召
回顾三个要点:安装只要五分钟,选对版本解压即用;翻译质量靠配置,端点、词条、正则三件套足以应对 90% 的场景;它是可扩展的,从玩家到开发者都能在生态里找到自己的位置。
现在就去git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator,挑一个你最想玩的外语游戏试试。十分钟后,你会发现语言从来不是游戏的边界——动手的那一刻,它已经被你亲手打破。
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考