如何使用python制作翻译器?

2024-06-25 22:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我几天前就开始工作了,我需要帮助:( 我想创建一个程序,将一个短语翻译成其他内容

例:

节目

000000000000000000000000000000000000000000000000

“要翻译的短语”

(这里是写句子的人)

激活命令的按钮

(这里是翻译的短语)

000000000000000000000000000000000000000000000000

或者类似的

我已经有了更改单词的代码,我正在创建界面,我已经学会了创建窗口,但我仍然不知道如何粘贴我的翻译:(

这就是我所拥有的

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)

如何“组合”这两个代码(?)


Tags: 代码程序内容root节目packtkwhite
2条回答

您需要做的是创建一个名为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。这样,当有人在您的输入框中输入特定单词时,程序将能够翻译它: 您可以这样做:

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()

相关问题 更多 >