-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlanguage.py
More file actions
63 lines (49 loc) · 1.88 KB
/
language.py
File metadata and controls
63 lines (49 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from tkinter import *
from googletrans import Translator, LANGUAGES # type: ignore
# Initialize the translator
translator = Translator()
# Create the GUI window
root = Tk()
root.title("CodeAlpha - Language Translator")
root.geometry("500x400")
root.config(bg="#f0f0f0")
# Language list
languages = list(LANGUAGES.values())
# Function to perform translation
def translate_text():
src_lang = source_lang.get()
dest_lang = target_lang.get()
text_to_translate = input_text.get("1.0", END)
# Get language codes
src_code = list(LANGUAGES.keys())[languages.index(src_lang)]
dest_code = list(LANGUAGES.keys())[languages.index(dest_lang)]
try:
translated = translator.translate(text_to_translate, src=src_code, dest=dest_code)
output_text.delete("1.0", END)
output_text.insert(END, translated.text)
except Exception as e:
output_text.delete("1.0", END)
output_text.insert(END, "Error: " + str(e))
# Title
Label(root, text="Language Translator", font=("Helvetica", 16, "bold"), bg="#f0f0f0").pack(pady=10)
# Language dropdowns
frame = Frame(root, bg="#f0f0f0")
frame.pack(pady=5)
source_lang = StringVar()
source_lang.set("english")
OptionMenu(frame, source_lang, *languages).grid(row=0, column=0, padx=10)
target_lang = StringVar()
target_lang.set("tamil")
OptionMenu(frame, target_lang, *languages).grid(row=0, column=1, padx=10)
# Input text
Label(root, text="Enter text to translate:", bg="#f0f0f0").pack(pady=5)
input_text = Text(root, height=5, width=60)
input_text.pack(pady=5)
# Translate button
Button(root, text="Translate", command=translate_text, bg="green", fg="white").pack(pady=10)
# Output text
Label(root, text="Translated text:", bg="#f0f0f0").pack(pady=5)
output_text = Text(root, height=5, width=60)
output_text.pack(pady=5)
# Start the GUI loop
root.mainloop()