Amazing-Python-Scripts
201 строка · 3.9 Кб
1from tkinter import *
2import tkinter as tk
3from tkinter import ttk
4from googletrans import Translator
5from tkinter import messagebox
6
7# Creating Tkinter Scaffold
8root = tk.Tk()
9root.title('Langauge Translator')
10root.geometry('530x330')
11root.maxsize(530, 330)
12root.minsize(530, 330)
13
14# Function to translate using the translator package
15
16
17def translate():
18language_1 = t1.get("1.0", "end-1c")
19cl = choose_langauge.get()
20
21if language_1 == '':
22messagebox.showerror('Language Translator', 'please fill the box')
23else:
24t2.delete(1.0, 'end')
25translator = Translator()
26output = translator.translate(language_1, dest=cl)
27t2.insert('end', output.text)
28
29
30# Function to clear the input fields
31def clear():
32t1.delete(1.0, 'end')
33t2.delete(1.0, 'end')
34
35
36# SelectBox 1 for auto detected language
37auto_detect_language = tk.StringVar()
38auto_detect = ttk.Combobox(
39root,
40width=20,
41textvariable=auto_detect_language,
42state='readonly',
43font=('verdana', 10, 'bold'),
44)
45
46auto_detect['values'] = ('Auto Detect', )
47
48auto_detect.place(x=30, y=70)
49auto_detect.current(0)
50
51# SelectBox 2 for selected language
52language_selected = tk.StringVar()
53choose_langauge = ttk.Combobox(root,
54width=20,
55textvariable=language_selected,
56state='readonly',
57font=('verdana', 10, 'bold'))
58
59# List of available language options for translation
60choose_langauge['values'] = (
61'Afrikaans',
62'Albanian',
63'Arabic',
64'Armenian',
65' Azerbaijani',
66'Basque',
67'Belarusian',
68'Bengali',
69'Bosnian',
70'Bulgarian',
71' Catalan',
72'Cebuano',
73'Chichewa',
74'Chinese',
75'Corsican',
76'Croatian',
77' Czech',
78'Danish',
79'Dutch',
80'English',
81'Esperanto',
82'Estonian',
83'Filipino',
84'Finnish',
85'French',
86'Frisian',
87'Galician',
88'Georgian',
89'German',
90'Greek',
91'Gujarati',
92'Haitian Creole',
93'Hausa',
94'Hawaiian',
95'Hebrew',
96'Hindi',
97'Hmong',
98'Hungarian',
99'Icelandic',
100'Igbo',
101'Indonesian',
102'Irish',
103'Italian',
104'Japanese',
105'Javanese',
106'Kannada',
107'Kazakh',
108'Khmer',
109'Kinyarwanda',
110'Korean',
111'Kurdish',
112'Kyrgyz',
113'Lao',
114'Latin',
115'Latvian',
116'Lithuanian',
117'Luxembourgish',
118'Macedonian',
119'Malagasy',
120'Malay',
121'Malayalam',
122'Maltese',
123'Maori',
124'Marathi',
125'Mongolian',
126'Myanmar',
127'Nepali',
128'Norwegian'
129'Odia',
130'Pashto',
131'Persian',
132'Polish',
133'Portuguese',
134'Punjabi',
135'Romanian',
136'Russian',
137'Samoan',
138'Scots Gaelic',
139'Serbian',
140'Sesotho',
141'Shona',
142'Sindhi',
143'Sinhala',
144'Slovak',
145'Slovenian',
146'Somali',
147'Spanish',
148'Sundanese',
149'Swahili',
150'Swedish',
151'Tajik',
152'Tamil',
153'Tatar',
154'Telugu',
155'Thai',
156'Turkish',
157'Turkmen',
158'Ukrainian',
159'Urdu',
160'Uyghur',
161'Uzbek',
162'Vietnamese',
163'Welsh',
164'Xhosa'
165'Yiddish',
166'Yoruba',
167'Zulu',
168)
169
170choose_langauge.place(x=290, y=70)
171choose_langauge.current(0)
172
173# To store Input Text
174t1 = Text(root, width=30, height=10, borderwidth=5, relief=RIDGE)
175t1.place(x=10, y=100)
176
177# To store translated Text
178t2 = Text(root, width=30, height=10, borderwidth=5, relief=RIDGE)
179t2.place(x=260, y=100)
180
181button = Button(root,
182text="Translate",
183relief=RIDGE,
184borderwidth=3,
185font=('verdana', 10, 'bold'),
186cursor="hand2",
187foreground='Green',
188command=translate)
189button.place(x=150, y=280)
190
191clear = Button(root,
192text="Clear",
193relief=RIDGE,
194borderwidth=3,
195font=('verdana', 10, 'bold'),
196cursor="hand2",
197foreground='Red',
198command=clear)
199clear.place(x=280, y=280)
200
201root.mainloop()
202