#!usr/bin/env python #-*- coding:utf-8 _*- """ @author:Administrator @file: 翻译软件.py @time: 2020/3/11 11:39 """ import PySimpleGUI as sg import os, sys import sys import uuid import requests import hashlib import time YOUDAO_URL = 'https://openapi.youdao.com/api' APP_KEY = '4e44368ec9116bc7' APP_SECRET = 'vWKlbHSGxFn9S42KNt7SCPMjCYM4kpas' def encrypt(signStr): hash_algorithm = hashlib.sha256() hash_algorithm.update(signStr.encode('utf-8')) return hash_algorithm.hexdigest() def truncate(q): if q is None: return None size = len(q) return q if size <= 20 else q[0:10] + str(size) + q[size - 10:size] def connect(q,lang): data = {} data['from'] = 'auto' data['to'] = lang data['signType'] = 'v3' curtime = str(int(time.time())) data['curtime'] = curtime salt = str(uuid.uuid1()) signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET sign = encrypt(signStr) data['appKey'] = APP_KEY data['q'] = q data['salt'] = salt data['sign'] = sign result = requests.post(YOUDAO_URL, data=data).json() return result['translation'][0] # 构造 Frame simple_frame = [[sg.Multiline('', key='_RES_', disabled=True,size=(200,200))]] # 构造整体窗口布局 layout = [[sg.Multiline('', key='_Q_', focus=False,size=(120,10))], [sg.Text("请选择要翻译的语种",background_color="red"), sg.InputCombo(('自动识别','中文','韩语','日语','法语','西班牙语','意大利语','德语'),default_value='自动识别',key='LAN',size=(10,6)), sg.Button('翻译', key='_TRANS_')], [sg.Frame('翻译结果', simple_frame, title_color='gray')] ] # 生成窗口 window = sg.Window('翻译小工具V1.0', layout,size=(800,800),background_color='skyBlue') while True: event, value = window.Read() # 如果点击翻译按钮 if event == '_TRANS_': try: if value['LAN'] == '中文': value['LAN'] = 'zh-CHS' elif value['LAN'] == '韩语': value['LAN'] = 'ko' elif value['LAN'] == '日语': value['LAN'] = 'ja' elif value['LAN'] == '法语': value['LAN'] = 'fr' elif value['LAN'] == '西班牙语': value['LAN'] = 'es' elif value['LAN'] == '意大利语': value['LAN'] = 'it' elif value['LAN'] == '德语': value['LAN'] = 'de' result = connect(value['_Q_'],value['LAN']) # 把翻译结果展示到Frame中的文本区域 window['_RES_'].update(result) except Exception as e: sg.popup(e) if event is None: break window.close()
界面: