@@ -3,20 +3,63 @@ import Z from 'zod';
33// Core locales
44const coreFullLocales = [
55 'en-US' , // English (United States)
6+ 'en-GB' , // English (United Kingdom)
7+ 'en-AU' , // English (Australia)
8+ 'en-CA' , // English (Canada)
9+
610 'es-ES' , // Spanish (Spain)
11+ 'es-MX' , // Spanish (Mexico)
12+ 'es-AR' , // Spanish (Argentina)
13+
714 'fr-FR' , // French (France)
8- 'ca-ES' , // Catalan (Spain)
9- 'ja-JP' , // Japanese (Japan)
15+ 'fr-CA' , // French (Canada)
16+ 'fr-BE' , // French (Belgium)
17+
1018 'de-DE' , // German (Germany)
19+ 'de-AT' , // German (Austria)
20+ 'de-CH' , // German (Switzerland)
21+
1122 'pt-PT' , // Portuguese (Portugal)
23+ 'pt-BR' , // Portuguese (Brazil)
24+
1225 'it-IT' , // Italian (Italy)
26+ 'it-CH' , // Italian (Switzerland)
27+
1328 'ru-RU' , // Russian (Russia)
29+ 'ru-BY' , // Russian (Belarus)
30+
31+ 'zh-Hans-CN' , // Simplified Chinese (China)
32+ 'zh-Hant-TW' , // Traditional Chinese (Taiwan)
33+ 'zh-Hant-HK' , // Traditional Chinese (Hong Kong)
34+
35+ 'ar-EG' , // Arabic (Egypt)
36+ 'ar-SA' , // Arabic (Saudi Arabia)
37+ 'ar-AE' , // Arabic (United Arab Emirates)
38+ 'ar-MA' , // Arabic (Morocco)
39+
40+ 'nl-NL' , // Dutch (Netherlands)
41+ 'nl-BE' , // Dutch (Belgium)
42+
43+ 'sv-SE' , // Swedish (Sweden)
44+
45+ 'pl-PL' , // Polish (Poland)
46+
47+ 'vi-VN' , // Vietnamese (Vietnam)
48+
49+ 'id-ID' , // Indonesian (Indonesia)
50+
51+ 'ms-MY' , // Malay (Malaysia)
52+
53+ 'th-TH' , // Thai (Thailand)
54+
55+ 'fi-FI' , // Finnish (Finland)
56+
57+ 'ca-ES' , // Catalan (Spain)
58+ 'ja-JP' , // Japanese (Japan)
1459 'uk-UA' , // Ukrainian (Ukraine)
1560 'hi-IN' , // Hindi (India)
16- 'zh-Hans-CN' , // Simplified Chinese (China)
1761 'ko-KR' , // Korean (South Korea)
1862 'tr-TR' , // Turkish (Turkey)
19- 'ar-EG' , // Arabic (Egypt)
2063] as const ;
2164const coreShortcutLocales = [
2265 'en' , // English
@@ -35,6 +78,13 @@ const coreShortcutLocales = [
3578 'ko' , // Korean
3679 'tr' , // Turkish
3780 'ar' , // Arabic
81+ 'nl' , // Dutch
82+ 'pl' , // Polish
83+ 'vi' , // Vietnamese
84+ 'id' , // Indonesian
85+ 'ms' , // Malay
86+ 'th' , // Thai
87+ 'fi' , // Finnish
3888] as const ;
3989const coreLocales = [
4090 ...coreFullLocales ,
@@ -45,17 +95,12 @@ const coreLocales = [
4595const sourceOnlyFullLocales = [
4696 'cs-CZ' , // Czech (Czech Republic)
4797 'zh-Hant-HK' , // Traditional Chinese (Hong Kong)
48- 'pl-PL' , // Polish (Poland)
4998 'sk-SK' , // Slovak (Slovakia)
50- 'th-TH' , // Thai (Thailand)
5199] as const ;
52100const sourceOnlyShortcutLocales = [
53- 'pl' , // Polish
54101 'cs' , // Czech
55102 'zh-Hant' , // Traditional Chinese
56- 'pl' , // Polish
57103 'sk' , // Slovak
58- 'th' , // Thai
59104] as const ;
60105const sourceOnlyLocales = [
61106 ...sourceOnlyFullLocales ,
@@ -125,14 +170,19 @@ const coreLocaleResolutionMap: Record<typeof coreShortcutLocales[number], typeof
125170 ko : 'ko-KR' ,
126171 tr : 'tr-TR' ,
127172 ar : 'ar-EG' ,
173+ nl : 'nl-NL' ,
174+ pl : 'pl-PL' ,
175+ vi : 'vi-VN' ,
176+ id : 'id-ID' ,
177+ ms : 'ms-MY' ,
178+ th : 'th-TH' ,
179+ fi : 'fi-FI' ,
128180} ;
129181
130182const sourceOnlyLocaleResolutionMap : Record < typeof sourceOnlyShortcutLocales [ number ] , typeof sourceOnlyFullLocales [ number ] > = {
131- pl : 'pl-PL' ,
132183 cs : 'cs-CZ' ,
133184 'zh-Hant' : 'zh-Hant-HK' ,
134185 sk : 'sk-SK' ,
135- th : 'th-TH' ,
136186} ;
137187
138188const targetOnlyLocaleResolutionMap : Record < typeof targetOnlyShortcutLocales [ number ] , typeof targetOnlyFullLocales [ number ] > = {
0 commit comments