ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

从零到实战:XUnity.AutoTranslator Unity游戏翻译插件终极上手指南

从零到实战:XUnity.AutoTranslator Unity游戏翻译插件终极上手指南

从零到实战:XUnity.AutoTranslator Unity游戏翻译插件终极上手指南

【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator

小A为了打通那款心仪已久的日文RPG,翻遍了论坛汉化帖,装了三四个"傻瓜补丁",结果不是版本对不上就是闪退黑屏。直到他发现了 XUnity.AutoTranslator——这款开源的 Unity 游戏翻译插件,能用十分钟把任何 Unity 游戏变成"实时双语版",从此再也不挑游戏玩了。

一句话看懂

它就像是游戏界的"同声传译耳机":插件挂在游戏进程里,实时"偷听"屏幕上出现的每一段文字,翻译完再"塞"回去,整个过程你几乎感觉不到它的存在。

适合谁:玩外语单机游戏又等不起汉化组的玩家、想自己做汉化补丁的爱好者、需要给游戏加翻译功能的 Mod 开发者。不适合谁:只玩网游竞技的玩家(它只支持离线单机类 Unity 游戏)、想改游戏服务器端数据的用户。

五分钟上手

第一步:确认游戏类型。右键游戏 exe 查看属性,能确认是 Unity 引擎(通常游戏目录里有xxx_Data文件夹)即可继续。

第二步:下载代码。执行命令拉取完整项目:

git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator

第三步:选择安装包。项目按插件框架分了多个版本,最省事的是ReiPatcher 独立版——它不需要额外装任何管理器,双击就能用。推荐配置是 BepInEx 版,适合已装 BepInEx 的环境。

第四步:解压到游戏根目录。确保SetupReiPatcherAndAutoTranslator.exe和游戏 exe 放在同一级目录。

第五步:双击运行并启动游戏。第一次运行会弹一个安装窗口,点确定,游戏目录会自动生成AutoTranslatorConfig.ini。进游戏看到台词变成中文(或你设定的目标语言),就成功了。

预期结果:游戏启动后,文本被自动替换为翻译结果;按ALT+0可开关翻译界面,ALT+T可在原文和译文间切换。

核心能力拆解

实时文本捕捉:看不见的"文字搬运工"

功能是什么:自动检测游戏界面上的所有文字并实时翻译。为什么你需要:它覆盖了 UGUI、NGUI、TextMeshPro、IMGUI、TextMesh、FairyGUI、Utage 等主流 UI 框架,几乎不用你操心"这个文本能不能翻"。怎么用:默认配置即可工作。个别框架默认关闭(如 3D 漂浮文字的 TextMesh),遇到没翻译的文本就去配置文件里把EnableTextMesh=True打开。背后原理一句话:插件通过 Harmony/MonoMod 钩子拦截文本组件的读写方法,相当于在"游戏写文字"和"屏幕显示文字"之间插了一个翻译层。

多翻译服务切换:选对"翻译官"

功能是什么:内置十几种翻译端点,可自由切换或设置主备。为什么你需要:不同端点质量和稳定性差异很大,免费端点可能随时失效。怎么用:编辑配置文件的[Service]节:

[Service] Endpoint=GoogleTranslate ; 主翻译引擎 FallbackEndpoint=BingTranslate ; 主端点失败时自动降级到备用

背后原理一句话:翻译端点就是放在Translators子目录里的独立 DLL 插件,项目通过统一接口调度它们。

手动翻译文件:机器翻译的"人工校准"

功能是什么:允许你用文本文件精确指定某句话的翻译。为什么你需要:机器翻译常把角色名、技能名翻得乱七八糟,手动词条能一锤定音。怎么用:在Translation\{Lang}\Text目录下新建任意.txt文件,一行一条:

シンプルリング=Simple Ring 生命值=HP

保存后按ALT+R立即生效,不用重启游戏。背后原理一句话:插件本质是一个"原文→译文"的字典,机器翻译结果只是自动写入字典,你的手动文件优先级永远更高。

纹理替换:连图片都能"汉化"

功能是什么:把游戏里的图片(如教程截图、地图贴图)替换成你准备好的版本。为什么你需要:很多游戏的汉化死角都在图片里。怎么用:开启[Texture]节的EnableTextureDumping=TrueEnableTextureTranslation=True,运行游戏把贴图导出到Translation\{Lang}\Texture,PS 改好后按原文件名放回即可。背后原理一句话:插件按图片哈希建立索引,加载时用同名本地文件替换游戏资源。

场景实战

场景一:新手玩家——日文游戏中文直译

配置目标:零门槛、免费、立即可用。只需把[General]设置成:

[General] Language=zh FromLanguage=ja

启动游戏就能看到中文。免费端点选 DeepLTranslate 质量最好,缺点是偶尔不稳定;追求稳定可以注册百度翻译开放平台,填入BaiduAppIdBaiduAppSecret(每月前 50 万字符免费)。

场景二:进阶玩家——术语表 + 正则精修

