Unity游戏实时翻译插件XUnity.AutoTranslator配置全攻略

1. 项目概述:为什么我们需要为Unity游戏配置智能翻译?

如果你是一个狂热的单机游戏玩家,或者是一个独立游戏开发者,那么你肯定遇到过这样的困境:一款心仪的游戏,因为语言不通而无法畅玩;或者你精心制作的游戏,因为语言壁垒而难以触达全球玩家。语言,这个看似简单的障碍,却实实在在地影响着无数玩家的体验和开发者的收入。今天要聊的,就是解决这个痛点的利器——XUnity.AutoTranslator。

简单来说,XUnity.AutoTranslator(下文简称XUA)是一个运行在Unity游戏引擎环境下的插件(通常通过BepInEx等Mod框架加载)。它的核心功能是“劫持”游戏运行时渲染到屏幕上的文本,将其发送到指定的在线翻译服务(如Google Translate、DeepL、百度翻译等),获取翻译结果后,再实时替换回游戏界面。整个过程对玩家而言几乎是“无感”的,游戏体验流畅,仿佛游戏原生就支持你的母语。

这不仅仅是“有翻译”和“没翻译”的区别。一个配置得当的XUA,能实现近乎完美的“本地化”体验:对话、物品描述、任务提示、UI按钮,所有你能看到的文字都被智能地转换。这对于那些只有日文、英文等单一语言版本,但拥有庞大非母语玩家群体的“小作坊”游戏或独立游戏来说,无疑是雪中送炭。它降低了玩家的入门门槛,也为开发者提供了一个观察哪些语言区玩家活跃的间接渠道(虽然是通过第三方翻译插件的使用情况)。

我最初接触XUA是为了玩一款小众的日式RPG,官方迟迟不出中文。在经历了初期各种乱码、崩溃、翻译延迟的折磨后,我花了大量时间研究其配置逻辑。我发现,网上虽然有不少教程,但大多停留在“能用”的层面,关于如何“好用”、“稳定”、“智能”的深度配置指南却很少。这份指南,就是把我踩过的坑、总结出的经验,整合成一套清晰的、可复现的10步配置流程。无论你是想为自己“啃生肉”的玩家,还是想为社区制作翻译补丁的爱好者,这套方法都能帮你搭建一个高效可靠的实时翻译环境。

2. 核心思路与工具选型:为什么是XUnity.AutoTranslator?

在动手之前,我们得先搞清楚,实现Unity游戏实时翻译有哪些路可以走,以及为什么XUA是当前综合来看最优的选择。理解了这个,你才能明白后续每一个配置步骤的意义。

2.1 主流方案对比与XUA的优势

通常,为游戏添加翻译有以下几种思路:

  1. 官方补丁或社区汉化包:最理想的情况,直接替换游戏资源文件。优点是完美、稳定。缺点是严重依赖他人,更新慢,且对于大量小众游戏根本不存在。
  2. 外挂OCR翻译工具:如“团子翻译器”等,通过截图识别文字再翻译。优点是无须修改游戏,通用性强。缺点是依赖OCR准确率,有延迟,遮挡游戏画面,占用资源高,且无法翻译UI上非标准字体或特效文字。
  3. 内存注入式翻译:直接读取游戏内存中的文本数据。效率极高,延迟极低。但技术门槛高,需要针对每个游戏做逆向分析,不稳定,易被反作弊系统误杀。
  4. 文本钩子(Hook)翻译:这就是XUA采用的核心原理。它通过注入DLL,拦截Unity引擎用于渲染文本的特定函数(如Text组件的text属性设置),在文本被画到屏幕前将其截获、翻译、替换。

XUA的优势就在于它在“通用性”和“效率”之间取得了绝佳的平衡。它针对Unity引擎本身进行拦截,因此理论上支持所有使用Unity引擎且未做特殊混淆处理的游戏。它不像OCR那样有延迟和遮挡问题,也不像内存注入那样极端复杂。通过BepInEx等成熟的Mod加载框架,它能以相对安全、稳定的方式运行。

2.2 核心工具链解析:BepInEx与XUnity.AutoTranslator

