|
1 | 1 | from tkinter import * |
2 | 2 | from translate import Translator |
3 | 3 |
|
4 | | - |
5 | | -# Translator function |
6 | | -def translate(): |
7 | | - translator = Translator(from_lang=lan1.get(), to_lang=lan2.get()) |
8 | | - translation = translator.translate(var.get()) |
9 | | - var1.set(translation) |
10 | | - |
11 | | - |
12 | | -# Tkinter root Window with title |
| 4 | +# Translator |
| 5 | +def translate_text(): |
| 6 | + try: |
| 7 | + translator = Translator(from_lang=lan1.get(), to_lang=lan2.get()) |
| 8 | + translation = translator.translate(text_input.get()) |
| 9 | + output_text.set(translation) |
| 10 | + except Exception as e: |
| 11 | + output_text.set("Error") |
| 12 | + |
| 13 | +# root window |
13 | 14 | root = Tk() |
14 | 15 | root.title("Translator") |
15 | 16 |
|
16 | | -# Creating a Frame and Grid to hold the Content |
| 17 | +# frame |
17 | 18 | mainframe = Frame(root) |
18 | | -mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) |
19 | | -mainframe.columnconfigure(0, weight=1) |
20 | | -mainframe.rowconfigure(0, weight=1) |
21 | | -mainframe.pack(pady=100, padx=100) |
22 | | - |
23 | | -# variables |
24 | | -lan1 = StringVar(root) |
25 | | -lan2 = StringVar(root) |
26 | | -lan1.set("English") |
27 | | -lan2.set("Hindi") |
28 | | - |
29 | | -# taking input of languages from user |
30 | | -Label(mainframe, text="Enter language translate from").grid(row=0, column=1) |
31 | | -var = StringVar() |
32 | | -textbox = Entry(mainframe, textvariable=var).grid(row=1, column=1, padx=10, pady=10) |
33 | | - |
34 | | -Label(mainframe, text="Enter a language to").grid(row=0, column=2) |
35 | | -var = StringVar() |
36 | | -textbox = Entry(mainframe, textvariable=var).grid(row=1, column=2, padx=10, pady=10) |
37 | | - |
38 | | -# Text Box to take user input |
39 | | -Label(mainframe, text="Enter text").grid(row=3, column=0) |
40 | | -var = StringVar() |
41 | | -textbox = Entry(mainframe, textvariable=var).grid(row=3, column=1) |
42 | | - |
43 | | -# textbox to show output |
44 | | -# label can also be used |
45 | | -Label(mainframe, text="Output").grid(row=3, column=2) |
46 | | -var1 = StringVar() |
47 | | -textbox = Entry(mainframe, textvariable=var1).grid(row=3, column=3, padx=10, pady=10) |
48 | | - |
49 | | -# creating a button to call Translator function |
50 | | -b = Button( |
51 | | - mainframe, text="Translate", command=translate, activebackground="green" |
52 | | -).grid(row=4, column=1, columnspan=3) |
| 19 | +mainframe.pack(pady=50, padx=50) |
| 20 | + |
| 21 | +lan1 = StringVar(value="en") # default: English |
| 22 | +lan2 = StringVar(value="hi") # default: Hindi |
| 23 | +text_input = StringVar() |
| 24 | +output_text = StringVar() |
| 25 | + |
| 26 | +# input fields |
| 27 | +Label(mainframe, text="From (e.g. en)").grid(row=0, column=0) |
| 28 | +Entry(mainframe, textvariable=lan1).grid(row=1, column=0, padx=10, pady=10) |
| 29 | + |
| 30 | +Label(mainframe, text="To (e.g. hi)").grid(row=0, column=1) |
| 31 | +Entry(mainframe, textvariable=lan2).grid(row=1, column=1, padx=10, pady=10) |
| 32 | + |
| 33 | +# Text input |
| 34 | +Label(mainframe, text="Enter text").grid(row=2, column=0) |
| 35 | +Entry(mainframe, textvariable=text_input).grid(row=3, column=0, columnspan=2, padx=10, pady=10) |
| 36 | + |
| 37 | +# Output |
| 38 | +Label(mainframe, text="Output").grid(row=4, column=0) |
| 39 | +Entry(mainframe, textvariable=output_text).grid(row=5, column=0, columnspan=2, padx=10, pady=10) |
| 40 | + |
| 41 | +Button(mainframe, text="Translate", command=translate_text, bg="green").grid(row=6, column=0, columnspan=2) |
53 | 42 |
|
54 | 43 | root.mainloop() |
0 commit comments