1. 程式人生 > >Python/python翻譯軟體

Python/python翻譯軟體

 執行下面程式碼可以直接執行:

請確保安裝一下模組 :requests 

效果如下:

 

from tkinter import *
from tkinter import messagebox
import requests
#建立視窗
root =  Tk()
#標題
root.title('中英互譯')
#視窗大小
root.geometry('370x100')
#視窗位置
#root.geometry('+600+450')
s_with = root.winfo_screenwidth()#獲取螢幕寬
s_height = root.winfo_screenheight()#獲取螢幕高度
#計算頁面開啟在螢幕中央的位置
l_x = str(round((s_with-370)/2))
l_y = str(round((s_height-100)/2))
root.geometry('+'+l_x+'+'+l_y)
#第一列標籤
lable = Label(root,text='請輸入內容:')
#定位佈局 grid網格式佈局 pack包 place位置
lable.grid()
#輸入控制元件
extry= Entry(root,font=('微軟雅黑',15))
extry.grid(row=0,column=1)
res = StringVar()
#翻譯結果標籤
lable1 = Label(root,text='翻譯結果:')
lable1.grid(row=1,column=0)
#翻譯結果輸入框
extry1= Entry(root,font=('微軟雅黑',15),textvariable = res)
extry1.grid(row=1,column=1)
#翻譯方法
def translate():
    content = extry.get()
    content = content.strip()
    if content == '':
        messagebox.showinfo('提示','請輸入翻譯內容')
    else:
        url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
        data = {}
        data['i']=content
        data['from']='AUTO'
        data['to']='AUTO'
        data['smartresult']='dict'
        data['client']='fanyideskweb'
        data['salt']='1538295833420'
        data['sign']='07'
        data['doctype']='json'
        data['version']='2.1'
        data['keyfrom']='fanyi.web'
        data['action']='FY_BY_REALTIME'
        data['typoResult']='false'
        headers = {
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
        }
        result = requests.post(url,data,headers=headers)
        trans = result.json()
        tran = trans['translateResult'][0][0]['tgt']
        res.set(tran)
#按鈕
button=Button(root,text='翻譯',width='10',command=translate)
#sticky 對齊方式 N S W E 上下左右
button.grid(row=2,column=0,sticky = W)

#退出按鈕 command是點選事件的方法
exit_button=Button(root,text='退出',width='10',command=root.quit)
exit_button.grid(row=2,column=1,sticky = E)

#顯示視窗 訊息迴圈 接收對視窗的所有操作的訊息
root.mainloop()