| 前往下载页面 |
|---|
|
自动检测 Unity 游戏类型(Mono / IL2CPP),一键部署 BepInEx + XUnity.AutoTranslator 翻译框架 接入 OpenAI / Claude / Gemini / DeepSeek / 通义千问 / 智谱 GLM / Kimi 等多家大模型 API,支持多提供商负载均衡,多阶段翻译管线 + 术语审查确保翻译质量 内置 llama.cpp,自动检测 GPU 并选择最优后端(CUDA / Vulkan / CPU),支持一键下载和运行本地模型 从 Unity 扫描并替换游戏内 TextMesh Pro 字体,内置 SDF 字体生成器(支持 GB2312/GBK/CJK 等字符集),解决中文乱码/缺字问题 |
添加、组织游戏,自动获取封面/图标/背景图(支持 Steam、SteamGridDB、网络搜索) 自定义翻译/禁翻术语,AI 自动提取专有名词,多阶段翻译管线(自然翻译→占位符→强制修正)确保术语准确 手动编辑和校对翻译结果,支持导入/导出翻译文件 读取 BepInEx 运行日志,AI 智能诊断插件错误和兼容性问题 配置可视化编辑 · 脚本标签清理 · 插件包导出/导入 · 在线更新 · 系统托盘 · 深色/浅色主题 · 镜像加速 |
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11(x64) |
| 运行时 | 无需额外安装(发布版为自包含应用) |
| 本地大模型 | NVIDIA 显卡需要 CUDA 12.4+;AMD/Intel 显卡需支持 Vulkan;也可使用 CPU 推理 |
| 开发环境 | .NET 10 SDK(Preview)、Node.js 20.19+ 或 22.12+ |
启动应用后,在游戏库界面点击 「添加游戏」 按钮,选择游戏所在文件夹。
- 工具会自动检测游戏的 Unity 引擎类型(Mono / IL2CPP)和架构(x86 / x64)
- 如果游戏目录中存在
steam_appid.txt,会自动从 Steam 获取游戏名称和封面图 - 也可以使用 「自动检测添加」 方式,工具会扫描所选文件夹中的所有 Unity 游戏并批量添加
提示:添加游戏后,可以在游戏详情页上传自定义封面图、图标和背景图,或从 SteamGridDB / 网络搜索中选取。
进入游戏详情页,点击 「安装」 按钮即可一键安装翻译框架。
- 安装过程会依次完成:下载框架文件 → 部署 BepInEx → 部署 XUnity.AutoTranslator → 配置翻译端点 → 写入配置文件
- 每个步骤的状态实时显示在安装进度面板中
- 安装完成后,工具会自动创建备份清单,后续可以通过 「卸载」 按钮完整还原游戏
提示:如果游戏已经安装了 BepInEx(如安装了其他 Mod),工具会检测到并跳过 BepInEx 安装步骤,只部署翻译相关组件。
进入 「设置」 页面,在 AI 翻译部分配置翻译提供商:
- 选择一个 AI 提供商(如 OpenAI、DeepSeek、Claude 等)
- 填入 API Key(密钥会使用 DPAPI 加密存储)
- 选择或填入要使用的模型名称(可点击「获取模型列表」自动拉取可用模型)
- 配置 API 基础 URL(如使用代理或自部署服务)
- 点击 「测试」 验证配置是否正确
负载均衡:可以同时添加多个提供商,系统会自动将翻译请求分散到各个提供商,提高翻译速度。当某个提供商出错时,自动切换到其他可用提供商。
提示:DeepSeek 和通义千问性价比高且对中文翻译效果好。如果追求翻译质量,可以选择 Claude 或 GPT-4o。
如果不想使用云端 API 或希望完全离线翻译,可以在 「本地大模型」 页面配置:
- 查看 GPU 信息 — 工具会自动检测你的显卡型号和显存大小
- 从 模型目录 中选择合适的模型(会根据你的显存大小标注适合的模型)
- 点击 「下载」(支持暂停/续传),等待下载完成
- 调整 GPU 层数 和 上下文长度(更多 GPU 层 = 更快但占用更多显存)
- 点击 「启动」 运行本地模型服务
- 启动后可以点击 「测试」 验证模型是否正常工作
本地模式启动后,AI 翻译会自动使用本地模型,无需额外配置提供商。
提示:如果你已有 GGUF 格式的模型文件,可以使用 「添加自有模型」 直接添加,无需重新下载。
安装翻译框架并配置好 AI 翻译后,直接启动游戏即可开始翻译:
- 游戏运行时,界面中出现的文本会自动被 XUnity.AutoTranslator 捕获
- 捕获的文本通过翻译端点(
LLMTranslate.dll)发送到本工具的 API - AI 翻译完成后,译文实时回显到游戏界面中
- 翻译过的文本会被缓存,下次遇到相同文本时直接使用缓存结果
在 「AI 翻译」 页面可以实时查看翻译统计信息,包括总翻译数、成功率、当前队列等。
对于文本量大的游戏(如 RPG、视觉小说),可以在游戏启动前进行预翻译:
- 在游戏详情页点击 「资产提取」 — 工具会扫描游戏的
.assets和 AssetBundle 文件,提取所有可翻译文本 - 提取完成后,查看提取到的文本数量和内容
- 点击 「预翻译」 — 开始批量翻译所有提取的文本
- 翻译完成后,结果会自动写入 XUnity.AutoTranslator 的缓存文件
下次启动游戏时,已翻译的文本直接从缓存加载,无需等待 AI 实时翻译。
提示:预翻译可以随时暂停/取消。已翻译的部分会保留,下次继续时自动跳过已完成的条目。
如果游戏翻译后出现方块字(「口口口」)或中文缺字,说明游戏使用的 TextMesh Pro 字体不包含中文字符,需要进行字体替换:
- 在游戏详情页进入 「字体替换」 功能
- 点击 「扫描」 — 工具会扫描游戏中所有的 TMP 字体资产
- 查看扫描结果,确认需要替换的字体
- 选择替换方式:
- 内置 TMP 字体:使用预置的中文 TMP 字体(自动匹配 Unity 版本)
- 自定义字体上传:上传自己的 TMP 字体文件
- 点击 「替换」 完成字体替换
使用 SDF 字体生成器(如果需要自定义字体):
- 进入 「字体生成器」 页面
- 上传一个 TTF 或 OTF 中文字体文件(最大 50 MB)
- 选择字符集(GB2312 覆盖常用中文,GBK 覆盖更多,CJK 完整覆盖所有 CJK 字符)
- 选择渲染模式(SDFAA 兼顾质量和体积)
- 点击 「生成」,等待完成后下载或直接安装到游戏中
提示:替换字体前会自动备份原始文件,可以随时通过 「还原」 恢复。
利用统一术语系统提高翻译一致性和准确性:
- 在游戏详情页进入 「术语编辑器」 页面
- 添加翻译术语:输入原文和对应的译文(如
Dragonborn→龙裔),类型选择「翻译」 - 添加禁翻术语:添加不需要翻译的词汇(如英文技能名
Fireball、物品代码ITEM_001),类型选择「禁翻」 - 设置术语属性:每条术语可独立配置分类(角色/地点/物品等)、优先级、大小写敏感、精确匹配、正则表达式
- AI 自动提取:在 AI 翻译设置中开启「自动提取术语」,AI 会在翻译过程中自动识别并添加专有名词
- 编写游戏描述:在 「AI 描述」 中编写游戏的背景介绍,帮助 AI 理解游戏世界观
多阶段翻译管线确保术语准确:
- 阶段 1(自然翻译):将术语以结构化提示词发送给 AI,不使用占位符,依赖 AI 理解
- 阶段 2(占位符替换):对阶段 1 未正确翻译的术语,使用
{{G_x}}/{{DNT_x}}占位符强制替换 - 阶段 3(强制修正):对仍未通过术语审查的文本进行最终修正
提示:术语按游戏独立维护,每个游戏最多支持 10000 条术语。
对 AI 翻译结果进行人工校对:
- 在游戏详情页进入 「翻译编辑器」
- 浏览所有已翻译的条目,找到需要修改的译文
- 直接编辑译文内容,保存后立即生效
- 可以将翻译结果 导出 为文件,或 导入 外部翻译文件
将完整的翻译配置打包分享给其他玩家:
- 在游戏详情页找到 「插件包」 功能
- 点击 「导出」 — 工具会将翻译框架、翻译端点、术语表、翻译缓存等打包为 ZIP 文件
- 将 ZIP 文件分享给其他玩家
- 其他玩家在相同游戏的详情页使用 「导入」 即可一键还原所有翻译配置
提示:导入时会自动覆盖已有的翻译配置,建议在导入前先备份。
| 提供商 | 说明 |
|---|---|
| OpenAI | GPT-4o / GPT-4o mini 等 |
| Claude | Anthropic Claude 系列 |
| Gemini | Google Gemini 系列 |
| DeepSeek | DeepSeek-V3 / DeepSeek-R1 等 |
| 通义千问 | 阿里云 Qwen 系列 |
| 智谱 GLM | 智谱 AI 大模型 |
| Kimi | Moonshot AI 大模型 |
| 本地模型 | 通过内置 llama.cpp 运行(Qwen2.5 等) |
| 自定义 | 任何兼容 OpenAI API 格式的服务 |
Q:翻译速度很慢怎么办?
- 配置多个 AI 提供商实现负载均衡,翻译请求会自动分散到各提供商
- 使用预翻译功能提前批量翻译,避免游戏中实时等待
- 如果使用本地大模型,可以增加 GPU 层数提高推理速度
Q:游戏翻译后出现方块字 / 乱码 / 缺字?
- 这是因为游戏使用的 TextMesh Pro 字体不包含中文字符
- 使用「字体替换」功能替换为中文 TMP 字体即可解决
- 如果内置字体不满足需求,可以使用「字体生成器」从任意中文字体生成 SDF 字体
Q:游戏无法启动或闪退?
- 使用「BepInEx 日志分析」功能,AI 会自动诊断问题原因
- 常见原因包括:BepInEx 版本不兼容、其他 Mod 冲突等
- 如果问题持续,可以通过「卸载」功能完整还原游戏文件
Q:API Key 安全吗?
- 所有 API 密钥使用 Windows DPAPI 加密存储在本地,不会上传到任何服务器
- 程序只会将密钥发送到你配置的 AI 提供商 API 地址
Q:支持哪些 Unity 游戏?
- 理论上支持所有使用 Unity 引擎的 Windows 游戏(Mono 和 IL2CPP 均支持)
- 部分使用特殊加密或反作弊的游戏可能不兼容
Q:如何更新工具?
- 在「设置」页面检查更新,支持在线增量更新,更新器会自动处理文件替换和重启
- 可在设置中开启「接收预发布版本」以获取最新功能
- 也可以手动下载最新版本覆盖安装
XUnityToolkit 会自动检测游戏的 Unity 引擎类型和架构,为你选择正确的框架版本:
- Mono 游戏:安装 BepInEx 5 + XUnity.AutoTranslator
- IL2CPP 游戏:安装 BepInEx 6 BE + XUnity.AutoTranslator
- 架构检测:自动识别 x86 / x64,选择对应版本
- 安全备份:安装前自动创建备份清单,支持完整卸载还原,不留残余文件
- 进度追踪:安装过程中每个步骤的状态实时显示,包括下载、解压、配置写入等
安装完成后,工具会自动配置好翻译端点(LLMTranslate.dll),使游戏中的文本能够自动发送到 AI 进行翻译。
支持接入多家主流大模型 API,提供灵活的翻译配置:
- 多提供商:同时配置多个 API 提供商(如 OpenAI + DeepSeek),系统会自动进行负载均衡,提高翻译速度和稳定性
- 实时翻译:游戏运行时,文本自动发送到 AI 翻译并实时回显到游戏界面
- 批量翻译:预翻译模式下支持并发批量翻译,通过信号量控制并发数
- 翻译统计:实时显示翻译进度、成功率、错误信息等统计数据
- 多阶段翻译管线:自然翻译 → 占位符替换 → 强制修正,逐阶段处理术语,最大化翻译质量
- 术语审查:翻译完成后自动验证术语是否被正确应用,未通过的文本进入下一阶段重翻
- 脚本标签清理:自动剥离游戏特定的指令代码(如
tk,N,text),避免干扰翻译;支持按游戏配置自定义规则和全局预设 - 自定义系统提示词:可自定义翻译提示词,包含 7 条默认规则,支持
{from}/{to}语言变量替换 - API Key 加密:所有 API 密钥使用 Windows DPAPI 加密存储,保障安全
无需云端 API,完全离线运行 AI 翻译:
- 自动 GPU 检测:通过 DXGI(主要方式)和 WMI(备用方式)检测显卡型号和显存大小,自动匹配合适的模型
- 多后端支持:根据显卡类型自动选择最优推理后端
- NVIDIA 显卡:CUDA 后端(需 CUDA 12.4+)
- AMD / Intel 显卡:Vulkan 后端
- 无独立显卡:CPU 推理
- 模型管理:内置模型目录,支持一键下载、暂停、续传;也可手动添加已有的 GGUF 模型文件
- 参数调节:可配置 GPU 层数、上下文长度等参数,在性能和显存占用之间取得平衡
- 内置 llama.cpp:预编译的 llama-server 二进制文件作为 ZIP 捆绑,首次使用时自动解压
无需启动游戏即可批量翻译游戏文本,实现「启动即汉化」:
- 资产提取:使用 AssetsTools.NET 解析 Unity
.assets文件和 AssetBundle,提取所有可翻译文本字符串 - 智能过滤:自动过滤纯数字、路径、代码等非自然语言文本
- 批量预翻译:将提取的文本批量发送给 AI 翻译,翻译结果直接写入 XUnity.AutoTranslator 的缓存文件
- 进度控制:支持暂停/取消预翻译任务,进度实时显示
- 缓存复用:已翻译的文本会被缓存,游戏启动时直接加载,无需重复翻译
- 预翻译缓存优化:懒加载缓存,自动生成正则翻译文件(
r:标准正则和sr:分组正则),最大化缓存命中率 - 脚本标签清理:自动剥离游戏特定指令代码,确保提取的文本干净可翻译
适用场景:对于文本量大的游戏(如 RPG、视觉小说),预翻译可以避免游戏中等待翻译的延迟,提供更流畅的体验。
解决中文翻译后游戏内「口口口」乱码或缺字问题:
- 字体扫描:自动扫描游戏的
.assets和 AssetBundle 文件,找出所有 TextMesh Pro(TMP)字体资产 - 一键替换:将游戏内的 TMP 字体替换为包含中文字符的版本,保留原有 PPtr 引用关系
- 内置 TMP 字体:根据游戏的 Unity 版本自动匹配预置的中文 TMP 字体
- 自定义字体上传:支持上传自己的 TMP 字体文件用于替换
- SDF 字体生成器:从 TTF/OTF 字体文件生成 TMP 兼容的 SDF 字体
- 支持多种渲染模式:SDFAA / SDF8 / SDF16 / SDF32
- 内置字符集:GB2312、GBK、CJK 常用、CJK 完整、日文等
- 自定义字符集:从 TXT 文件或 XUnity 翻译文件中提取所需字符
- 多图集支持,自动图集打包
- 安全还原:替换前自动备份原始字体资产,支持一键还原
- Addressables 兼容:自动清除 Addressables CRC 校验,避免替换后加载失败
集中管理所有已添加的 Unity 游戏:
- 自动检测:选择游戏文件夹后,自动识别 Unity 引擎版本、游戏类型(Mono/IL2CPP)、架构(x86/x64)
- 封面与图标:自动从游戏可执行文件提取图标;支持从 Steam、SteamGridDB、网络搜索获取封面图、背景图
- 自定义外观:可上传自定义封面图、图标和背景图
- 快捷操作:一键打开游戏文件夹、启动游戏
- 游戏重命名:支持修改游戏显示名称
提高翻译一致性,让 AI 准确翻译游戏专有名词:
- 统一术语系统:翻译术语和禁翻术语合并管理,每条术语支持类型(翻译/禁翻)、分类(角色/地点/物品等)、优先级、大小写敏感、精确匹配、正则表达式等属性
- 优先级排序:术语按优先级(高优先)和文本长度(长优先)排序,确保重要术语和长术语优先匹配,避免子串冲突
- AI 自动提取:开启后,AI 在翻译过程中自动识别和积累新的专有名词
- 术语审查:翻译完成后自动检查术语是否被正确应用,未通过的文本进入下一翻译阶段
- 多阶段管线:阶段 1(自然翻译)→ 阶段 2(占位符
{{G_x}}/{{DNT_x}}替换)→ 阶段 3(强制修正),每个阶段只处理上一阶段未解决的文本 - AI 游戏描述:为每个游戏编写背景描述,帮助 AI 理解游戏的世界观和语境,提高翻译质量
- 术语上限:单个游戏最多 10000 条术语
手动编辑和校对翻译结果:
- 浏览翻译:查看游戏的所有翻译条目(原文 → 译文)
- 在线编辑:直接修改译文,保存后立即生效
- 导入/导出:支持导入外部翻译文件,或将翻译结果导出为标准格式,方便与他人分享
快速诊断游戏运行中的插件问题:
- 日志读取:读取游戏目录下的
BepInEx/LogOutput.log,支持与运行中的游戏共享文件访问 - AI 诊断:将日志发送给 AI 进行智能分析,自动识别插件加载失败、版本不兼容、运行时错误等常见问题,并给出解决建议
- 日志下载:支持下载完整日志文件
- 配置可视化编辑:图形化编辑 XUnity.AutoTranslator 的 INI 配置文件,无需手动修改文本
- 原始配置编辑:直接编辑 INI 原始文本(上限 512 KB),满足高级用户需求
- 脚本标签清理:按游戏配置规则,自动剥离游戏特定的指令代码(如
tk,N,text、%%,N,text,#BTN),内置全局版本化预设并支持自动更新 - 插件包导出/导入:将游戏的翻译配置(框架 + 翻译端点 + 术语表 + 翻译缓存)打包为 ZIP,方便分享给其他玩家;导入时自动还原
- 在线更新:基于 GitHub Releases 的差分增量更新,自动下载变更的组件;
Updater.exe(AOT 编译,无运行时依赖)负责文件替换和重启;支持回滚;可选接收预发布版本 - 系统托盘:最小化到系统托盘运行,翻译状态通知
- 深色/浅色主题:跟随系统或手动切换
- 镜像加速:内置 GitHub 镜像加速选项,解决国内下载慢的问题
# 克隆仓库
git clone https://github.com/HanFengRuYue/XUnityToolkit-WebUI.git
cd XUnityToolkit-WebUI
# 一键发布(下载捆绑资产 + 构建前端 + 发布后端)
.\build.ps1
# 跳过资产下载(使用已缓存的)
.\build.ps1 -SkipDownload
# 构建产物位于 Release/win-x64/需要同时运行后端和前端开发服务器:
# 终端 1:启动后端
dotnet run --project XUnityToolkit-WebUI/XUnityToolkit-WebUI.csproj
# 终端 2:启动前端开发服务器(带热更新)
cd XUnityToolkit-Vue && npm install && npm run dev前端开发服务器会自动将 /api 和 /hubs 请求代理到后端。
XUnityToolkit-WebUI/
├── XUnityToolkit-WebUI/ # ASP.NET Core 后端
│ ├── Endpoints/ # Minimal API 端点定义
│ ├── Services/ # 业务逻辑服务(30+ 个服务)
│ ├── Models/ # 数据模型
│ ├── Hubs/ # SignalR Hub(实时通信)
│ └── Resources/ # 嵌入资源(classdata.tpk)
├── XUnityToolkit-Vue/ # Vue 3 前端
│ └── src/
│ ├── api/ # API 客户端和类型定义
│ ├── components/ # UI 组件(按功能分组)
│ ├── composables/ # 组合式函数
│ ├── stores/ # Pinia 状态管理
│ ├── views/ # 页面视图
│ └── router/ # 路由配置
├── TranslatorEndpoint/ # XUnity 自定义翻译端点(net35 DLL)
├── Updater/ # 在线更新器(AOT 编译,无运行时依赖)
├── Installer/ # MSI 安装包(WiX v5)
├── bundled/ # 捆绑资产(构建时下载)
│ ├── bepinex5/ # BepInEx 5(Mono 游戏)
│ ├── bepinex6/ # BepInEx 6 BE(IL2CPP 游戏)
│ ├── xunity/ # XUnity.AutoTranslator
│ ├── llama/ # llama.cpp 预编译二进制(CUDA / Vulkan / CPU)
│ └── fonts/ # TextMesh Pro 预置字体
└── build.ps1 # 一键构建脚本
| 层级 | 技术 |
|---|---|
| 后端 | ASP.NET Core Minimal API (.NET 10.0) |
| 前端 | Vue 3 + TypeScript + Naive UI + Pinia |
| 实时通信 | SignalR |
| 构建工具 | Vite 7 |
| 资产解析 | AssetsTools.NET 3.0.4 |
| 字体生成 | FreeType(渲染)+ Felzenszwalb EDT(SDF 生成) |
| 本地推理 | llama.cpp(CUDA / Vulkan / CPU) |
| 翻译端点 | .NET Framework 3.5 DLL(LLMTranslate.dll) |
| 安装包 | WiX Toolset v5(MSI) |
| 在线更新 | 差分下载 + 原子替换(Updater.exe, AOT) |
| GPU 检测 | DXGI(主)+ WMI(备) |
| 数据加密 | DPAPI(Windows 数据保护 API) |
应用数据统一存储在 %AppData%\XUnityToolkit\(可通过 AppData:Root 配置项覆盖)。
| 路径 | 说明 |
|---|---|
library.json |
游戏库数据 |
settings.json |
应用设置(API 密钥经 DPAPI 加密) |
local-llm-settings.json |
本地大模型设置 |
backups/ |
游戏备份清单(用于卸载还原) |
cache/ |
封面、图标、背景图缓存 |
glossaries/ |
按游戏维护的统一术语表(翻译 + 禁翻) |
script-tags/ |
按游戏维护的脚本标签清理规则 |
font-backups/ |
字体替换备份 |
custom-fonts/ |
用户上传的自定义字体 |
generated-fonts/ |
SDF 字体生成器输出 |
logs/ |
应用日志 |
llama/ |
llama.cpp 解压后的可执行文件 |
models/ |
下载的本地模型文件 |
update-staging/ |
在线更新暂存区 |
# 构建后端(自动构建前端)
dotnet build XUnityToolkit-WebUI/XUnityToolkit-WebUI.csproj
# 跳过前端构建
dotnet build XUnityToolkit-WebUI/XUnityToolkit-WebUI.csproj -p:SkipFrontendBuild=true
# 构建 TranslatorEndpoint DLL
dotnet build TranslatorEndpoint/TranslatorEndpoint.csproj -c Release
# 前端类型检查
cd XUnityToolkit-Vue && npx vue-tsc --noEmit
# 一键发布(win-x64)
.\build.ps1
# 跳过资产下载
.\build.ps1 -SkipDownload本项目基于 MIT License 开源。
如果这个项目对你有帮助,欢迎给一个 Star ⭐
