1. 背景
在deepin深度系統下,會經常接觸英文文檔,或者命令行不認識的英文單詞。以前都是打開瀏覽器,通過fanyi.baidu.com來查詢翻譯結果。
但是對於需要大段文檔進行翻譯的時候,這種方式顯得異常的笨拙和緩慢。
如果是查詢單個單詞,我們使用uTools進行查詢也是比較快捷的,但是同樣對於大段翻譯不是很友好。
一些在Linux系統下能夠划詞或者截屏翻譯的軟件和插件有很多。但是像有道詞典我用過幾次,感覺不是很好。
這里是我自己的一個方式,來應對上述這些情況
2. 使用百度翻譯API
很簡單。需要有個一百度賬號。然后去百度開發者平台,點擊自己賬號下面的開發者信息。
申請開發者的APP ID和密鑰即可。
然后直接下載官方給出的樣例,把自己的信息修改進去。
比如我下載的是Python3版本的BaiduTransAPI-forPython3.py.zip,需要在deepin上通過pip3(sudo apt-get install python3-pip)安裝這個文件中缺失的模塊。
3. 修改和創建腳本
我在自己的家目錄下創建了這樣一個目錄,把上面的腳本放進去
cd ~/Downloads
unzip BaiduTransAPI-forPython3.py.zip
mkdir -p /home/liwl/.myscripts/trans/
cd ~/Downloads/BaiduTransAPI-forPython3.py
cp BaiduTransAPI-forPython3.py /home/liwl/.myscripts/trans/baidu_trans.py
baidu_trans.py的內容需要修改,內容如下:
#百度通用翻譯API,不包含詞典、tts語音合成等資源,如有相關需求請聯系translate_api@baidu.com
# coding=utf-8
import http.client
import hashlib
import urllib
import random
import json
#導入sys,以便解析腳步參數
import sys
appid = '你的appid' # 填寫你的appid
secretKey = '你的密鑰' # 填寫你的密鑰
httpClient = None
myurl = '/api/trans/vip/translate'
fromLang = 'auto' #原文語種
toLang = 'zh' #譯文語種
salt = random.randint(32768, 65536)
#這里把腳步參數拼接成字符串
q= " ".join(sys.argv[1:])
sign = appid + q + str(salt) + secretKey
sign = hashlib.md5(sign.encode()).hexdigest()
myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
salt) + '&sign=' + sign
try:
httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
httpClient.request('GET', myurl)
# response是HTTPResponse對象
response = httpClient.getresponse()
result_all = response.read().decode("utf-8")
result = json.loads(result_all)
print (result.get('trans_result')[0].get('dst'))
except Exception as e:
print (e)
finally:
if httpClient:
httpClient.close()
然后在/home/liwl/.myscripts/trans/目錄下創建兩個文件,exec_baidu_trans_py.sh和show_result.sh
exec_baidu_trans_py.sh的內容如下:
#!/bin/bash
python3 /home/liwl/.myscripts/trans/baidu_trans.py $(xclip -o)
show_result.sh的內容如下:
#!/bin/bash
timeout 15 deepin-terminal -e /home/liwl/.myscripts/trans/exec_baidu_trans_py.sh >/dev/null 2>&1
4. 設置翻譯的系統快捷鍵
在deepin的控制中心-鍵盤-快捷鍵,設置調用/home/liwl/.myscripts/trans/show_result.sh的快捷鍵即可。
所以,在閱讀網頁,PDF,終端等遇到不會的英文單詞 ,只要鼠標划詞復制,按下快捷鍵,就能夠在終端看到翻譯結果了。
雖然笨拙,以解不時之需。