玩法是"先粗翻,再精修":跑一遍游戏生成_AutoGeneratedTranslations.txt,把其中翻错的台词剪切到自己的词条文件里改正;再用替换文件把反复翻错的名字统一掉:

アルベルト=阿尔贝特

遇到"01 シンプルリング""02 シンプルリング"这类带编号的复合文本,用拆分正则一条搞定:

sr:"^([0-9]{2}) ([\S\s]+)$"=$1 $2

场景三:Mod 开发者——给游戏插件加翻译

其他 Mod 的界面通常走 IMGUI,默认是关闭的,在配置中开启:

[TextFrameworks] EnableIMGUI=True

之后你还能通过TranslationRegistry.DefaultAPI 在自己的 Mod 里用代码注册翻译包,把译文直接打包进 DLL 分发。

参数说明书

参数取值作用推荐值
EndpointGoogleTranslate / DeepLTranslate / BaiduTranslate 等选择翻译引擎按需切换
Languagezh / en / romaji 等目标语言你的母语
FromLanguageja / en / auto游戏原文语言明确语言优于 auto
MaxCharactersPerTranslation1~1000单条文本最大翻译字数,超长文本被忽略200
EnableBatchingTrue / False合并多条请求为一次,省流量True
EnableUGUITrue / False是否翻译 UGUI 文本True
EnableIMGUITrue / False是否翻译 IMGUI(Mod 界面)需要时 True
TextGetterCompatibilityModeTrue / False兼容"用文本做逻辑判断"的游戏出问题才开
EnableUIResizingTrue / False译文过长时自动调整 UI 溢出True
OverrideFont字体文件路径覆盖游戏字体(解决中文方块字)需要时配置
IgnoreWhitespaceInDialogueTrue / False对话去掉空白再翻译,提升质量True

白话解读:MaxCharactersPerTranslation是"翻译流量水龙头",调大能翻更长台词,但会成倍消耗免费额度;OverrideFont是"中文显示救星",英文游戏默认字体根本不含中文字形,翻成中文后全是方块,配一个中文字体文件就解决了。

避坑指南

问题:翻出来的中文全是"口口口"方块。原因:游戏字体不含中文字形。 解决:配置OverrideFont(UGUI)或FallbackFontTextMeshPro(TextMeshPro)指向一款中文字体资源。

问题:翻译后游戏逻辑错乱,选项点了没反应。原因:游戏用"当前显示的文本"来判断执行什么逻辑,译文破坏了匹配。 解决:设置TextGetterCompatibilityMode=True

问题:已经装了 BepInEx,又用了 ReiPatcher 独立版。原因:两套钩子体系打架。 解决:二选一。用管理器就只用对应版本,别混装。

问题:部分台词一直不翻译。原因:该文本来自默认关闭的框架(TextMesh/IMGUI),或钩子没抓到。 解决:开启对应框架开关;仍不行就在游戏里按ALT+U手动捕获。

问题:免费端点(Google/DeepL 网页版)忽然全部失效。原因:在线服务改了接口,免费端点"随时可能断"是官方明示的。 解决:切换到带 API Key 的正式端点,或配置FallbackEndpoint兜底。

问题:改了翻译文件但游戏里没变化。原因:译文被内存缓存了。 解决:按ALT+R强制重载翻译文件。

横向对比

方案实时性覆盖范围上手难度扩展性
XUnity.AutoTranslator实时全部 Unity 文本框架极高(可自定义端点)
Translator++非实时(打包汉化)需逐游戏适配
专用汉化补丁实时单一游戏极低
OCR 截图翻译准实时任意游戏

一句话结论:如果你要的是"今天下载、今天玩上、什么游戏都能试",XUnity.AutoTranslator 是唯一满足全部条件的方案;它牺牲的只是"翻译质量需要自己调教"的便利。

生态与贡献

项目采用模块化设计,想贡献可以从三个方向入手:

  • 新增翻译端点:在 src/Translators/ 下实现ITranslateEndpoint接口,几十行代码就能接入一个新翻译服务,这也是官方鼓励的第三方扩展方式。
  • 核心逻辑优化:文本捕捉、缓存、防刷机制都在 src/XUnity.AutoTranslator.Plugin.Core/,其中AutoTranslator.cs是总调度入口。
  • 资源重定向:src/XUnity.ResourceRedirector/ 负责资源替换,是纹理汉化的基石。

写代码前建议先读 README 中的 "Implementing a Translator" 章节,并跑一遍测试项目 test/ 里的用例。第三方端点生态(LLM 翻译、离线 Sugoi 等)也相当活跃,可以直接借鉴。

收尾行动号召

回顾三个要点:安装只要五分钟,选对版本解压即用;翻译质量靠配置,端点、词条、正则三件套足以应对 90% 的场景;它是可扩展的,从玩家到开发者都能在生态里找到自己的位置。

现在就去git clone https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator,挑一个你最想玩的外语游戏试试。十分钟后,你会发现语言从来不是游戏的边界——动手的那一刻,它已经被你亲手打破。

【免费下载链接】XUnity.AutoTranslator项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表