针对博德之门(BG1, BG2, EE, EET, etc.) 的英文 mod,将其自动翻译为中文,并调整好文件编码。
一般而言,汉化中文 mod 需要将输出文件编码设置为utf-8或者gb18030(GBK)。取决于具体的 mod 实现(不同的 mod 在编码上有所不同,需要自己测试)。大多情况下,设置成utf-8即可。
代码的基本思路是,将文件中的 ~xxx~ 内容解析出来,先对其专有名词进行识别,或直接翻译,或替换为 token 然后走 API 接口调用。对于替换为 token 的,在翻译后还要进行还原操作。
- 批量翻译。提供批量翻译(
batch_convert)和逐行翻译(convert)2种接口。建议用batch_convert。使用batch_convert时,需要在配置文件中使用google。 - 对 mod 的 .tra 文件进行翻译。支持单文件翻译、批量文件翻译。
- 支持有道、google 的翻译API。
- 支持对文件自动转码。gb18030, utf-8 等。
- 支持断点恢复。失败之后重新执行时,从失败文件的失败位置开始执行。
- 支持多语言翻译(默认英译汉)。
- 限流保护。限制请求API的频率,保证翻译的稳定性(代价是牺牲性能)。
- 支持 tra 文件中中英文混杂情况下,跳过中文部分。这种场景一般来说发生在一个对已有汉化的 mod 的更新。
- 支持 namespace,兼容多个翻译任务
- 初次执行前,需要执行项目初始化脚本 init_shell.sh,输入
namespace,自动创建程序执行需要的目录和文件。namespace的作用是为多个翻译任务做区分,进行环境隔离。一般而言,一个mod的翻译任务只需要一个namespace即可。 - 修改配置文件 appconf.ini
- 将待汉化 .tra 文件放入 tra/ 目录下。
- 执行需要的程序(如 main.py, simple_main.py, debug.py 等)
main.py 对 tra/ 目录下的文件进行翻译。
python3 main.py -p batch # 批量翻译模式。效率很高。翻译源必须配置为 google
python3 main.py -p batch # 逐行翻译模式。效率较低。
simple_main.py 可翻译单个文件、或者一个 file_list。并且,还支持断点重续功能,从失败位置继续翻译,而不是从头开始。
# 例子
python3 simple_main.py -st 1 -ed 10 # 翻译 tra/ 目录下,文件序号从1到10的 tra 文件
对于一个庞大的 tra 文件(例如500行以上),建议对文件进行分片。程序会将指定文件分割成多个文件,然后进行管理、翻译,以及最后进行手动合并。
# 分片
python3 sep_and_combine.py -s -name 文件名 -f 起始行数 -size 100 # 将文件切分成5个文件,每个文件100个 `@语块`。
# 分片的文件会放在 tra/ 目录当中,文件名格式为 dia_1.tra, dia_2.tra, ...
# 也可以简单写为
python3 sep_and_combine.py -s -name 文件名 # 默认从0行开始,以100行为单位切分文件
# 合并
python3 sep_and_combine.py -c -down 分片文件的序号下界 -up 分片文件的序号上界 -out dialog.tra
# 可以简单写为
python3 sep_and_combine.py -c # 默认合并 output/ 目录下的所有文件,输出为 dialog.tra
重新执行命令即可。代码做了断点记录,可从失败位置继续翻译,不会重复翻译。
目前支持的翻译工具
有道google
可在 appconf.ini 中配置选择哪个API。默认是有道翻译。(建议使用google)
有道需要自己申请appkey。
参数介绍
- use: 表示使用哪个API进行翻译。可选项 youdao, google
- appKey: appKey
- appSecret: appSecret
- proxy: 代理地址
- namespace: 命名空间,根据mod进行区分。一般来说,即mod名。
见其他介绍
- 失败重试
- 支持多语言翻译配置
- 龙矛围攻 BG1EE:SoD Siege of Dragonspear v2.6.6
- 索劳芬罗曼史 Solaufein v2.04
- 未竟的事业 Unfinished Business v29
- 威尔逊编年史 Wilson Chronicles
- 漫长的旅途 The Longer Road v2.06
- 巅峰之战 Ascension v2.023
- 艾德温罗曼史 Edwin Romance v3.1
- 伊文德拉 Evandra NPC mod
- 爱蒙罗曼史 Imoen Romance
- v4.1