行业资讯
📅 2026/8/19 8:17:52
从零到精通:XUnity.AutoTranslator游戏自动翻译神器的终极上手指南
从零到精通XUnity.AutoTranslator游戏自动翻译神器的终极上手指南【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslatorXUnity.AutoTranslator 是一款能实时把 Unity 游戏里的日文、英文等文本翻译成你母语的自动翻译插件支持 BepInEx、MelonLoader、IPA 等多种模组框架被称为游戏翻译神器毫不为过。无论你是只想看懂剧情的玩家还是想深度本地化的开发者这篇文章都能帮你少走弯路。从一个卡关的深夜说起凌晨一点我盯着屏幕上的日文对话发了十分钟呆。那是一款小众 Unity 制作的 RPG剧情口碑极好但没有任何官方中文。我用手机拍照翻译一段三行的对话被拆成了七个碎片人名地名全乱。第二天我放弃了截图翻译这条路开始找能不能让游戏自己翻译自己。于是遇到了 XUnity.AutoTranslator。从解压到第一次看到中文剧情我只花了不到十分钟。那一刻的感觉是原来游戏汉化这种事普通玩家自己也能做。这篇文章不打算按安装-配置-进阶的说明书套路来写而是想把我从零摸索到熟练使用的全过程连同踩过的坑、总结的技巧一次性讲给你听。先别急着装三分钟判断它适不适合你任何工具都不是万能的装之前先对号入座。适合你如果——你玩的是基于 Unity 引擎的游戏用 AssetStudio 或游戏目录里有没有_Data文件夹就能判断你想实时看到剧情/菜单/物品名的翻译而不是来回切窗口你愿意花 10 分钟做一次性配置并接受免费在线翻译有时不稳定这个前提你想自己整理一套稳定的汉化文件分享给同好不适合你如果——你无法接受插件联网发送文本它必须把原文发给翻译服务你玩的游戏是 UE4/自研引擎完全不支持你只想玩已经完美汉化的热门大作没必要折腾五套模组框架怎么选插件本身是独立的但它可以挂在不同的模组管理器下运行。我第一次就纠结了很久直接给你结论框架上手难度适合人群一句话点评ReiPatcher独立⭐ 最简单只想翻译、不想装任何管理器双击 Setup 工具即装即用但会改游戏文件有洁癖慎用BepInEx⭐⭐绝大多数玩家生态最成熟插件、前置、更新都方便首选MelonLoader⭐⭐同时玩其他 Melon 模组文件扔 Mods/UserLibs 即可和现有模组共存友好IPA⭐⭐⭐特定老游戏某些游戏只支持这个框架时才需要UnityInjector⭐⭐⭐极老游戏老古董方案能不用就不用我的建议很简单游戏本身没要求特定框架就用 BepInEx只想最小改动用 ReiPatcher 独立安装。翻译服务怎么挑免费不等于随便用很多人上来就选看起来最厉害的结果免费接口隔三差五失效。我的选型经验是服务是否需要密钥质量稳定性我的评价GoogleTranslate否中上差随时可能失效零成本起步首选BingTranslate否中上较差Google 挂了的备用DeepLTranslate否极佳较差剧情党强烈推荐翻出来的句子最像人话GoogleTranslateLegitimate是API Key高稳定长期使用/分享汉化包时值得DeepLLegitimate是极佳稳定每月有免费额度BaiduTranslate是中上稳定中日互译不错CustomTranslate自建服务由你决定由你决定开发者专用见进阶篇核心观点免费服务是先用起来的入口不是一直用下去的依赖。想长期稳定要么配置FallbackEndpoint做备用要么干脆上带密钥的认证服务。从0到1实战新手小白的完整翻译流程下面是我第一次跑通全流程的真实步骤跟着走不会出错。第一步拿到代码git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator当然如果你不想看源码直接用发行包里编译好的 zip 也一样——注意区分BepInEx、MelonMod、ReiPatcher、IPA等不同后缀的包选错包是最常见的翻车原因。第二步放进正确的位置以 BepInEx 为例解压后确认这些关键文件都到位了游戏目录/BepInEx/plugins/XUnity.AutoTranslator/ ├── XUnity.AutoTranslator.Plugin.Core.dll ├── XUnity.AutoTranslator.Plugin.BepInEx.dll ├── ExIni.dll └── Translators/ # 各种翻译服务插件判断标准解压出来的目录结构必须和包内一致别手贱把 dll 单独抽出来扔到 plugins 根目录。第三步启动游戏让它自己长出配置文件第一次启动游戏后插件会自动生成一份Config.ini位置取决于模组框架一般在对应框架的配置目录下。这一步什么都不用做等它生成就好。第四步改三个最关键的配置打开Config.ini新手只需要动这三项[General] Languagezh-CN ; 翻译成什么语言 FromLanguageja ; 游戏原文是什么语言 [Service] EndpointDeepLTranslate ; 用哪个翻译服务改完保存重启游戏。注意FromLanguage尽量写准确别偷懒填auto——自动检测在一些接口上会翻车。第五步用热键验证进游戏后按这几个键测试ALT0是数字 0 不是字母 O打开/关闭翻译覆盖层能看到每条文本的原文和译文ALTT切换原文/译文显示快速验证翻译是否生效ALTR热重载翻译文件改完翻译文件不用重启游戏ALTU手动触发文本抓取有些动态生成的文本默认钩子抓不到第六步理解翻译文件是怎么积累的翻译结果会沉淀到Translation/{语言}/Text/_AutoGeneratedTranslations.txt。这个文件是自动作业本优先级最低——你在别的手动文件里写了同名翻译会优先用手动版本。这就是它设计的核心思路先用机器翻译打底再用人工翻译逐步覆盖越玩越准。我踩过的坑希望你别再踩这一节全是血泪教训每条都对应一个真实失败场景。坑一装好了但 80% 的文本不翻译我第一次用只翻到了对话和按钮游戏里大量文本纹丝不动。排查半天才发现插件出于性能考虑默认只开了一部分文本框架。[TextFrameworks] EnableUGUITrue EnableNGUITrue EnableTextMeshProTrue EnableTextMeshFalse ; 3D 场景中漂浮的文字默认关闭 EnableIMGUIFalse ; 老式即时模式 UI默认关闭如果游戏里飘在空中的文字TextMesh或某些 Mod 的菜单IMGUI没翻译就来这里打开对应开关。坑二翻是翻了全变成方块和乱码把日文翻成中文后屏幕上出现一堆□□□——这是游戏自带的字体里根本没有中文字形。解决方案是给插件一个能显示中文的字体UGUI配置OverrideFont你的字体文件让所有文本强制使用它TextMeshPro优先用FallbackFontTextMeshPro缺字时才用备用字体而不是整体替换兼容性更好⚠️ 这条建议提前做。等你兴致勃勃翻完一章剧情才发现全是方块字那种挫败感我不想让你体验。坑三翻译后游戏逻辑错乱任务卡死有些游戏会拿屏幕上显示的文字来判断下一步逻辑。翻译把文本换了游戏就看不懂了表现为对话按不掉、选项失效、任务不推进。[Behaviour] TextGetterCompatibilityModeTrue开启后插件会骗游戏——显示译文但让游戏逻辑读到的仍是原文。判断方法很直接如果 ALTT 切回原文时功能就正常那就是需要这个模式。坑四翻着翻着插件自己罢工了第一次遇到我还以为是坏了后来才明白这是反滥用保护机制在起作用。插件内置了一堆防刷策略每个文本稳定 1 秒才发请求、单次会话最多 8000 个请求、同时只发一个请求、结果全部本地缓存……如果触发保护插件会主动关闭避免把免费翻译服务打爆。这时候先检查是不是有动态滚动的文本在疯狂刷请求比如每帧变化的计分板修改配置或换翻译服务后按ALTQ重启插件坑五翻译文本太长被直接无视超过MaxCharactersPerTranslation默认 200的文本会被跳过不翻译。这不是 bug是为了保护翻译服务的性能。长文本要么提高上限不建议超过 300要么靠进阶技巧里的正则拆分来解决。高手才懂的五招这五招是我用了一段时间后觉得早该学会的技巧每个都用痛点→做法→收益讲清楚。技巧一正则表达式翻译专治会变的文本 痛点物品名后面跟数字比如スライム 3、スライム 27每一条都不同翻译文件根本存不完。做法在翻译文件里写标准正则以r:开头r:^スライム ([0-9])$史莱姆 $1 r:^レベル ([0-9])$等级 $1更进一步游戏把多段文本拼在一起显示时用拆分正则sr:sr:^([0-9]{2}) ([\S\s])$$1 $2它会先把文本按规则拆开逐段翻译再拼回去这样你只需要维护零件级的翻译不用为每种组合写一条。收益一份翻译覆盖成百上千种动态组合实现一劳永逸。相关解析逻辑都在正则解析源码里。⚠️ 注意正则不能写在任何_开头的自动生成文件里且用多了会影响性能务必收敛着用。技巧二替换表专治翻得不对的人名地名痛点人名、专有名词被在线翻译翻得千奇百怪而且每翻一次错一次浪费请求。做法在_Substitutions.txt里写先替换再翻译的规则アリスAlice ミラMeera甚至支持参数化翻译结果里还能保留变量私は{{A}}I am {{A}}收益人名地名一次指定、全局生效翻译质量立刻上一个档次还省下大量无效请求。技巧三给特定 Mod 做专属翻译痛点你给某个 Mod 写的翻译会和另一个 Mod 或通用翻译冲突。做法在Translation/{语言}/Text/Plugins/下建一个以 Mod 的 dll 文件名不带扩展名命名的文件夹把专属翻译放进去。需要让它兜底到通用翻译时文件里加一行#enable fallback收益多个 Mod 各自一套翻译互不干扰做汉化包分发时尤其好用。技巧四按场景和程序做翻译作用域痛点同一个词在不同场景/不同 exe 里应该翻成不同内容或者某些文本根本不该被翻译。做法在翻译文件顶部用指令限定作用域需先开启EnableTranslationScopingTrue#set level 1,2,3 ; 只在这几个场景生效 #unset exe Game2.exe ; 在 Game2.exe 下不生效 #set exe Game1.exe ; 只在 Game1.exe 生效收益避免翻译冲突还能显著减少加载开销。用调试热键CTRLALTNP7可以随时查看当前加载的场景 ID。技巧五图片级翻译和资源重定向痛点有些文本被烤进了图片里文字翻译再准也动不了它。做法开启纹理翻译让插件把游戏里的图片倒出来[Texture] EnableTextureTranslationTrue EnableTextureDumpingTrue TextureDirectoryTranslation\{Lang}\Texture倒出来的图片文件名带哈希如title [0223B639A2-6E698E9272].png你用 PS 改好图放回去插件就会自动替换游戏内对应图片。配合资源重定向EnableTextAssetRedirectorTrue文本类资源文件也能整体替换。收益文字翻译 图片翻译双管齐下本地化程度直接逼近官方汉化。高频疑问速查Q为什么有些文本死活不翻译A按这个顺序排查——对应文本框架是否开启 → 文本是否超过字符上限 → 是否被正则/替换规则匹配掉了 → 是否来自被XUAIGNORE命名的 GameObject。Q免费翻译服务会不会哪天突然失效A会而且无法预告。README 里明确写了随时可能挂。对策是配置FallbackEndpoint或迁移到带密钥的服务。Q翻译文件能不能压缩成 zip 分享A能。插件会识别翻译目录里的 zip 文件这也让汉化包的分发特别方便——一个 zip 就是一套汉化。Q我写的某个 Mod 不想被翻译怎么排除A把它的 GameObject 名字里加上XUAIGNORE只排除自身或XUAIGNORETREE连同子物体一起排除即可。Q插件会不会把我发的文本泄露A原理上它会把原文发给翻译服务这是它工作的方式。敏感内容别翻心理有数即可。Q支持 IL2CPP 游戏吗A有实验性支持但文本钩取能力不完整部分功能如 TextGetterCompatibilityMode、IMGUI不支持别指望和 Mono 游戏同等体验。你的下一步读完这篇你已经比 90% 的用户更懂它了。接下来按你的角色选一条路玩家路线BepInEx 装好 → DeepL 起步 → 通完一款游戏攒下一份_AutoGeneratedTranslations.txt→ 顺手把它整理成汉化包分享出去。汉化者路线学会正则和替换表 → 用作用域管理多场景文本 → 用纹理翻译处理图片 → 把成果压缩成 zip 分发帮助整片玩家社区。开发者路线研究自定义翻译端点示例和 ExtProtocol 协议实现ITranslateEndpoint接口就能接入自己的翻译服务甚至能把离线翻译器、本地大模型接进来让无网汉化成为可能。最后送你一句我最深的体会机器翻译从来不是终点它只是把你带到读得懂的门前而手动校准才是真正把游戏变成母语体验的那把钥匙。开始吧第一段属于你的中文剧情已经在等你了。【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考