我们的配置将围绕两个核心组件展开:

  • BepInEx:这是一个用于Unity游戏的通用插件加载器/框架。你可以把它理解为一个“地基”,它为各种Mod(包括XUA)提供了运行的环境、统一的加载方式和与游戏交互的API。几乎所有基于Unity的Mod都依赖它。我们的第一步永远是确保正确安装和配置BepInEx。
  • XUnity.AutoTranslator:这是实现翻译功能的本体插件。它本身又包含几个部分:
    • 核心插件(.dll):负责文本拦截和翻译流程控制。
    • 配置文件(AutoTranslatorConfig.ini):这是本指南的灵魂所在,所有智能化的行为都通过它来定义。
    • 缓存与词典文件:用于存储已翻译的文本,避免重复请求翻译服务,提升速度和稳定性。

工具选型理由:BepInEx是社区事实标准,兼容性最广,更新活跃。XUA是当前最成熟、功能最全面的Unity实时翻译插件,支持插件扩展(如更好的字体渲染)、多翻译服务备援等高级功能。选择它们,意味着你站在了巨人的肩膀上,遇到问题更容易找到解决方案。

注意:并非所有Unity游戏都能完美运行BepInEx和XUA。一些使用了高强度代码混淆、自定义Mono运行时或自带反篡改保护(如某些Denuvo加密或EAC反作弊)的游戏,可能会导致注入失败、游戏崩溃或被封禁。单机游戏通常风险较低,但对于任何带有在线多人模式或反作弊的游戏,请务必谨慎,最好在离线模式下使用。

3. 环境准备与基础安装:打下坚实的地基

万事开头难,但第一步走稳了,后面就顺了。这一步的目标是在你的游戏目录中,成功部署BepInEx和XUnity.AutoTranslator,并让游戏能正常启动。

3.1 获取与部署BepInEx

  1. 定位游戏根目录:在Steam库中右键游戏 -> “管理” -> “浏览本地文件”。这就是你的游戏根目录,后续所有操作都在此进行。
  2. 下载BepInEx:前往BepInEx的GitHub发布页。关键点在于选择正确的版本。通常你需要关注两点:
    • 游戏架构:大部分现代Unity游戏是x64(64位),少数老游戏是x86(32位)。你可以在游戏根目录查看主执行文件(.exe)的属性来确认。
    • Unity版本:BepInEx有针对不同Unity引擎版本的编译版。如果发布页提供了UnityIL2CPP版本,而你的游戏是使用IL2CPP后端编译的(近年来大部分Unity游戏都是),请优先选择此版本,兼容性更好。如果不确定,下载通用版(通常标注为BepInEx_x64_5.4.xx.x.zip)大多也能工作。
  3. 安装:将下载的ZIP包内所有文件解压到游戏根目录。你会看到新增了BepInEx文件夹、doorstop_config.iniwinhttp.dll等文件。这就完成了。

3.2 安装XUnity.AutoTranslator插件

  1. 下载插件:从GitHub或可靠的Mod发布站(如Nexus Mods)下载XUA。注意下载完整版本,它应该包含:
    • BepInEx/plugins/XUnity.AutoTranslator文件夹结构
    • 核心的XUnity.AutoTranslator.dll文件
    • 默认的AutoTranslatorConfig.ini配置文件
  2. 放置文件:将下载的插件文件,按照其原有的文件夹结构,合并到游戏根目录下的BepInEx文件夹中。通常是将其中的plugins文件夹复制并合并到游戏根目录的BepInEx文件夹里。
  3. 首次运行测试:启动游戏。如果一切正常,游戏启动时你应该能在命令行窗口(如果BepInEx配置了日志)或游戏根目录的BepInEx/LogOutput.log文件中看到BepInEx和XUA的加载日志。更直观的验证是,进入游戏后,屏幕上可能会短暂出现XUA的加载水印(取决于配置)。首次运行后,BepInEx文件夹内会生成更完整的目录,如configtranslations等。

实操心得

  • 如果游戏启动崩溃,首先检查BepInEx版本是否与游戏兼容。可以尝试更换BepInEx的版本(如从5.4降级到5.3)。
  • 确保没有杀毒软件或Windows Defender误删了winhttp.dll或BepInEx的核心dll文件。将它们加入白名单是常规操作。
  • 对于某些游戏,可能需要修改doorstop_config.ini中的targetAssembly路径,指向游戏真正的核心程序集。但这属于进阶问题,大部分游戏无需改动。

4. 核心配置文件深度解析:AutoTranslatorConfig.ini

安装只是让翻译器“能跑”,而配置才是让它“跑得好”的关键。AutoTranslatorConfig.ini文件位于BepInEx/config目录下,用任何文本编辑器(推荐Notepad++或VSCode)打开。我们来拆解其中最关键的几个部分。

