python做翻譯軟件詳解,小白也看得明白
前言
對(duì)于我這種英語(yǔ)比較差的人來說,無論是敲代碼還是看文檔,
那都是離不開翻譯軟件的,于是我想自己用python做一個(gè)翻譯軟件,
花了一個(gè)小時(shí),終于做了出來了,支持各種語(yǔ)言的翻譯
一、需要的庫(kù)
translate:
谷歌翻譯的第三方包,可以實(shí)現(xiàn)多種語(yǔ)言之間的相互翻譯。
tkinter:
Tkinter 是 Python 的標(biāo)準(zhǔn) GUI 庫(kù)。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應(yīng)用程序。
沒有安裝的話,復(fù)制下面的命令,直接安裝
pip install translate pip install tkinter
二、分析處理
1.步驟
要實(shí)現(xiàn)翻譯軟件,需要完成兩樣?xùn)|西:
1.翻譯過程的代碼實(shí)現(xiàn)
2.圖形界面代碼的實(shí)現(xiàn)
2.思路
我的思路是先整體完成翻譯的代碼,然后再結(jié)合圖形界面的代碼重新整合,開搞!
三.代碼的實(shí)現(xiàn)
1.翻譯部分
翻譯部分的代碼:
from translate import Translator
lang1=input("想翻譯的語(yǔ)言:")
lang2=input("翻譯為: ")
trans_all=Translator(from_lang = lang1.capitalize(), to_lang=lang2.capitalize())
text=input("需要翻譯的文本")
text_to=trans_all.translate(text)
print(text_to)
展示一手:

這部分完成后我們來完成圖形界面
2.圖形界面代碼
這是我設(shè)置的界面的大小:

圖形界面初始化:
# 初始化,畫布大小
root = Tk()
root.geometry('340x540')
# 輸入語(yǔ)言提示
lb1 = Label(root, text="language " "\t""-->" "\t" + " language")
lb1.place(relx=0.1, rely=0.05, relwidth=0.8, relheight=0.05)
# 第一個(gè)語(yǔ)言輸入框
inp1 = Entry(root)
inp1.place(relx=0.1, rely=0.1, relwidth=0.3, relheight=0.1)
# 第二個(gè)語(yǔ)言輸入框
inp2 = Entry(root)
inp2.place(relx=0.6, rely=0.1, relwidth=0.3, relheight=0.1)
效果如下:

有強(qiáng)迫癥的我,在這個(gè)地方調(diào)了好久好久…最后終于對(duì)稱了…心累
然后完成翻譯按鈕和文本的輸入,輸出框
# 調(diào)用翻譯 # 文字提示 lb2 = Label(root, text="輸入需要翻譯的文本") lb2.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.05) # 輸入需要翻譯的文本 inp3 = Entry(root) inp3.place(relx=0.1, rely=0.35, relwidth=0.8, relheight=0.15) # 翻譯按鈕 btn1 = Button(root, text='翻譯', command=translate_to) btn1.place(relx=0.4, rely=0.5, relwidth=0.2, relheight=0.1) # 翻譯的結(jié)果 txt = Text(root) txt.place(rely=0.7, relheight=0.2) root.mainloop()
最后呈現(xiàn)的效果:

