Python利用PySimpleGUI实现自制桌面翻译神器

 更新时间:2022年09月20日 09:49:35   作者:热爱科技的刘同学  
工作上经常需要与外国友人邮件沟通,奈何工作电脑没有安装有道词典一类的翻译软件,结合自己的需要,自己用PySimpleGUI撸一个桌面翻译神器,感兴趣的可以了解一下

一、基本思路

基于PySimpleGUI开发桌面GUI→获取键盘输入→接入谷歌翻译API→爬虫获取翻译结果【其中涉及到正则表达式匹配翻译结果输出翻译结果口翻译完成。

二、PySimpleGUI是什么

创建图形用户界面(GUI)可能很困难,有许多不同的PythonGUI工具包可供选择。最常提到的前三名是 Tkinter,wxPython和PyQt .但是PySimpleGUI的较新工具包,其目的是使创建GUI更加容易。

三、代码分析

废话不能多,上分析!

1、引入包

可能有点儿多,但是下面的每一个包都必须用pip安装:

from optparse import Values
import re
import html
from tkinter import font
from urllib import parse
import requests
import PySimpleGUI as sg

2、谷歌翻译网址

该处使用的ur网络请求的数据,这里用到了字符串格式化方法需要用到三个参数:

text—需要翻译的内容、to_language—日标语音类型、text_Language—当前话言类型。

url = 'http://translate.google.cn/m?q=%s&tl=%s&sl=%s'

3、构建翻译函数

def translate(text, to_language="en", text_language="auto"):
    text = parse.quote(text)
    urll = url % (text, to_language ,text_language)
    response = requests.get(urll)
    data = response.text
    expr = r'(?s)class = "(?:t0|result-container)">(.*?)<'
    result = re.findall(expr, data)
    print (result)
    if (len(result) == 0):
        return ""
    return html.unescape(result[0])

4、GUI构建

g.theme('bluepurple')
font = {"fangsong", 12}
menu = [["Help", ["About", "Item", "Author"]]]
value = ['汉语', '英语', '日语', '法语', '俄语', '自动']

var = ['zh', 'en', 'ja', 'fr', 'ru', 'auto']
dic = dict(zip(value, var))
layout = [[sg.Menu(menu, tearoff = False)],
          [sg.Text(text='Input', 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, 0), font=font)],
          [sg.Text(text='Output', size=(30, 1))],
          [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, value = window.read()
    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":
        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("作者简介:",
                 "姓名:刘镇鸣",
                 "微信/电话:17734258540",
                 "E-mail:2124619132@qq.com", title='', font=font, auto_close=1)
window.close()

四、Github开源地址

Github开源地址:https://github.com/ProgramApeInn/PySimpleGUI-Root-App

到此这篇关于Python利用PySimpleGUI实现自制桌面翻译神器的文章就介绍到这了,更多相关Python PySimpleGUI桌面翻译内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 代码详解Python的函数基础(2)

    代码详解Python的函数基础(2)

    这篇文章主要为大家详细介绍了Python的函数基础,使用了函数参数和递归函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python如何实现网络自动化运维华为设备

    Python如何实现网络自动化运维华为设备

    本文介绍了如何使用Python实现华为设备的网络自动化运维,包括环境配置、设备配置、功能模块实现和SFTP文件传输测试
    2024-11-11
  • python使用pygame实现笑脸乒乓球弹珠球游戏

    python使用pygame实现笑脸乒乓球弹珠球游戏

    这篇文章主要为大家详细介绍了python使用pygame实现笑脸乒乓球弹珠球游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 使用python提取PowerPoint中的音频和视频

    使用python提取PowerPoint中的音频和视频

    将多种格式的媒体内容进行重新利用(如PowerPoint演示中的音频和视频)是非常有价值的,从演示文稿中提取这些媒体文件可以为多媒体内容的多次使用提供更大的灵活性,本文将演示如何使用Python从PowerPoint演示文稿中提取音频和视频,需要的朋友可以参考下
    2024-09-09
  • 十道Python面试最常问到的问题

    十道Python面试最常问到的问题

    这篇文章主要介绍了十道Python面试最常问到的问题,都是基础的面试题,包括函数,修饰器,数据结构等,需要的朋友可以参考下
    2023-04-04
  • Python脚本传参数argparse模块的使用

    Python脚本传参数argparse模块的使用

    这篇文章主要介绍了Python脚本传参数argparse模块的使用,文章围绕argparse模块的相关资料展开具体的使用方法,具有一的参考价值,需要的小伙伴可以参考一下
    2022-03-03
  • 使用python搭建代理IP池实现接口设置与整体调度

    使用python搭建代理IP池实现接口设置与整体调度

    在网络爬虫中,代理IP池是一个非常重要的组件,由于许多网站对单个IP的请求有限制,因此,我们需要一个代理IP池,在本文中,我们将使用Python来构建一个代理IP池,然后,我们将使用这个代理IP池来访问我们需要的数据,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • 宝塔部署django项目的实现步骤(图文教程)

    宝塔部署django项目的实现步骤(图文教程)

    本文主要介绍了宝塔部署django项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python 利用PyAutoGUI快速构建自动化操作脚本

    python 利用PyAutoGUI快速构建自动化操作脚本

    我们经常遇到需要进行大量重复操作的时候,比如:网页上填表,对 web 版本 OA 进行操作,自动化测试或者给新系统首次添加数据等,今天就利用PyAutoGUI构建自动化操作脚本完成这些重复的需求
    2021-05-05
  • pytorch中unsqueeze用法小结

    pytorch中unsqueeze用法小结

    unsqueeze()的作用是用来增加给定tensor的维度的,本文主要介绍了pytorch中unsqueeze用法小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04

最新评论