@read-frog/definitions 0.1.1 → 0.1.3

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.
@@ -0,0 +1,905 @@
1
+ import { z } from "zod"
2
+
3
+ export const LANG_CODE_ISO6393_OPTIONS = [
4
+ "eng",
5
+ "cmn",
6
+ "cmn-Hant",
7
+ "yue",
8
+ "spa",
9
+ "rus",
10
+ "arb",
11
+ "ben",
12
+ "hin",
13
+ "por",
14
+ "ind",
15
+ "jpn",
16
+ "fra",
17
+ "deu",
18
+ "jav",
19
+ "kor",
20
+ "tel",
21
+ "vie",
22
+ "mar",
23
+ "ita",
24
+ "tam",
25
+ "tur",
26
+ "urd",
27
+ "guj",
28
+ "pol",
29
+ "ukr",
30
+ "kan",
31
+ "mai",
32
+ "mal",
33
+ "pes",
34
+ "mya",
35
+ "swh",
36
+ "sun",
37
+ "ron",
38
+ "pan",
39
+ "bho",
40
+ "amh",
41
+ "hau",
42
+ "fuv",
43
+ "bos",
44
+ "hrv",
45
+ "nld",
46
+ "srp",
47
+ "tha",
48
+ "ckb",
49
+ "yor",
50
+ "uzn",
51
+ "zlm",
52
+ "ibo",
53
+ "npi",
54
+ "ceb",
55
+ "skr",
56
+ "tgl",
57
+ "hun",
58
+ "azj",
59
+ "sin",
60
+ "koi",
61
+ "ell",
62
+ "ces",
63
+ "mag",
64
+ "run",
65
+ "bel",
66
+ "plt",
67
+ "qug",
68
+ "mad",
69
+ "nya",
70
+ "zyb",
71
+ "pbu",
72
+ "kin",
73
+ "zul",
74
+ "bul",
75
+ "swe",
76
+ "lin",
77
+ "som",
78
+ "hms",
79
+ "hnj",
80
+ "ilo",
81
+ "kaz",
82
+ "heb",
83
+ "nob",
84
+ "nno",
85
+ "afr",
86
+ "sqi",
87
+ "asm",
88
+ "eus",
89
+ "bre",
90
+ "cat",
91
+ "cos",
92
+ "cym",
93
+ "dan",
94
+ "div",
95
+ "epo",
96
+ "ekk",
97
+ "fao",
98
+ "fij",
99
+ "fin",
100
+ "fry",
101
+ "gla",
102
+ "gle",
103
+ "glg",
104
+ "grn",
105
+ "hat",
106
+ "haw",
107
+ "hye",
108
+ "ido",
109
+ "ina",
110
+ "isl",
111
+ "kat",
112
+ "khm",
113
+ "kir",
114
+ "lao",
115
+ "lat",
116
+ "lvs",
117
+ "lit",
118
+ "ltz",
119
+ "mkd",
120
+ "mlt",
121
+ "mon",
122
+ "mri",
123
+ "nso",
124
+ "oci",
125
+ "ori",
126
+ "orm",
127
+ "prs",
128
+ "san",
129
+ "slk",
130
+ "slv",
131
+ "smo",
132
+ "sna",
133
+ "snd",
134
+ "sot",
135
+ "tah",
136
+ "tat",
137
+ "tgk",
138
+ "tir",
139
+ "ton",
140
+ "tsn",
141
+ "tuk",
142
+ "uig",
143
+ "vol",
144
+ "wol",
145
+ "xho",
146
+ "ydd",
147
+ "aka",
148
+ "bam",
149
+ "bis",
150
+ "bod",
151
+ "che",
152
+ "chv",
153
+ "dzo",
154
+ "ewe",
155
+ "kab",
156
+ "lug",
157
+ "oss",
158
+ "ssw",
159
+ "ven",
160
+ "war",
161
+ "nde",
162
+ "nbl",
163
+ "pam",
164
+ "hil",
165
+ "bcl",
166
+ "min",
167
+ "ace",
168
+ "bug",
169
+ "ban",
170
+ "bjn",
171
+ "mak",
172
+ "sas",
173
+ "tet",
174
+ "cha",
175
+ "niu",
176
+ "tvl",
177
+ "gil",
178
+ "mah",
179
+ "pau",
180
+ "wls",
181
+ "rar",
182
+ "hif",
183
+ ] as const
184
+
185
+ export const LANG_CODE_ISO6391_OPTIONS = [
186
+ "en", // English
187
+ "zh", // Chinese(包含简/粤等;只是在 BCP-47 里再加 -Hans / -Hant / -yue)
188
+ "zh-TW", // Traditional Chinese
189
+ "es",
190
+ "ru",
191
+ "ar",
192
+ "bn",
193
+ "hi",
194
+ "pt",
195
+ "id",
196
+ "ja",
197
+ "fr",
198
+ "de",
199
+ "jv",
200
+ "ko",
201
+ "te",
202
+ "vi",
203
+ "mr",
204
+ "it",
205
+ "ta",
206
+ "tr",
207
+ "ur",
208
+ "gu",
209
+ "pl",
210
+ "uk",
211
+ "kn",
212
+ "ml",
213
+ "fa",
214
+ "my",
215
+ "sw",
216
+ "su",
217
+ "ro",
218
+ "pa",
219
+ "am",
220
+ "ha",
221
+ "ff",
222
+ "bs",
223
+ "hr",
224
+ "nl",
225
+ "sr",
226
+ "th",
227
+ "ku",
228
+ "yo",
229
+ "uz",
230
+ "ms",
231
+ "ig",
232
+ "ne",
233
+ "tl",
234
+ "hu",
235
+ "az",
236
+ "si",
237
+ "el",
238
+ "cs",
239
+ "ny",
240
+ "rw",
241
+ "zu",
242
+ "bg",
243
+ "sv",
244
+ "ln",
245
+ "so",
246
+ "kk",
247
+ "be",
248
+ "he",
249
+ "nb",
250
+ "nn",
251
+ "af",
252
+ "sq",
253
+ "as", // Assamese
254
+ "eu",
255
+ "br",
256
+ "ca",
257
+ "co",
258
+ "cy",
259
+ "da",
260
+ "dv",
261
+ "eo",
262
+ "et",
263
+ "fo",
264
+ "fj",
265
+ "fi",
266
+ "fy",
267
+ "gd",
268
+ "ga",
269
+ "gl",
270
+ "gn",
271
+ "ht",
272
+ "hy",
273
+ "io",
274
+ "ia",
275
+ "is",
276
+ "ka",
277
+ "km",
278
+ "ky",
279
+ "lo",
280
+ "la",
281
+ "lv",
282
+ "lt",
283
+ "lb",
284
+ "mk",
285
+ "mt",
286
+ "mn",
287
+ "mi",
288
+ "oc",
289
+ "or",
290
+ "om",
291
+ "sa",
292
+ "sk",
293
+ "sl",
294
+ "sm",
295
+ "sn",
296
+ "sd",
297
+ "st",
298
+ "ty",
299
+ "tt",
300
+ "tg",
301
+ "ti",
302
+ "to",
303
+ "tn",
304
+ "tk",
305
+ "ug",
306
+ "vo",
307
+ "wo",
308
+ "xh",
309
+ "yi",
310
+ "ak",
311
+ "bm",
312
+ "bi",
313
+ "bo",
314
+ "ce",
315
+ "cv",
316
+ "ee",
317
+ "lg",
318
+ "os",
319
+ "ss",
320
+ "ve",
321
+ "nd",
322
+ "nr",
323
+ "ch",
324
+ "mh",
325
+ "dz",
326
+ ] as const
327
+
328
+ export const langCodeISO6393Schema = z.enum(LANG_CODE_ISO6393_OPTIONS)
329
+
330
+ export const langCodeISO6391Schema = z.enum(LANG_CODE_ISO6391_OPTIONS)
331
+
332
+ export type LangCodeISO6391 = z.infer<typeof langCodeISO6391Schema>
333
+
334
+ export type LangCodeISO6393 = z.infer<typeof langCodeISO6393Schema>
335
+
336
+ export const LANG_CODE_TO_EN_NAME: Record<LangCodeISO6393, string> = {
337
+ "eng": "English",
338
+ "cmn": "Simplified Mandarin Chinese",
339
+ "cmn-Hant": "Traditional Mandarin Chinese",
340
+ "yue": "Cantonese", // not supported by franc-min
341
+ "spa": "Spanish",
342
+ "rus": "Russian",
343
+ "arb": "Standard Arabic",
344
+ "ben": "Bengali",
345
+ "hin": "Hindi",
346
+ "por": "Portuguese",
347
+ "ind": "Indonesian",
348
+ "jpn": "Japanese",
349
+ "fra": "French",
350
+ "deu": "German",
351
+ "jav": "Javanese (Javanese)",
352
+ "kor": "Korean",
353
+ "tel": "Telugu",
354
+ "vie": "Vietnamese",
355
+ "mar": "Marathi",
356
+ "ita": "Italian",
357
+ "tam": "Tamil",
358
+ "tur": "Turkish",
359
+ "urd": "Urdu",
360
+ "guj": "Gujarati",
361
+ "pol": "Polish",
362
+ "ukr": "Ukrainian",
363
+ "kan": "Kannada",
364
+ "mai": "Maithili",
365
+ "mal": "Malayalam",
366
+ "pes": "Iranian Persian",
367
+ "mya": "Burmese",
368
+ "swh": "Swahili (individual language)",
369
+ "sun": "Sundanese",
370
+ "ron": "Romanian",
371
+ "pan": "Panjabi",
372
+ "bho": "Bhojpuri",
373
+ "amh": "Amharic",
374
+ "hau": "Hausa",
375
+ "fuv": "Nigerian Fulfulde",
376
+ "bos": "Bosnian (Cyrillic)",
377
+ "hrv": "Croatian",
378
+ "nld": "Dutch",
379
+ "srp": "Serbian (Cyrillic)",
380
+ "tha": "Thai",
381
+ "ckb": "Central Kurdish",
382
+ "yor": "Yoruba",
383
+ "uzn": "Northern Uzbek (Cyrillic)",
384
+ "zlm": "Malay (individual language) (Arabic)",
385
+ "ibo": "Igbo",
386
+ "npi": "Nepali (individual language)",
387
+ "ceb": "Cebuano",
388
+ "skr": "Saraiki",
389
+ "tgl": "Tagalog",
390
+ "hun": "Hungarian",
391
+ "azj": "North Azerbaijani (Cyrillic)",
392
+ "sin": "Sinhala",
393
+ "koi": "Komi-Permyak",
394
+ "ell": "Modern Greek (1453-)",
395
+ "ces": "Czech",
396
+ "mag": "Magahi",
397
+ "run": "Rundi",
398
+ "bel": "Belarusian",
399
+ "plt": "Plateau Malagasy",
400
+ "qug": "Chimborazo Highland Quichua",
401
+ "mad": "Madurese",
402
+ "nya": "Nyanja",
403
+ "zyb": "Yongbei Zhuang",
404
+ "pbu": "Northern Pashto",
405
+ "kin": "Kinyarwanda",
406
+ "zul": "Zulu",
407
+ "bul": "Bulgarian",
408
+ "swe": "Swedish",
409
+ "lin": "Lingala",
410
+ "som": "Somali",
411
+ "hms": "Southern Qiandong Miao",
412
+ "hnj": "Hmong Njua",
413
+ "ilo": "Iloko",
414
+ "kaz": "Kazakh",
415
+ "heb": "Hebrew",
416
+ "nob": "Norwegian Bokmål",
417
+ "nno": "Norwegian Nynorsk",
418
+ "afr": "Afrikaans",
419
+ "sqi": "Albanian",
420
+ "asm": "Assamese",
421
+ "eus": "Basque",
422
+ "bre": "Breton",
423
+ "cat": "Catalan",
424
+ "cos": "Corsican",
425
+ "cym": "Welsh",
426
+ "dan": "Danish",
427
+ "div": "Divehi",
428
+ "epo": "Esperanto",
429
+ "ekk": "Estonian",
430
+ "fao": "Faroese",
431
+ "fij": "Fijian",
432
+ "fin": "Finnish",
433
+ "fry": "Western Frisian",
434
+ "gla": "Scottish Gaelic",
435
+ "gle": "Irish",
436
+ "glg": "Galician",
437
+ "grn": "Guarani",
438
+ "hat": "Haitian Creole",
439
+ "haw": "Hawaiian",
440
+ "hye": "Armenian",
441
+ "ido": "Ido",
442
+ "ina": "Interlingua",
443
+ "isl": "Icelandic",
444
+ "kat": "Georgian",
445
+ "khm": "Khmer",
446
+ "kir": "Kyrgyz",
447
+ "lao": "Lao",
448
+ "lat": "Latin",
449
+ "lvs": "Latvian",
450
+ "lit": "Lithuanian",
451
+ "ltz": "Luxembourgish",
452
+ "mkd": "Macedonian",
453
+ "mlt": "Maltese",
454
+ "mon": "Mongolian",
455
+ "mri": "Maori",
456
+ "nso": "Northern Sotho",
457
+ "oci": "Occitan",
458
+ "ori": "Odia",
459
+ "orm": "Oromo",
460
+ "prs": "Dari",
461
+ "san": "Sanskrit",
462
+ "slk": "Slovak",
463
+ "slv": "Slovenian",
464
+ "smo": "Samoan",
465
+ "sna": "Shona",
466
+ "snd": "Sindhi",
467
+ "sot": "Southern Sotho",
468
+ "tah": "Tahitian",
469
+ "tat": "Tatar",
470
+ "tgk": "Tajik",
471
+ "tir": "Tigrinya",
472
+ "ton": "Tongan",
473
+ "tsn": "Tswana",
474
+ "tuk": "Turkmen",
475
+ "uig": "Uyghur",
476
+ "vol": "Volapük",
477
+ "wol": "Wolof",
478
+ "xho": "Xhosa",
479
+ "ydd": "Eastern Yiddish",
480
+ "aka": "Akan",
481
+ "bam": "Bambara",
482
+ "bis": "Bislama",
483
+ "bod": "Tibetan",
484
+ "che": "Chechen",
485
+ "chv": "Chuvash",
486
+ "dzo": "Dzongkha",
487
+ "ewe": "Ewe",
488
+ "kab": "Kabyle",
489
+ "lug": "Ganda",
490
+ "oss": "Ossetian",
491
+ "ssw": "Swati",
492
+ "ven": "Venda",
493
+ "war": "Waray",
494
+ "nde": "North Ndebele",
495
+ "nbl": "South Ndebele",
496
+ "pam": "Pampanga",
497
+ "hil": "Hiligaynon",
498
+ "bcl": "Central Bikol",
499
+ "min": "Minangkabau",
500
+ "ace": "Acehnese",
501
+ "bug": "Buginese",
502
+ "ban": "Balinese",
503
+ "bjn": "Banjar",
504
+ "mak": "Makasar",
505
+ "sas": "Sasak",
506
+ "tet": "Tetum",
507
+ "cha": "Chamorro",
508
+ "niu": "Niuean",
509
+ "tvl": "Tuvaluan",
510
+ "gil": "Gilbertese",
511
+ "mah": "Marshallese",
512
+ "pau": "Palauan",
513
+ "wls": "Wallisian",
514
+ "rar": "Rarotongan",
515
+ "hif": "Fiji Hindi",
516
+ }
517
+
518
+ export const LANG_CODE_TO_LOCALE_NAME: Record<LangCodeISO6393, string> = {
519
+ "eng": "English",
520
+ "cmn": "简体中文",
521
+ "cmn-Hant": "繁體中文",
522
+ "yue": "粵語",
523
+ "spa": "Español",
524
+ "rus": "Русский",
525
+ "arb": "العربية",
526
+ "ben": "বাংলা",
527
+ "hin": "हिन्दी",
528
+ "por": "Português",
529
+ "ind": "Bahasa Indonesia",
530
+ "jpn": "日本語",
531
+ "fra": "Français",
532
+ "deu": "Deutsch",
533
+ "jav": "Basa Jawa",
534
+ "kor": "한국어",
535
+ "tel": "తెలుగు",
536
+ "vie": "Tiếng Việt",
537
+ "mar": "मराठी",
538
+ "ita": "Italiano",
539
+ "tam": "தமிழ்",
540
+ "tur": "Türkçe",
541
+ "urd": "اردو",
542
+ "guj": "ગુજરાતી",
543
+ "pol": "Polski",
544
+ "ukr": "Українська",
545
+ "kan": "ಕನ್ನಡ",
546
+ "mai": "मैथिली",
547
+ "mal": "മലയാളം",
548
+ "pes": "فارسی",
549
+ "mya": "မြန်မာစာ",
550
+ "swh": "Kiswahili",
551
+ "sun": "Basa Sunda",
552
+ "ron": "Română",
553
+ "pan": "ਪੰਜਾਬੀ",
554
+ "bho": "भोजपुरी",
555
+ "amh": "አማርኛ",
556
+ "hau": "Hausa",
557
+ "fuv": "Fulfulde",
558
+ "bos": "Босански",
559
+ "hrv": "Hrvatski",
560
+ "nld": "Nederlands",
561
+ "srp": "Српски",
562
+ "tha": "ไทย",
563
+ "ckb": "کوردیی ناوەندی",
564
+ "yor": "Yorùbá",
565
+ "uzn": "Ўзбекча",
566
+ "zlm": "بهاس ملايو",
567
+ "ibo": "Asụsụ Igbo",
568
+ "npi": "नेपाली",
569
+ "ceb": "Cebuano",
570
+ "skr": "سرائیکی",
571
+ "tgl": "Tagalog",
572
+ "hun": "Magyar",
573
+ "azj": "Азәрбајҹан дили",
574
+ "sin": "සිංහල",
575
+ "koi": "Перем Коми кыв",
576
+ "ell": "Ελληνικά",
577
+ "ces": "Čeština",
578
+ "mag": "मगही",
579
+ "run": "Ikirundi",
580
+ "bel": "Беларуская",
581
+ "plt": "Fiteny Malagasy",
582
+ "qug": "Kichwa",
583
+ "mad": "Madhurâ",
584
+ "nya": "Chinyanja",
585
+ "zyb": "Yongbei Bouxcuengh",
586
+ "pbu": "پښتو",
587
+ "kin": "Kinyarwanda",
588
+ "zul": "isiZulu",
589
+ "bul": "Български",
590
+ "swe": "Svenska",
591
+ "lin": "Lingála",
592
+ "som": "Af Soomaali",
593
+ "hms": "Hmongb Shuad",
594
+ "hnj": "Hmong Njua",
595
+ "ilo": "Ilokano",
596
+ "kaz": "Қазақ тілі",
597
+ "heb": "עברית",
598
+ "nob": "Norsk bokmål",
599
+ "nno": "Norsk nynorsk",
600
+ "afr": "Afrikaans",
601
+ "sqi": "Shqip",
602
+ "asm": "অসমীয়া",
603
+ "eus": "Euskara",
604
+ "bre": "Brezhoneg",
605
+ "cat": "Català",
606
+ "cos": "Corsu",
607
+ "cym": "Cymraeg",
608
+ "dan": "Dansk",
609
+ "div": "ދިވެހި",
610
+ "epo": "Esperanto",
611
+ "ekk": "Eesti",
612
+ "fao": "Føroyskt",
613
+ "fij": "Vosa Vakaviti",
614
+ "fin": "Suomi",
615
+ "fry": "Frysk",
616
+ "gla": "Gàidhlig",
617
+ "gle": "Gaeilge",
618
+ "glg": "Galego",
619
+ "grn": "Avañeʼẽ",
620
+ "hat": "Kreyòl ayisyen",
621
+ "haw": "ʻŌlelo Hawaiʻi",
622
+ "hye": "Հایերен",
623
+ "ido": "Ido",
624
+ "ina": "Interlingua",
625
+ "isl": "Íslenska",
626
+ "kat": "ქართული",
627
+ "khm": "ភាសាខ្មែរ",
628
+ "kir": "Кыргызча",
629
+ "lao": "ພາສາລາວ",
630
+ "lat": "Latina",
631
+ "lvs": "Latviešu",
632
+ "lit": "Lietuvių",
633
+ "ltz": "Lëtzebuergesch",
634
+ "mkd": "Македонски",
635
+ "mlt": "Malti",
636
+ "mon": "Монгол",
637
+ "mri": "Te Reo Māori",
638
+ "nso": "Sesotho sa Leboa",
639
+ "oci": "Occitan",
640
+ "ori": "ଓଡ଼ିଆ",
641
+ "orm": "Oromoo",
642
+ "prs": "دری",
643
+ "san": "संस्कृतम्",
644
+ "slk": "Slovenčina",
645
+ "slv": "Slovenščina",
646
+ "smo": "Gagana Samoa",
647
+ "sna": "chiShona",
648
+ "snd": "سنڌي",
649
+ "sot": "Sesotho",
650
+ "tah": "Reo Tahiti",
651
+ "tat": "Татарча",
652
+ "tgk": "Тоҷикӣ",
653
+ "tir": "ትግርኛ",
654
+ "ton": "Lea fakatonga",
655
+ "tsn": "Setswana",
656
+ "tuk": "Türkmençe",
657
+ "uig": "ئۇيغۇرچە",
658
+ "vol": "Volapük",
659
+ "wol": "Wolof",
660
+ "xho": "isiXhosa",
661
+ "ydd": "ייִדיש",
662
+ "aka": "Akan",
663
+ "bam": "Bamanankan",
664
+ "bis": "Bislama",
665
+ "bod": "བོད་སྐད",
666
+ "che": "Нохчийн",
667
+ "chv": "Чӑвашла",
668
+ "dzo": "རྫོང་ཁ",
669
+ "ewe": "Eʋegbe",
670
+ "kab": "Taqbaylit",
671
+ "lug": "Luganda",
672
+ "oss": "Ирон",
673
+ "ssw": "SiSwati",
674
+ "ven": "Tshivenḓa",
675
+ "war": "Winaray",
676
+ "nde": "isiNdebele",
677
+ "nbl": "isiNdebele seSewula",
678
+ "pam": "Kapampangan",
679
+ "hil": "Ilonggo",
680
+ "bcl": "Bikol Sentral",
681
+ "min": "Baso Minangkabau",
682
+ "ace": "Bahsa Acèh",
683
+ "bug": "Basa Ugi",
684
+ "ban": "Basa Bali",
685
+ "bjn": "Bahasa Banjar",
686
+ "mak": "Basa Mangkasara",
687
+ "sas": "Sasak",
688
+ "tet": "Tetun",
689
+ "cha": "Chamoru",
690
+ "niu": "Vagahau Niuē",
691
+ "tvl": "Te Gana Tuvalu",
692
+ "gil": "Taetae ni Kiribati",
693
+ "mah": "Kajin Majel",
694
+ "pau": "A tekoi er a Belau",
695
+ "wls": "Fakaʻuvea",
696
+ "rar": "Māori Kūki ʻĀirani",
697
+ "hif": "फ़िजी हिंदी",
698
+ }
699
+
700
+ export const ISO6393_TO_6391: Record<LangCodeISO6393, LangCodeISO6391 | undefined> = {
701
+ "eng": "en",
702
+ "cmn": "zh",
703
+ "cmn-Hant": "zh-TW",
704
+ "yue": "zh",
705
+ "spa": "es",
706
+ "rus": "ru",
707
+ "arb": "ar",
708
+ "ben": "bn",
709
+ "hin": "hi",
710
+ "por": "pt",
711
+ "ind": "id",
712
+ "jpn": "ja",
713
+ "fra": "fr",
714
+ "deu": "de",
715
+ "jav": "jv",
716
+ "kor": "ko",
717
+ "tel": "te",
718
+ "vie": "vi",
719
+ "mar": "mr",
720
+ "ita": "it",
721
+ "tam": "ta",
722
+ "tur": "tr",
723
+ "urd": "ur",
724
+ "guj": "gu",
725
+ "pol": "pl",
726
+ "ukr": "uk",
727
+ "kan": "kn",
728
+ "mai": undefined, // 无 2-letter -> undefined
729
+ "mal": "ml",
730
+ "pes": "fa", // Iranian Persian ⇢ fa
731
+ "mya": "my",
732
+ "swh": "sw",
733
+ "sun": "su",
734
+ "ron": "ro",
735
+ "pan": "pa",
736
+ "bho": undefined,
737
+ "amh": "am",
738
+ "hau": "ha",
739
+ "fuv": "ff", // Fulah
740
+ "bos": "bs",
741
+ "hrv": "hr",
742
+ "nld": "nl",
743
+ "srp": "sr",
744
+ "tha": "th",
745
+ "ckb": "ku", // 有人也写 'ckb',但 ISO-639-1 是 ku
746
+ "yor": "yo",
747
+ "uzn": "uz",
748
+ "zlm": "ms", // Malay
749
+ "ibo": "ig",
750
+ "npi": "ne",
751
+ "ceb": undefined,
752
+ "skr": undefined,
753
+ "tgl": "tl",
754
+ "hun": "hu",
755
+ "azj": "az",
756
+ "sin": "si",
757
+ "koi": undefined,
758
+ "ell": "el",
759
+ "ces": "cs",
760
+ "mag": undefined,
761
+ "run": undefined,
762
+ "bel": "be",
763
+ "plt": undefined,
764
+ "qug": undefined,
765
+ "mad": undefined,
766
+ "nya": "ny",
767
+ "zyb": undefined,
768
+ "pbu": undefined,
769
+ "kin": "rw",
770
+ "zul": "zu",
771
+ "bul": "bg",
772
+ "swe": "sv",
773
+ "lin": "ln",
774
+ "som": "so",
775
+ "hms": undefined,
776
+ "hnj": undefined,
777
+ "ilo": undefined,
778
+ "kaz": "kk",
779
+ "heb": "he",
780
+ "nob": "nb",
781
+ "nno": "nn",
782
+ "afr": "af",
783
+ "sqi": "sq",
784
+ "asm": "as",
785
+ "eus": "eu",
786
+ "bre": "br",
787
+ "cat": "ca",
788
+ "cos": "co",
789
+ "cym": "cy",
790
+ "dan": "da",
791
+ "div": "dv",
792
+ "epo": "eo",
793
+ "ekk": "et",
794
+ "fao": "fo",
795
+ "fij": "fj",
796
+ "fin": "fi",
797
+ "fry": "fy",
798
+ "gla": "gd",
799
+ "gle": "ga",
800
+ "glg": "gl",
801
+ "grn": "gn",
802
+ "hat": "ht",
803
+ "haw": undefined,
804
+ "hye": "hy",
805
+ "ido": "io",
806
+ "ina": "ia",
807
+ "isl": "is",
808
+ "kat": "ka",
809
+ "khm": "km",
810
+ "kir": "ky",
811
+ "lao": "lo",
812
+ "lat": "la",
813
+ "lvs": "lv",
814
+ "lit": "lt",
815
+ "ltz": "lb",
816
+ "mkd": "mk",
817
+ "mlt": "mt",
818
+ "mon": "mn",
819
+ "mri": "mi",
820
+ "nso": undefined,
821
+ "oci": "oc",
822
+ "ori": "or",
823
+ "orm": "om",
824
+ "prs": undefined,
825
+ "san": "sa",
826
+ "slk": "sk",
827
+ "slv": "sl",
828
+ "smo": "sm",
829
+ "sna": "sn",
830
+ "snd": "sd",
831
+ "sot": "st",
832
+ "tah": "ty",
833
+ "tat": "tt",
834
+ "tgk": "tg",
835
+ "tir": "ti",
836
+ "ton": "to",
837
+ "tsn": "tn",
838
+ "tuk": "tk",
839
+ "uig": "ug",
840
+ "vol": "vo",
841
+ "wol": "wo",
842
+ "xho": "xh",
843
+ "ydd": "yi",
844
+ "aka": "ak",
845
+ "bam": "bm",
846
+ "bis": "bi",
847
+ "bod": "bo",
848
+ "che": "ce",
849
+ "chv": "cv",
850
+ "dzo": "dz",
851
+ "ewe": "ee",
852
+ "kab": undefined,
853
+ "lug": "lg",
854
+ "oss": "os",
855
+ "ssw": "ss",
856
+ "ven": "ve",
857
+ "war": undefined,
858
+ "nde": "nd",
859
+ "nbl": "nr",
860
+ "pam": undefined,
861
+ "hil": undefined,
862
+ "bcl": undefined,
863
+ "min": undefined,
864
+ "ace": undefined,
865
+ "bug": undefined,
866
+ "ban": undefined,
867
+ "bjn": undefined,
868
+ "mak": undefined,
869
+ "sas": undefined,
870
+ "tet": undefined,
871
+ "cha": "ch",
872
+ "niu": undefined,
873
+ "tvl": undefined,
874
+ "gil": undefined,
875
+ "mah": "mh",
876
+ "pau": undefined,
877
+ "wls": undefined,
878
+ "rar": undefined,
879
+ "hif": undefined,
880
+ }
881
+
882
+ export const LOCALE_TO_ISO6393: Partial<Record<LangCodeISO6391, LangCodeISO6393>> = {
883
+ en: "eng",
884
+ zh: "cmn",
885
+ }
886
+
887
+ export const langLevel = z.enum(["beginner", "intermediate", "advanced"])
888
+ export type LangLevel = z.infer<typeof langLevel>
889
+
890
+ // RTL (Right-to-Left) languages basically Arabic-based languages
891
+ export const RTL_LANG_CODES: readonly LangCodeISO6393[] = [
892
+ "arb", // Standard Arabic
893
+ "urd", // Urdu
894
+ "pes", // Iranian Persian
895
+ "ckb", // Central Kurdish
896
+ "zlm", // Malay (individual language) (Arabic)
897
+ "skr", // Saraiki
898
+ "pbu", // Northern Pashto
899
+ "heb", // Hebrew
900
+ "div", // Divehi
901
+ "snd", // Sindhi
902
+ "uig", // Uyghur
903
+ "ydd", // Eastern Yiddish
904
+ "prs", // Dari
905
+ ] as const