三步跑通Unity游戏自动翻译:XUnity.AutoTranslator完整实战指南

📅 2026/8/24 11:51:24
三步跑通Unity游戏自动翻译:XUnity.AutoTranslator完整实战指南
三步跑通Unity游戏自动翻译XUnity.AutoTranslator完整实战指南【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator如果你也玩到过日文、韩文的Unity游戏满屏外文字符只能干瞪眼那么最直接的解法就是XUnity.AutoTranslator游戏自动翻译插件。它在运行时拦截游戏文本经你选定的翻译服务处理后回写到界面全程不改动游戏原始文件并适配BepInEx、MelonLoader、IPA、UnityInjector这些主流插件框架。这篇文章按先跑通、再调顺的顺序讲清部署、排查和自定义修改的完整流程。它是什么适合谁用先用三条理解它的工作方式避免预期错位运行时拦截不改文件它挂接游戏的文本加载路径发现文本组件变化就去查翻译并替换。游戏本体不动升级游戏版本通常也不会让翻译失效。自动翻译需要联网自动模式会访问在线翻译服务。如果你接受不了联网它也能做纯手动模式——你提供翻译文件它负责查表、缓存和显示。一套东西两用玩家拿它玩外语游戏汉化作者拿它当本地化分发的底座翻译文件和插件一起打包即可。注意免费在线端点是逆向出来的接口随时可能失效。追求长期稳定应选带官方API Key的服务选型对比见下文。你的情况建议路线游戏已装 BepInEx 5 / MelonLoader / IPA直接装对应插件包完全无MOD基础的游戏ReiPatcher 独立包两个按钮搞定IL2CPP托管代码被剥离的游戏可用但支持不完整文本检测较弱IMGUI与部分高级特性缺失首次部署四条路线任选解压即用这套Unity游戏翻译插件的部署原则只有一条解压目标取决于你用的框架解压后启动游戏即完成。预编译的zip包从项目Releases页获取按框架命名如XUnity.AutoTranslator-BepInEx-{版本号}.zip。需要自己编译时执行git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator后构建。路线前置条件解压位置BepInEx官方推荐先装好 BepInEx 5游戏目录的BepInEx/plugins/XUnity.AutoTranslator/与BepInEx/core/MelonLoader先装好 MelonLoaderMods/和UserLibs/IPA先装好 IPAPlugins/UnityInjector先装好 UnityInjectorUnityInjector/不一定是游戏根目录ReiPatcher 独立无游戏根目录运行SetupReiPatcherAndAutoTranslator.exe按提示走两个容易踩的坑已经使用插件管理器的不要再用 ReiPatcher 独立路线两者同时存在会产生冲突。UnityInjector 的安装位置不一定在游戏根目录以游戏里实际的UnityInjector文件夹为准。首启生成配置只有两节需要你动第一次启动游戏后插件会在配置目录生成配置AutoTranslator配置。上百个参数不用看先改这两节就能跑[General] Languagezh-CN ; 你想看到的目标语言 FromLanguageja ; 游戏原始语言 [Service] EndpointGoogleTranslate ; 内置免费端点无需密钥 [TextFrameworks] EnableIMGUITrue ; MOD窗口常用IMGUI绘制默认关闭 EnableTextMeshTrue ; 3D空间中漂浮的文字默认关闭这里有个新手最容易忽略的点插件出于保守考虑并非默认挂接所有文本框架。UGUI、NGUI、TextMeshPro 默认开启IMGUI 和 TextMesh 默认关闭。如果你发现游戏菜单、其他MOD的窗口、场景里漂浮的文字不翻译第一反应应该回来查[TextFrameworks]这一节改完重启游戏。翻译不生效的三种常见情形部署完发现部分或全部文本不翻译按这个顺序查文本框架没挂上。最高频的原因。打开配置的[TextFrameworks]把对应项置为True后重启。不确定游戏用哪个框架就逐项试开启的代价很低。端点失效了。免费服务Google、Bing、DeepL、Papago 等随时可能挂。插件有内建保护连续五次返回空结果就自动停止发请求。这时按ALT0打开插件界面换端点或在[Service]里配一个FallbackEndpoint作为后备。游戏用显示文本做逻辑判断。表现是翻译后功能异常——对话选项失灵、功能不响应。把[Behaviour]里的TextGetterCompatibilityModeTrue打开它会让游戏以为读到的仍是原文。两个排查辅助手段按ALTT全屏切换原文/译文。切换正常说明挂接没问题问题出在翻译链语言代码、端点、翻译文件。按ALTU触发手动钩接补扫默认钩子漏掉的文本。从机翻及格到精调手动翻译文件体系默认体验是自动翻译加缓存所有结果写入OutputFile默认Translation\{Lang}\Text\_AutoGeneratedTranslations.txt。这个文件可以直接编辑改完下次启动生效游戏内按ALTR还能立即重载。更细的控制靠这套优先级规则插件读取Translation目录下所有.txt文件支持zip手动文件优先于自动生成文件。同一原文出现在两处时用手动的那份。替换文件_Substitutions.txt翻译前先把固定片段替换掉最适合角色名这类常被机翻错的内容。写入拓真Takuma后包含它的句子会以I am {{A}}这种参数化形式生成一条规则覆盖一族句子。正则翻译只能写在手动文件里以_开头的自动生成文件里写了无效。标准正则r:^アイテム ([0-9])$Item $1匹配整句直接给译文。分割正则sr:^([0-9]{2}) ([\S\s])$$1 $2游戏常把编号和名称拼成一个文本框显示如01 简单戒指。分割正则先把文本拆开、逐段翻译再拼回一条简单词条就能覆盖整类拼接格式。MOD专属翻译在翻译目录的Plugins/子目录下建一个与目标MOD的dll同名的文件夹放入翻译文件并写一行#enable fallback——未命中的条目会自动回退到通用翻译避免和全局词条打架。请求频率如何被管住免费额度不用慌在线端点免费就得多虑一件事插件会不会把服务打爆。项目内建了一套节流机制用白话说就是新文本先观察1秒稳定后才发请求过滤掉逐帧变化的文本同一时刻最多1个请求并复用一条长连接单次游戏会话最多8000次请求每次不超过200字符结果内存缓存加落盘同一句只翻一次内置约2000条日英词典吸收高频短语支持的端点还会批量合并请求检测到异常队列积压、连续空结果、每帧都在排队等就自动停机保护服务。真修好问题后可按ALTQ重启。所以选端点时只关心一张表类型例子特点免认证GoogleTranslate、BingTranslate、DeepLTranslate、Papago开箱即用但接口随时可能失效需API KeyAzureBingTranslateLegitimate、Google Cloud、DeepL API、百度、Yandex稳定、多有免费额度如Azure每月200万字符密钥切勿外泄常用热键速查热键作用ALT0打开插件选择界面切换端点选空即关闭自动翻译ALT1打开 Translation Aggregator 面板ALTT译文/原文切换排查第一步永远按它ALTR重载翻译文件改完即生效ALTU手动触发文本补扫ALTF切换自定义字体配置了 OverrideFont 时ALTQ重启因连续错误停机的插件想动源码从哪里入手src/Translators/全部内置翻译器每个都是独立小项目BingTranslate/、DeepLTranslate/ 可当模板直接参考。src/XUnity.AutoTranslator.Plugin.Core/ITranslator.cs对外查询入口。TranslateAsync查缓存、未命中再走向用户选的端点TryTranslate只查缓存。写MOD想复用翻译结果从这个接口开始。src/XUnity.ResourceRedirector/独立的资源重定向库挂接Resources与AssetBundle加载路径可替换游戏读到的文本资产等资源不依赖翻译插件、可单独使用。要写自己的翻译器实现ITranslateEndpoint接口或继承HttpEndpoint基类编译出的dll放进Translators/子目录即被识别。接口定义与完整示例在 README.md 的 Implementing a Translator 一节写得非常细。最后回顾三句话记住重点部署是一次性选择题按有无插件框架选路线解压到位启动游戏。不生效先查[TextFrameworks]一半的不翻译是没启用的框架项。机翻是底线手动文件是上限自动生成文件可编辑手动文件优先正则可覆盖一整类文本。建议动作先启动游戏按ALTT确认钩接正常再决定开哪些框架项翻译跑通后把时间花在改翻译文件上——这一步之后的体验提升最明显。【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考