1743 字
9 分钟
通用 AI翻译教程
GalTransl
/
GalTransl
Waiting for api.github.com...
00K
0K
0K
Waiting...

GalTransl 简易教程#

AI翻译原理#

游戏资源(文本、脚本、图片、视频等)被各种引擎以不同方式打包。翻译的核心思路是“偷梁换柱”:提取文本,翻译后再替换回去。因此,游戏翻译基本流程为:解包、翻译和打包

游戏脚本文件通常混合了显示文本和程序代码。AI翻译不能直接处理这种混合文件,否则极可能将程序代码也翻译,破坏游戏功能。

解决方案是:

  • 精确提取需要翻译的文本部分
  • 转换为中间格式(如GalTransl使用JSON,Translator++使用表格)
  • 只对提取的文本进行AI翻译
  • 将译文精确回注到原始位置

完整流程:

  1. 使用Garbro解包游戏文件
  2. 从脚本文件中提取需翻译内容到中间格式
  3. 配置API和参数
  4. 执行翻译过程
  5. 将译文回注到原始文件
  6. 重新打包为游戏可用格式

这种“提取-翻译-回注”策略是现代游戏AI翻译的基础工作原理。

一.准备阶段#

1. 各个AI和API现状分析 (截至2025年2月)#

AI翻译模型可分为以下几个档次:

分级模型备注
一梯队官转Claude,中转Claude不包括逆向
二梯队GPT4o,DeepSeek-R1性价比较高
三梯队Qwen,Grok等适合简单场景
本地队sakura(14B)模型太小,质量一般

详细分析请查看:https://galge.top/posts/29792#comment_445180

一些支持Azure分组的API链接:

价格参考示例: 以一款文本量约3M的Galgame为例,常见API价格估算如下(请以此价格参考,以免被高价中介坑骗):

  • DeepSeek 官网(夜间价): 约4元/M,总计约 12元
  • 标准 GPT-4o: 约10元/M,总计约 30元
  • Azure 分组 GPT-4o (0.1倍率): 约1元/M,总计约 3元

提示: 有能力的话,可以寻找支持Azure分组的API网站(但目前中转网AI质量和API稳定性下降严重)

二. 实操流程#

(以KRKR(全称KiriKiri)引擎为例)

1. 解包游戏#

使用GARbro mod提取ks等文本文件。

2. 提取JSON#

  1. 打开GalTransl文件夹(根目录)
  2. 找到并运行useful_tools\GalTransl_DumpInjector\GalTransl_DumpInjector.exe
  3. 在工具界面中:
    • 选择”日文脚本文件夹”(GARbro提取的脚本文件夹)
    • 选择”日文JSON保存文件夹”(推荐使用SampleProject/gt_input)
    • 点击”提取脚本到JSON”按钮开始提取 提取 json

3. 设置翻译器#

  1. 在根目录找到SampleProject文件夹
  2. config.inc.yaml重命名为config.yaml
  3. 编辑配置文件,主要关注以下内容:
backendSpecific:
  OpenAI-Compatible: # (ForGal/gpt4/r1模板)OpenAI API兼容接口通用
    tokens:
      - token: sk-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        endpoint: https://api.openai.com # 请求地址,使用转发或第三方API时修改
    rewriteModelName: "gpt-4o" # 设置自定义的模型名称,用于调用Claude/Deepseek等模型

  filePlugin: file_galtransl_json # 用于支持更多格式,字幕file_subtitle_srt_lrc_vtt,小说file_epub_epub或file_plaintext_txt,mtooljson用file_i18n_json

  workersPerProject: 16 # 同时翻译n个文件(单个文件要多线程时需开启splitFile)

注意: 配置文件中冒号后必须保留空格!

4. 开始翻译#

  1. 在项目目录中运行run.bat
  2. 将编辑好的配置文件拖入弹出的界面并按回车
  3. 选择翻译模型后再次回车,开始翻译

