XUnity.AutoTranslator 翻译插件使用指南:从安装到精通的中文无障碍游戏方案
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
周末晚上,小林下载了一款好评如潮的日本独立游戏。像素画面精致、BGM 动人,可当主角说出第一句对白时,他愣住了——满屏日文。屏幕翻译工具要反复切窗口,翻译一段话要等好几秒,玩到第三章他就放弃了。这个场景是否似曾相识?
XUnity.AutoTranslator 正是为解决这类困境而生的开源翻译插件:它直接寄生在 Unity 游戏进程内部,截获游戏吐出的每一句文本,实时交给在线翻译服务处理,再把译文写回游戏界面。你不需要手动输入任何文本,游戏里看到的每一句话都会自动变成你的母语。本文将带你在 30 分钟内完成从安装到首次成功翻译的完整流程,并介绍新手、进阶、老手三个阶段的实用玩法。
一、有它和没它,差别到底有多大?
与其听我描述,不如看一组直观对比:
| 对比维度 | 没有 XUnity.AutoTranslator | 使用 XUnity.AutoTranslator 之后 |
|---|---|---|
| 翻译方式 | 手动复制粘贴、切窗口翻译 | 游戏内自动完成,全程无感 |
| 实时性 | 对话结束后才能翻译 | 文本出现即翻译,支持逐字滚动 |
| 覆盖范围 | 只能翻截图或剪贴板 | 对话、菜单、道具、系统提示全覆盖 |
| 术语一致性 | 每次翻译结果飘忽不定 | 可自定义词典与正则规则 |
| 结果沉淀 | 翻译完就丢 | 自动缓存到本地,越用越准 |
一句话总结:前者是"看完一页翻一页"的笨办法,后者是"打开即母语"的沉浸体验。二者在体验上的差距,正是这款插件存在的全部理由。
二、动手前的环境清单
开始之前,先花两分钟确认你的环境是否满足条件。这份清单比任何长篇说明都实用:
- 一台能跑目标游戏的电脑:Windows / Linux / macOS 均可,插件不挑系统。
- 一款基于 Unity 引擎的游戏:游戏目录下有
*_Data文件夹,或UnityPlayer.dll/GameAssembly.dll等文件,基本可以判定为 Unity 游戏。 - 一个插件管理器:BepInEx(推荐新手)、MelonLoader、IPA、UnityInjector,四选一先装好。
- 稳定的网络连接:插件需要联网调用翻译服务,离线环境无法工作。
- 一个可用的翻译源:内置的 GoogleTranslate、BingTranslate、DeepLTranslate 开箱即用,无需注册;追求稳定可选用需要 API Key 的服务。
拿不准你的游戏是不是 Unity 引擎?在游戏安装目录里搜一下
UnityPlayer.dll,找得到就是。
三、一次完整的首次体验:30 分钟跑通最小闭环
下面以 BepInEx 方案为例,走一遍从拿到文件到看到中文的完整路径。整个流程不超过 30 分钟。
第 1 步:获取项目源码
在终端执行下面的命令,把项目克隆到本地:
git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator第 2 步:准备插件文件
在仓库的src目录下,你可以看到按插件框架拆分好的工程(XUnity.AutoTranslator.Plugin.BepInEx、XUnity.AutoTranslator.Plugin.MelonMod等)。用对应框架的工程编译出 dll,或直接使用发布页提供的预编译包。以 BepInEx 为例,最终的游戏目录结构长这样:
游戏根目录/ ├── BepInEx/ │ ├── core/ │ │ └── XUnity.Common.dll │ ├── plugins/ │ │ ├── XUnity.ResourceRedirector/ │ │ └── XUnity.AutoTranslator/ │ │ ├── XUnity.AutoTranslator.Plugin.Core.dll │ │ ├── XUnity.AutoTranslator.Plugin.BepInEx.dll │ │ └── Translators/ │ │ └── GoogleTranslate.dll │ └── Translation/ ← 翻译缓存与手动词典都在这里 └── 游戏主程序.exe这段结构图说明一件事:核心库放进core,插件本体和翻译器放进plugins,翻译文本目录由插件自动创建。目录名一个都不能改。
第 3 步:启动并验证
直接运行游戏。首次启动后,插件会在BepInEx/Translation/{语言}/Text/下自动生成配置文件与翻译缓存文件。这时游戏里出现的对话应该已经被替换成目标语言了。
第 4 步:用快捷键做健康检查
游戏运行中按下ALT + 0打开翻译聚合界面,ALT + T可以在原文与译文之间来回切换。能切换成功,说明文本钩子已经生效,最小闭环跑通。
四、三个高频配置项,立刻提升体验
配置文件AutoTranslatorConfig.ini在首次启动后自动生成。下面三个配置是绝大多数玩家的必调项,看懂它们就够用一阵子了。
1. 设定语言对(最重要)
[General] Language=zh-CN ; 想翻译成什么语言,就填什么 FromLanguage=ja ; 游戏原文是什么语言,就填什么这段配置的作用是告诉插件"从哪种语言翻到哪种语言"。多数游戏建议明确填写原文语言,而不是依赖auto自动检测——自动检测在部分服务上并不稳定。
2. 打开更多文本框架
[TextFrameworks] EnableUGUI=True ; 现代 Unity UI,绝大多数游戏默认开启 EnableTextMeshPro=True ; 新版文字组件,很多独立游戏在用 EnableTextMesh=False ; 3D 空间漂浮文字,需要时再开 EnableIMGUI=False ; 旧式即时模式 UI,拖慢性能,按需开启TextMesh和IMGUI默认关闭是有原因的:它们要么是 3D 漂浮文本容易误伤,要么是拖慢帧率的旧架构。遇到"部分文字没翻译"时,优先来这里打开对应开关试试。
3. 控制翻译行为
[Behaviour] MaxCharactersPerTranslation=200 ; 单条文本最大字符数,超过则不翻 MinDialogueChars=20 ; 少于该字符数的文本不视为对话 EnableBatching=True ; 合并多个请求,减少对服务端的打扰 EnableUIResizing=True ; 译文变长后自动微调 UI 框体这三个数值决定了"翻什么、怎么翻、翻多快"。例如EnableBatching开启后,支持批量接口的翻译源会合并请求,既省流量又降低被封风险。
五、用户旅程:新手、进阶、老手的三条不同路径
同样的工具,三个阶段的人该关注的东西完全不同。
新手:先让它跑起来
新手的唯一目标是"看到中文"。照着第三节的流程走完即可,无需碰任何高级配置。遇到个别句子没翻译,先检查FromLanguage是否填对、网络是否通畅,这两点解决了大部分"没反应"的问题。此时不妨把EnableIMGUI打开——很多游戏的 Mod 菜单是 IMGUI 写的,开着它连 Mod 界面一起翻译。
进阶:手动词典与缓存文件的妙用
当自动翻译的质量开始让你皱眉时,就该接触手动翻译了。插件会把所有翻译结果写入Text/_AutoGeneratedTranslations.txt,这个文件遵循"最低优先级"原则——也就是说,只要你在其他 txt 文件里给出了同一句话的翻译,就会覆盖自动结果。
具体做法:把_AutoGeneratedTranslations.txt中不满意的词条剪切到新文件MyTerms.txt,手工改成你想要的样子,保存后按ALT + R热重载,游戏里立刻生效。
再进一步,用替换文件(_Substitutions.txt)处理总是被翻错的专有名词。把常见误译写进去,插件会先在本地完成替换,再决定要不要请求翻译服务:
# 把主角名字固定下来,避免每次翻译都不一样 シンジ=真嗣老手:正则与拆分规则的进阶组合
对文本形态复杂、经常拼接显示的 ADV 游戏,老手会用到正则翻译。翻译文件中以r:开头的是正则规则,用于匹配无法精确命中的文本:
r:"^シンプルリング ([0-9]+)$"=Simple Ring $1如果游戏把多段文本拼在一起显示,单条正则往往力不从心,这时可以用拆分正则(Splitter Regex)先把长文本按规则拆开,再逐段查词库,性能和准确率都能兼顾。记得把正则规则放进以_开头的自动生成文件以外的文件里,否则不会生效。
六、高频问题速查表
遇到问题先查表,多数情况不用求助他人:
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 翻译完全没生效 | 插件路径不对或框架不匹配 | 核对插件文件是否在plugins目录,确认游戏用的框架与插件一致 |
| 部分文字没翻译 | 对应文本框架被禁用 | 在[TextFrameworks]打开EnableTextMesh/EnableIMGUI等开关 |
| 游戏应用翻译后卡死或崩溃 | 文本获取器兼容性问题 | 把TextGetterCompatibilityMode设为True再试 |
| 连续翻译失败后插件自动停摆 | 触发防刷保护机制 | 按ALT + Q重启插件,先排查网络或服务端问题再恢复 |
最后一条值得展开:插件内置了十几条防刷机制(单次请求上限、串行发送、失败自动停机等),目的是避免把翻译服务打爆。它自动停机恰恰说明网络或服务端出了问题,优先解决问题本身,而不是反复重启。
七、进阶玩法与生态
扩展能力:接入你自己的翻译源
插件支持自定义翻译端点。内置的CustomTranslate允许你指定任意 HTTP 地址作为翻译服务,插件会以from、to、text三个参数发起 GET 请求。更进一步,你可以实现自己的ITranslateEndpoint接口独立发布翻译器——社区里已有接入本地大模型(Ollama)的第三方端点,质量相当不错。文本钩子覆盖 UGUI、NGUI、TextMeshPro、FairyGUI、Utage 等多个主流框架,Mod 文本也能翻译。
社区资源:跟着老玩家走
仓库内src/Translators目录收纳了 Google、Bing、DeepL、百度、Papago、彩云小译、ezTrans 等十余种翻译器实现,还有针对特定游戏(如恋活 Koikatsu)的专用资源重定向工程。遇到拿不准的配置,去对应游戏的翻译讨论区搜一搜,往往早有答案。
未来方向:向本地与智能进化
社区正在把翻译端点推向离线与智能:本地大模型翻译插件已在活跃开发中,开源模型部署后无需联网即可工作;基于上下文的术语统一、社区共享翻译库也在持续完善。这意味着翻译质量的上限会不断被刷新。
八、写在最后:把选择权交回给你
回到开头小林的困境。他缺的不是一款好游戏,而是一道把语言隔阂拆掉的门——XUnity.AutoTranslator 就是这道门:自动化的文本钩取、可持久化的翻译缓存、从零配置到正则定制的完整阶梯,让它既能服务首次接触的新手,也经得起老玩家的打磨。
现在轮到你了:按第三节的流程跑通第一次翻译,把Language设成你的母语,然后用ALT + T在原文与译文之间来回切换——当你看到那句熟悉的开场白以母语浮现时,这篇指南的使命就完成了。剩下的,交给你的游戏旅程。
【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考