imba-localization 0.4.8 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/localization.imba +83 -85
- package/package.json +1 -1
package/localization.imba
CHANGED
|
@@ -1,3 +1,67 @@
|
|
|
1
|
+
# Emoji flags mapping - comprehensive list by region
|
|
2
|
+
export const flags = {
|
|
3
|
+
# Europe
|
|
4
|
+
'gb': '🇬🇧', 'us': '🇺🇸', 'ru': '🇷🇺', 'de': '🇩🇪', 'fr': '🇫🇷',
|
|
5
|
+
'es': '🇪🇸', 'it': '🇮🇹', 'nl': '🇳🇱', 'pl': '🇵🇱', 'ua': '🇺🇦',
|
|
6
|
+
'cz': '🇨🇿', 'gr': '🇬🇷', 'hu': '🇭🇺', 'ro': '🇷🇴', 'se': '🇸🇪',
|
|
7
|
+
'no': '🇳🇴', 'dk': '🇩🇰', 'fi': '🇫🇮', 'pt': '🇵🇹', 'ie': '🇮🇪',
|
|
8
|
+
'be': '🇧🇪', 'at': '🇦🇹', 'ch': '🇨🇭', 'sk': '🇸🇰', 'bg': '🇧🇬',
|
|
9
|
+
'hr': '🇭🇷', 'rs': '🇷🇸', 'si': '🇸🇮', 'lt': '🇱🇹', 'lv': '🇱🇻',
|
|
10
|
+
'ee': '🇪🇪', 'is': '🇮🇸', 'lu': '🇱🇺', 'mt': '🇲🇹', 'cy': '🇨🇾',
|
|
11
|
+
'ba': '🇧🇦', 'mk': '🇲🇰', 'al': '🇦🇱', 'md': '🇲🇩', 'me': '🇲🇪',
|
|
12
|
+
'by': '🇧🇾', 'ru': '🇷🇺', 'ge': '🇬🇪', 'am': '🇦🇲', 'az': '🇦🇿',
|
|
13
|
+
|
|
14
|
+
# Asia
|
|
15
|
+
'cn': '🇨🇳', 'jp': '🇯🇵', 'kr': '🇰🇷', 'in': '🇮🇳', 'id': '🇮🇩',
|
|
16
|
+
'th': '🇹🇭', 'vn': '🇻🇳', 'ph': '🇵🇭', 'sg': '🇸🇬', 'my': '🇲🇾',
|
|
17
|
+
'hk': '🇭🇰', 'tw': '🇹🇼', 'pk': '🇵🇰', 'bd': '🇧🇩', 'lk': '🇱🇰',
|
|
18
|
+
'kh': '🇰🇭', 'la': '🇱🇦', 'mm': '🇲🇲', 'bn': '🇧🇳', 'mo': '🇲🇴',
|
|
19
|
+
'mn': '🇲🇳', 'np': '🇳🇵', 'bt': '🇧🇹', 'mv': '🇲🇻', 'kz': '🇰🇿',
|
|
20
|
+
'uz': '🇺🇿', 'tm': '🇹🇲', 'kg': '🇰🇬', 'tj': '🇹🇯', 'af': '🇦🇫',
|
|
21
|
+
|
|
22
|
+
# Middle East
|
|
23
|
+
'tr': '🇹🇷', 'il': '🇮🇱', 'ae': '🇦🇪', 'sa': '🇸🇦', 'qa': '🇶🇦',
|
|
24
|
+
'kw': '🇰🇼', 'bh': '🇧🇭', 'om': '🇴🇲', 'jo': '🇯🇴', 'lb': '🇱🇧',
|
|
25
|
+
'iq': '🇮🇶', 'ir': '🇮🇷', 'sy': '🇸🇾', 'ye': '🇾🇪', 'ps': '🇵🇸',
|
|
26
|
+
|
|
27
|
+
# Americas
|
|
28
|
+
'br': '🇧🇷', 'mx': '🇲🇽', 'ca': '🇨🇦', 'ar': '🇦🇷', 'cl': '🇨🇱',
|
|
29
|
+
'co': '🇨🇴', 'pe': '🇵🇪', 've': '🇻🇪', 'ec': '🇪🇨', 'uy': '🇺🇾',
|
|
30
|
+
'py': '🇵🇾', 'bo': '🇧🇴', 'cr': '🇨🇷', 'pa': '🇵🇦', 'gt': '🇬🇹',
|
|
31
|
+
'cu': '🇨🇺', 'do': '🇩🇴', 'hn': '🇭🇳', 'sv': '🇸🇻', 'ni': '🇳🇮',
|
|
32
|
+
'jm': '🇯🇲', 'tt': '🇹🇹', 'bs': '🇧🇸', 'bb': '🇧🇧', 'pr': '🇵🇷',
|
|
33
|
+
|
|
34
|
+
# Africa
|
|
35
|
+
'za': '🇿🇦', 'eg': '🇪🇬', 'ng': '🇳🇬', 'ke': '🇰🇪', 'gh': '🇬🇭',
|
|
36
|
+
'ma': '🇲🇦', 'dz': '🇩🇿', 'tn': '🇹🇳', 'et': '🇪🇹', 'tz': '🇹🇿',
|
|
37
|
+
'ug': '🇺🇬', 'zw': '🇿🇼', 'ao': '🇦🇴', 'cm': '🇨🇲', 'ci': '🇨🇮',
|
|
38
|
+
'cd': '🇨🇩', 'sn': '🇸🇳', 'ml': '🇲🇱', 'bf': '🇧🇫', 'ne': '🇳🇪',
|
|
39
|
+
'tg': '🇹🇬', 'bw': '🇧🇼', 'na': '🇳🇦', 'mz': '🇲🇿', 'mg': '🇲🇬',
|
|
40
|
+
|
|
41
|
+
# Oceania
|
|
42
|
+
'au': '🇦🇺', 'nz': '🇳🇿', 'fj': '🇫🇯', 'pg': '🇵🇬', 'ws': '🇼🇸',
|
|
43
|
+
'to': '🇹🇴', 'vu': '🇻🇺', 'sb': '🇸🇧', 'nc': '🇳🇨', 'pf': '🇵🇫',
|
|
44
|
+
'gu': '🇬🇺', 'as': '🇦🇸', 'ck': '🇨🇰', 'nu': '🇳🇺', 'tk': '🇹🇰',
|
|
45
|
+
|
|
46
|
+
# Caribbean & Atlantic
|
|
47
|
+
'bm': '🇧🇲', 'ky': '🇰🇾', 'vi': '🇻🇮', 'ag': '🇦🇬', 'dm': '🇩🇲',
|
|
48
|
+
'gd': '🇬🇩', 'kn': '🇰🇳', 'lc': '🇱🇨', 'vc': '🇻🇨', 'ai': '🇦🇮',
|
|
49
|
+
'ms': '🇲🇸', 'gp': '🇬🇵', 'mq': '🇲🇶', 'gf': '🇬🇫', 'aw': '🇦🇼',
|
|
50
|
+
'cw': '🇨🇼', 'sx': '🇸🇽', 'bq': '🇧🇶', 'tc': '🇹🇨', 'vg': '🇻🇬',
|
|
51
|
+
|
|
52
|
+
# Indian Ocean
|
|
53
|
+
'mu': '🇲🇺', 'sc': '🇸🇨', 're': '🇷🇪', 'yt': '🇾🇹', 'km': '🇰🇲',
|
|
54
|
+
'mv': '🇲🇻', 'io': '🇮🇴', 'cx': '🇨🇽', 'cc': '🇨🇨', 'hm': '🇭🇲',
|
|
55
|
+
|
|
56
|
+
# Arctic & Antarctic
|
|
57
|
+
'gl': '🇬🇱', 'fo': '🇫🇴', 'sj': '🇸🇯', 'ax': '🇦🇽', 'tf': '🇹🇫',
|
|
58
|
+
'bv': '🇧🇻', 'gs': '🇬🇸', 'aq': '🇦🇶', 'tf': '🇹🇫',
|
|
59
|
+
|
|
60
|
+
# Special territories
|
|
61
|
+
'eu': '🇪🇺', 'un': '🇺🇳', 'ac': '🇦🇨', 'ta': '🇹🇦', 'cp': '🇨🇵',
|
|
62
|
+
'dg': '🇩🇬', 'ea': '🇪🇦', 'ic': '🇮🇨', 'xk': '🇽🇰'
|
|
63
|
+
}
|
|
64
|
+
|
|
1
65
|
export class Localization
|
|
2
66
|
onready
|
|
3
67
|
onerror
|
|
@@ -65,70 +129,6 @@ export class Localization
|
|
|
65
129
|
|
|
66
130
|
export const path-arrow-down = <path d="M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z">
|
|
67
131
|
|
|
68
|
-
# Emoji flags mapping - comprehensive list by region
|
|
69
|
-
const flags = {
|
|
70
|
-
# Europe
|
|
71
|
-
'gb': '🇬🇧', 'us': '🇺🇸', 'ru': '🇷🇺', 'de': '🇩🇪', 'fr': '🇫🇷',
|
|
72
|
-
'es': '🇪🇸', 'it': '🇮🇹', 'nl': '🇳🇱', 'pl': '🇵🇱', 'ua': '🇺🇦',
|
|
73
|
-
'cz': '🇨🇿', 'gr': '🇬🇷', 'hu': '🇭🇺', 'ro': '🇷🇴', 'se': '🇸🇪',
|
|
74
|
-
'no': '🇳🇴', 'dk': '🇩🇰', 'fi': '🇫🇮', 'pt': '🇵🇹', 'ie': '🇮🇪',
|
|
75
|
-
'be': '🇧🇪', 'at': '🇦🇹', 'ch': '🇨🇭', 'sk': '🇸🇰', 'bg': '🇧🇬',
|
|
76
|
-
'hr': '🇭🇷', 'rs': '🇷🇸', 'si': '🇸🇮', 'lt': '🇱🇹', 'lv': '🇱🇻',
|
|
77
|
-
'ee': '🇪🇪', 'is': '🇮🇸', 'lu': '🇱🇺', 'mt': '🇲🇹', 'cy': '🇨🇾',
|
|
78
|
-
'ba': '🇧🇦', 'mk': '🇲🇰', 'al': '🇦🇱', 'md': '🇲🇩', 'me': '🇲🇪',
|
|
79
|
-
'by': '🇧🇾', 'ru': '🇷🇺', 'ge': '🇬🇪', 'am': '🇦🇲', 'az': '🇦🇿',
|
|
80
|
-
|
|
81
|
-
# Asia
|
|
82
|
-
'cn': '🇨🇳', 'jp': '🇯🇵', 'kr': '🇰🇷', 'in': '🇮🇳', 'id': '🇮🇩',
|
|
83
|
-
'th': '🇹🇭', 'vn': '🇻🇳', 'ph': '🇵🇭', 'sg': '🇸🇬', 'my': '🇲🇾',
|
|
84
|
-
'hk': '🇭🇰', 'tw': '🇹🇼', 'pk': '🇵🇰', 'bd': '🇧🇩', 'lk': '🇱🇰',
|
|
85
|
-
'kh': '🇰🇭', 'la': '🇱🇦', 'mm': '🇲🇲', 'bn': '🇧🇳', 'mo': '🇲🇴',
|
|
86
|
-
'mn': '🇲🇳', 'np': '🇳🇵', 'bt': '🇧🇹', 'mv': '🇲🇻', 'kz': '🇰🇿',
|
|
87
|
-
'uz': '🇺🇿', 'tm': '🇹🇲', 'kg': '🇰🇬', 'tj': '🇹🇯', 'af': '🇦🇫',
|
|
88
|
-
|
|
89
|
-
# Middle East
|
|
90
|
-
'tr': '🇹🇷', 'il': '🇮🇱', 'ae': '🇦🇪', 'sa': '🇸🇦', 'qa': '🇶🇦',
|
|
91
|
-
'kw': '🇰🇼', 'bh': '🇧🇭', 'om': '🇴🇲', 'jo': '🇯🇴', 'lb': '🇱🇧',
|
|
92
|
-
'iq': '🇮🇶', 'ir': '🇮🇷', 'sy': '🇸🇾', 'ye': '🇾🇪', 'ps': '🇵🇸',
|
|
93
|
-
|
|
94
|
-
# Americas
|
|
95
|
-
'br': '🇧🇷', 'mx': '🇲🇽', 'ca': '🇨🇦', 'ar': '🇦🇷', 'cl': '🇨🇱',
|
|
96
|
-
'co': '🇨🇴', 'pe': '🇵🇪', 've': '🇻🇪', 'ec': '🇪🇨', 'uy': '🇺🇾',
|
|
97
|
-
'py': '🇵🇾', 'bo': '🇧🇴', 'cr': '🇨🇷', 'pa': '🇵🇦', 'gt': '🇬🇹',
|
|
98
|
-
'cu': '🇨🇺', 'do': '🇩🇴', 'hn': '🇭🇳', 'sv': '🇸🇻', 'ni': '🇳🇮',
|
|
99
|
-
'jm': '🇯🇲', 'tt': '🇹🇹', 'bs': '🇧🇸', 'bb': '🇧🇧', 'pr': '🇵🇷',
|
|
100
|
-
|
|
101
|
-
# Africa
|
|
102
|
-
'za': '🇿🇦', 'eg': '🇪🇬', 'ng': '🇳🇬', 'ke': '🇰🇪', 'gh': '🇬🇭',
|
|
103
|
-
'ma': '🇲🇦', 'dz': '🇩🇿', 'tn': '🇹🇳', 'et': '🇪🇹', 'tz': '🇹🇿',
|
|
104
|
-
'ug': '🇺🇬', 'zw': '🇿🇼', 'ao': '🇦🇴', 'cm': '🇨🇲', 'ci': '🇨🇮',
|
|
105
|
-
'cd': '🇨🇩', 'sn': '🇸🇳', 'ml': '🇲🇱', 'bf': '🇧🇫', 'ne': '🇳🇪',
|
|
106
|
-
'tg': '🇹🇬', 'bw': '🇧🇼', 'na': '🇳🇦', 'mz': '🇲🇿', 'mg': '🇲🇬',
|
|
107
|
-
|
|
108
|
-
# Oceania
|
|
109
|
-
'au': '🇦🇺', 'nz': '🇳🇿', 'fj': '🇫🇯', 'pg': '🇵🇬', 'ws': '🇼🇸',
|
|
110
|
-
'to': '🇹🇴', 'vu': '🇻🇺', 'sb': '🇸🇧', 'nc': '🇳🇨', 'pf': '🇵🇫',
|
|
111
|
-
'gu': '🇬🇺', 'as': '🇦🇸', 'ck': '🇨🇰', 'nu': '🇳🇺', 'tk': '🇹🇰',
|
|
112
|
-
|
|
113
|
-
# Caribbean & Atlantic
|
|
114
|
-
'bm': '🇧🇲', 'ky': '🇰🇾', 'vi': '🇻🇮', 'ag': '🇦🇬', 'dm': '🇩🇲',
|
|
115
|
-
'gd': '🇬🇩', 'kn': '🇰🇳', 'lc': '🇱🇨', 'vc': '🇻🇨', 'ai': '🇦🇮',
|
|
116
|
-
'ms': '🇲🇸', 'gp': '🇬🇵', 'mq': '🇲🇶', 'gf': '🇬🇫', 'aw': '🇦🇼',
|
|
117
|
-
'cw': '🇨🇼', 'sx': '🇸🇽', 'bq': '🇧🇶', 'tc': '🇹🇨', 'vg': '🇻🇬',
|
|
118
|
-
|
|
119
|
-
# Indian Ocean
|
|
120
|
-
'mu': '🇲🇺', 'sc': '🇸🇨', 're': '🇷🇪', 'yt': '🇾🇹', 'km': '🇰🇲',
|
|
121
|
-
'mv': '🇲🇻', 'io': '🇮🇴', 'cx': '🇨🇽', 'cc': '🇨🇨', 'hm': '🇭🇲',
|
|
122
|
-
|
|
123
|
-
# Arctic & Antarctic
|
|
124
|
-
'gl': '🇬🇱', 'fo': '🇫🇴', 'sj': '🇸🇯', 'ax': '🇦🇽', 'tf': '🇹🇫',
|
|
125
|
-
'bv': '🇧🇻', 'gs': '🇬🇸', 'aq': '🇦🇶', 'tf': '🇹🇫',
|
|
126
|
-
|
|
127
|
-
# Special territories
|
|
128
|
-
'eu': '🇪🇺', 'un': '🇺🇳', 'ac': '🇦🇨', 'ta': '🇹🇦', 'cp': '🇨🇵',
|
|
129
|
-
'dg': '🇩🇬', 'ea': '🇪🇦', 'ic': '🇮🇨', 'xk': '🇽🇰'
|
|
130
|
-
}
|
|
131
|
-
|
|
132
132
|
tag language-selector
|
|
133
133
|
state
|
|
134
134
|
#dropdown = false
|
|
@@ -136,9 +136,6 @@ tag language-selector
|
|
|
136
136
|
passive = false
|
|
137
137
|
first = true # Show selected language first in dropdown
|
|
138
138
|
|
|
139
|
-
def setup
|
|
140
|
-
data = state.active
|
|
141
|
-
|
|
142
139
|
def onselect key
|
|
143
140
|
#dropdown = false
|
|
144
141
|
data = key
|
|
@@ -195,22 +192,23 @@ tag language-selector
|
|
|
195
192
|
.text fs:13px bd:1px solid transparent
|
|
196
193
|
|
|
197
194
|
<self [pos:rel] @mouseenter=mouseenter @mouseleave=mouseleave @click=click>
|
|
198
|
-
|
|
199
|
-
<
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
<
|
|
195
|
+
<global @click.outside=(do #dropdown = false)>
|
|
196
|
+
<div.container [pos:rel d:hcc] .active=#dropdown [cursor:pointer]=(Object.keys(state.languages).length > 1)>
|
|
197
|
+
<span.flag> flag(state.languages[data])
|
|
198
|
+
<div.name> name(state.languages[data])
|
|
199
|
+
if Object.keys(state.languages).length > 1
|
|
200
|
+
<svg.arrow [ead:$ease] .active=#dropdown viewBox="0 0 256 256">
|
|
201
|
+
<{arrow}>
|
|
204
202
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
203
|
+
if #dropdown and Object.keys(state.languages).length > 1
|
|
204
|
+
<div$menu.menu [pos:abs w:100% > max-content o@off:0] ease>
|
|
205
|
+
# Current language first (if first is true)
|
|
206
|
+
if first
|
|
207
|
+
<div.item>
|
|
208
|
+
<span.icon> flag(state.languages[data])
|
|
209
|
+
<span.text> name(state.languages[data])
|
|
210
|
+
# Other languages
|
|
211
|
+
for own key, value of state.languages
|
|
212
|
+
<div.item @click.trap=onselect(key) [d:none]=(key == data && first)>
|
|
213
|
+
<span.icon> flag(value)
|
|
214
|
+
<span.text> name(value)
|