4.1 基础设置与翻译服务配置

[General] Language = zh-CN ; 目标语言,zh-CN是简体中文,zh-TW是繁体中文,ja是日文,依此类推。 FromLanguage = ja ; 源语言(游戏原始语言)。如果设置为`auto`,则让翻译服务自动检测,但指定源语言能提高准确性和速度。 [Service] ; 这是核心,定义使用哪个翻译服务。 DefaultProvider = GoogleTranslate ; 备选:BaiduTranslate, DeepL, Yandex, ChatGPT等。 ; 以下是GoogleTranslate的配置示例(通常无需API密钥,但可能受网络限制) [GoogleTranslate] ; 无需额外配置,但需要稳定的网络连接。 ; 百度翻译配置示例(需要API账号,国内速度快且稳定) [BaiduTranslate] BaiduAppId = your_app_id BaiduAppSecret = your_app_secret ; 需要在百度翻译开放平台申请,有免费额度。

配置逻辑

  • Language/FromLanguage:明确指定能避免翻译服务将英文游戏文本误判为法语等,造成二次翻译的混乱。
  • 翻译服务选择
    • GoogleTranslate:通用性最好,支持语言多,但需要网络环境能够访问。
    • BaiduTranslate:国内用户首选,速度极快,免费额度足够个人使用,需要申请AppId和Secret。
    • DeepL:翻译质量,尤其是欧语系之间,公认较高,但免费版有限额。
    • ChatGPT:需要OpenAI API Key,成本高,但翻译风格可能更灵活、更“人性化”。
    • 建议策略:在[Service]节可以配置FallbackProviders,例如FallbackProviders = GoogleTranslate, BaiduTranslate。这样当首选服务失败时,会自动尝试下一个,极大增强稳定性。

4.2 文本处理与缓存机制

[TextProcessing] MaxCharactersPerTranslation = 500 ; 单次发送翻译的文本最大长度。过长会被分割。Google翻译约5000字符上限,但游戏内单句文本很少超500。 RegexFilters = ^\s*$, ^\d+$, ^[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]*$ ; 正则表达式过滤器。这里过滤纯空格、纯数字、纯符号文本,避免无意义的翻译请求。 ; 这是提升效率和减少API调用的关键! [Translation] ; 翻译缓存与离线词典 EnableTranslationCache = true ; 启用缓存,翻译过的文本会存到本地,下次直接使用,速度飞快。 EnableDictionary = true ; 启用自定义词典。你可以在`BepInEx/translations/字典名.txt`中手动添加词条,格式如`OriginalText=翻译文本`。 ; 对于游戏内专有名词(人名、地名、技能名),这是保证翻译一致性的神器。 AutoReplaceNewLines = false ; 是否自动替换换行符。有些游戏文本包含`\n`,翻译后可能丢失,根据情况调整。

实操心得

  • RegexFilters是神器:游戏UI中有大量无意义的数字(如血量值“100”)、符号(如“>>>>”)、空白文本。过滤它们能减少90%以上的无效翻译请求,让日志更干净,响应更迅速。你可以根据游戏日志慢慢完善这个过滤列表。
  • 善用词典:在游戏前期,打开日志文件(BepInEx/LogOutput.log,设置日志级别为Info),找到被翻译的原文。将那些翻译不准的专有名词手动添加到词典文件里。以后遇到相同的词,插件会优先使用你的翻译,体验瞬间提升。
  • 缓存的重要性:第一次玩,翻译是实时的,可能有延迟。玩过一段时间后,大部分文本都已缓存,再次遇到时几乎是瞬间显示,体验媲美原生。

5. 字体渲染与显示优化:解决乱码与排版问题

Unity游戏可能使用系统未内置的字体,导致翻译后的中文显示为方框(□□□)。这是配置XUA最常见也最棘手的问题之一。

5.1 字体配置详解

[Font] ; 字体配置是解决乱码的核心 OverrideFont = false ; 是否覆盖游戏原字体。如果为true,将使用下面指定的字体。 FontNames = Microsoft YaHei UI, SimHei, MS UI Gothic ; 字体名称列表,按优先级尝试加载。`Microsoft YaHei UI`(微软雅黑UI)是Windows系统高质量中文字体。 FontSize = 0 ; 字体大小,0表示不覆盖,使用游戏原大小。如果你觉得原版字体太小,可以设为比如`24`。 LineSpacing = 0 ; 行间距,0表示不覆盖。

