intl-t
Version:
A Fully-Typed Node-Based i18n Translation Library
624 lines (623 loc) • 6.92 kB
TypeScript
type LocaleOption = [
[
"af",
"NA",
"ZA"
],
[
"am"
],
[
"ar",
"AE",
"BH",
"DJ",
"DZ",
"EG",
"EH",
"JO",
"KW",
"LB",
"LY",
"MA",
"OM",
"PS",
"QA",
"SA",
"SD",
"TN",
"YE"
],
[
"as"
],
[
"az"
],
[
"ba"
],
[
"be"
],
[
"bg"
],
[
"bi"
],
[
"bn",
"BD",
"IN"
],
[
"bo",
"CN",
"IN"
],
[
"br"
],
[
"bs"
],
[
"ca",
"AD",
"ES"
],
[
"ch",
"GU",
"MP"
],
[
"co"
],
[
"cs"
],
[
"cy"
],
[
"da"
],
[
"de",
"AT",
"CH",
"DE",
"LI",
"MF"
],
[
"dv"
],
[
"dz"
],
[
"el",
"CY",
"GR"
],
[
"en",
"AG",
"AI",
"AQ",
"AU",
"BB",
"BM",
"BS",
"BZ",
"CA",
"CC",
"CK",
"CX",
"DM",
"FK",
"FM",
"GB",
"GD",
"GI",
"GS",
"GY",
"HM",
"IM",
"IO",
"JE",
"JM",
"KN",
"KY",
"LC",
"LR",
"MF",
"MS",
"NZ",
"PN",
"PW",
"SB",
"SH",
"SL",
"SS",
"SX",
"TC",
"TT",
"US",
"VC",
"ZM"
],
[
"eo"
],
[
"es",
"AR",
"BO",
"CL",
"CO",
"CR",
"CU",
"DO",
"EC",
"ES",
"GQ",
"GT",
"HN",
"MX",
"NI",
"PA",
"PE",
"PR",
"PY",
"SV",
"US",
"UY",
"VE"
],
[
"et"
],
[
"eu"
],
[
"fa",
"AF",
"IR"
],
[
"fi"
],
[
"fj"
],
[
"fo"
],
[
"fr",
"BE",
"BF",
"BL",
"CA",
"CF",
"CG",
"CH",
"CM",
"DJ",
"FR",
"GA",
"GF",
"GG",
"GN",
"GP",
"LU",
"MC",
"MF",
"ML",
"MQ",
"NC",
"NE",
"PF",
"PM",
"RE",
"TD",
"TF",
"TG",
"YT"
],
[
"fy"
],
[
"ga"
],
[
"gd"
],
[
"gl"
],
[
"gu"
],
[
"ha",
"GH",
"NG"
],
[
"he"
],
[
"hi"
],
[
"hr"
],
[
"ht"
],
[
"hu"
],
[
"hy"
],
[
"id"
],
[
"ig"
],
[
"ii"
],
[
"is"
],
[
"it",
"CH",
"IT",
"SM",
"VA"
],
[
"iu"
],
[
"ja"
],
[
"ka"
],
[
"kk"
],
[
"kl"
],
[
"km"
],
[
"kn"
],
[
"ko",
"KP",
"KR"
],
[
"ku",
"IQ",
"IR",
"SY",
"TR",
"Arab",
"Latn"
],
[
"ky"
],
[
"lb"
],
[
"lo"
],
[
"lt"
],
[
"lv"
],
[
"mg"
],
[
"mh"
],
[
"mi"
],
[
"mk"
],
[
"ml"
],
[
"mn",
"Cyrl",
"Mong"
],
[
"mr"
],
[
"ms",
"BN",
"MY"
],
[
"mt"
],
[
"my"
],
[
"na"
],
[
"nb"
],
[
"ne"
],
[
"nl",
"BE",
"NL",
"SR"
],
[
"nn"
],
[
"no",
"BV",
"NO",
"SJ"
],
[
"nr"
],
[
"ny"
],
[
"oc",
"ES",
"FR",
"IT"
],
[
"or"
],
[
"pa",
"IN",
"PK",
"Arab",
"Gurmukhi"
],
[
"pl"
],
[
"ps",
"AF",
"PK"
],
[
"pt",
"AO",
"BR",
"CV",
"GQ",
"GW",
"MZ",
"PT",
"ST",
"TL"
],
[
"qu",
"BO",
"EC",
"PE"
],
[
"rm"
],
[
"ro",
"MD",
"RO"
],
[
"ru",
"BY",
"KG",
"KZ",
"RU"
],
[
"rw"
],
[
"sa"
],
[
"se",
"FI",
"NO",
"SE"
],
[
"sg"
],
[
"si"
],
[
"sk"
],
[
"sl"
],
[
"sm",
"AS",
"WS"
],
[
"sn"
],
[
"so",
"DJ",
"SO"
],
[
"sq",
"AL",
"MK",
"XK"
],
[
"sr",
"BA",
"HR",
"ME",
"RS",
"Cyrl",
"Latn"
],
[
"ss"
],
[
"st",
"LS",
"ZA"
],
[
"sv",
"AX",
"FI",
"SE"
],
[
"sw",
"BI",
"CD",
"KE",
"RW",
"TZ",
"UG"
],
[
"ta",
"IN",
"LK",
"MY",
"SG"
],
[
"te"
],
[
"tg"
],
[
"th"
],
[
"ti",
"ER",
"ET"
],
[
"tk"
],
[
"tn"
],
[
"to"
],
[
"tr"
],
[
"ty"
],
[
"uk"
],
[
"ur",
"IN",
"PK"
],
[
"uz",
"Cyrl",
"Latn"
],
[
"vi"
],
[
"wo",
"GM",
"MR",
"SN"
],
[
"xh"
],
[
"yi",
"IL",
"US"
],
[
"yo",
"BJ",
"NG"
],
[
"zh",
"CN",
"HK",
"MO",
"SG",
"TW",
"Hans",
"Hant"
],
[
"zu"
]
];
type LocaleOptions<T> = T extends [infer F, ...infer R] ? F extends string ? F | (R extends string[] ? `${F}-${R[number]}` : never) : never : never;
export type Locale = LocaleOptions<LocaleOption[number]> | (Intl.UnicodeBCP47LocaleIdentifier & {});
export {};