imba-localization 0.4.8 โ 0.4.10
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/README.md +2 -1
- package/index.d.ts +33 -0
- package/localization.imba +83 -85
- package/package.json +17 -3
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ A lightweight Imba module for loading and handling JSON-based localization files
|
|
|
10
10
|
- ๐ **Smart fallback system** - Falls back to a default language when needed
|
|
11
11
|
- ๐ง **Intuitive access** - Proxy-based access to translation strings
|
|
12
12
|
- ๐ก **Event handling** - Support for `onready`, `onchange`, and `onerror` events
|
|
13
|
+
- ๐งพ **Type declarations** - Includes package-level TypeScript declarations for editor and language-server imports
|
|
13
14
|
- ๐ **Simple integration** - Easy to use in any Imba-based web application
|
|
14
15
|
- ๐งฉ **`<language-selector>`** - Plug and play tag component for switching languages
|
|
15
16
|
|
|
@@ -310,4 +311,4 @@ tag App
|
|
|
310
311
|
css w:20px h:20px stroke:red
|
|
311
312
|
<{svg-arrow-down}>
|
|
312
313
|
|
|
313
|
-
```
|
|
314
|
+
```
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type LocalizationLanguage = Record<string, any>;
|
|
2
|
+
export type LocalizationLanguages = Record<string, LocalizationLanguage>;
|
|
3
|
+
|
|
4
|
+
export interface LocalizationErrorState {
|
|
5
|
+
cache: Record<string, boolean>;
|
|
6
|
+
throw(code: string, details?: any): void;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export class Localization {
|
|
10
|
+
constructor(url: string, fallback?: string);
|
|
11
|
+
|
|
12
|
+
onready?: () => void;
|
|
13
|
+
onerror?: (error: string, details?: any) => void;
|
|
14
|
+
onchange?: (language: string) => void;
|
|
15
|
+
|
|
16
|
+
languages: LocalizationLanguages;
|
|
17
|
+
preferred: string;
|
|
18
|
+
default: string;
|
|
19
|
+
ready: boolean;
|
|
20
|
+
err: LocalizationErrorState;
|
|
21
|
+
|
|
22
|
+
active: string;
|
|
23
|
+
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const flags: Record<string, string>;
|
|
28
|
+
|
|
29
|
+
declare global {
|
|
30
|
+
interface HTMLElementTagNameMap {
|
|
31
|
+
"language-selector": HTMLElement;
|
|
32
|
+
}
|
|
33
|
+
}
|
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)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imba-localization",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.10",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/HeapVoid/imba-localization.git"
|
|
@@ -8,11 +8,25 @@
|
|
|
8
8
|
"main": "localization.imba",
|
|
9
9
|
"module": "localization.imba",
|
|
10
10
|
"browser": "localization.imba",
|
|
11
|
+
"types": "index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./index.d.ts",
|
|
15
|
+
"import": "./localization.imba",
|
|
16
|
+
"default": "./localization.imba"
|
|
17
|
+
},
|
|
18
|
+
"./localization.imba": {
|
|
19
|
+
"types": "./index.d.ts",
|
|
20
|
+
"import": "./localization.imba",
|
|
21
|
+
"default": "./localization.imba"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
11
24
|
"description": "A class to make using language localizations in Imba easier.",
|
|
12
25
|
"keywords": ["imba", "theme", "localization"],
|
|
13
26
|
"license": "MIT",
|
|
14
27
|
"type": "module",
|
|
15
28
|
"files": [
|
|
16
|
-
"localization.imba"
|
|
29
|
+
"localization.imba",
|
|
30
|
+
"index.d.ts"
|
|
17
31
|
]
|
|
18
|
-
}
|
|
32
|
+
}
|