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