python翻译器

python翻译器

用python写翻译器还是比较方便的,因为可以调用各种库和接口,本文调用的就是百度翻译的接口,在调用接口前要先去这个网站注册:百度翻译开放平台

下面是用python写的一个翻译器,效果如下:

在这里插入图片描述

  • 或不多说,直接上教程
  • 先调用库,其中界面是用tkinter写的
from tkinter import *
from urllib import request
from urllib import parse
import json
import hashlib
import random
  • http://api.fanyi.baidu.com/api/trans/vip/translate 是百度翻译网站接口,只要去 百度翻译开放平台注册即可得到appidkey

  • 写关于     任意语言——>中文     的接口函数

 def translate_word2(jp_str):
    URLx='http://api.fanyi.baidu.com/api/trans/vip/translate'
    From_Data={}
    From_Data['from']='auto'
    From_Data['to']='en'
    From_Data['q']=jp_str
    From_Data['transtype']='hash'
    From_Data['appid']='在这里输入注册得到的appid'
    From_Data['salt']=str(random.randint(32768, 65536))
    Key="在这里输入注册得到的key"
    x=From_Data['appid']+jp_str+From_Data['salt']+Key
    x_MD5=hashlib.md5(x.encode('utf8'))
    From_Data['sign']=x_MD5.hexdigest()

    datax=parse.urlencode(From_Data).encode('utf-8')
    responsex=request.urlopen(URLx, datax)
    htmlx=responsex.read().decode('utf-8')
    translate_resultsx=json.loads(htmlx)

    print(translate_resultsx)
    translate_resultsx = translate_resultsx['trans_result'][0]['dst']
    print("翻译的结果是:%s" % translate_resultsx)

    return translate_resultsx
  • 写关于     任意语言——>英文     的接口函数
 def translate_word2(jp_str):
    URLx='http://api.fanyi.baidu.com/api/trans/vip/translate'
    From_Data={}
    From_Data['from']='auto'
    From_Data['to']='en'
    From_Data['q']=jp_str
    From_Data['transtype']='hash'
    From_Data['appid']='在这里输入注册得到的appid'
    From_Data['salt']=str(random.randint(32768, 65536))
    Key="在这里输入注册得到的key"
    x=From_Data['appid']+jp_str+From_Data['salt']+Key
    x_MD5=hashlib.md5(x.encode('utf8'))
    From_Data['sign']=x_MD5.hexdigest()

    datax=parse.urlencode(From_Data).encode('utf-8')
    responsex=request.urlopen(URLx, datax)
    htmlx=responsex.read().decode('utf-8')
    translate_resultsx=json.loads(htmlx)

    print(translate_resultsx)
    translate_resultsx = translate_resultsx['trans_result'][0]['dst']
    print("翻译的结果是:%s" % translate_resultsx)

    return translate_resultsx
  • 写关于     任意语言——>文言文     的接口函数
def translate_word3(ru_str):
    URLr='http://api.fanyi.baidu.com/api/trans/vip/translate'
    From_Data={}
    From_Data['from']='auto'
    From_Data['to']='wyw'
    From_Data['q']=ru_str
    From_Data['transtype']='hash'
    From_Data['appid']='在这里输入注册得到的appid'
    From_Data['salt']=str(random.randint(32768, 65536))
    Key="在这里输入注册得到的key"
    r=From_Data['appid']+ru_str+From_Data['salt']+Key
    r_MD5=hashlib.md5(r.encode('utf8'))
    From_Data['sign']=r_MD5.hexdigest()
    
    datar=parse.urlencode(From_Data).encode('utf-8')
    responser=request.urlopen(URLr, datar)
    htmlr=responser.read().decode('utf-8')
    translate_resultsr=json.loads(htmlr)

    print(translate_resultsr)
    translate_resultsr = translate_resultsr['trans_result'][0]['dst']
    print("翻译的结果是:%s" % translate_resultsr)
    
    return translate_resultsr

上面写了翻译成三种语言的接口,若想从一种语言翻译成其他语言,只需修改下面的简写即可

From_Data[‘from’]=‘zh’
From_Data[‘to’]=‘en’

这里给出了常用的语言简写:语言简写


  • 这里是如下按钮的接口函数
    在这里插入图片描述
 def printevent1(event):
    zh_str=e0.get()
    print(zh_str)
    fye=translate_word1(zh_str)
    s.set("")
    e1.insert(0, fye)

def printevent2(event):
    jp_str=e0.get()
    print(jp_str)
    fyj=translate_word2(jp_str)
    m.set("")
    e2.insert(0, fyj)

def printevent3(event):
	ru_str=e0.get()
	print(ru_str)
	fyr=translate_word3(ru_str)
	z.set("")
	e3.insert(0, fyr)

def printevent4(event):
    s.set("")
    e1.insert(0, "")
    m.set("")
    e2.insert(0, "")
    z.set("")
    e3.insert(0, "")
  • 最后就是调用这些接口的主函数
if __name__ == "__main__":
    root = Tk()
    root.title("残废单词翻译器")
    root['width']=600; root['height']=200
    
    Label(root, text="请输入要翻译的内容(auto):", width=24).place(x=1, y=5)
    e0=Entry(root, width=35)
    e0.place(x=160, y=5)
    
    Label(root, text="(auto->中)翻译结果:", width=28).place(x=2, y=30)
    s=StringVar()
    s.set("")
    e1=Entry(root, width=35, textvariable=s)
    e1.place(x=160, y=35)

    Label(root, text="(auto->英)翻译结果:", width=28).place(x=2, y=60)
    m=StringVar()
    m.set("")
    e2=Entry(root, width=35, textvariable=m)
    e2.place(x=160, y=60)

    Label(root, text="(auto->文言文)翻译结果:", width=28).place(x=2, y=90)
    z=StringVar()
    z.set("")
    e3=Entry(root, width=35, textvariable=z)
    e3.place(x=160, y=90)

    c1=Button(root, text="翻译(中)", width=10)
    c1.place(x=30, y=150)
    c2=Button(root, text="翻译(英)", width=10)
    c2.place(x=120, y=150)
    c3=Button(root, text="翻译(文言文)", width=10)
    c3.place(x=210, y=150)
    c4=Button(root, text="清空", width=10)
    c4.place(x=300, y=150)

    c1.bind("<Button-1>", printevent1)
    c2.bind("<Button-1>", printevent2)
    c3.bind("<Button-1>", printevent3)
    c4.bind("<Button-1>", printevent4)

    root.mainloop()
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

素履、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值