GoldenDict call Baidu translation

Baidu translator

To register it in Baidu translation developer account, apply for about universal translator API.
External universal translator API provides multilingual translation services through HTTP interface. You only need to call the universal translator API, incoming content to be translated, and specify the source language for translation (source language supports automatic language detection) and the target language, you can get the appropriate translation.

Baidu translation python3 Code



#来源于:http://http://blog.csdn.net/lcyong_
#coding: utf8
 
import http.client
import hashlib
import json
import urllib
import random
import sys
 
def baidu_translate(content):
    appid = ''  # 填写你的appid
    secretKey = ''  # 填写你的密钥
    httpClient = None
    myurl = '/api/trans/vip/translate'
    q = content
    fromLang = 'en' # 源语言
    toLang = 'zh'   # 翻译后的语言
    salt = random.randint(32768, 65536)
    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()
        jsonResponse = response.read().decode("utf-8")# 获得返回的结果,结果为json格式
        js = json.loads(jsonResponse)  # 将json格式的结果转换字典结构
        dst = str(js["trans_result"][0]["dst"])  # 取得翻译后的文本结果
        print(dst) # 打印结果
    except Exception as e:
        print(e)
    finally:
        if httpClient:
            httpClient.close()

def content_filter(content):
    if(len(content.split())>=2):
        #print('content大于等于2')
        baidu_translate(sys.argv[1])
    else:
        #print('content小于2,不翻译')
        print('^_^')
    return '';
    
 
if __name__ == '__main__':
#    while True:
#       print("请输入要翻译的内容,如果退出输入q")
#        content = input()
#        if (content == 'q'):
#            break
        
        #baidu_translate(sys.argv[1])
        content_filter(sys.argv[1])

Other codes .
References 1

Published 151 original articles · won praise 47 · Views 230,000 +

Guess you like

Origin blog.csdn.net/e891377/article/details/103399520