翻译时间取决于线程数和API速度,单线程可能需要10+小时,而百线程可能只需10分钟。

5. 导出译文#

翻译完成后:

  1. 打开GalTransl_DumpInjector.exe
  2. 设置以下选项:
    • “日文脚本文件夹”(原始脚本位置)
    • “日文JSON保存文件夹”(SampleProject/gt_input)
    • “译文JSON保存文件夹”(SampleProject/gt_output)
    • “译文脚本保存文件夹”(选择导出位置)
  3. 点击”注入JSON回脚本”完成导出 导出译文

6. 打包#

  • 普通的KRKR引擎游戏:使用xp3_upk打包,直接将文件夹拖到工具上即可
  • 需要保留目录结构的KRKR引擎游戏:使用arc_conv打包
  • 其他加密的KRKR引擎:使用KrkrExtract等工具处理

三. 其他引擎的游戏(进阶)#

1. 引擎分析#

使用GARbro获取引擎名称,然后在GitHub和搜索引擎上查找相关资料。针对不同引擎,需考虑以下问题:

引擎分析决策树:

1. 该游戏的文本是否加密?
   - 否 → 直接提取翻译
   - 是 → 寻找文本解密和重加密工具
     - 有工具 → 解密后翻译,翻译完重加密
     - 没工具 → 考虑学习逆向或放弃
   
2. 该引擎是否有打包工具?
   - 有 → 使用对应工具
   - 没有 → 是否支持免封包读取?
     - 支持 → 使用MoleBox封包
     - 不支持 → 考虑学习逆向或放弃

2. 编码和启动问题#

当GARbro提取的脚本是Shift-JIS编码时,需要考虑编码兼容性问题:

  1. 首先尝试转换为Unicode编码(UTF-16LE、UTF-8、GBK),测试游戏是否能正常显示
  2. 如果只有Shift-JIS编码能正常工作,有两种解决方案:
    • 方案A(难):通过逆向工程修改游戏引擎支持GBK编码
    • 方案B(易):使用汉字→日文替换表(hanzi2kanji_table.txt)结合特殊字体实现显示

编码替换原理:

这是示例文本(UTF-8) → 這是示例文本(Shift-JIS) → 这是示例文本(视觉呈现)

3. 打包示例#

不同引擎需要不同的打包方法:

  • Qlie/未加密KRKR引擎:使用arc_conv工具
    arc_conv.exe --pack xp3 patch patch.xp3
    arc_conv.exe --pack qlie data data8.pack

对于其他引擎,必须回到分析步骤,寻找合适的打包工具。

四. 翻译质量问题#

关于翻译质量问题、缓存管理与修正,请参考GalTransl官方文档:

重要建议:GPT字典功能对翻译质量影响显著。强烈建议在开始翻译前至少设置好角色人名和关键词汇。

五. 常见工具一览#

工具名称用途特点和功能
GARbro拆包工具功能强大,能识别大多数Gal引擎,状态栏会显示引擎名称
EmEditor文本编码处理可批量选择打开文件的编码,确保文件编码转化正确
Notepad—文本批量处理支持批处理和单文件批量替换
Python多功能脚本工具可用于脚本提取、文本处理、自动化任务、数据转换等
GalTransl_DumpInjectorJSON提取工具GalTransl自带的图形化工具,简单易用

六. 免责声明#

  1. 本教程仅介绍GalTransl自带的JSON提取器(GalTransl_DumpInjector)及推荐的Python提取方法,其他提取方式不做保证。
  2. 本教程不对任何因使用导致的游戏或系统问题负责。
  3. 对于需要逆向工程的部分,请确保您了解相关法律风险和技术难度。

七. 视频实例#

通用 AI翻译教程
https://lublog.netlify.app/posts/trans2/
作者
凛游Blog
发布于
2025-03-17
许可协议
CC BY-NC-SA 4.0