前言
对于我这种英语比较差的人来说,无论是敲代码还是看文档,
那都是离不开翻译软件的,于是我想自己用python做一个翻译软件,
花了一个小时,终于做了出来了,支持各种语言的翻译
一、需要的库
translate:
谷歌翻译的第三方包,可以实现多种语言之间的相互翻译。
tkinter:
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
没有安装的话,复制下面的命令,直接安装
pip install translate pip install tkinter
二、分析处理
1.步骤
要实现翻译软件,需要完成两样东西:
1.翻译过程的代码实现
2.图形界面代码的实现
2.思路
我的思路是先整体完成翻译的代码,然后再结合图形界面的代码重新整合,开搞!
三.代码的实现
1.翻译部分
翻译部分的代码:
from translate import Translator lang1=input("想翻译的语言:") 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.图形界面代码
这是我设置的界面的大小:
图形界面初始化:
# 初始化,画布大小 root = Tk() root.geometry('340x540') # 输入语言提示 lb1 = Label(root, text="language " "\t""-->" "\t" + " language") lb1.place(relx=0.1, rely=0.05, relwidth=0.8, relheight=0.05) # 第一个语言输入框 inp1 = Entry(root) inp1.place(relx=0.1, rely=0.1, relwidth=0.3, relheight=0.1) # 第二个语言输入框 inp2 = Entry(root) inp2.place(relx=0.6, rely=0.1, relwidth=0.3, relheight=0.1)
效果如下
有强迫症的我,在这个地方调了好久好久…最后终于对称了…心累
然后完成翻译按钮和文本的输入,输出框
# 调用翻译 # 文字提示 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) # 翻译的结果 txt = Text(root) txt.place(rely=0.7, relheight=0.2) root.mainloop()
最后呈现的效果:
到这里他只是一个躯壳,还没有灵魂,接下来,我们为他注入灵魂。
3.整合
将翻译的代码一起整合后,终于大功告成
先上效果展示,再上代码:
from translate import Translator from tkinter import * def translate_to(): lang1 = inp1.get() # 被翻译的语言 lang2 = inp2.get() # 翻译出的语言 from_to = Translator(from_lang=lang1.capitalize(), to_lang=lang2.capitalize()) text = inp3.get() # 得到输入框的文本 ans = from_to.translate(text) # 执行翻译 txt.insert(END, ans) # 将翻译的结果给到文本框txt inp3.delete(0, END) # 清空输入框 # 初始化,画布大小 root = Tk() root.geometry('340x540') # 输入语言提示 lb1 = Label(root, text="language " "\t""-->" "\t" + " language") lb1.place(relx=0.1, rely=0.05, relwidth=0.8, relheight=0.05) # 第一个语言输入框 inp1 = Entry(root) inp1.place(relx=0.1, rely=0.1, relwidth=0.3, relheight=0.1) # 第二个语言输入框 inp2 = Entry(root) inp2.place(relx=0.6, rely=0.1, relwidth=0.3, relheight=0.1) # 调用翻译 # 文字提示 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) # 翻译的结果 txt = Text(root) txt.place(rely=0.7, relheight=0.2) root.mainloop()
总结
这个小软件或许不是很高大上,
但是每一种尝试和发现,都能成为我进步的阶梯
结果是看客们茶余饭后的谈资
过程是亲历者经年留影的宝藏