goldendict使用彩云小译API和百度翻译API
下载goldendict
在ubuntu可以通过apt下载发行版软件,输入下面的命令获取。
sudo apt install goldendict
使用彩云小译API
在彩云小译官网申请API,一般来说随便填一些东西就可以申请到,可以在网上找到教程。创建下面的python文件,并将API改为自己申请的API。
import sys
import requests
import json
def translate(source, direction):
url = "http://api.interpreter.caiyunai.com/v1/translator"
# WARNING, this token is a test token for new developers, and it should be replaced by your token
token = "YOUR API"
payload = {
"source": source,
"trans_type": direction,
"request_id": "demo",
"detect": True,
}
headers = {
'content-type': "application/json",
'x-authorization': "token " + token,
}
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
return json.loads(response.text)['target']
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 caiyun.py <sentence>")
sys.exit(1)
source = sys.argv[1]
target = translate(source, "auto2zh")
print(target)
使用百度翻译API
通过百度翻译申请API,同样的,这个API也很好申请,请读者自行申请。创建下面的python文件,并将API改为自己申请的API。
import sys
import requests
import random
import json
from hashlib import md5
# 设置应用程序的 appid 和 appkey
appid = 'YOUR APPID'
appkey = 'YOUR APPKEY'
# 源语言和目标语言
from_lang = 'en'
to_lang = 'zh'
# API 相关参数
endpoint = 'http://api.fanyi.baidu.com'
path = '/api/trans/vip/translate'
url = endpoint + path
# 生成随机数作为 salt
def generate_salt():
return str(random.randint(32768, 65536))
# 计算签名
def calculate_sign(appid, source, salt, appkey):
sign_str = appid + source + salt + appkey
return md5(sign_str.encode('utf-8')).hexdigest()
# 发送翻译请求
def translate_text(source_text):
salt = generate_salt()
sign = calculate_sign(appid, source_text, salt, appkey)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
payload = {
'appid': appid,
'q': source_text,
'from': from_lang,
'to': to_lang,
'salt': salt,
'sign': sign
}
response = requests.post(url, params=payload, headers=headers)
if response.status_code == 200:
return response.text
else:
return None
# 提取翻译结果
def extract_translation(response_text):
try:
result = json.loads(response_text)
translations = result.get('trans_result', [])
if translations:
translation0 = translations[0]
return translation0.get('dst', '')
else:
return 'No translation result found.'
except json.JSONDecodeError:
return 'Failed to parse JSON response.'
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 baidu.py <sentence>")
sys.exit(1)
source_text = sys.argv[1]
response_text = translate_text(source_text)
translation_text = extract_translation(response_text)
print(translation_text)
在goldendict中添加翻译选项
如下图所示,编辑->词典->程序,并添加如下的规则。有以下两点需要注意:
●将路径改为python所在的路径
●python3和*.py后面有一个空格
配置好之后就可以使用了,可能你需要在首选项打开屏幕取词。