Python googletrans只返回一个单词



我使用tkinter和googletrans 制作了一个翻译应用程序

但当我运行它时,googletrans只返回1个单词这是我的完整代码(main.py(

#Importing modules
from tkinter import *
from googletrans import Translator
##Main Script
#Main Window
Window = Tk()
Window.geometry("400x700")
Window.resizable(False, False)
Window.configure(bg="#e1f4f3")
#Defs
def translate():
ans = inp.get(1.0)
trans = Translator()
t = trans.translate(
ans, src="id", dest="en"
)
trans_txt.config(state="normal")
trans_txt.delete(END, "end")
trans_txt.insert(END, t.text)
trans_txt.config(state="normal")
#Widgets
#main frame
main = Frame(Window, width=300, height=500, bg="#00d1ff", bd=0, highlightthickness=0)
#entries
#input user
inp = Text(main, bd=0, highlightthickness=0, font=("Gotham Book", 20))
inp.pack_propagate(0)
#translate btn
translate_btn = Button(main, bd=0, highlightthickness=0, font=("Gotham Book", 20), text="Translate", command=translate)
translate_btn.configure(highlightbackground="light blue")
translate_btn.pack_propagate(0)
#translation
trans_txt = Text(main, bd=0, highlightthickness=0, font=("Gotham Book", 20))
trans_txt.config(state="disabled")
trans_txt.pack_propagate(0)
#Packs
main.place(anchor="c", rely=.5, relx=.5)
inp.place(x=150, anchor="c", y=100, height=90, width=250)
translate_btn.place(x=150, anchor="c", y=250)
trans_txt.place(x=150, anchor="c", y=400, height=90, width=250)
#Window.mainloop()
Window.mainloop()

main.py返回

H

当我键入";海;。在inp窗口小部件中

但在另一个代码文件(trans_test.py(中它返回正确翻译的单词这是trans_test.py完整代码

#Importing modules
from googletrans import Translator
#trans()
def trans(text):
trans = Translator()
t = trans.translate(
text, src="id", dest="en"
)
return t.text
#test
print(trans("Hai"))

trans_test.py返回

Hi

如果有人回答这个问题,谢谢:(

只得到h的原因是您的translate函数正在尝试翻译h,即h。在第ans = inp.get(1.0)行,您只需要获得第1行和第0列的字符,也就是1.0,您需要获得完整的文本,这可以通过执行ans = inp.get(1.0, 'end')来完成。

此外,我想解决trans_txt.delete(END, "end")问题。如果你试图完全删除文本,那么你需要从开始索引删除到结束索引

trans_txt.delete(1.0, "end")

END"end"是相同的值,不要混淆。

此外,如果您试图使第二个文本小部件成为只读文本,那么您只需要在插入后禁用该状态。

改进的translate功能

def translate():
ans = inp.get(1.0, 'end')
trans = Translator()
t = trans.translate(ans, src="id", dest="en")
trans_txt.config(state="normal")
trans_txt.delete(1.0, "end")
trans_txt.insert(END, t.text)
trans_txt.config(state="disabled")

相关内容

  • 没有找到相关文章

最新更新