为什么需要配置字体?Unity的Text组件在渲染时,会从指定的字体文件中查找对应字符的图形(glyph)。如果游戏自带的字体文件不包含中文字形,或者系统默认回退字体不包含,就会显示为方框。通过OverrideFont,我们强制让游戏使用一个已知包含完整中文字形的字体文件来渲染翻译后的文本。

5.2 高级字体解决方案:使用FontPatch插件

对于某些游戏,简单的OverrideFont可能无效,或者会导致UI错位。这时就需要更强大的工具——FontPatch插件(如XUnity.ResourceRedirector配合字体资源重定向)。

  1. 原理:它不只是在渲染时替换字体名,而是在游戏加载字体资源的那一刻,动态地将游戏请求的字体文件“偷梁换柱”成我们指定的、包含中日韩字符的字体文件(如DroidSansFallback.ttf,一个开源的全字符集字体)。
  2. 操作
    • 下载XUnity.ResourceRedirector插件,放入BepInEx/plugins
    • 将一个全字符集字体文件(如DroidSansFallback.ttf)放入BepInEx/translation文件夹(或插件指定的文件夹)。
    • 在配置文件中启用资源重定向,并指定字体映射规则。
  3. 优势:这种方法更底层,兼容性更好,能解决绝大多数乱码问题,且不影响原版UI布局。

避坑指南

  • 如果启用字体覆盖后,游戏崩溃或文本不显示,首先将OverrideFont设回false
  • 尝试不同的字体名称。SimHei(黑体)是几乎所有Windows系统都有的字体,兼容性最好,但可能较丑。
  • 终极方案:使用FontPatch类插件。这是目前解决Unity游戏字体问题最彻底的方法,几乎可以做到100%成功。

6. 翻译粒度与场景控制:让翻译更精准

不是所有文本都需要翻译,也不是所有时候都适合翻译。XUA提供了精细的控制选项。

6.1 按文本类型过滤

[TextProcessing] ; 接上文 IgnoreNumbers = true ; 忽略纯数字文本。 IgnoreSymbols = true ; 忽略纯符号文本。 SkipAlreadyTranslatedText = true ; 跳过游戏本身已包含的目标语言文本(比如游戏已有部分中文,则不再翻译)。 TranslateDialogue = true ; 翻译对话文本。 TranslateUI = true ; 翻译用户界面文本。 TranslateSystemMessages = false ; 是否翻译系统消息(如引擎错误信息),通常关闭。

6.2 按游戏场景控制

这是一个高级但非常有用的功能。例如,你不想在游戏主菜单、设置界面或者网络聊天框(如果游戏有)中启用翻译。

[Behaviour] ; 行为控制 EnableTranslation = true ; 总开关。 AutoTranslateOnTextChanged = true ; 文本改变时自动翻译。 TranslationDelay = 0.1 ; 翻译延迟(秒),防止文本快速变化时过于频繁请求。 ; 可以通过插件扩展或修改代码来实现基于场景名的翻译开关,但这需要一定的开发能力。 ; 一个取巧的办法是:对于不想翻译的特定UI,在词典中将其原文的翻译设置为原文本身,相当于“屏蔽”翻译。

配置逻辑:通过精细控制,你可以让翻译插件只在你关心的部分工作。例如,在快节奏的动作游戏中,你可能只翻译物品描述和任务日志,而不翻译实时战斗信息,以避免干扰。这需要通过观察游戏日志,识别不同文本的“特征”,然后通过正则表达式或词典进行精细化管理。

7. 性能调优与网络设置:保障流畅体验

实时翻译毕竟引入了额外的处理和网络请求,不当配置可能导致游戏卡顿或翻译延迟。

7.1 缓存与预翻译

[Performance] MaxCacheEntries = 10000 ; 内存中最大缓存条目数。设置太大会占用更多内存,太小会导致频繁读写硬盘。10000对于绝大多数游戏绰绰有余。 PreloadCacheOnStartup = false ; 启动时预加载缓存。如果缓存文件很大(几十MB),开启会导致游戏启动变慢。建议关闭,让插件按需加载。 MaxConcurrentTranslations = 2 ; 最大并发翻译请求数。增加此值可以加快大量新文本的首次翻译速度,但会给翻译API带来更大压力,可能触发限流。对于免费API,建议保持为1或2。

7.2 网络请求优化

