工具分享#
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
声明#
本文仅作为工具分享记录。
本文与HBlog保持同步。