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:" 假設以下文字是 JSON 格式。鍵{param}的值翻譯為 {target_lang},其他鍵不變。保持原始的 markdown 格式。\n\n\n {text}\n\n\n 翻譯為 {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保持同步。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。