这篇文章给大家提供一个Python实现的百度翻译小工具。
这个小工具使用了百度翻译提供的API接口。
官方其实也提供了一个Python的Demo,但是是基于Python2。
这里,我们通过Python3完成这个接口的调用,实现翻译功能。
代码中,唯一一个新的模块是json模块,通过这个模块对百度翻译接口返回的数据进行读取。
代码都很简单,建议大家自行理解。
示例代码:
from urllib.parse import quote
from hashlib import md5
from http import client
from string import ascii_lowercase
import random
import json
appid = '申请百度翻译开发者账号获取'
secret_key = '申请百度翻译开发者账号获取'
def from_to(word): # 中英文翻译转换
if word in ascii_lowercase:
from_lang = 'en'
to_lang = 'zh'
else:
from_lang = 'zh'
to_lang = 'en'
return from_lang, to_lang
def get_sign(salt, qurey): # 生成调用API的签名
sign = appid + qurey + str(salt) + secret_key
m = md5()
m.update(sign.encode('utf-8'))
return m.hexdigest()
def trans(qurey): # 实现翻译功能
http_client = None
from_lang, to_lang = from_to(qurey[0])
salt = random.randint(12345, 67890)
sign = get_sign(salt, qurey)
myurl = '/api/trans/vip/translate' + '?appid=' + appid + '&q=' + quote(
qurey) + '&from=' + from_lang + '&to=' + to_lang + '&salt=' + str(salt) + '&sign=' + sign
try:
http_client = client.HTTPConnection('api.fanyi.baidu.com')
http_client.request('GET', myurl)
response = http_client.getresponse()
content = json.loads(response.read()) # 将调用API的返回结果转为字典
return content['trans_result'][0]['dst'] # 返回翻译内容
except Exception as e:
return e
finally:
if http_client:
http_client.close()
if __name__ == '__main__':
print(trans('翻译工具'))
通过上方这个模块,我们可以通过wxPython实现GUI界面,并且通过PyInstaller打包成可执行程序。
下方是我制作的一个小工具,主要为了帮助英文水平不好的同学能够查询编程中的一些单词,或者辅助进行一些命名的定义。
主要特点:
1、中英文自动识别翻译;
2、翻译结果快速转换为不同的格式。
主要应用场景:
辅助编程中对模块、函数、变量和常量进行英文命名,以及对编程过程中出现的错误提示进行翻译,避免网页中打开百度翻译以及窗口切换的苦恼。
设置功能:
1、支持设置回车即进行翻译;
2、支持翻译窗口置顶;
3、支持翻译后自动将结果(包括转换格式的结果)自动复制到系统剪切板。
如果运行错误,请安装Visual C++ Redistributable for Visual Studio 2015【点此下载】【网盘下载】
注意:下载地址中有两个版本,32位系统安装X86版本,64位系统安装X64版本。