工具分享#
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 作內容識別可能會存在錯誤,仍然需要手動校驗。
部署#
- 源碼執行
-
首先,將倉庫克隆到本地。
-
將
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保持同步。