介绍了如何使用python脚本通过大模型API进行批量文本翻译。本文是对之前Xliff自动录入脚本的补充。
这个脚本是对之前在Xcode上使用的Xliff自动录入脚本的补充。
关于如何在Xcode中使用自动导出,批量录入、导入国际化文案,详见:iOS国际化—xliff自动录入脚本
0.背景介绍
iOS国际化—xliff自动录入脚本在项目中已经稳定运行了4年,之所以使用云端Excle管理翻译文案是考虑到兼容Android端和Web端等。之前每个版本都需要产品同学归纳新增的文案,并通过翻译引擎手动翻译后填写到Excel中。
随着GPT的诞生,翻译工具就切换成了GPT,翻译的更地道,更人性化。
但是每次通过对话框翻译,拿到结果再粘贴到Excel中明显效率有提升空间,并且随着DeepSeek的爆火,发现DeepSeek R1的翻译还会考虑当地风俗习惯等,并且能看到思考过程。所以直接通过脚本调用API效率会更高。
1.需求分析
因为是对之前脚本的补充,那么参考之前脚本逻辑。在xliff.py中存在一个Excel语种标题和Xcode中多语言Bundle Name缩写的映射关系。
Localization.sh中声明需要处理那些语种。
那么直接读取本地Excel并批量翻译后生成一个新Excel的方案会更好。这样结合iOS国际化—xliff自动录入脚本。整个流程都可以实现自动化。
并且之前尝试使用分隔符批量请求并且让大模型返回json格式的翻译结果,明显会增加大模型幻觉,造成翻译结果错位等。
2.脚本实现
DeepSeek的API可以在官网购买,但是推荐第三方平台接入,毕竟可以白嫖(不是…)。我使用的是siliconflow平台。注册送2000w token。欢迎大家通过我的邀请链接注册,或者填写邀请码:gdaCaOmO
GPT的话是通过微软Azure平台接入,详见:Quickstart: Get started using GPT-35-Turbo and GPT-4 with Azure OpenAI Service
下面是整个脚本的实现,默认使用GPT进行翻译,也可以指定DeepSeek,支持修改DeepSeek的模型。模型名称详见:Siliconflow API。注意DeepSeek和GPT的payload格式不一样。
需要提前在本地配置API Key并防止秘钥泄露。
#这种方式只在当前Terminal中生效 如何全局生效请结合自己操作系统 自行操作! |
依赖包安装可以使用pip进行安装
pip install openpyxl requests openai |
脚本实现:
# -*- coding: utf-8 -*- |
使用方式
#gpt |
脚本逻辑也比较简单,配置了最大token数,支持分批次批量请求,也考虑了翻译失败等情况。翻译填充后会修改Excel文本框颜色,方便人工检测。可以根据各APP不同请求修改system_prompt介绍,让翻译更准确。
脚本Git地址:https://gitlab.corp.youdao.com/liwc/excelToXilff/-/blob/master/autoTranslate.py
测试Excel地址:https://gitlab.corp.youdao.com/liwc/excelToXilff/-/blob/master/test1.xlsx
3.效果演示
DeepSeek演示:
GPT效果演示:
这个脚本也可以单独使用,只做本地Excel批量翻译,也可以串联起iOS国际化—xliff自动录入脚本实现Xcode国际化文案录入纯自动化。具体过程不再阐述。
串联效果演示:(可以做到全自动调用 这里我分开是为了检查翻译文本质量 后续觉得翻译稳定 就可以全自动化)
使用过程有任何问题 欢迎联系和交流:李伟灿
网易有道 国际APP产品部
liweican#corp.netease.com
感谢您的阅读~