到這里他只是一個(gè)軀殼,還沒有靈魂,接下來,我們?yōu)樗⑷腱`魂。
3.整合
將翻譯的代碼一起整合后,終于大功告成
先上效果展示,再上代碼:

ohhhhh完美??!
代碼:
from translate import Translator
from tkinter import *
def translate_to():
lang1 = inp1.get() # 被翻譯的語(yǔ)言
lang2 = inp2.get() # 翻譯出的語(yǔ)言
from_to = Translator(from_lang=lang1.capitalize(), to_lang=lang2.capitalize())
text = inp3.get() # 得到輸入框的文本
ans = from_to.translate(text) # 執(zhí)行翻譯
txt.insert(END, ans) # 將翻譯的結(jié)果給到文本框txt
inp3.delete(0, END) # 清空輸入框
# 初始化,畫布大小
root = Tk()
root.geometry('340x540')
# 輸入語(yǔ)言提示
lb1 = Label(root, text="language " "\t""-->" "\t" + " language")
lb1.place(relx=0.1, rely=0.05, relwidth=0.8, relheight=0.05)
# 第一個(gè)語(yǔ)言輸入框
inp1 = Entry(root)
inp1.place(relx=0.1, rely=0.1, relwidth=0.3, relheight=0.1)
# 第二個(gè)語(yǔ)言輸入框
inp2 = Entry(root)
inp2.place(relx=0.6, rely=0.1, relwidth=0.3, relheight=0.1)
# 調(diào)用翻譯
# 文字提示
lb2 = Label(root, text="輸入需要翻譯的文本")
lb2.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.05)
# 輸入需要翻譯的文本
inp3 = Entry(root)
inp3.place(relx=0.1, rely=0.35, relwidth=0.8, relheight=0.15)
# 翻譯按鈕
btn1 = Button(root, text='翻譯', command=translate_to)
btn1.place(relx=0.4, rely=0.5, relwidth=0.2, relheight=0.1)
# 翻譯的結(jié)果
txt = Text(root)
txt.place(rely=0.7, relheight=0.2)
root.mainloop()
總結(jié)
這個(gè)小軟件或許不是很高大上,
但是每一種嘗試和發(fā)現(xiàn),都能成為我進(jìn)步的階梯
結(jié)果是看客們茶余飯后的談資
過程是親歷者經(jīng)年留影的寶藏
如果喜歡的話,給個(gè)關(guān)注和點(diǎn)贊吧
到此這篇關(guān)于python做翻譯軟件詳解,小白也看得明白的文章就介紹到這了,更多相關(guān)python翻譯軟件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決pandas報(bào)錯(cuò)'DataFrame' object has no
這篇文章主要介紹了解決pandas報(bào)錯(cuò)'DataFrame' object has no attribute 'as_matrix'問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Python自動(dòng)創(chuàng)建Markdown表格使用實(shí)例探究
Markdown表格是文檔中整理和展示數(shù)據(jù)的重要方式之一,然而,手動(dòng)編寫大型表格可能會(huì)費(fèi)時(shí)且容易出錯(cuò),本文將介紹如何使用Python自動(dòng)創(chuàng)建Markdown表格,通過示例代碼詳細(xì)展示各種場(chǎng)景下的創(chuàng)建方法,提高表格生成的效率2024-01-01
tensorflow實(shí)現(xiàn)對(duì)張量數(shù)據(jù)的切片操作方式
今天小編就為大家分享一篇tensorflow實(shí)現(xiàn)對(duì)張量數(shù)據(jù)的切片操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
PyQt5使用QTimer實(shí)現(xiàn)電子時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了PyQt5使用QTimer實(shí)現(xiàn)電子時(shí)鐘,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
python通過tcp發(fā)送xml報(bào)文的方法
今天小編就為大家分享一篇python通過tcp發(fā)送xml報(bào)文的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python 對(duì)一幅灰度圖像進(jìn)行直方圖均衡化
這篇文章主要介紹了python 如何對(duì)一幅灰度圖像進(jìn)行直方圖均衡化,幫助大家更好的利用python處理圖像,感興趣的朋友可以了解下2020-10-10
python使用 request 發(fā)送表單數(shù)據(jù)操作示例
這篇文章主要介紹了python使用 request 發(fā)送表單數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了Python基于requests模塊的表單數(shù)據(jù)發(fā)送操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09
python腳本監(jiān)控logstash進(jìn)程并郵件告警實(shí)例
這篇文章主要介紹了python腳本監(jiān)控logstash進(jìn)程并郵件告警實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04