[GoogleTranslate] ; 或其他服务节点下 ; 网络超时设置 RequestTimeout = 15 ; 单次请求超时时间(秒)。网络不好可以适当延长,但太长会导致游戏“假死”。 MaxRetries = 3 ; 请求失败后重试次数。 UseSSL = true ; 是否使用HTTPS。务必保持为true。

实操心得

  • 延迟感来源:首次翻译的延迟主要来自网络往返时间(RTT)。使用国内可高速访问的翻译服务(如百度)是根本解决方案。
  • 卡顿来源:大量文本同时触发翻译、并发数过高、或者正则过滤无效导致海量无效请求,都可能阻塞游戏主线程。优化RegexFilters和调整MaxConcurrentTranslations是关键。
  • 监控日志:定期查看BepInEx/LogOutput.log。如果看到大量“Failed to translate”或超时警告,就需要检查网络或调整重试参数。如果看到大量被过滤的文本,说明你的过滤规则正在高效工作。

8. 自定义词典与术语统一:打造专业级翻译

机器翻译再好,在游戏专有名词、技能名、特定文化梗面前也容易出错。自定义词典是提升翻译质量的决定性因素。

8.1 词典文件格式与放置

BepInEx/translations目录下,可以创建多个.txt词典文件。XUA会加载所有词典,后加载的会覆盖先加载的同名词条。 词典内容格式极其简单:

# 这是一个注释 Original Text=翻译后的文本 Player=玩家 Dragon's Breath=龙息术 “Hello, World!”=“你好,世界!”
  • 等号左边是游戏中的原始文本,大小写和空格必须完全匹配
  • 等号右边是你想要的翻译。
  • 支持包含空格和标点。

8.2 词典制作与管理技巧

  1. 如何收集词条

    • 游戏初期:开着日志玩游戏。所有被捕获的原文都会出现在日志中。将翻译错误的词条复制出来,整理到词典里。
    • 利用社区:对于热门游戏,往往有玩家共享的词典文件。这是一个很好的起点。
    • 提取游戏资源:高级用户可以使用AssetStudio等工具解包游戏资源,直接提取所有文本字符串进行批量翻译和整理。但这涉及逆向工程,需注意法律风险。
  2. 词典的优先级:XUA的翻译优先级是:内存缓存 > 自定义词典 > 在线翻译服务。这意味着,只要你在词典中定义了,就永远不会再去网上请求翻译,保证了速度和一致性。

  3. 处理动态文本:对于包含变量的文本,如“You have collected 10 gold.”,机器翻译可能没问题,但如果你想手动修正,词典条目需要写为You have collected {0} gold.=你收集了{0}枚金币。,保留占位符{0}

个人经验:为一个游戏构建一个完善的词典,是“能用”和“好用”的最大分水岭。我通常会为每个游戏建立一个独立的词典文件,并按照“角色名”、“地名”、“技能物品”、“常用对话”等进行分类(用多个txt文件或在一个文件内用注释分隔)。维护一个好的词典,其价值甚至超过选择哪个翻译引擎。

9. 高级技巧与插件生态

XUA有一个活跃的插件生态,可以扩展其功能。

9.1 常用辅助插件

  • XUnity.CommonXUnity.ResourceRedirector:如前所述,用于高级资源重定向,是解决字体、贴图等问题的终极方案。
  • ConfigurationManager:为BepInEx插件提供游戏内可视化配置界面。安装后,在游戏中按F1(默认)可以实时修改XUA等插件的配置参数,无需重启游戏,调试神器。
  • AutoTranslator的扩展插件:有些开发者会针对特定游戏或特定功能(如特殊字体渲染、文本提取)开发扩展插件,可以在Mod社区寻找。

9.2 正则表达式进阶应用

除了过滤无用文本,正则表达式还能实现更智能的替换。 例如,游戏中的伤害数字可能是“-125 Damage”。你不想翻译“Damage”,但想翻译前面的提示。可以这样过滤:

RegexFilters = ^-?\d+ Damage$

但更高级的做法是,在翻译,用正则进行后处理(这需要修改代码或寻找相关插件),将“-125 伤害”中的数字格式重新调整。不过,对于绝大多数用户,过滤掉它们就足够了。

9.3 处理特殊游戏类型

  • RPG/视觉小说:文本量大,词典至关重要。重点关注对话和物品描述。
  • 模拟经营/策略游戏:UI文本多且杂,需要精心设置RegexFilters过滤大量数据型文本。
  • 在线游戏极度谨慎。仅用于翻译UI静态文本,避免翻译任何玩家间通信内容,并确认游戏条款是否允许使用内存注入式插件,以防封号。

