Auto-i18n-使用ChatGPT的自动多语言翻译工具

工具分享

​ Auto-i18n是一个使用 ChatGPT 自动将 Markdown 文件批量翻译为多语言的工具。

特点

Auto-i18n 实现了博客文章 i18n (Internationalization) 的完全自动化。仅需将博文推送至 GitHub 仓库，即可借助 GitHub Actions 实现自动转译为多种语言，或者下载源码执行。目前支持英语、西班牙语和阿拉伯语，其他语言只需要根据源码格式修改成对应的即可。

⚠️注意：最好手动校验翻译无误再发布。

⚠️再注意：如果提供的文章不完整，有可能会出现 ChatGPT 翻译并自动续写完整的情况，也不知道这是 BUG 还是 Feature。(HaHaHa)

补充

如果 Markdown 中包含 Front Matter，将保留 Front Matter 的原始内容。Front Matter 部分参数翻译的功能项目正在开发中。

这里我个人增加了一些Prompts，可以翻译 Front Matter 中指定参数的内容：

Prompts："Suppose the following text is a JSON format. The value of the key for {param} translates into {target_lang} and other key are not changed. maintain the original markdown format.\n\n\n{text}\n\n\nTranslated into {target_lang}:"

相关函数为translate_front_matter, 可参考auto-translater.py。

在翻译文件函数translate_file中增加front_matter_text = translate_front_matter(front_matter_text, lang, 'title')即可只翻译参数为 title 的内容，其他保持原语言。

⚠️当然，直接交给 ChatGPT 作内容识别可能会存在错误，仍然需要手动校验。

部署

源码执行

首先，将仓库克隆到本地。

将env_template.py重命名为env.py，并填写 ChatGPT API 信息。

运行pip install openai PyYAML安装必要依赖。

运行auto-translater程序，它会自动处理测试目录testdir/to-translate下的所有 Markdown 文件，批量翻译为英语、西班牙语、阿拉伯语。

Github Actions 执行

可以在自己项目仓库下创建.github/workflows/ci.yml，当检测到 GitHub 仓库更新后，可以使用 GitHub Actions 自动进行翻译处理，并自动 commit 回原仓库。

ci.yml的内容可参考模板：ci_template.yml

在仓库的Settings-Secrets and variables-Repository secrets中添加两个 secrets：CHATGPT_API_BASE和CHATGPT_API_KEY，并在程序auto-translater.py中将import env语句注释掉。

平台

全平台支持

Github Actions