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