如何用 python 制作翻译器?
How can I make a translator with python?
我几天前就开始了,我需要帮助:(
我想创建一个程序来将短语翻译成其他内容
例如:
计划
000000000000000000000000000000000000000000
“要翻译的短语”
(这里是人写的句子)
一个激活命令的按钮
(这里出现了翻译的短语)
000000000000000000000000000000000000000000
或类似的东西
我已经有了改词的代码,我正在创建界面,我已经学会了创建windows但是我仍然不知道如何粘贴我的翻译:(
这就是我的
frase=input("Escribe la frase: ")
entrada="abcdefghilmnopqrstuvxyz"
salida="mnopqrstuvxyzabcdefghil"
letras=frase.maketrans(entrada,salida)
print(frase.translate(letras))
import tkinter as tk
ventana=tk.Tk()
ventana.title("traductor")
ventana.geometry('200x300')
ventana.configure(background='white')
frase=tk.Entry(ventana)
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
root = tk.Button(ventana,text="Traducir:",bg="black",fg="white")
root.pack(padx=20,pady=10)
如何“组合”这两个代码 (?
您需要做的是创建一个名为 label 的 tk 小部件:
label = tk.Label(ventana, width=20)
label.pack()
然后您可以简单地创建一个名为 translate 的函数,然后根据需要配置标签的文本
def translate(phrase):
label.config(text=phrase)
最后,您应该将函数 translate
绑定到按钮,这样当您按下它时,魔法就会发生:)
像这样:
root = tk.Button(ventana,text="Traducir:",bg="black",fg="white", command=lambda: translate(phrase=frase.get()))
这是根据您的问题准备尝试的一些代码
import tkinter as tk
ventana=tk.Tk()
ventana.title("traductor")
ventana.geometry('200x300')
ventana.configure(background='white')
frase=tk.Entry(ventana)
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
label = tk.Label(ventana, width=20)
label.pack()
dic = {'Hello':'Bonjour'}
def translate(phrase):
if phrase in dic.keys():
text = dic[phrase]
else:
text='Cannot translate text'
label.config(text=text)
root = tk.Button(ventana,text="Traducir:",bg="black",fg="white", command=lambda: translate(phrase=frase.get()))
root.pack(padx=20,pady=10)
ventana.mainloop()
对于翻译部分,你能做的最好的就是创建一个 dictionary
。这样,当有人在您的 EntryBox 中输入特定单词时,程序将能够翻译它:
您可以这样做:
dic = {'Good Morning':'Bonjour', 'Yes':'Oui'}
def translate(phrase):
if phrase in dic.keys():
text = dic[phrase]
else:
text='Cannot translate text'
label.config(text=text)
最后但并非最不重要的一点是,通常最好在程序末尾添加 mainloop()
调用,以便正确处理应用中发生的事件。在您的情况下,您应该添加 ventana.mainloop()
请尝试这段代码。
import tkinter as tk
def translate():
#==== Forget the position of the widgets in the window
for widget in ventana.winfo_children():
widget.pack_forget()
#=== Again place the entry box and the button
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
root.pack(padx=20,pady=10)
#==== Provide the text entered in the entry field
entrada="abcdefghilmnopqrstuvxyz"
salida="mnopqrstuvxyzabcdefghil"
letras=org_phrase.get().maketrans(entrada,salida)
#===print the translation (optional)
print(org_phrase.get().translate(letras))
#=== set it as label to display it
tk.Label(ventana,bg="white",text=org_phrase.get().translate(letras)).pack()
ventana=tk.Tk()
ventana.title("traductor")
ventana.geometry('200x300')
ventana.configure(background='white')
#=== Using stringvar to get the value
org_phrase=tk.StringVar()
#trans_phrase=tk.StringVar()
frase=tk.Entry(ventana,textvariable=org_phrase)
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
root =tk.Button(ventana,text="Traducir:",bg="black",fg="white",command=translate)
root.pack(padx=20,pady=10)
root.mainloop()
我几天前就开始了,我需要帮助:( 我想创建一个程序来将短语翻译成其他内容
例如:
计划
000000000000000000000000000000000000000000
“要翻译的短语”
(这里是人写的句子)
一个激活命令的按钮
(这里出现了翻译的短语)
000000000000000000000000000000000000000000
或类似的东西
我已经有了改词的代码,我正在创建界面,我已经学会了创建windows但是我仍然不知道如何粘贴我的翻译:(
这就是我的
frase=input("Escribe la frase: ")
entrada="abcdefghilmnopqrstuvxyz"
salida="mnopqrstuvxyzabcdefghil"
letras=frase.maketrans(entrada,salida)
print(frase.translate(letras))
import tkinter as tk
ventana=tk.Tk()
ventana.title("traductor")
ventana.geometry('200x300')
ventana.configure(background='white')
frase=tk.Entry(ventana)
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
root = tk.Button(ventana,text="Traducir:",bg="black",fg="white")
root.pack(padx=20,pady=10)
如何“组合”这两个代码 (?
您需要做的是创建一个名为 label 的 tk 小部件:
label = tk.Label(ventana, width=20)
label.pack()
然后您可以简单地创建一个名为 translate 的函数,然后根据需要配置标签的文本
def translate(phrase):
label.config(text=phrase)
最后,您应该将函数 translate
绑定到按钮,这样当您按下它时,魔法就会发生:)
像这样:
root = tk.Button(ventana,text="Traducir:",bg="black",fg="white", command=lambda: translate(phrase=frase.get()))
这是根据您的问题准备尝试的一些代码
import tkinter as tk
ventana=tk.Tk()
ventana.title("traductor")
ventana.geometry('200x300')
ventana.configure(background='white')
frase=tk.Entry(ventana)
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
label = tk.Label(ventana, width=20)
label.pack()
dic = {'Hello':'Bonjour'}
def translate(phrase):
if phrase in dic.keys():
text = dic[phrase]
else:
text='Cannot translate text'
label.config(text=text)
root = tk.Button(ventana,text="Traducir:",bg="black",fg="white", command=lambda: translate(phrase=frase.get()))
root.pack(padx=20,pady=10)
ventana.mainloop()
对于翻译部分,你能做的最好的就是创建一个 dictionary
。这样,当有人在您的 EntryBox 中输入特定单词时,程序将能够翻译它:
您可以这样做:
dic = {'Good Morning':'Bonjour', 'Yes':'Oui'}
def translate(phrase):
if phrase in dic.keys():
text = dic[phrase]
else:
text='Cannot translate text'
label.config(text=text)
最后但并非最不重要的一点是,通常最好在程序末尾添加 mainloop()
调用,以便正确处理应用中发生的事件。在您的情况下,您应该添加 ventana.mainloop()
请尝试这段代码。
import tkinter as tk
def translate():
#==== Forget the position of the widgets in the window
for widget in ventana.winfo_children():
widget.pack_forget()
#=== Again place the entry box and the button
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
root.pack(padx=20,pady=10)
#==== Provide the text entered in the entry field
entrada="abcdefghilmnopqrstuvxyz"
salida="mnopqrstuvxyzabcdefghil"
letras=org_phrase.get().maketrans(entrada,salida)
#===print the translation (optional)
print(org_phrase.get().translate(letras))
#=== set it as label to display it
tk.Label(ventana,bg="white",text=org_phrase.get().translate(letras)).pack()
ventana=tk.Tk()
ventana.title("traductor")
ventana.geometry('200x300')
ventana.configure(background='white')
#=== Using stringvar to get the value
org_phrase=tk.StringVar()
#trans_phrase=tk.StringVar()
frase=tk.Entry(ventana,textvariable=org_phrase)
frase.pack(fill=tk.X,padx=5,pady=5,ipadx=5,ipady=5)
root =tk.Button(ventana,text="Traducir:",bg="black",fg="white",command=translate)
root.pack(padx=20,pady=10)
root.mainloop()