-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathflet_translate.py
More file actions
64 lines (51 loc) · 1.68 KB
/
flet_translate.py
File metadata and controls
64 lines (51 loc) · 1.68 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
64
# import flet
from flet import *
from pyjyutping import jyutping as jtc
from googletrans import Translator
import re
pat = r'[-a-zA-Z0-9]+|[\S]'
#translator object for human language translation
trans = Translator()
lang ={
'code': ['en', 'it', 'de', 'ja', 'fr', 'zh-TW', 'es'],
'dname': ['English', 'Italiano', 'Deutsch', '日本語', 'Français', '廣東話', 'Español'],
'name':['English', 'Italian', 'German', 'Japanese', 'French', 'Cantonese', 'Spanish'],
'color':['red', 'purple', 'black', "#211790", 'blue', 'green', 'brown']
}
def main(page: Page):
page.title = "Warern's App"
page.vertical_alignment = "center"
page.window_height = 108*6
page.window_width = 108*6
"""events"""
def get_eng(e):
try:
eng_trans.value = trans.translate(e.control.value,'en').text
except:
eng_trans.value = "Please try again"
page.update()
def get_lang(e):
result.controls = [TextField(label=lang['dname'][i], value=trans.translate(eng_trans.value,dest=item).text) for i, item in enumerate(lang['code'])]
page.update()
"""elements"""
entry = TextField(label = 'Enter text', on_change=get_eng)
eng_trans = TextField(label='English Translation', multiline=True)
btn_get_lang = ElevatedButton("Get Language", icon="select_all_rounded", on_click = get_lang)
# lang_labels = Column()
result = Column()
page.add(
Column(controls = [
#1st item of the main column
entry,
#2nd item of main column
eng_trans,
#3rd item of the main column
btn_get_lang,
# 4th item of the main column
# Row(controls=[lang_labels,result])
result
]
)
)
page.update()
app(target=main, view=WEB_BROWSER)