首頁 > 軟體

Python利用PySimpleGUI實現自制桌面翻譯神器

2022-09-20 22:02:08

一、基本思路

基於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桌面翻譯內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com