目录
1、引言
小屌丝:鱼哥,你说百度翻译的准确,还是google翻译的准确?
小鱼:自己翻译的最准确。
小屌丝:你这… 抬杠。
小鱼:没有啊,英语自己就能翻译,还需要啥翻译软件
小屌丝:如果是俄语,意大利语,西班牙语呢?
小鱼:你这是…抬杠。
小屌丝:也没有啊,我就是觉得网页版翻译器太麻烦了。
小鱼:早说啊,我这有现成的翻译器。
小屌丝:嗯?? 你下载的是什么翻译器?
小鱼:你觉得我会下载吗?
小屌丝:嗯,确实,那就是说,你自己写了一个呗?
小鱼:你答对了。
小屌丝:那赶紧share一下啊。
小鱼:晒就晒,正好今天阳光明媚的。
2、代码实战
2.1 思路
我们写的GUI翻译器,思路:
构建url地址;
构建语言种类;
GUI界面的搭建;
触发GUI界面功能操作;
这里提示一下,我们是通过 PySimpleGUI 来进行构建的。
小屌丝:什么是PySimpleGUI呢?
小鱼:一句话,PySimpleGUI 就是GUI工具包,用于创建GUI的。
小屌丝:果然是够简单,那看代码吧。
2.2 实战
由于内容并不复杂,所以,直接上代码。
代码展示
#-*- coding: utf-8 -*- # @Time : 2022-07-27 # @Author : carl_DJ import re import html from urllib import parse import requests import PySimpleGUI as sg \'构建爬虫\' #url 为google自动翻译地址 url = \'http://translate.google.cn/m?q=%s&tl=%s&sl=%s\' \'构建翻译函数\' #text:需要翻译的内容, to_language:目标语言类型, text_language:当前语言类型。 def translate(text,to_language = \'en\',text_language = \'auto\'): text = parse.quote(text) url1 = url % (text,to_language,text_language) repsonse = requests.get(url1) data = repsonse.text print(f\'输出内容:{data}\') expr = r\'(?s)class=\"(?:t0|result-container)\">(.*?)<\' result = re.findall(expr,data) print(f\'{result}\') if (len(result) == 0): return \"\" return html.unescape(result[0]) \'GUI搭建\' #设置主题 sg.theme(\'bluepurple\') #设置字体 font = (\"fangsong\",12) #菜单栏设置 menu = [[\"Help\",[\"About\",\"Item\",\"Author\"]]] #语言选择(前端显示),默认只有6种,可以自己添加 value = [\'汉语\',\'英语\',\'日语\',\'法语\',\'俄语\',\'自动\'] # 语言选择(后端执行时) var = [\'zh\',\'en\',\'ja\',\'fr\',\'ru\',\'auto\'] # 语言字典配置 dic = dict(zip(value,var)) #GUI布局 layout = [[sg.Menu(menu,tearoff=False)], [sg.Text(text=\'输入需要翻译内容\',size=(26,1)), sg.Text(text=\'将\',size=(2,1),justification=\'center\'), sg.Combo(values=value,key=\'from\',size=(10,1)), sg.Text(text=\'翻译为\',size=(5,1),justification=\'center\'), sg.Combo(values=value,key=\'to\',size=(10,1))], [sg.Multiline(key=\'-IN-\',size=(60,8),font=font)], [sg.Text(text=\'翻译结果\',size=(30,1),font=font)], [sg.Multiline(key=\'-OUT-\',size=(60,8),font=font)], [sg.Text(text=\'\',size=(36,1)), sg.Button(\"翻译\",size=(6,1)), sg.Button(\"清除\",size=(6,1)), sg.Button(\"退出\",size=(6,1)) ] ] # 设置窗口名称,窗口布局,以及图标 window = sg.Window(\"桌面翻译器\",layout,icon=\'CT.ico\') \'逻辑语句执行\' while True: #定义 事件 event, 返回值 values event,values = window.read() #点击“X”或者“退出”按钮时才退出 if event in (None,\"退出\"): break #点击 翻译 按钮 if event == \"翻译\": if values[\"to\"] == \'\' or values[\"from\"] ==\'\': sg.Popup(\"请选择语言后再重试\") else: tar = translate(values[\"-IN-\"],dic[values[\"to\"]],dic[values[\"from\"]]) window[\"-OUT-\"].Update(tar) #点击 清除 按钮 if event ==\"清除\": window[\"-IN-\"].update(\"\") window[\"-OUT-\"].update(\"\") if event == \"About\": #Popup 提示弹窗,给出提示信息 sg.Popup(\"使用方法:\", \"\'翻译\'确认输入,并输出翻译结果\", \"\'清除\'清除已有输入,清空翻译的结果\", \"\'退出\'取消,并退出App\", title=\'\', font = font, auto_close = 1) if event == \"Item\": sg.Popup(\"翻译类型:\", \"\'输入类型\' 输入的语言类型\", \"\'输出类型\' 输出的语言类型\", title = \'\', font = font, auto_close = 1) if event == \"Author\": sg.Popup(\"作者简介:\", \"姓名:XXXXXX\", \"Wechat:XXXXXX\", \"E-mail:XXXXXX@qq.com\", title=\'\', font=font, auto_close=1) window.close()
运行结果:
3、总结
看到这里,今天的分享差不多就要结束了。
关于PySimpleGUI 的介绍,也就差不多了。
今天更多的是通过PySimpleGUI 来搞定翻译器,既锻炼了撸码能力,
有节省了每次百度翻译/google翻译花费的时间。
关于PySimpleGUI 更多功能,可以移步官网。
小鱼就不过多的介绍了。
© 版权声明
THE END
暂无评论内容