banner
hughie

hughie

热爱技术的小菜鸟, 记录一下所学所感

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 作内容识别可能会存在错误,仍然需要手动校验。

部署#

  1. 源码执行
  • 首先,将仓库克隆到本地。

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

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

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

  1. Github Actions 执行
  • 可以在自己项目仓库下创建.github/workflows/ci.yml,当检测到 GitHub 仓库更新后,可以使用 GitHub Actions 自动进行翻译处理,并自动 commit 回原仓库。
  • ci.yml的内容可参考模板:ci_template.yml
  • 在仓库的Settings-Secrets and variables-Repository secrets中添加两个 secrets:CHATGPT_API_BASECHATGPT_API_KEY,并在程序auto-translater.py中将import env语句注释掉。

平台#

全平台支持

Github Actions


声明#

本文仅作为工具分享记录。

本文与HBlog保持同步。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。