1. 项目概述为什么我们需要游戏实时汉化如果你是一个喜欢玩各种独立游戏、视觉小说或者小众Unity游戏的玩家肯定遇到过这种情况心心念念的游戏终于发售了结果一看没有中文。官方汉化遥遥无期社区汉化补丁要么找不到要么版本对不上要么安装过程复杂得让人头疼。更别提那些还在持续更新的游戏每次版本一更新汉化补丁就失效又要重新等。这种“啃生肉”的体验既影响剧情理解又消耗游戏热情。这时候XUnity.AutoTranslator后文简称XAT这类实时翻译工具的价值就凸显出来了。它不是一个传统的、静态的汉化补丁而是一个运行在游戏进程内的“翻译中间件”。简单来说它的工作原理是当游戏要显示某一段英文或其他语言文本时XAT会截获这段文本瞬间调用你配置好的翻译引擎比如百度翻译、谷歌翻译、DeepL等进行翻译然后将翻译好的中文文本“替换”上去再显示给你看。整个过程几乎是实时的你感受到的就是游戏里的文字变成了中文。这解决了几个核心痛点第一无需等待。游戏一发布你就能玩上“中文版”。第二通用性强。只要是Unity引擎开发的游戏理论上都能支持不用为每个游戏单独制作补丁。第三更新无忧。游戏版本更新只要XAT插件本身兼容汉化就能继续工作文本有变化也会自动翻译新的内容。所以这篇指南的目标很明确带领零基础的玩家从完全不懂开始一步步配置好XUnity.AutoTranslator实现任何Unity游戏的实时汉化。我们会绕过那些晦涩的专业术语用最直白的话和可复现的操作让你真正掌握这个强大的工具。2. 核心工具解析XUnity.AutoTranslator的构成与原理在动手之前我们有必要花几分钟了解一下XAT到底是什么以及它是如何工作的。这能帮你更好地理解后续的配置步骤并在出现问题时知道该从哪里排查。2.1 XAT的组件构成一个完整的XAT工作环境通常包含以下几个部分BepInEx框架这是基石。绝大多数Unity游戏的Mod模组都依赖于这个框架来加载。你可以把它理解为一个“模组加载器”它会在游戏启动时将自己注入到游戏进程中然后管理所有像XAT这样的插件。没有BepInExXAT就无法被游戏加载。XUnity.AutoTranslator插件本体这就是核心的翻译引擎。它是一个.dll文件Windows下或.so文件Linux下由BepInEx在游戏启动时加载。它包含了文本拦截、翻译API调用、文本替换等所有核心逻辑。配置文件这是XAT的大脑。所有行为都由配置文件控制主要包括BepInEx/config/AutoTranslatorConfig.ini主配置文件定义翻译引擎、缓存、正则表达式规则等全局设置。Translation文件夹存放翻译缓存和手动修正文件。XAT会把翻译过的文本存到这里下次遇到相同的原文就直接使用缓存不再请求网络速度飞快。翻译API这是XAT的“翻译官”。插件本身不提供翻译能力它需要调用外部的翻译服务。你需要自己申请这些服务的API密钥通常免费额度足够个人使用并配置到XAT中。2.2 实时翻译的工作原理简化版让我们用一个简单的流程图来理解文字描述游戏运行 - 需要显示文本“Hello World” - XAT拦截该文本 - 检查本地“Translation”文件夹是否有缓存 - 有缓存 - 直接使用缓存的中文“你好世界” - 替换游戏原文本 - 屏幕显示中文 - 无缓存 - 根据配置调用如百度翻译API - 获得翻译结果“你好世界” - 将原文和译文存入“Translation”文件夹作为缓存 - 替换游戏原文本 - 屏幕显示中文这个过程非常快尤其是第二次及以后遇到相同文本时因为直接读本地缓存几乎没有延迟。这就是为什么游戏内对话、物品描述等重复出现的文本在首次翻译后都会非常流畅。注意XAT的翻译是“覆盖式”的它不会修改游戏的原始文件。你关闭插件或游戏文本就会恢复原样。所有翻译记录和缓存都独立存放在BepInEx的文件夹里非常安全。2.3 不同翻译引擎的选择与考量XAT支持多种翻译引擎你需要根据实际情况选择1-2个进行配置百度翻译API国内访问速度最快、最稳定免费额度充足标准版每月200万字符。对于国内用户是首选。翻译质量在游戏文本领域表现不错尤其是对日常对话和描述性文字。谷歌翻译API翻译质量公认较高但国内访问需要特殊网络环境且API不是完全免费有少量免费额度超出收费。如果你能稳定访问可以作为质量补充。DeepL API翻译质量尤其是对欧洲语言有时比谷歌更优但价格昂贵免费额度很少。除非你对某款游戏的翻译质量有极致要求且不差钱否则不推荐新手使用。内置离线引擎XAT集成了一个基于LibreTranslate的离线引擎但需要自己部署服务器对新手极不友好翻译质量也一般不推荐。我的实操心得是对于绝大多数国内玩家只配置百度翻译API就完全足够了。它的速度和稳定性是游戏体验的保证。如果某些句子百度翻译得特别别扭你可以后期在生成的缓存文件里手动修改这个我们后面会讲。3. 零基础实战从环境搭建到首次翻译理论说完了我们开始动手。请严格按照步骤操作我会解释每一步的目的。3.1 第一步准备游戏与安装BepInEx选择目标游戏找一个你想汉化、且确定是Unity引擎开发的游戏。小型独立游戏、视觉小说成功率最高。可以在游戏商店页面或社区查看技术信息。安装BepInEx前往BepInEx的GitHub发布页下载对应你游戏系统通常是BepInEx_x64_版本号.zip的稳定版本。将压缩包内的所有文件解压到你的游戏根目录。什么是游戏根目录就是包含游戏主程序.exe文件的那个文件夹。解压后目录里应该会看到BepInEx、doorstop_config.ini、winhttp.dll等文件和文件夹。首次运行生成框架直接双击运行游戏的主程序.exe。游戏可能会闪退或者正常启动但很快关闭。这是正常现象因为BepInEx第一次运行需要初始化。关闭游戏后回到游戏根目录你会发现BepInEx文件夹里多了plugins、config等子文件夹。这说明BepInEx安装成功了。踩坑提示有些游戏有反作弊或特殊的启动器比如通过Steam启动。如果通过BepInEx启动失败可以尝试将游戏主程序.exe创建一个快捷方式在快捷方式的“目标”路径末尾添加启动参数如--doorstop-enable true然后用这个快捷方式启动。具体参数需要参考BepInEx的文档和游戏社区。3.2 第二步安装XUnity.AutoTranslator插件获取插件前往XUnity.AutoTranslator的GitHub发布页或可靠的Mod发布站下载最新版本的XUnity.AutoTranslator-BepInEx-版本号.zip。安装插件将下载的压缩包解压。把解压后得到的BepInEx文件夹整体拖拽或合并到你的游戏根目录。Windows会提示“合并”或“替换”选择“是”。关键路径确保插件本体XUnity.AutoTranslator.dll最终位于游戏根目录\BepInEx\plugins文件夹内。3.3 第三步申请并配置百度翻译API这是最关键的一步决定了翻译功能能否工作。注册与登录打开百度翻译开放平台官网用百度账号登录。成为开发者在控制台完成实名认证个人开发者即可。创建应用在“管理控制台”找到“我的服务”-“通用翻译API”。点击“创建应用”。应用名称随便填比如“游戏汉化”。接入方式选“通用翻译API”。应用创建成功后在应用详情里你会看到“App ID”、“密钥”这两个关键信息。把它们记下来后面要用。免费额度默认开通后每月有200万字符的免费额度。对于游戏汉化来说除非是文本量巨大的游戏且你反复重装否则根本用不完。3.4 第四步配置XUnity.AutoTranslator找到配置文件打开游戏根目录下的BepInEx\config文件夹找到AutoTranslatorConfig.ini文件用记事本或任何文本编辑器推荐VSCode、Notepad打开它。核心配置修改这个文件内容很多但新手只需关注和修改以下几处[General] ; 语言设置从什么语言翻译成什么语言 FromLanguageen ; 原文语言游戏通常是en英语也可能是ja日语 ToLanguagezh ; 目标语言我们填zh中文 [Service] ; 指定使用的翻译服务端点 EndpointBaiduTranslate ; 将这里改为 BaiduTranslate [BaiduTranslate] ; 百度翻译的配置 AppId你的AppId ; 替换成你申请到的App ID Secret你的密钥 ; 替换成你申请到的密钥其他实用设置可选但推荐[General] ; 是否启用翻译 EnableTranslationtrue ; 是否在屏幕左上角显示翻译状态调试用熟悉后可关闭 EnableDebuggingfalse ; 最大翻译字符长度超长的文本如整本书可能不翻译 MaxCharactersPerTranslation500 [Behaviour] ; 是否自动翻译UI文本 AutoTranslateUItrue ; 是否自动翻译游戏内的“故事”文本 AutoTranslateStorytrue ; 翻译速度延迟毫秒防止请求过快被API限制 DelaySeconds1.0保存配置文件。3.5 第五步运行游戏与验证再次通过游戏主程序或你创建的快捷方式启动游戏。如果一切配置正确游戏启动时在屏幕的左上角或左下角可能会短暂出现几行白色的XAT加载日志如果EnableDebuggingtrue。这是正常现象。进入游戏主菜单或开始新游戏当你遇到第一段英文文本时比如“New Game”, “Load”, “Options”可能会观察到轻微的卡顿半秒到一秒然后文本就变成了中文这就是XAT在第一次请求翻译。之后你再看到相同的菜单翻译就会瞬间完成读取缓存。恭喜至此你已经完成了最基本的实时汉化搭建。游戏里的大部分文本应该都已经变成了中文。你可以畅玩一阵让XAT积累更多的翻译缓存。4. 进阶调优提升翻译质量与使用体验基础功能实现后我们来看看如何让它变得更好用。直接使用机器翻译难免会有生硬、错误甚至滑稽的翻译。XAT提供了强大的工具来修正这些问题。4.1 翻译缓存与手动修正XAT的所有翻译结果都会以文本文件的形式存储在BepInEx\Translation文件夹中。文件名通常和游戏资源有关你可能看到很多.txt文件。找到需要修正的翻译在游戏过程中如果你发现某句翻译非常离谱比如人名、地名、特殊术语被乱翻记下这句英文原文或者它奇怪的中文翻译。定位缓存文件游戏运行一段时间后关闭游戏。打开Translation文件夹用文本编辑器如Notepad的“在文件中查找”功能搜索你记下的原文或错误译文。很快你就能定位到具体的行。手动修正缓存文件的格式通常是原文译文。例如你看到PlayerName播放器名称这翻译得很怪 你可以直接修改为PlayerName玩家名称或者如果“PlayerName”是一个不应该翻译的专有名词你可以让它保持原样PlayerNamePlayerName修正生效保存文件重新启动游戏。XAT会优先使用你手动修改过的译文从此以后这个条目就会显示为你修正的内容。实操心得不要试图一次性修正所有翻译。最好的方式是边玩边改。遇到特别出戏的翻译就暂停一下去缓存文件里改掉。这样积累下来你的游戏汉化质量会越来越高甚至比一些粗制滥造的官方汉化还要好。4.2 使用正则表达式进行批量处理机器翻译会对游戏里的所有文本一视同仁但这会带来问题。比如游戏内的代码变量{item_001}、颜色代码colorred或者换行符\n如果被送去翻译要么翻译失败要么会得到一堆乱码。XAT的配置文件中[Regex]章节就是用来处理这个的。它可以在文本送去翻译前先“保护”住这些特殊符号。[Regex] ; 匹配并保护类似 {variable_name} 的变量 (.*?)\{([^}])\}(.*?)$1{#}$3 ; 匹配并保护类似 colorred 的富文本标签 (.*?)\([^])\(.*?)$1{$2}$3 ; 匹配并保护换行符 \n (.*?)\\n(.*?)$1{} $2上面配置的意思是在翻译前把{variable_name}替换成{#}把colorred替换成{colorred}把\n替换成{}。等翻译完成后再反向替换回来。这样翻译引擎就只会处理纯文本部分了。如何配置对于新手你可以直接从我上面提供的示例开始。将这几行添加到你的AutoTranslatorConfig.ini文件的[Regex]部分如果没有就自己创建。这能解决大部分游戏文本的格式污染问题。4.3 配置多个翻译引擎与后备策略如果你对翻译质量有更高要求可以配置多个引擎。XAT支持设置一个主引擎和多个后备引擎。[Service] ; 主引擎 EndpointBaiduTranslate ; 后备引擎用逗号分隔 FallbackEndpointGoogleTranslate, DeepLTranslate [BaiduTranslate] AppId你的ID Secret你的密钥 [GoogleTranslate] ; 需要配置API密钥等 ... [DeepLTranslate] ; 需要配置API密钥等 ...工作逻辑当主引擎百度翻译失败如网络超时、额度用尽时XAT会自动尝试下一个后备引擎。但请注意这并不能解决“翻译质量不佳”的问题它只解决“翻译失败”的问题。要提升质量主要还是靠手动修正缓存。4.4 管理翻译缓存与词汇表随着游戏进程Translation文件夹会越来越大。你可以做以下管理导出词汇表XAT有一个实验性功能可以导出所有翻译对。对于想制作静态汉化补丁的进阶用户这是一个起点。清理无用缓存如果你卸载了某个游戏Mod其相关的文本可能还留在缓存里。可以安全地删除整个Translation文件夹XAT会在下次游戏时重新生成。但你会丢失所有手动修正记录所以删除前请备份你修改过的文件。共享缓存理论上你可以把自己精心修正过的缓存文件分享给其他使用相同游戏和相同版本XAT的玩家他们放入自己的Translation文件夹就能获得和你一样的优质汉化。这形成了社区汉化的新思路。5. 常见问题排查与解决方案实录即使按照指南操作也可能会遇到问题。这里我整理了最常见的一些坑和解决办法。5.1 游戏启动崩溃或XAT不加载症状游戏无法启动或启动后左上角没有XAT的调试信息游戏文本也无任何变化。排查步骤检查BepInEx安装确认winhttp.dll和doorstop_config.ini文件在游戏根目录且BepInEx\core文件夹里有BepInEx.Core.dll等文件。运行游戏看BepInEx\LogOutput.log是否有日志生成。如果没有说明BepInEx没加载成功。检查游戏架构确认你下载的BepInEx版本x86/x64与你的游戏程序架构匹配。现在大部分游戏是64位x64。检查插件位置确认XUnity.AutoTranslator.dll在BepInEx\plugins文件夹内而不是在子文件夹里。查看日志打开BepInEx\LogOutput.log搜索“AutoTranslator”或“XUnity”看是否有加载错误信息。这是最直接的排错手段。5.2 翻译不工作文本仍是英文症状游戏能运行XAT日志显示已加载但文本没有任何变化。排查步骤打开调试在配置文件中设置EnableDebuggingtrue重启游戏。观察屏幕角落是否有绿色的“[T]”或翻译状态提示。如果有提示但没翻译可能是API问题。检查API配置99%的问题出在这里反复核对AutoTranslatorConfig.ini中的AppId和Secret确保没有多余空格没有填错段落是在[BaiduTranslate]下。百度翻译的密钥是大小写敏感的。检查网络确保你的电脑能正常访问百度翻译API。可以暂时关闭防火墙和杀毒软件试试。检查语言设置确认FromLanguage和ToLanguage设置正确。比如游戏是日文你却配了FromLanguageen那自然不会翻译。5.3 翻译结果乱码或包含奇怪符号症状翻译出的中文是乱码如“锟斤拷”或者里面混着{}、{#}这样的符号。解决方案乱码通常是编码问题。确保你的配置文件(.ini)和缓存文件(.txt)都以UTF-8 without BOM的编码保存。Notepad可以很方便地转换编码。残留符号说明正则表达式替换还原失败了。检查你的[Regex]配置是否正确特别是正则表达式的语法。一个错误的规则会导致整个还原链条断裂。如果你不确定可以暂时注释掉在行首加;所有[Regex]规则试试。5.4 翻译速度慢或游戏卡顿症状每次出现新文本游戏都会明显卡顿一下。解决方案利用缓存这是核心。首次翻译慢是正常的因为要请求网络。玩一段时间后常见文本都有了缓存速度会极大提升。调整延迟适当增加DelaySeconds的值比如从1.0改为2.0降低向翻译服务器发送请求的频率可以缓解卡顿也给服务器减轻压力。检查网络网络延迟高也会导致卡顿。确保网络连接稳定。5.5 特定类型文本不翻译症状菜单翻译了但物品描述、任务文本还是英文。可能原因与解决文本类型过滤检查配置中AutoTranslateUI、AutoTranslateStory等选项是否都已设为true。文本渲染方式有些游戏使用TextMeshProTMP或自定义的文本渲染组件可能需要额外的插件或XAT的特定版本才能支持。可以查阅XAT的官方文档或相关游戏社区看是否有针对该游戏的特别说明或兼容性补丁。图片文字XAT只能翻译内存中的文本字符串。如果文字是直接做在图片里的图像UI那么任何翻译插件都无能为力。这类游戏只能等待传统的图片汉化补丁。经过以上步骤你应该已经从完全新手变成了一个能自主安装、配置并优化XUnity.AutoTranslator的玩家了。这个工具的魅力在于它把游戏汉化的主动权交还给了玩家自己。不再需要苦等汉化组不再担心更新导致补丁失效。你需要的只是一点点的动手能力和耐心。最后一个小技巧对于你特别喜爱的游戏在手动修正缓存文件到比较完善的程度后记得定期备份这个Translation文件夹。这样即使未来游戏更新或者你重装了系统也能快速恢复高质量的汉化体验。