@@ -13,7 +13,7 @@ export enum Language {
13
13
KOREAN = "ko-KR" ,
14
14
SWEDISH = "sv-SE" ,
15
15
TURKISH = "tr-TR" ,
16
- POLISH = "pl-PL"
16
+ POLISH = "pl-PL" ,
17
17
}
18
18
19
19
interface LanguageInfo {
@@ -25,33 +25,109 @@ interface LanguageInfo {
25
25
26
26
// ordered by preference/importance
27
27
export const LANGUAGE_INFO : LanguageInfo [ ] = [
28
- { code : Language . ENGLISH_US , name : "English (US)" , countryCode : "US" , kaikkiName : "English" } ,
29
- { code : Language . SPANISH_MX , name : "Spanish (Mexico)" , countryCode : "MX" , kaikkiName : "Spanish" } ,
30
- { code : Language . ITALIAN , name : "Italian" , countryCode : "IT" , kaikkiName : "Italian" } ,
31
- { code : Language . JAPANESE , name : "Japanese" , countryCode : "JP" , kaikkiName : "Japanese" } ,
32
- { code : Language . FRENCH , name : "French" , countryCode : "FR" , kaikkiName : "French" } ,
33
- { code : Language . CHINESE_CN , name : "Chinese (Mandarin)" , countryCode : "CN" , kaikkiName : "Chinese" } ,
34
- { code : Language . GERMAN , name : "German" , countryCode : "DE" , kaikkiName : "German" } ,
35
- { code : Language . DUTCH , name : "Dutch" , countryCode : "NL" , kaikkiName : "Dutch" } ,
36
- { code : Language . PORTUGUESE , name : "Portuguese" , countryCode : "PT" , kaikkiName : "Portuguese" } ,
37
- { code : Language . RUSSIAN , name : "Russian" , countryCode : "RU" , kaikkiName : "Russian" } ,
38
- { code : Language . HINDI , name : "Hindi" , countryCode : "IN" , kaikkiName : "Hindi" } ,
39
- { code : Language . KOREAN , name : "Korean" , countryCode : "KR" , kaikkiName : "Korean" } ,
40
- { code : Language . SWEDISH , name : "Swedish" , countryCode : "SE" , kaikkiName : "Swedish" } ,
41
- { code : Language . TURKISH , name : "Turkish" , countryCode : "TR" , kaikkiName : "Turkish" } ,
42
- { code : Language . POLISH , name : "Polish" , countryCode : "PL" , kaikkiName : "Polish" }
28
+ {
29
+ code : Language . ENGLISH_US ,
30
+ name : "English (US)" ,
31
+ countryCode : "US" ,
32
+ kaikkiName : "English" ,
33
+ } ,
34
+ {
35
+ code : Language . SPANISH_MX ,
36
+ name : "Spanish (Mexico)" ,
37
+ countryCode : "MX" ,
38
+ kaikkiName : "Spanish" ,
39
+ } ,
40
+ {
41
+ code : Language . ITALIAN ,
42
+ name : "Italian" ,
43
+ countryCode : "IT" ,
44
+ kaikkiName : "Italian" ,
45
+ } ,
46
+ {
47
+ code : Language . JAPANESE ,
48
+ name : "Japanese" ,
49
+ countryCode : "JP" ,
50
+ kaikkiName : "Japanese" ,
51
+ } ,
52
+ {
53
+ code : Language . FRENCH ,
54
+ name : "French" ,
55
+ countryCode : "FR" ,
56
+ kaikkiName : "French" ,
57
+ } ,
58
+ {
59
+ code : Language . CHINESE_CN ,
60
+ name : "Chinese (Mandarin)" ,
61
+ countryCode : "CN" ,
62
+ kaikkiName : "Chinese" ,
63
+ } ,
64
+ {
65
+ code : Language . GERMAN ,
66
+ name : "German" ,
67
+ countryCode : "DE" ,
68
+ kaikkiName : "German" ,
69
+ } ,
70
+ {
71
+ code : Language . DUTCH ,
72
+ name : "Dutch" ,
73
+ countryCode : "NL" ,
74
+ kaikkiName : "Dutch" ,
75
+ } ,
76
+ {
77
+ code : Language . PORTUGUESE ,
78
+ name : "Portuguese" ,
79
+ countryCode : "PT" ,
80
+ kaikkiName : "Portuguese" ,
81
+ } ,
82
+ {
83
+ code : Language . RUSSIAN ,
84
+ name : "Russian" ,
85
+ countryCode : "RU" ,
86
+ kaikkiName : "Russian" ,
87
+ } ,
88
+ {
89
+ code : Language . HINDI ,
90
+ name : "Hindi" ,
91
+ countryCode : "IN" ,
92
+ kaikkiName : "Hindi" ,
93
+ } ,
94
+ {
95
+ code : Language . KOREAN ,
96
+ name : "Korean" ,
97
+ countryCode : "KR" ,
98
+ kaikkiName : "Korean" ,
99
+ } ,
100
+ {
101
+ code : Language . SWEDISH ,
102
+ name : "Swedish" ,
103
+ countryCode : "SE" ,
104
+ kaikkiName : "Swedish" ,
105
+ } ,
106
+ {
107
+ code : Language . TURKISH ,
108
+ name : "Turkish" ,
109
+ countryCode : "TR" ,
110
+ kaikkiName : "Turkish" ,
111
+ } ,
112
+ {
113
+ code : Language . POLISH ,
114
+ name : "Polish" ,
115
+ countryCode : "PL" ,
116
+ kaikkiName : "Polish" ,
117
+ } ,
43
118
] ;
44
119
45
120
// Get language info by code
46
121
export function getLanguageInfo ( code : Language ) : LanguageInfo {
47
- const info = LANGUAGE_INFO . find ( l => l . code === code ) ;
122
+ const info = LANGUAGE_INFO . find ( ( l ) => l . code === code ) ;
48
123
if ( ! info ) throw new Error ( `No language info for code: ${ code } ` ) ;
49
124
return info ;
50
125
}
51
126
52
127
// Get display name
53
128
export function describeLanguage ( lang : Language ) : string {
54
- return getLanguageInfo ( lang ) . name ;
129
+ const name = getLanguageInfo ( lang ) . name ;
130
+ return name . replace ( / \s * \( [ ^ ) ] * \) \s * / g, "" ) . trim ( ) ;
55
131
}
56
132
57
133
// normalize lang codes to basic ISO format (e.g. "en-US" -> "en")
@@ -107,7 +183,7 @@ export const KAIKKI_LANGUAGE_MAP = {
107
183
Telugu : "te" ,
108
184
Turkish : "tr" ,
109
185
Urdu : "ur" ,
110
- Vietnamese : "vi"
186
+ Vietnamese : "vi" ,
111
187
} as const ;
112
188
113
189
export type KaikkiLanguage = keyof typeof KAIKKI_LANGUAGE_MAP ;
@@ -118,4 +194,6 @@ export function normalizeKaikkiLanguage(lang: KaikkiLanguage): string {
118
194
}
119
195
120
196
// all supported kaikki languages
121
- export const KAIKKI_LANGUAGES = Object . keys ( KAIKKI_LANGUAGE_MAP ) as KaikkiLanguage [ ] ;
197
+ export const KAIKKI_LANGUAGES = Object . keys (
198
+ KAIKKI_LANGUAGE_MAP
199
+ ) as KaikkiLanguage [ ] ;
0 commit comments