deepin V20 系统快捷翻译
<h1 id="1-背景">1. 背景</h1><p>在deepin深度系统下,会经常接触英文文档,或者命令行不认识的英文单词。以前都是打开浏览器,通过fanyi.baidu.com来查询翻译结果。<br>
但是对于需要大段文档进行翻译的时候,这种方式显得异常的笨拙和缓慢。<br>
如果是查询单个单词,我们使用uTools进行查询也是比较快捷的,但是同样对于大段翻译不是很友好。<br>
一些在Linux系统下能够划词或者截屏翻译的软件和插件有很多。但是像有道词典我用过几次,感觉不是很好。<br>
这里是我自己的一个方式,来应对上述这些情况</p>
<h1 id="2-使用百度翻译api">2. 使用百度翻译API</h1>
<p>很简单。需要有个一百度账号。然后去百度开发者平台,点击自己账号下面的开发者信息。<br>
申请开发者的APP ID和密钥即可。<br>
然后直接下载官方给出的样例,把自己的信息修改进去。<br>
比如我下载的是Python3版本的BaiduTransAPI-forPython3.py.zip,需要在deepin上通过pip3(sudo apt-get install python3-pip)安装这个文件中缺失的模块。</p>
<h1 id="3-修改和创建脚本">3. 修改和创建脚本</h1>
<p>我在自己的家目录下创建了这样一个目录,把上面的脚本放进去</p>
<pre><code>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
</code></pre>
<p>baidu_trans.py的内容需要修改,内容如下:</p>
<pre><code>#百度通用翻译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)
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').get('dst'))
except Exception as e:
print (e)
finally:
if httpClient:
httpClient.close()
</code></pre>
<p>然后在/home/liwl/.myscripts/trans/目录下创建两个文件,exec_baidu_trans_py.sh和show_result.sh<br>
exec_baidu_trans_py.sh的内容如下:</p>
<pre><code>#!/bin/bash
python3 /home/liwl/.myscripts/trans/baidu_trans.py $(xclip -o)
</code></pre>
<p>show_result.sh的内容如下:</p>
<pre><code>#!/bin/bash
timeout 15 deepin-terminal-e /home/liwl/.myscripts/trans/exec_baidu_trans_py.sh>/dev/null 2>&1
</code></pre>
<h1 id="4-设置翻译的系统快捷键">4. 设置翻译的系统快捷键</h1>
<p>在deepin的控制中心-键盘-快捷键,设置调用/home/liwl/.myscripts/trans/show_result.sh的快捷键即可。<br>
所以,在阅读网页,PDF,终端等遇到不会的英文单词 ,只要鼠标划词复制,按下快捷键,就能够在终端看到翻译结果了。<br>
虽然笨拙,以解不时之需。</p><br><br>
来源:https://www.cnblogs.com/liwanliangblog/p/12762671.html
頁:
[1]