开箱一个翻译器

背景: 为了准备联创Lab组的面试, 我准备啃一啃MIT6.824分布式课程, 但是…

还是有好多单词不认识哇, 你说用google翻译吧, 就像下图这样子

开箱一个翻译器_第1张图片

这个网页是在是太占空间了, 挡到了好多东西… 我这个强迫症受不了( •̀ ω •́ )✧

于是想起以前学习python的时候好像写过一个翻译器, 便拿过来稍作修改, 已解决现在的困境(我需要一个很小的浮窗翻译器)

当当当当, 一条命令直接启动

开箱一个翻译器_第2张图片

下面来看效果图, 还是很好用的捏

ps:突然发现单词打错了, 算了, 将就点吧

开箱一个翻译器_第3张图片

下面开箱一下源代码

其实很简单4不4

注意: 用到了百度翻译的API哟
from urllib import request
from urllib import parse
import json
import hashlib
def translate_Word(en_str):
    URL = "http://api.fanyi.baidu.com/api/trans/vip/translate"
    Form_Data = {}
    Form_Data['from'] = 'en'
    Form_Data['to'] = 'zh'
    Form_Data['q'] = en_str
    Form_Data['appid'] = #申请的APP ID
    Form_Data['salt'] = 
    key =  #平台分配的秘钥
    m = Form_Data['appid'] + en_str + Form_Data['salt'] + key
    m_MD5 = hashlib.md5(m.encode("utf-8"))
    Form_Data['sign'] = m_MD5.hexdigest()
    #使用urlencode方法转换为标准格式
    data = parse.urlencode(Form_Data).encode("utf-8")

    response = request.urlopen(URL,data)
    html = response.read().decode("utf-8")#读取信息并解码
    translate_results = json.loads(html)#使用JSON

    print(translate_results)#打印出JSON数据

    #找到翻译结果
    translate_results = translate_results['trans_result'][0]['dst']

    print("翻译的结果是:%s"%translate_results)#打印翻译信息
    return translate_results

def leftClick(event):
    #获取要翻译的内容
    en_str = Entry1.get()
    print(en_str)
    vText = translate_Word(en_str)
    Entry2.config(Entry2,text=vText)#修改翻译结果框文字
    s.set("")
    Entry2.insert(0,vText)

def leftClick2(event):
    s.set("")
    Entry1.delete(0, 100)
    Entry2.delete(0, 100)
    Entry2.insert(0,"")
#%%
#前面预备知识准备好了,现在开始本程序的设计
#第一步,设计界面
import tkinter as tk

root = tk.Tk()
root.title("单词翻译器")
#设置它的宽和高
root['width'] = 250
root['height'] = 130

lab1 = tk.Label(root,text="输入要翻译的内容",width=15)
lab1.place(x=1,y=1)#绝对坐标
lab2 = tk.Label(root,text="翻译的结果",width=15)
lab2.place(x=1,y=20)

s = tk.StringVar()#创建一个stringvar对象
Entry1 = tk.Entry(root,width=20)
Entry1.place(x=110,y=1)
Entry2 = tk.Entry(root,width=20,textvariable=s)
Entry2.place(x=110,y=20)

Button1 = tk.Button(root,text="翻译",width=8)
Button1.place(x=40,y=80)
Button2 = tk.Button(root,text="清空",width=8)
Button2.place(x=110,y=80)

#给Button绑定鼠标监听事件
Button1.bind("",leftClick)#翻译按钮
Button2.bind("",leftClick2)#清空按钮

root.mainloop()

你可能感兴趣的:(开箱一个翻译器)