Deepin V20 系統快捷翻譯


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,終端等遇到不會的英文單詞 ,只要鼠標划詞復制,按下快捷鍵,就能夠在終端看到翻譯結果了。
雖然笨拙,以解不時之需。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM