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后面有一个空格
  配置好之后就可以使用了,可能你需要在首选项打开屏幕取词。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值