欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python翻译器

程序员文章站 2022-05-29 21:07:25
...

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'

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


  • 这里是如下按钮的接口函数
    python翻译器
 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()
相关标签: python