警告:本文由機器翻譯生成,可能導致質量不佳或信息有誤,請謹慎閱讀!
緣起
本想給我的博客添加i18n相關內容,於是想找一些Markdown文檔翻譯器(因為Hugo使用Markdown文檔發布博客)或者相關的接口,發現相關內容很少,而且不符合心意和預期。於是只能藉鑑前人的經驗自己改裝和開發了一個Markdown文檔的翻譯器,具體的內容都在下面了。項目鏈接在文末。
簡介
Free Markdown Translator是一款基於Google Translate API 的免費、開源的Markdown文檔(以下簡稱md)翻譯器,能夠將你的md翻譯成任意種語言。
功能:
- 將md翻譯成任意種語言
- 不會破壞md原有的格式,同時支持自定義翻譯規則
- 支持多線程翻譯,同時加入了負載均衡機制,能夠有效地利用谷歌翻譯接口並且避免文檔翻譯失敗的發生
- 支持一次程序運行翻譯多個文件夾、一個文件夾下的多個文件,增加了便捷性
- 支持在機器翻譯的md中添加警告語
Google Translate API參考VictorZhang2014/free-google-translate: Free Google Translator API 免費的Google翻譯 (github.com),本程序參考如何使用translate.google.cn免費Google翻譯網站翻譯整篇Markdown文檔, V2修改版 (knightli.com)
安裝與運行
- 將倉庫克隆或將源代碼下載到本地
|
|
- 安裝軟件包
PyExecJS
|
|
- 進入代碼目錄,運行代碼
|
|
用法
|
|
參數位置放置待翻譯的文件夾,可以添加多個文件夾,程序會自動按順序翻譯每個文件夾下的每個在配置文件中指定的文件。
例如,若指定的目標語言為英語(en)、日本語(ja),則readme.md
文件會被翻譯到同文件夾下的readme.en.md
,readme.ja.md
。
配置
請在config.py
中進行配置
insert_warnings
: 控制是否在文章前面添加機器翻譯的Warningsrc_language
: 指定源語言,auto表示由谷歌自動識別warnings_mapping
: 配置目標語言的warningdest_langs
: 配置目標語言,可以手動指定目標語言,也可以直接使用warnings_mapping
中配置的目標語言,按照定義順序翻譯skipped_regexs
: 指定要跳過翻譯的字符的正則表達式detect_filenames
: 文件目錄下需要翻譯的md文檔的名稱front_matter_transparent_keys
: markdown的Front Matter中不用翻譯的部分front_matter_key_value_keys
: Front Matter中需要以Key-Value形式翻譯的部分front_matter_key_value_array_keys
: Front Matter中以Key-Value—Arrays形式翻譯
目標語言配置詳情
由於使用的是谷歌翻譯接口,所以目標語言需要使用ISO 639-1語言代碼,具體可以參考List of ISO 639-1 codes - Wikipedia,下面給出一些常用的語言代碼
語言名稱 | 該語言自稱 | 語言代碼 |
---|---|---|
Chinese | 漢語、汉语、华语 | zh |
English | English | en |
Japanese | 日本語 | ja |
Spanish | Español | es |
Russian | русский | ru |
French | français | fr |
German | Deutsch | de |
Arabic | العربية | ar |
Hindi | हिन्दी | hi |
Portuguese | Português | pt |
Korean | 한국어/韓國語, 朝鮮말/조선말 | ko |