最近两天想找点mod玩,在资源整理那里找到了不少没有汉化的mod。

我本人是个外语苦手,硬啃的话吃不太惯。正好我对翻译的要求也不算很高,现在的ai翻译的水平已经能满足我的要求了。(话语通顺,逻辑正常)就花了点时间做了个python脚本,调用阿里的deepseek-v3模型进行翻译。

先放一张翻译效果图。想玩生肉mod,外语水平又不是很强,可以看看翻译效果,看看能不能接受。

快来注册!

*即使不注册, DCC也会展示所有知识性和分享内容

https://disk.monika.love/s/jWmTb

脚本发在了莫盘。

我使用的依赖:openai==1.61.1 tenacity==9.0.0 tqdm==4.67.1。版本不是必须这几个的,只是我恰好用了这几个版本,然后又没有测试其他版本。

python在3.12.8和3.13.2的环境下都使用过,可以正常运行。其他版本也可以尝试使用,我没做测试,不能保证能跑起来。

使用准备:一个兼容openai的大模型api密钥。

我准备的是阿里的deepseek-v3模型,实际上r1模型效果更好,但由于推理模型消耗的token更多,所有没有使用。需要的可以自己调用,r1模型实测效果更好。

获取方式,去提供大模型服务的公司网页注册,一般都会有免费送的token额度。正常来说翻译一些文本是够了。例如阿里送的是deepseek-v3和r1模型的各1000万token(一个标点符号,一个数字,一个词都会使用一个token)。以及自己几乎所有模型每个100万token。

为免广告嫌疑。不提供注册教程。

使用方式脚本里有部分描述。也发到这里。并且在下面重点再提一下。

最重要的几个东西。一个是API KEY,去提供大模型服务的官网获得。免费额度用完了要收费。不打算花钱的话,注意下免费token数量,别浪费。也别攒过期了。

脚本默认采用的是环境变量传递API_KEY。如果不会也可以直接把key粘贴到脚本中,但不推荐。如实在无法设置环境变量成功,可以在此处加上如下图所示内容,在 “” 内填入密钥。(图片上的密钥是我乱写的)

第二个是提示词,也就是用红框圈住的部分,这部分是给大模型的“设定”,让他扮演一个日语翻译的角色,并给出一些要求。

根据自己的需要,可以自行修改,增添或者减少要求,来让大模型完成指定的任务。例如可以让他从翻译日语,变成翻译英语,法语等等支持的语言。或者让他不进行翻译,而是润色文本等。

另外,翻译前最好处理下文本,去除所需翻译的文本外的内容。我这里偷了下懒,让他只翻译日文部分,跳过不能翻译的部分。

但是最后结果中,还是有部分其他不需要翻译的文本被翻译过了。甚至还有部分文本保持原样,没有顺利完成翻译。大模型还是有一些随机性的,mod翻译结束后,手动处理下文本,恢复格式才能重新封包使用。

  • #7
  • 已编辑

依赖你可以pip freeze > requirements.txt一下

然后, 你apikey没打码

    脚本翻译是针对目录的,也就是在input_directory输入的是目录,而非指定的文件。脚本会检测目录下所有非隐藏的文件,读取后切成30行每块,每块会发送一个请求到api。然后等待api返回信息,所有块都返回完毕后,把每块返回的内容按顺序拼接起来。在输出目录创建同名文件保存。(若该目录存在同名文件,则会跳过该文件)

    简单说,上面一行填需要翻译的文件在的目录,下面一行填输出的位置,然后启动脚本就行了,脚本会自动扫描并翻译目录下所有文件。输出的文件与输入的文件同名。

    最后,发一些翻译失败的案例。大模型回复的内容不是稳定的,有时候就是不知道那里有问题。这些可能还需要再次处理,或者干脆去找网页翻译。

    这是一个很典型同时输出了原文和译文两者的情况。

    这里是中间有段落未翻译的情况。

    这里还出现了翻译成繁体的情况。

    差点忘记了

    这里是api的地址,默认是阿里的,如果有需要可以自行更改。

    #7 Edge 演示用的api_key是乱编的。

    我用的环境比较乱,里面有一些无关的包。

    这是它的requirements.txt文件,内容比较少。就不放文件了。

    今天抽空手动处理翻译好的文件的时候,有点厌倦了反复对比恢复格式。做了个小工具来简化流程。

    具体来说,需要有mod文件的译文和原文。它会检查两者各有多少个被“”围住的字符串,也就是一般情况需要翻译的部分,如果数量相同,就会提取译文所有在“”内的文本,按顺序放在原文的位置上。第一个译文到第一块原文的位置,依次类推。

    在译文稍加处理后(去掉可能存在的重复段落,或者“”被改为「」这种有相似功能的符号),基本上可以正常运行。一次性恢复原格式。

    注意,若译文顺序颠倒错乱,就算使用了也还是颠倒错乱的。但一般大模型返回的文件应该不会有这种问题。大多数情况只是缩进和换行错了。

    使用方式为终端:python rpy格式修复.py 原文件 翻译文件 输出文件。记得加路径。

    https://disk.monika.love/s/pb7f9

    最后做一个小推荐,手动对比文本的时候,如果使用vscode可以快捷键ctrl+shift+P,然后输入compare来对照原文。

    如图所示,有改动的地方会标出来。更容易发现问题。

    无人输入