目录
  • 1、引言
  • 2、代码实战
    • 2.1 思路
    • 2.2 实战
  • 3、总结

    1、引言

    小屌丝:鱼哥,你说百度翻译的准确,还是google翻译的准确?

    小鱼:自己翻译的最准确。

    小屌丝:你这… 抬杠。

    小鱼:没有啊,英语自己就能翻译,还需要啥翻译软件

    小屌丝:如果是俄语,意大利语,西班牙语呢?

    小鱼:你这是…抬杠。

    小屌丝:也没有啊,我就是觉得网页版翻译器太麻烦了。

    小鱼:早说啊,我这有现成的翻译器。

    小屌丝:嗯?? 你下载的是什么翻译器?

    小鱼:你觉得我会下载吗?

    小屌丝:嗯,确实,那就是说,你自己写了一个呗?

    小鱼:你答对了。

    小屌丝:那赶紧share一下啊。

    小鱼:晒就晒,正好今天阳光明媚的。

    基于Python3编写一个GUI翻译器

    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()
    

    运行结果:

    基于Python3编写一个GUI翻译器

    基于Python3编写一个GUI翻译器

    3、总结

    看到这里,今天的分享差不多就要结束了。

    关于PySimpleGUI 的介绍,也就差不多了。

    今天更多的是通过PySimpleGUI 来搞定翻译器,既锻炼了撸码能力,

    有节省了每次百度翻译/google翻译花费的时间。

    关于PySimpleGUI 更多功能,可以移步官网。

    小鱼就不过多的介绍了。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。