当前位置: 首页 > news >正文

Unity游戏如何自动翻译成中文?10分钟上手XUnity.AutoTranslator免费翻译插件

Unity游戏如何自动翻译成中文?10分钟上手XUnity.AutoTranslator免费翻译插件

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

上周深夜,你终于下载好那款心心念念的日文RPG,满怀期待地点开游戏——结果满屏五十音图扑面而来:角色在说什么?道具有什么用?连"确定/取消"都得靠猜。这种"卡在第一步"的憋屈,玩过日韩游戏的玩家都懂。

今天要介绍的XUnity.AutoTranslator,就是专治这个问题的开源利器。它是一款能实时把 Unity 游戏里的文本自动翻译成中文的免费插件,装上之后,游戏里的对话、菜单、物品说明会一边显示一边翻译,不用切窗口、不用复制粘贴,体验接近官方汉化。

它到底怎么做到的?跟着下面的步骤走一遍,十分钟你就能看到熟悉的方块字出现在游戏里。

为什么它能"读"懂游戏里的文字

XUnity.AutoTranslator 的思路很简单:在游戏运行时"挂钩"(Hook)住所有文字组件,一发现有新文本出现,就交给翻译引擎处理,再把译文写回屏幕。整个过程完全自动,游戏原本的安装目录和资源文件一个都不用动。

它把这项工作拆成了三个可自由组合的部分:

  • 插件框架适配层:支持 BepInEx、MelonLoader、IPA、UnityInjector,你游戏里装了哪个管理器,它就能挂到哪个上;
  • 文本框架识别层:能识别 UGUI、NGUI、TextMeshPro、IMGUI、FairyGUI、UTAGE 等多种 UI 系统;
  • 翻译端点层:内置 Google、Bing、DeepL、百度、Yandex、Papago 等十余种翻译服务,还可以挂载第三方或自研端点。

翻译结果还会自动存进本地缓存文件,下次再遇到同一句话直接读取,省时又省钱。是不是已经开始心动了?那我们就从安装开始。

第一步:装好BepInEx插件管理器

BepInEx 是当前最主流的 Unity 游戏插件管理器,XUnity.AutoTranslator 对它的支持也最完善,推荐新手从这条路入手。

  1. 下载适合你游戏版本的 BepInEx,解压到游戏根目录(和游戏主程序 exe 放在一起);
  2. 直接运行一次游戏,看到游戏目录下出现BepInEx文件夹就说明安装成功;
  3. 关闭游戏,准备下一步。

注意:不同游戏需要的 BepInEx 版本可能不同(5.x 与 6.x 不通用),如果游戏社区有推荐的安装方式,以社区为准。

第二步:解压AutoTranslator插件包

从项目发布页下载XUnity.AutoTranslator-BepInEx安装包,解压后把里面的文件全部复制到游戏根目录,让它自动合并进BepInEx文件夹。正确的话,你的插件目录下应该能看到:

BepInEx/plugins/XUnity.AutoTranslator/ BepInEx/plugins/XUnity.ResourceRedirector/

提示:不要单独删除XUnity.ResourceRedirector目录,其他插件可能依赖它。

第三步:改两行配置把界面变成中文

再次启动游戏,让插件跑一次初始化。退出游戏后,打开BepInEx/config/AutoTranslatorConfig.ini,找到[Service][General]两段:

[Service] Endpoint=GoogleTranslateV2 [General] Language=zh FromLanguage=ja
  • Language=zh表示目标语言为中文;
  • FromLanguage=ja表示源语言为日语(按你玩的游戏改,比如ko是韩语);
  • Endpoint是翻译引擎,默认的 GoogleTranslateV2 无需注册即可用,追求翻译质量可以换成DeepLTranslate

保存文件,再次启动游戏,界面上的日文应该开始陆续变成中文了——这就是可验证的第一步成果。

第四步:记住这几个救命快捷键

快捷键作用什么时候用
ALT + 0打开/关闭翻译设置面板想切换引擎、看状态时
ALT + T在原文和译文间切换想确认某句话翻得对不对
ALT + R重新加载翻译文件手动改完翻译文件立刻生效
ALT + U手动触发文本挂钩某个文本一直没被翻到
ALT + F切换字体覆盖配了 OverrideFont 后对比效果
ALT + Q重启已停摆的翻译功能翻译服务连续报错被自动关闭后

