XUnity.AutoTranslator:Unity 游戏自动翻译,装好改 3 行配置就能跑
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
XUnity.AutoTranslator 是一个 Unity 游戏自动翻译插件:它装进游戏进程,把游戏里的外文文本实时替换成中文,不改动游戏本体文件。按本文走一遍,10 分钟内装好并看到中文对话。
它做什么、不做什么
它改的是屏幕上的字,不改游戏文件。翻译结果会沉淀在Translation文件夹里,断网时自动翻译不可用,已生成的翻译仍可复用。
| 能力 | 什么时候用不到 |
|---|---|
| 实时翻译 UGUI、NGUI、TextMeshPro 等 UI 上的对话和菜单 | 离线游玩时,自动请求翻译服务无法工作 |
| 内置 Google、Bing、DeepL、百度等 15 个翻译端点,免费免密钥或带密钥可选 | 免费端点走的是对方网页接口,对方一改接口就可能失效 |
| 导出游戏里带字的图片,修好放回即可被替换回游戏 | 图片文字只能"换整张图",不能像文本那样实时翻 |
| 管理手动翻译、替换规则、正则模板,全部走本地文本文件 | 插件不修改游戏安装包,也不会替你决定玩不玩某款游戏 |
"文本框架"= 游戏里文字是怎么画出来的技术方案,比如 Unity 自带的 UGUI、做菜单的 NGUI、高清文字的 TextMeshPro。"翻译端点"= 真正干翻译活的引擎 DLL,放在Translators目录里,装哪个用哪个。
动手前先判断
选错加载器,游戏能启动但插件静默失败,日志里什么都没有,这是最常见的装失败原因。
| 条件 | 选择 | 验证方法 |
|---|---|---|
游戏目录里能看到Managed文件夹 | Mono 编译,用 BepInEx 5 标准包(MelonLoader 游戏用 MelonMod 包) | 首次启动后生成XUnity.AutoTranslator.cfg,日志无报错 |
游戏目录里有GameAssembly.dll | IL2CPP 编译,用 BepInEx 6 的 IL2CPP 包或 MelonMod-IL2CPP 包 | 同上,且对话框文字能被翻译 |
| 不想装任何管理器 | 用发行包里的 ReiPatcher 独立方案,双击运行一次即可 | 出现{GameExeName} (Patch and Run).lnk快捷方式 |
判断不出来就都看一眼:有Managed基本是 Mono,有GameAssembly.dll基本是 IL2CPP。两种文件都不在,多半是独立方案的场景。
主流程:三步把翻译跑通
三步:放文件、改三行配置、修字体。每步都有成功标志。
阶段 1:把文件放进对的目录
按你用的管理器解压插件包,让 DLL 各就各位。BepInEx 方案:核心 DLL 进BepInEx/plugins/XUnity.AutoTranslator/,翻译引擎 DLL 进它的Translators子目录。MelonLoader 方案进Mods和UserLibs,IPA 方案进Plugins,独立方案直接解压到游戏根目录。
成功标志:游戏能正常启动,管理器日志里出现XUnity.AutoTranslator的加载记录,游戏目录多出Translation文件夹和XUnity.AutoTranslator.cfg。
卡住怎么办:游戏正常但毫无反应,九成是编译模式选错了包,回上一节对照;再看管理器日志(BepInEx 是LogOutput.log),有报错就是管理器没装对。
阶段 2:三行配置切语言
改完下面这段你会看到:重启游戏后,对话框里的日文变成中文。
[General] Language=zh-Hans ; 原值 en,改成目标语言 FromLanguage=ja ; 原语言,日游戏保持 ja [Service] Endpoint=GoogleTranslateV2 ; 免费端点,默认即此成功标志:Translation\zh-Hans\Text\_AutoGeneratedTranslations.txt开始积累"原文=译文"的记录,这是插件自己生成的翻译存档。
卡住怎么办:还是英文,说明Language没改;中文出现但部分句子是方块,是字体问题,进阶段 3。
阶段 3:修字体方块
游戏自带字体里通常没有中文字形,方块是字体缺失,不是翻译失败。
UGUI 文字:改完这段你会看到:中文字形正常显示,ALT+F可随时切回默认字体。
[Behaviour] OverrideFont=C:\Fonts\某中文字体.ttf ; 指向任意带中文字形的 ttfTextMeshPro 文字优先用备用字体,只在缺中文字符时启用,比全量替换稳:
[Behaviour] FallbackFontTextMeshPro=C:\Fonts\某中文字体.ttf成功标志:方块消失,ALT+F在两种字体间切换正常。卡住怎么办:字体文件必须带中文字形,换一个再试;UGUI 游戏配了 TMP 字体也不生效。
按需进阶
只改你碰到的问题,没碰到的别动。
当你遇到机器翻错时:直接改Translation\zh-Hans\Text\_AutoGeneratedTranslations.txt里对应的行,按ALT+R立即重载,不用重启游戏。这个文件读取优先级最低,你手改的内容会一直生效。
当你发现人名地名乱翻时:在_Substitutions.txt里加替换规则,翻译前先把这些词换掉。
# _Substitutions.txt レム=莱姆 鬼滅の刃=鬼灭之刃改完按ALT+R重载,专有名词从此固定。
当你看到数字跳动的文本时:在翻译文件里用模板写法,把变化部分包在{{A}}里,翻译只处理固定部分,占位内容最后填回原位。
我获得了{{A}}金币=I gained {{A}} coins效果:数字每帧变也不会逐帧请求翻译,不会触发插件的防垃圾停机。
当游戏崩溃或行为异常时:可能是游戏拿屏幕上的文字做逻辑判断,翻译后它"不认识了"。在[Behaviour]段加一行:
[Behaviour] TextGetterCompatibilityMode=True ; 游戏读文本时仍返回原文改完重启验证,逻辑判断恢复正常。
当游戏变卡或插件自己停摆时:把[TextFrameworks]里不需要的框架关掉(EnableIMGUI、EnableTextMesh默认就是关的,别乱开),MaxCharactersPerTranslation保持默认 200 左右,长句子交给模板或手动翻译。插件在连续报错后会自行停机保护,排除网络问题后按ALT+Q重启它。
当图片里的文字也要翻译时:[Texture]段开EnableTextureDumping=True,插件把可替换的图导出到Translation\zh-Hans\Texture\;修好图放回,再开EnableTextureTranslation=True。这是制作完整汉化包的必经路径。
当菜单或 3D 文字没被翻译时:[TextFrameworks]段里每个框架对应一个Enable开关,给漏掉的框架开True,重启后按ALT+U手动触发一次文本扫描。
游戏内的快捷键:ALT+0打开插件界面,ALT+T切换原文/译文,ALT+R重载翻译文件,ALT+U手动扫描文本。
收尾自检表
对着这张表逐项确认,全勾上才算装完。
| 检查项 | 状态 |
|---|---|
| 管理器日志里能看到插件加载且无报错 | ☐ |
游戏目录已生成Translation文件夹和 cfg 文件 | ☐ |
配置里Language=zh-Hans已保存 | ☐ |
| 游戏对话显示为中文 | ☐ |
| 中文字形正常,无方块 | ☐ |
关掉这张表,打开游戏,从第一句对白的翻译开始。
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考