python实现简单翻译软件

python实现翻译软件效果如图:

需要联网才能进行翻译

思路:

利用Requests模块获取有道词典web页面的post信息

提取json数据信息

通过tkinter模块生成gui界面

源代码如下:

from tkinter import *
from tkinter import messagebox
import requests
# 接收用户输入的单词 进行翻译
def translation():
    # 获取用户输入的单词
    content=entry1.get()
    # 去空格
    content=content.strip()
    if content=='':
        messagebox.showinfo("提示","请输入要翻译的内容")
    else:
        # 模拟发送请求
        url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
        # 请求头
        header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 "
                             "(KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"}
        data={}
        data['i']=content
        data['from']='AUTO'
        data['to'] = 'AUTO'
        data['smartresult'] = 'dict'
        data['client'] = 'fanyideskweb'
        # # 时间戳
        # data['salt'] = 1538961219261
        # # 签名 加密
        # data['sign'] = '0f98badcb537e9506a94f4c5e4c8cb90'
        data['doctype'] = 'json'
        data['version'] = '2.1'
        data['keyfrom'] = 'fanyi.web'
        data['action'] = 'FY_BY_CLICKBUTTION'
        data['typoResult'] = 'false'
        # 发送post请求 并用result接收返回数据
        result=requests.post(url,data=data,headers=header)
        transl=result.json()
        translation=transl['translateResult'][0][0]['tgt']
        res.set(translation)

# 创建窗口
root=Tk()
# 设置标题
root.title("中英互译")
# 窗口大小
root.geometry('350x93')
# 窗口位置
root.geometry('+500+300')

# 标签控件
label1=Label(root,text='输入要翻译的文字:')
# 定位
label1.grid(row=0,column=0)
label2=Label(root,text='翻译之后的结果:')
label2.grid(row=1,column=0)

# 输入框控件
entry1=Entry(root,font=('微软雅黑',15))
entry1.grid(row=0,column=1)
# 显示翻译结果
res=StringVar()
entry2=Entry(root,font=('微软雅黑',15),textvariable=res)
entry2.grid(row=1,column=1)

# 按钮控件
button1=Button(root,text='翻译',width=10,command=translation)
button1.grid(row=2,column=0,sticky=W)
button2=Button(root,text='退出',width=10,command=root.quit)
button2.grid(row=2,column=1,sticky=E)

# 显示窗口 消息循环
root.mainloop()


猜你喜欢

转载自blog.csdn.net/LinRuiC/article/details/82979620