注意:ALT + 0 里的"0"是数字零,不是字母 O,初次使用经常有人按错。

普通用户进阶:让翻译越用越"懂你"

自动翻译毕竟是机器翻译,偶尔会翻得生硬。好在 XUnity.AutoTranslator 支持手动精修,而且流程极其简单:

  1. 打开BepInEx/Translation/zh/Text/_AutoGeneratedTranslations.txt,里面按原文=译文的格式记录了所有翻译;
  2. 把不满意的行改掉,保存后按ALT + R立即生效,不用重启游戏;
  3. 想让某句话永远不再被自动翻译覆盖,就把它从自动文件里剪切到一个新建的.txt文件——自动文件优先级最低,你手写的永远说了算。

如果游戏里有些文本是"模板"式的(比如道具名、数值),正则表达式能帮你批量搞定。普通翻译用r:前缀:

r:"^アイテム ([0-9]+)$"=物品 $1

遇到"数字+文本"这种被游戏拼起来的复合文本,用分割器正则sr:,先把整句拆开分别翻译再拼回去:

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

提示:正则别滥用、别写得过宽,否则会拖慢游戏性能;也千万别把正则写进以_开头的自动生成文件里,那里不生效。

追求体验者进阶:解决乱码、错位和翻译质量

中文乱码怎么破?游戏自带字体往往没有中文字形,这是最常见的问题。对 UGUI 界面设置OverrideFont指定一个中文字体;对 TextMeshPro 则优先用FallbackFontTextMeshPro做后备字体——原文能用原字体显示的字不动,缺的字才用后备字体补上,效果最自然。

译文太长把UI撑爆了?确认EnableUIResizing=True,插件会自动调整组件的溢出方式,让长文本显示得下。个别顽固界面,还可以用resizer.txt文件按组件路径单独调整字号。

想少花钱、翻得更快?打开EnableBatching=True合并请求、UseStaticTranslations=True启用内置静态词典缓存、调低MaxCharactersPerTranslation限制单条翻译长度。另外别忘了:插件自带一整套防滥用机制——文本稳定 1 秒才发请求、同时只发一个请求、单局最多 8000 次——所以翻译偶尔"顿一下"是正常现象,不是坏了。

游戏要翻译图片?从 2.16 起支持纹理替换,在[Texture]段开启EnableTextureTranslation=True,配合EnableTextureDumping=True把游戏图片导出、改好中文再放回目录即可。注意转正式使用时务必关掉 Dumping,否则有性能损耗。

二次开发者进阶:把翻译能力装进你自己的MOD

XUnity.AutoTranslator 面向开发者开放了一整套 API,几行代码就能让自家 MOD 的文字也走翻译管线:

// 异步翻译:先查缓存,查不到再请求翻译端点 AutoTranslator.Default.TranslateAsync( untranslatedText, result => { if( result.Succeeded ) { var translatedText = result.TranslatedText; } } );

想实现自己的翻译引擎?实现ITranslateEndpoint接口(返回Id、实现Translate方法),把编译好的 DLL 丢进Translators目录,用户就能在配置里选择它。不想让 AutoTranslator 碰你 MOD 的界面?把包含文本的 GameObject 名字里加上XUAIGNORE(忽略自身)或XUAIGNORETREE(忽略整棵子树)即可。

对于需要整体替换游戏资源的场景,项目还附带独立的XUnity.ResourceRedirector资源重定向库,可以在不改动游戏文件的前提下替换 TextAsset、贴图等资源,且它完全可以脱离 AutoTranslator 单独使用。

避坑清单:十个常见问题一次说清

