中國的百度公司在人工智慧層面做的還算是蠻不錯的(雖然它的搜索一直以來為人所詬病),筆者經常在Linux下做一些工作,當有翻譯需求時不得不打開瀏覽器,進入百度翻譯官網去翻譯一些句子,這樣顯然是有些麻煩,我想如果百度翻譯肯提供一個API的話就好了,這樣我就能做一個在終端下調用API的小工具。
筆者嘗試登錄百度翻譯的開發者平台,發現百度翻譯果然提供了API,於是筆者便用Python腳本語言寫了一個命令行下的調用百度翻譯工具,將其命名為 bdtrans
雖然筆者是在Linux下寫的這個工具,但是其它平台也是支援的(前提是你的電腦上安裝了一個python3的解釋器),它所依賴的第三方包只有setuptools與prompt_toolkit.
你可以將其當作一個pyhton包,在自己的腳本文件中導入並使用它,或者在python解釋器中使用它,也可以將其完全當作一個命令行下的小工具,甚至啟動互動式的翻譯環境互動式翻譯句子,它也支援從文件中讀取翻譯內容,並將翻譯結果存儲進文件中去,下面筆者簡要介紹一下工具的使用。
安裝
你可以使用Python包管理工具來安裝它: pip install bdtrans
你也可以下載源碼包,解壓後運行安裝文件: python setup.py insatll
Github開源地址:https://github.com/zsimline/bdtrans
使用方式
首先,你應該去百度翻譯的官網上註冊一個賬戶,並按照官網上的指導並申請一個百度翻譯API的AppID與秘鑰。
當你首次嘗試導入bdtrans包,或者在命令行工具下使用它時,它將會指引你輸AppID、秘鑰、默認的翻譯規則等資訊,並在輸入完成後在你的用戶目錄下生成一個名為.bdtrans的配置文件,之後你就可以直接使用它而無需再次輸入AppID等相關資訊了。
需要注意的是,百度翻譯限制調用API的頻率為1s/次,所以請不要在1s內調用多次API
模組函數
trans(words, source_lang=None, target_lang=None, reverse=False)
作用:翻譯用戶給定的句子,輸出翻譯結果
參數 | 含義 |
---|---|
words | 你想要翻譯的句子 |
source_lang | 源語言程式碼(非必須) |
target_lang | 目標語言程式碼(非必須) |
reverse | 是否反轉源語言與目標語言 |
>>> import bdtrans >>> bdtrans.trans('Hello, boy!','en','zh') >>> 你好,男孩!
io_trans(input_file, output_file=None, quiet=False)
作用:從文件中讀取翻譯內容,如果指定了輸出文件,翻譯結果將被存儲到輸出文件中
參數 | 含義 |
---|---|
input_file | 輸入的文件名 |
output_file | 輸出的文件名 |
quiet | 是否關閉控制台輸出 |
set_lang(source_lang, target_lang)
作用:設置源語言程式碼與目標語言程式碼
參數 | 含義 |
---|---|
source_lang | 源語言程式碼 |
target_lang | 目標語言程式碼 |
save(file_name)
作用:保存翻譯結果到文件中
參數 | 含義 |
---|---|
file_name | 保存的文件名 |
reverse_lang()
作用:反轉源語言與目標語言
list_langs()
作用:列印目前支援的語言列表
display_rules
作用:顯示當前的語言翻譯規則
change_appid()
作用:按照嚮導改變配置文件中的AppID
change_lang()
作用:按照嚮導改變配置文件中的默認翻譯規則
initialize_app()
作用:按照嚮導初始化APP
命令行工具
可以直接在命令行下使用它,最重要的是你可以使用 “bdtrans -S” 進入互動式的翻譯環境。
bdtrans [選項] 待翻譯文本
選項
選項 | 含義 |
---|---|
-h, –help | 顯示幫助消息 |
-v, –version | 顯示程式版本 |
-l, –list | 列印語言列表 |
-S, –shell | 啟動互動式翻譯環境 |
-s code, –source code | 指定源語言 |
-t code, –target code | 指定目標語言 |
-i filename, –input filename | 指定輸入文件 |
-o filename, –output filename | 指定輸出文件 |
–init | 按照嚮導初始化APP |
–changeinfo | 改變配置文件中的AppID |
–changelang | 改變配置文件中的翻譯規則 |
交互環境下的選項
選項 | 含義 |
---|---|
/reve | 反轉源語言與目標語言 |
/rule | 顯示當前的翻譯規則 |
/list | 列印支援的語言列表 |
/help | 顯示幫助資訊 |
/quit | 退出交互環境 |
/save filename | 保存翻譯結果 |
/setlang source_lang target_lang | 設置源語言與目標語言 |
user@host:$ bdtrans 德瑪西亞萬歲 user@host:$ Long live Demasia user@host:$ bdtrans -t ara 德瑪西亞萬歲 user@host:$ فيفا دي مارسيا user@host:$ bdtrans -s zh 德瑪西亞萬歲 user@host:$ 不可以只指定源語言!
在交互環境下可以使用 =code 來臨時的指定目標語言,此時源語言將自動的被指定為auto, 例如 ” =zh hello world ”
>=th 你在地球嗑瓜子 คุณใช้เมล็ดแตงโมบนโลก >=jp 我在月球吃西瓜 月でスイカを食べます
支援的語言列表
語言程式碼 | 語言 |
---|---|
zh | 中文 |
en | 英語 |
yue | 粵語 |
wyw | 文言文 |
jp | 日語 |
kor | 韓語 |
fra | 法語 |
spa | 西班牙語 |
th | 泰語 |
ara | 阿拉伯語 |
ru | 俄語 |
pt | 葡萄牙語 |
de | 德語 |
it | 義大利語 |
el | 希臘語 |
nl | 荷蘭語 |
pl | 波蘭語 |
bul | 保加利亞語 |
est | 愛沙尼亞語 |
dan | 丹麥語 |
fin | 芬蘭語 |
cs | 捷克語 |
rom | 羅馬尼亞語 |
slo | 斯洛維尼亞語 |
swe | 瑞典語 |
hu | 匈牙利語 |
cht | 繁體中文 |
vie | 越南語 |
auto | 自動檢測 |