10. 全流程实战演练与问题排查

让我们以一个假设的游戏“FantasyQuest.exe”为例,从头到尾演练一遍。

10.1 完整配置步骤复盘

  1. 步骤零:备份。复制整个游戏文件夹,或至少备份BepInEx文件夹。
  2. 步骤一:部署BepInEx。下载BepInEx 5.4 x64通用版,解压至FantasyQuest游戏根目录。
  3. 步骤二:安装XUA。将XUA的plugins文件夹合并到FantasyQuest/BepInEx下。
  4. 步骤三:首次启动。运行FantasyQuest.exe。查看BepInEx/LogOutput.log,确认无红色错误,XUA插件加载成功。
  5. 步骤四:基础配置。编辑BepInEx/config/AutoTranslatorConfig.ini
    • 设置Language = zh-CN,FromLanguage = en
    • 设置DefaultProvider = BaiduTranslate,并填入正确的BaiduAppIdSecret
    • 启用缓存和词典:EnableTranslationCache = true,EnableDictionary = true
  6. 步骤五:字体配置。进入游戏,发现中文方框。设置OverrideFont = true,FontNames = Microsoft YaHei UI。重启游戏,检查是否解决。若未解决,准备使用FontPatch插件。
  7. 步骤六:性能与过滤。设置RegexFilters过滤纯数字和常见符号。设置MaxConcurrentTranslations = 2
  8. 步骤七:构建词典。游戏初期,边玩边查看日志,将“Sword”、“Healing Potion”等翻译不准确的词条加入BepInEx/translations/MyDict.txt
  9. 步骤八:精细调整。根据游戏类型,调整TranslateDialogueTranslateUI等开关。如果游戏内有不需要翻译的HUD,尝试在词典中将其原文翻译设为原文本身。
  10. 步骤九:享受游戏。玩一段时间后,缓存建立,词典完善,翻译体验将变得无比流畅。

10.2 常见问题排查速查表

问题现象可能原因解决方案
游戏启动崩溃1. BepInEx版本不兼容
2. 与其他Mod冲突
3. 杀毒软件拦截
1. 尝试更换BepInEx版本(如x86/x64, IL2CPP版)
2. 移除其他Mod单独测试XUA
3. 将游戏目录加入杀毒软件白名单
游戏正常但无翻译1. XUA插件未正确加载
2. 配置文件错误
3. 翻译服务无法连接
1. 检查LogOutput.log,确认XUA DLL已加载
2. 检查AutoTranslatorConfig.ini语法,特别是节标题[General]
3. 检查网络,或更换翻译服务(如从Google换为Baidu)
中文显示为方框 □□□1. 字体覆盖未启用或字体名错误
2. 游戏使用特殊字体渲染方式
1. 确认OverrideFont=true,尝试FontNames=SimHei
2. 安装并使用XUnity.ResourceRedirector等字体重定向插件
翻译延迟严重或卡顿1. 网络延迟高
2. 并发请求数过高
3. 未过滤无效文本,请求爆炸
1. 使用本地化翻译服务(如Baidu)
2. 降低MaxConcurrentTranslations为1
3. 优化RegexFilters,过滤数字、符号等
部分文本未被翻译1. 文本被正则过滤规则排除
2. 文本渲染方式特殊(如纹理图片)
1. 检查RegexFilters,是否过于激进
2. XUA只能Hook通过Unity UI Text或TextMeshPro渲染的文本,图片上的文字无法翻译
翻译结果错误或不一致1. 机器翻译本身误差
2. 专有名词未统一
1. 对于关键术语,使用自定义词典强制指定翻译
2. 维护和更新词典文件
修改配置后未生效1. 配置文件未保存
2. 需要重启游戏
3. 缓存未更新
1. 确认文件已保存
2. 大部分配置需重启游戏
3. 可尝试删除BepInEx/translation下的缓存文件(但会丢失已翻译内容)

最后一点体会:配置XUnity.AutoTranslator的过程,就像是在为游戏量身定制一套“实时本地化系统”。从最初的磕磕绊绊,到后来能游刃有余地解决字体、优化过滤、维护词典,这个过程本身也充满了成就感。它不仅仅是一个工具,更是一把钥匙,为你打开了无数原本因语言而关闭的游戏世界大门。耐心和细致是成功的关键,每当看到一个生硬的机翻被自己的词典修正得恰到好处时,那种愉悦感,不亚于在游戏中解开一个复杂的谜题。