现象排查方向
界面上有文本没翻译确认对应文本框架已启用;按 ALT+U 手动挂钩
完全没反应检查Endpoint是否为空、网络是否可达
翻译一阵就停服务端连续失败会触发保护性关闭,按 ALT+Q 重启
游戏按译文执行逻辑出错开启TextGetterCompatibilityMode=True
中文显示成方块配置OverrideFont/FallbackFontTextMeshPro
UI 文字重叠、溢出确认EnableUIResizing=True
IL2CPP 游戏部分漏翻IL2CPP 支持尚不完整,需 ALT+U 手动刷新,且 TextGetter 兼容模式、IMGUI 不可用
请求太多怕扣费EnableBatching,调小MaxCharactersPerTranslation
想禁用自动翻译ALT+0 里选择空端点,或把Endpoint=清空
用了付费API密钥别外泄,确认所选引擎支持你的源/目标语言

社区生态:从一个人到一群人

XUnity.AutoTranslator 最迷人的地方在于它的开放性。社区已经为它写出了接入本地 Ollama 大模型的 LLM 翻译端点、Sugoi 离线翻译端点等第三方插件——这意味着你甚至可以不依赖在线服务,用本地模型完成翻译。项目本身的演进方向也集中在 AI 翻译集成、IL2CPP 支持完善和性能优化上。

如果你已经上手成功,不妨做三件小事:备份一份自己的配置文件关注更新日志(新版经常会修复特定游戏的兼容问题)、把自己手工打磨的翻译词典分享出来。你写下的每一行原文=译文,都在帮助下一个和曾经的你一样卡在语言关口的玩家。

语言从来不该是游戏乐趣的障碍。现在就动手装好 XUnity.AutoTranslator,十分钟后,你会发现那个"看不懂"的世界,原来可以这么亲切。🎮

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

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

http://www.cnnetsun.cn/news/4095871.html

相关文章:

  • C盘被微信吃了40G?【图文讲解】自带清理没用,这样深度释放空间
  • 特斯拉FSD v14险将车辆驶入路沟,自动驾驶信任危机再敲警钟
  • 基于Edge Impulse的暖气故障边缘智能检测:声音与振动分析实践
  • 有界性定理证明
  • 前端框架现代网页应用开发从需求拆出验证点
  • TEMU上架软件:绕过滑块验证码与前端检测的穿甲方案
  • 基于Zynq FPGA的VDMA视频测试系统:从TPG生成到Linux显示全流程实践
  • 基于Home Assistant与毫米波雷达的智能房间自动化系统设计与实践
  • 免费开源直播聚合工具 Simple Live:跨平台看直播的完整上手攻略
  • DPDK硬件加速与功能卸载:从原理到实战的软硬协同优化
  • 车用智能电机控制:从FOC算法到工程实践的全链路解析
  • 同一微信号,手机和平板同时在线?WeChatPad 是这样强制开启微信平板模式的
  • 机器人集群智能调度:Thanos Robots理念下的资源管理与系统容错
  • A股资金流向分析系统构建:从数据获取到可视化实战
  • PDF文字颜色怎么改?单段变色与全文统改步骤详解
  • 德国汽车工业转型困境:电动化与智能化十字路口的挑战与机遇
  • 基于SSH与Ollama的远程AI编程助手Quil实战指南
  • 知识生产范式重构:从学术守门人到开源协作的信任网络
  • STM32与RT-Thread开发实战:从环境搭建到外设驱动与软件包应用
  • 从模糊指令到精准输出:提示词工程实战指南,告别AI“摸鱼”
  • 监听控制器:混音工作流的隐形指挥中枢与实战连接指南
  • AI转PSD总在丢图层?Ai2Psd脚本教你无损保留矢量结构的实战方法
  • 基于nRF52820的智能拉链:BLE物联网硬件开发全流程解析
  • NE2000兼容网卡:从ISA时代到虚拟化的硬件接口标准演进
  • 免费NCM转MP3完整教程:开源工具ncmdump,拖一下鼠标解锁你的歌
  • C++现代编程实战:RAII、智能指针与移动语义详解
  • 从Anthropic安全漏洞看AI内容过滤器的构建与监控实战
  • Nginx偶发超时排查:从网络包到内核态的全链路诊断
  • 从18650到特斯拉:揭秘圆柱电池如何驱动电动汽车革命
  • 国产化环境部署语音识别,真正难的不是换一块芯片