XUnity.AutoTranslator 实战指南:5 步让 Unity 游戏实现免费即时汉化
XUnity.AutoTranslator 实战指南:5 步让 Unity 游戏实现免费即时汉化
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
打开刚下载好的日文游戏,面对满屏假名与汉字,你是选择硬啃生肉,还是默默关掉游戏?如果有一种方案能让游戏内文本在屏幕上实时变成中文,完全免费、无需修改游戏本体,你会不会想立刻试试?这就是 XUnity.AutoTranslator——一款专为 Unity 游戏打造的实时自动翻译插件。它通过挂钩游戏文本组件,把日语、韩语、英语等语言即时翻译成你的母语,同时支持手动汉化、纹理替换与资源重定向,是无数玩家与模组作者绕不开的本地化利器。
第 1 步:先花 1 分钟确认游戏环境,再决定走哪条路线
动手之前,请先回答三个问题,答案决定了你后面的所有操作:
- 你的游戏是 Unity 引擎做的吗?是,才能使用本方案。
- 游戏目录里已经装过 BepInEx、MelonLoader 这类插件管理器吗?装过,走插件路线最顺。
- 你只想要"最省事"的结果吗?是,独立补丁模式更适合你。
把这三个问题搞清楚,后面基本不会迷路。XUnity.AutoTranslator 支持五种安装形态:独立 ReiPatcher 补丁、BepInEx、MelonLoader、IPA 与 UnityInjector。不同形态对应不同玩家群体,选错轻则多花时间,重则与其他模组冲突、游戏闪退。
第 2 步:三种主流安装方式,总有一款适合你
| 安装方式 | 适合谁 | 需要前置依赖 | 上手难度 |
|---|---|---|---|
| 独立补丁(ReiPatcher) | 想零依赖的普通玩家 | 无,补丁自带 | ⭐ 最简单 |
| BepInEx 插件 | 已经在用 BepInEx 管理模组 | BepInEx 5.x 或 6.x | ⭐⭐ 简单 |
| MelonLoader 插件 | MelonLoader 用户 | MelonLoader | ⭐⭐ 简单 |
三种方式的操作要点:
- 独立补丁:把发布包解压到游戏根目录,确保
SetupReiPatcherAndAutoTranslator.exe与游戏主程序同级,运行一次安装程序,之后用生成的快捷方式启动即可。 - BepInEx 插件:将解压出的 DLL 放入
BepInEx/plugins目录,启动游戏自动加载。若游戏是 IL2CPP 构建,需改用 BepInEx 6 加BepInEx-IL2CPP专用包。 - MelonLoader 插件:把插件 DLL 放进
Mods,把依赖库放进UserLibs,同样启动即生效。
⚠️ 一个容易踩的雷:如果游戏已经装了插件管理器,就不要再走独立补丁路线,两套机制叠加极易引发冲突。
第 3 步:首次启动后,认识自动生成的文件与快捷键
第一次启动游戏后,插件会在游戏目录下自动生成AutoTranslator/Translation文件夹,里面有四个文件值得你记住:
_AutoGeneratedTranslations.txt:所有自动翻译的落盘位置,也是你手动修正译文的入口_Substitutions.txt:翻译前替换表,专治人名、专有名词翻译错误_Preprocessors.txt与_Postprocessors.txt:分别定义发送翻译前、收到结果后的文本处理规则AutoTranslatorConfig.ini:核心配置文件,所有功能开关都在这里
与此同时,记住这几个常用快捷键,操作效率直接翻倍:
ALT+0:打开/关闭设置界面ALT+T:在原文与译文之间切换显示ALT+R:立即重载翻译文件,改完译文不用重启游戏ALT+U:手动触发文本钩取,默认钩子漏掉的文本靠它补救ALT+F:切换字体覆盖(需先配置 OverrideFont)ALT+Q:插件因连续报错停机后手动重启
第 4 步:按决策清单挑选翻译引擎,别盲目跟风
翻译引擎决定了译文质量和花费,按你的需求对号入座即可:
- 🆓想零配置快速看到效果:选 GoogleTranslate、BingTranslate 或 PapagoTranslate,免密钥即用
- 🎯追求译文质量:选 DeepLTranslate,免费模式下的译文质量在同级中很突出
- 🔒注重隐私、想离线翻译:选 Lec Power Translator 15 或 ezTrans XP,需要本地安装对应软件
- 💼商用或追求稳定:选 GoogleTranslateLegitimate、BingTranslateLegitimate 等带 API Key 的版本
- 🛠️有自建翻译服务:选 CustomTranslate,指向任意支持 GET 的 HTTP 翻译端点
两个重要提醒:免密钥的在线引擎随时可能失效,属于"能用但别依赖";使用付费引擎时务必保管好 API Key,绝不外传,泄露后立即吊销。
引擎选好后,在配置文件中完成三行核心设置:
[Service] Endpoint=GoogleTranslate FallbackEndpoint=DeepLTranslate [General] Language=zh-CN FromLanguage=jaFallbackEndpoint是备用引擎:主引擎失败时自动接管,适合双保险。
第 5 步:实战走通,让一款日文游戏 5 分钟显示中文
理论讲完,来一次完整走通:
- 按第 2 步任选方式完成安装
- 启动游戏一次,让插件生成配置与翻译目录
- 关闭游戏,编辑配置:
Endpoint选引擎、Language=zh-CN、FromLanguage=ja - 再次启动游戏,按
ALT+0打开设置界面确认引擎状态 - 回到游戏,文本变成中文即大功告成
如果只有部分 UI 被翻译,多半是因为部分文本框架默认关闭。去[TextFrameworks]一节按需开启:
[TextFrameworks] EnableUGUI=True EnableNGUI=True EnableTextMeshPro=True EnableIMGUI=False EnableTextMesh=FalseIMGUI 和 TextMesh 默认关闭是有原因的——前者常见于各类模组界面、钩取开销大,后者常用于 3D 空间漂浮文字、噪音多,需要时才打开。
效果不对?先排查这四个新手常踩的坑
如果翻译没生效,八成是下面四种情况之一:
- 独立补丁与插件管理器混装:两套机制抢挂钩,互相干扰,只保留一种
- 中文变成方块字:游戏内置字体不支持汉字,配置
OverrideFont(UGUI)或FallbackFontTextMeshPro(TextMeshPro)指定中文字体 - 翻译后游戏逻辑错乱:游戏可能拿屏幕文字做逻辑判断,打开
TextGetterCompatibilityMode=True即可解决 - 完全没有任何翻译:检查
BepInEx/LogOutput.log确认插件加载状态,确认网络可达翻译服务,再确认MinDialogueChars阈值是否过高(默认 20,过短文本会被忽略)
进阶玩法:正则表达式与替换表,专治"奇怪文本"
游戏里的文本往往不是干干净净的一句话,而是带着编号、变量和格式。这时就该正则表达式登场了。
标准正则(r:)——对未命中直接查找的文本做模式匹配:
r:"^シンプルリング ([0-9]+)$"=Simple Ring $1拆分正则(sr:)——把组合文本拆成片段分别翻译再拼回。比如装备名常以01 シンプルリング这种带编号的形式出现,与其为每种编号写正则,不如拆开:
sr:"^([0-9]{2}) ([\S\s]+)$"=$1 $2配合翻译文件里的シンプルリング=Simple Ring,一个词条通吃所有编号。
替换表(Substitutions)——在文本送去翻译前做精确替换,最适合固定人名、地名等翻译引擎容易翻错的内容:
私は{{A}}=I am {{A}}注意:正则虽强,但请克制使用、尽量缩小作用范围,否则会拖慢性能。
译文挤爆界面?用 UI 缩放与字体覆盖救场
翻译成中文后,文本往往比原文长,游戏原生的 UI 框根本装不下。插件内置了一套"尽力而为"的 UI 自适应机制:
EnableUIResizing=True:翻译后自动调整组件溢出行为ForceUIResizing=True:无论是否翻译,对所有 UI 一律调整
如果自动调整不够精细,还可以写resizer.txt手动控制字号,按组件路径批量缩放:
CharaCustom/CustomControl/CanvasDraw=ChangeFontSizeByPercentage(0.5)意思是:该路径下所有文本字号压缩到原来的 50%。命令还支持行距、水平/垂直溢出等细粒度控制,中文排版再也不用担心被截断。
更高阶:纹理翻译、资源重定向与手动汉化工作流
当文本翻译无法覆盖某些内容时,就该动用插件另外两件武器了。
纹理翻译——游戏里的图片文字(如商店招牌、地图贴图)同样可以汉化。开启EnableTextureDumping=True后,插件会把游戏内可替换的贴图导出到Translation\{Lang}\Texture,你编辑图片放回原目录,再开启EnableTextureTranslation=True即可生效。
资源重定向——针对以 TextAsset 形式打包的剧情文本,开启EnableTextAssetRedirector=True后可把整段资源替换为你提供的版本,适合大型剧本的整体汉化。
手动汉化工作流——插件会自动把所有译文写入_AutoGeneratedTranslations.txt,你随时可以编辑其中任何一行修正质量;想长期维护,就把修正后的词条剪切到独立翻译文件中(优先级更高),还能打包成 ZIP 分发。改完按ALT+R即时生效,无需重启。
开发者视角:把翻译能力装进自己的插件
XUnity.AutoTranslator 不只是玩家工具,它同时向开发者开放了翻译查询与注册接口。想给自己的模组加多语言支持,可以在插件初始化阶段调用:
public static class TranslationRegistry { public static ITranslationRegistry Default { get; } }通过RegisterPluginSpecificTranslations把内置翻译包注册进游戏,用EnablePluginTranslationFallback允许回退到通用翻译,一套代码就能让模组界面拥有完整的多语言能力。想深入源码研究实现细节的开发者,可以拉取仓库源码:
git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator仓库的src/Translators目录展示了各翻译引擎的标准实现,是编写自定义翻译端点最好的范本。
写在最后
从零配置的免费引擎到可离线、可商用的多元方案,从文本翻译到纹理替换、资源重定向,XUnity.AutoTranslator 用一套插件覆盖了 Unity 游戏本地化的完整链路——对玩家,它是突破语言壁垒的免费利器;对开发者,它是可扩展、可集成的开放平台。现在就按这 5 步走一遍,挑一款游戏试试,让屏幕上那些看不懂的文字,变成你熟悉的母语吧!
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
