@reacture-io/iso-locale
Version:
Provide ISO standards for handling countries & languages. Fully written in typescript.
420 lines (416 loc) • 5.95 kB
JavaScript
import { languages, isValidBCP47, getLanguageByCode, getDialectsByCode, getDialectByCode, dialects } from './chunk-OV5MZISJ.mjs';
import { __export } from './chunk-7P6ASYW6.mjs';
import { z } from 'zod';
// src/languages/index.ts
var languages_exports = {};
__export(languages_exports, {
dialect: () => dialect,
dialects: () => dialects,
getDialectByCode: () => getDialectByCode,
getDialectsByCode: () => getDialectsByCode,
getLanguageByCode: () => getLanguageByCode,
isValidBCP47: () => isValidBCP47,
isValidDialect: () => isValidDialect,
isValidISO639_1: () => isValidISO639_1,
isValidISO639_3: () => isValidISO639_3,
isValidLanguage: () => isValidLanguage,
isValidLanguageName: () => isValidLanguageName,
iso639_1: () => iso639_1,
iso639_3: () => iso639_3,
language: () => language,
languageName: () => languageName,
languages: () => languages
});
var iso639_1 = z.enum([
"aa",
"ab",
"ae",
"af",
"ak",
"am",
"an",
"ar",
"as",
"av",
"ay",
"az",
"ba",
"be",
"bg",
"bh",
"bi",
"bm",
"bn",
"bo",
"br",
"bs",
"ca",
"ce",
"ch",
"co",
"cr",
"cs",
"cu",
"cv",
"cy",
"da",
"de",
"dv",
"dz",
"ee",
"el",
"en",
"eo",
"es",
"et",
"eu",
"fa",
"ff",
"fi",
"fj",
"fo",
"fr",
"fy",
"ga",
"gd",
"gl",
"gn",
"gu",
"gv",
"ha",
"he",
"hi",
"ho",
"hr",
"ht",
"hu",
"hy",
"hz",
"ia",
"id",
"ie",
"ig",
"ii",
"ik",
"io",
"is",
"it",
"iu",
"ja",
"jv",
"ka",
"kg",
"ki",
"kj",
"kk",
"kl",
"km",
"kn",
"ko",
"kr",
"ks",
"ku",
"kv",
"kw",
"ky",
"la",
"lb",
"lg",
"li",
"ln",
"lo",
"lt",
"lu",
"lv",
"mg",
"mh",
"mi",
"mk",
"ml",
"mn",
"mr",
"ms",
"mt",
"my",
"na",
"nb",
"nd",
"ne",
"ng",
"nl",
"nn",
"no",
"nr",
"nv",
"ny",
"oc",
"oj",
"om",
"or",
"os",
"pa",
"pi",
"pl",
"ps",
"pt",
"qu",
"rm",
"rn",
"ro",
"ru",
"rw",
"sa",
"sc",
"sd",
"se",
"sg",
"si",
"sk",
"sl",
"sm",
"sn",
"so",
"sq",
"sr",
"ss",
"st",
"su",
"sv",
"sw",
"ta",
"te",
"tg",
"th",
"ti",
"tk",
"tl",
"tn",
"to",
"tr",
"ts",
"tt",
"tw",
"ty",
"ug",
"uk",
"ur",
"uz",
"ve",
"vi",
"vo",
"wa",
"wo",
"xh",
"yi",
"yo",
"za",
"zh",
"zu"
]);
var isValidISO639_1 = (_iso639_1) => iso639_1.safeParse(_iso639_1).success;
var iso639_3 = z.string().regex(/^[a-z]{3}$/);
var isValidISO639_3 = (object) => iso639_3.safeParse(object).success;
// src/languages/types/dialect.ts
var dialect = z.object({
dialect: z.string(),
native: z.string(),
iso639_1: z.custom((value) => isValidISO639_1(value)).optional(),
iso639_3: z.custom((value) => isValidISO639_3(value)).optional(),
bcp47: z.custom(isValidBCP47)
});
var isValidDialect = (object) => dialect.safeParse(object).success;
var languageName = z.enum([
"Afar",
"Abkhazian",
"Avestan",
"Afrikaans",
"Akan",
"Amharic",
"Aragonese",
"Arabic",
"Assamese",
"Avaric",
"Aymara",
"Azerbaijani",
"Bashkir",
"Belarusian",
"Bulgarian",
"Bihari languages",
"Bislama",
"Bambara",
"Bengali",
"Tibetan",
"Breton",
"Bosnian",
"Catalan",
"Chechen",
"Chamorro",
"Corsican",
"Cree",
"Czech",
"Church Slavic",
"Chuvash",
"Welsh",
"Danish",
"German",
"Divehi",
"Dzongkha",
"Ewe",
"Greek",
"English",
"Esperanto",
"Spanish",
"Estonian",
"Basque",
"Persian",
"Fulah",
"Finnish",
"Fijian",
"Faroese",
"French",
"Western Frisian",
"Irish",
"Gaelic",
"Galician",
"Guarani",
"Gujarati",
"Manx",
"Hausa",
"Hebrew",
"Hindi",
"Hiri Motu",
"Croatian",
"Haitian",
"Hungarian",
"Armenian",
"Herero",
"Interlingua",
"Indonesian",
"Interlingue",
"Igbo",
"Sichuan Yi",
"Inupiaq",
"Ido",
"Icelandic",
"Italian",
"Inuktitut",
"Japanese",
"Javanese",
"Georgian",
"Kongo",
"Kikuyu",
"Kuanyama",
"Kazakh",
"Kalaallisut",
"Central Khmer",
"Kannada",
"Korean",
"Kanuri",
"Kashmiri",
"Kurdish",
"Komi",
"Cornish",
"Kirghiz",
"Latin",
"Luxembourgish",
"Ganda",
"Limburgan",
"Lingala",
"Lao",
"Lithuanian",
"Luba-Katanga",
"Latvian",
"Malagasy",
"Marshallese",
"Maori",
"Macedonian",
"Malayalam",
"Mongolian",
"Marathi",
"Malay",
"Maltese",
"Burmese",
"Nauru",
"Norwegian Bokmal",
"North Ndebele",
"Nepali",
"Ndonga",
"Dutch",
"Norwegian Nynorsk",
"Norwegian",
"South Ndebele",
"Navajo",
"Chichewa",
"Occitan",
"Ojibwa",
"Oromo",
"Oriya",
"Ossetian",
"Panjabi",
"Pali",
"Polish",
"Pushto",
"Portuguese",
"Quechua",
"Romansh",
"Rundi",
"Romanian",
"Russian",
"Kinyarwanda",
"Sanskrit",
"Sardinian",
"Sindhi",
"Northern Sami",
"Sango",
"Sinhala",
"Slovak",
"Slovenian",
"Samoan",
"Shona",
"Somali",
"Albanian",
"Serbian",
"Swati",
"Southern Sotho",
"Sundanese",
"Swedish",
"Swahili",
"Tamil",
"Telugu",
"Tajik",
"Thai",
"Tigrinya",
"Turkmen",
"Tagalog",
"Tswana",
"Tonga",
"Turkish",
"Tsonga",
"Tatar",
"Twi",
"Tahitian",
"Uighur",
"Ukrainian",
"Urdu",
"Uzbek",
"Venda",
"Vietnamese",
"Volapuk",
"Walloon",
"Wolof",
"Xhosa",
"Yiddish",
"Yoruba",
"Zhuang",
"Chinese",
"Zulu"
]);
var isValidLanguageName = (_languageName) => languageName.safeParse(_languageName).success;
var language = z.object({
language: z.custom((value) => isValidLanguageName(value)),
native: z.string(),
iso639_1: z.custom((value) => isValidISO639_1(value)),
iso639_3: z.custom((value) => isValidISO639_3(value))
});
var isValidLanguage = (object) => language.safeParse(object).success;
export { dialect, isValidDialect, isValidISO639_1, isValidISO639_3, isValidLanguage, isValidLanguageName, iso639_1, iso639_3, language, languageName, languages_exports };