Skip to content

Instantly share code, notes, and snippets.

@ctrlcctrlv
Last active April 10, 2021 04:09
Show Gist options
  • Select an option

  • Save ctrlcctrlv/589dfdc5cc7fdee0b6dba78bea3a40cb to your computer and use it in GitHub Desktop.

Select an option

Save ctrlcctrlv/589dfdc5cc7fdee0b6dba78bea3a40cb to your computer and use it in GitHub Desktop.
static LANGUAGE_ISO: &[Option<&[&str]>] = &[
Some(&["abq"]),
Some(&["abk"]),
Some(&["ach"]),
Some(&["acr"]),
Some(&["ady"]),
Some(&["afr"]),
Some(&["aar"]),
Some(&["ahg"]),
Some(&["aio"]),
Some(&["aka", "fat", "twi"]),
Some(&["akb"]),
Some(&["gsw"]),
Some(&["atv", "alt"]),
Some(&["amh"]),
Some(&["ang"]),
None,
Some(&["ara"]),
Some(&["arg"]),
Some(&["aiw"]),
Some(&["mhv", "rmz", "rki"]),
Some(&["asm"]),
Some(&["ast"]),
Some(&["aht", "apa", "apk", "apj", "apl", "apm", "apw", "ath", "bea", "sek", "bcr", "caf", "chp", "clc", "coq", "crx", "ctc", "den", "dgr", "gce", "gwi", "haa", "hoi", "hup", "ing", "kkz", "koy", "ktw", "kuu", "mvb", "nav", "qwt", "scs", "srs", "taa", "tau", "tcb", "tce", "tfn", "tgx", "tht", "tol", "ttm", "tuu", "txc", "wlk", "xup", "xsl"]),
Some(&["ava"]),
Some(&["awa"]),
Some(&["aym"]),
Some(&["azb"]),
Some(&["aze"]),
Some(&["bfq"]),
Some(&["bad", "bbp", "bfl", "bjo", "bpd", "bqk", "gox", "kuw", "liy", "lna", "lnl", "mnh", "nue", "nuu", "tor", "yaj", "zmz"]),
Some(&["bfy"]),
Some(&["krc"]),
Some(&["ban"]),
Some(&["bar"]),
Some(&["bci"]),
Some(&["bbc"]),
Some(&["auj", "ber", "cnu", "gha", "gho", "grr", "jbe", "jbn", "kab", "mzb", "oua", "rif", "sds", "shi", "shy", "siz", "sjs", "swn", "taq", "tez", "thv", "thz", "tia", "tjo", "tmh", "ttq", "tzm", "zen", "zgh"]),
Some(&["bcq"]),
None,
Some(&["bdy"]),
Some(&["bel"]),
Some(&["bem"]),
Some(&["ben"]),
Some(&["bgc"]),
Some(&["bgq"]),
Some(&["bul"]),
Some(&["bhi", "bhb"]),
Some(&["bho"]),
Some(&["bik", "bhk", "bcl", "bto", "cts", "bln", "fbl", "lbl", "rbl", "ubl"]),
Some(&["byn"]),
Some(&["bis"]),
Some(&["bjj"]),
Some(&["bla"]),
Some(&["bal"]),
Some(&["blk"]),
Some(&["bjt", "ble"]),
Some(&["bft"]),
Some(&["bam"]),
Some(&["bai", "bbj", "bko", "byv", "fmp", "jgo", "nla", "nnh", "nnz", "nwe", "xmg", "ybb"]),
Some(&["bos"]),
Some(&["bpy"]),
Some(&["bre"]),
Some(&["brh"]),
Some(&["bra"]),
Some(&["mya"]),
Some(&["brx"]),
Some(&["bak"]),
Some(&["bsk"]),
Some(&["btd"]),
Some(&["btb", "beb", "bum", "bxp", "eto", "ewo", "mct"]),
Some(&["akb", "bbc", "btd", "btk", "btm", "bts", "btx", "btz"]),
Some(&["btm"]),
Some(&["bts"]),
Some(&["btx"]),
Some(&["btz"]),
Some(&["bug"]),
Some(&["byv"]),
Some(&["cak"]),
Some(&["cat"]),
Some(&["cbk"]),
Some(&["cco", "chj", "chq", "chz", "cle", "cnl", "cnt", "cpa", "csa", "cso", "cte", "ctl", "cuc", "cvn"]),
Some(&["ceb"]),
Some(&["cgg"]),
Some(&["cha"]),
Some(&["che"]),
Some(&["sgw"]),
Some(&["hne"]),
Some(&["nya"]),
Some(&["ckt"]),
Some(&["chk"]),
Some(&["cho"]),
Some(&["chp"]),
Some(&["chr"]),
Some(&["chv"]),
Some(&["chy"]),
Some(&["cja"]),
Some(&["cjm"]),
Some(&["swb", "wlc", "wni", "zdj"]),
Some(&["cop"]),
Some(&["cor"]),
Some(&["cos"]),
Some(&["abs", "acf", "afs", "aig", "aoa", "bah", "bew", "bis", "bjs", "bpl", "bpq", "brc", "bxo", "bzj", "bzk", "cbk", "ccl", "ccm", "chn", "cks", "cpe", "cpf", "cpi", "cpp", "cri", "crp", "crs", "dcr", "dep", "djk", "fab", "fng", "fpe", "gac", "gcf", "gcl", "gcr", "gib", "goq", "gpe", "gul", "gyn", "hat", "hca", "hmo", "hwc", "icr", "idb", "ihb", "jam", "jvd", "kcn", "kea", "kmv", "kri", "kww", "lir", "lou", "lrt", "max", "mbf", "mcm", "mfe", "mfp", "mkn", "mod", "msi", "mud", "mzs", "nag", "nef", "ngm", "njt", "onx", "oor", "pap", "pcm", "pea", "pey", "pga", "pih", "pis", "pln", "pml", "pmy", "pov", "pre", "rcf", "rop", "scf", "sci", "skw", "srm", "srn", "sta", "svc", "tas", "tch", "tcs", "tgh", "tmg", "tpi", "trf", "tvy", "uln", "vic", "vkp", "wes", "xmm"]),
Some(&["cre"]),
Some(&["crx", "caf"]),
Some(&["crh"]),
Some(&["csb"]),
Some(&["chu"]),
Some(&["ces"]),
Some(&["ctg"]),
Some(&["cuk"]),
Some(&["dag"]),
Some(&["dan"]),
Some(&["dar"]),
Some(&["dax"]),
Some(&["cwd"]),
Some(&["deu"]),
None,
Some(&["dgo"]),
Some(&["doi"]),
Some(&["dhg"]),
Some(&["div"]),
Some(&["diq"]),
Some(&["div"]),
Some(&["dje"]),
Some(&["djr"]),
Some(&["ada"]),
Some(&["dnj"]),
Some(&["din"]),
Some(&["prs"]),
Some(&["duj", "dwu", "dwy"]),
Some(&["dng"]),
Some(&["dzo"]),
Some(&["igb"]),
Some(&["crj", "crl"]),
Some(&["bin"]),
Some(&["efi"]),
Some(&["ell"]),
Some(&["emk"]),
Some(&["eng"]),
Some(&["myv"]),
Some(&["spa"]),
Some(&["esu"]),
Some(&["est"]),
Some(&["eus"]),
Some(&["evn"]),
Some(&["eve"]),
Some(&["ewe"]),
Some(&["acf"]),
Some(&["fan"]),
Some(&["fas"]),
Some(&["fat"]),
Some(&["fin"]),
Some(&["fij"]),
Some(&["vls"]),
Some(&["fmp"]),
Some(&["enf"]),
Some(&["fon"]),
Some(&["fao"]),
Some(&["fra"]),
Some(&["frc"]),
Some(&["fry"]),
Some(&["fur"]),
Some(&["frp"]),
Some(&["fuf"]),
Some(&["ful"]),
Some(&["fuv"]),
Some(&["gaa"]),
Some(&["gla"]),
Some(&["gag"]),
Some(&["glg"]),
None,
Some(&["gbm"]),
Some(&["gez"]),
Some(&["gih"]),
Some(&["niv"]),
Some(&["gil"]),
Some(&["gkp"]),
Some(&["glk"]),
Some(&["guk"]),
Some(&["gnn"]),
Some(&["gog"]),
Some(&["gon"]),
Some(&["kal"]),
Some(&["grt"]),
Some(&["grn"]),
Some(&["guc"]),
Some(&["guf"]),
Some(&["guj"]),
Some(&["guz"]),
Some(&["hat"]),
Some(&["cfm"]),
Some(&["hoj"]),
Some(&["hau"]),
Some(&["haw"]),
Some(&["hay"]),
Some(&["haz"]),
Some(&["amf"]),
Some(&["her"]),
Some(&["hil"]),
Some(&["hin"]),
Some(&["mrj"]),
Some(&["hmn"]),
Some(&["hmo"]),
Some(&["hno", "hnd"]),
Some(&["hoc"]),
Some(&["har"]),
Some(&["hrv"]),
Some(&["hun"]),
Some(&["hye", "hyw"]),
Some(&["hye"]),
Some(&["iba"]),
Some(&["ibb"]),
Some(&["ibo"]),
Some(&["ido"]),
Some(&["iby", "ijc", "ije", "ijn", "ijo", "ijs", "nkx", "okd", "okr", "orr"]),
Some(&["ile"]),
Some(&["ilo"]),
Some(&["ina"]),
Some(&["ind"]),
Some(&["inh"]),
Some(&["iku"]),
Some(&["ipk"]),
None,
Some(&["gle"]),
Some(&["gle"]),
Some(&["isl"]),
Some(&["smn"]),
Some(&["ita"]),
Some(&["heb"]),
Some(&["jam"]),
Some(&["jpn"]),
Some(&["jav"]),
Some(&["jbo"]),
Some(&["jct"]),
Some(&["yid"]),
Some(&["lad"]),
Some(&["dyu"]),
Some(&["kbd"]),
Some(&["kab"]),
Some(&["kfr"]),
Some(&["kln"]),
Some(&["kan"]),
Some(&["krc"]),
Some(&["kat"]),
Some(&["kaz"]),
Some(&["kde"]),
Some(&["kea"]),
Some(&["ktb"]),
Some(&["kek"]),
Some(&["kat"]),
Some(&["kjh"]),
Some(&["kca"]),
Some(&["khm"]),
Some(&["kca"]),
Some(&["kht"]),
Some(&["kca"]),
Some(&["khw"]),
Some(&["kik"]),
Some(&["kir"]),
Some(&["kqs", "kss"]),
Some(&["kiu"]),
Some(&["kjd"]),
Some(&["kjp"]),
Some(&["kjz"]),
Some(&["kex"]),
Some(&["xal"]),
Some(&["kam"]),
Some(&["kfy"]),
Some(&["kmw"]),
Some(&["kxc"]),
Some(&["kmz"]),
Some(&["kau"]),
Some(&["kfa"]),
Some(&["kor", "okm"]),
Some(&["kok"]),
Some(&["kom"]),
Some(&["ktu"]),
Some(&["kon"]),
Some(&["koi"]),
Some(&["kor"]),
Some(&["kos"]),
Some(&["kpv"]),
Some(&["kpe"]),
Some(&["kri"]),
Some(&["kaa"]),
Some(&["krl"]),
Some(&["kdr"]),
Some(&["blk", "bwe", "eky", "ghk", "jkm", "jkp", "kar", "kjp", "kjt", "ksw", "kvl", "kvq", "kvt", "kvu", "kvy", "kxf", "kxk", "kyu", "pdu", "pwo", "pww", "wea"]),
Some(&["kqy"]),
Some(&["kas"]),
Some(&["ksh"]),
Some(&["kha"]),
Some(&["sjd"]),
Some(&["ksw"]),
Some(&["kua"]),
Some(&["kxu"]),
Some(&["kfx"]),
Some(&["kum"]),
Some(&["kur"]),
Some(&["kru"]),
Some(&["kdt"]),
Some(&["kpy"]),
Some(&["kyu"]),
Some(&["lld"]),
Some(&["bfu"]),
Some(&["lbe"]),
Some(&["lmn"]),
Some(&["lao"]),
Some(&["lat"]),
Some(&["lzz"]),
Some(&["crm"]),
Some(&["lbj"]),
Some(&["lez"]),
Some(&["lij"]),
Some(&["lim"]),
Some(&["lin"]),
Some(&["lis"]),
Some(&["ljp"]),
Some(&["lki"]),
Some(&["mhr"]),
Some(&["lif"]),
Some(&["lmo"]),
Some(&["ngl"]),
Some(&["lom"]),
Some(&["lrc", "luz", "bqi", "zum"]),
Some(&["dsb"]),
Some(&["smj"]),
Some(&["lit"]),
Some(&["ltz"]),
Some(&["lua"]),
Some(&["lub"]),
Some(&["lug"]),
Some(&["luy"]),
Some(&["luo"]),
Some(&["lav"]),
Some(&["mad"]),
Some(&["mag"]),
Some(&["mah"]),
Some(&["mpe"]),
Some(&["vmw"]),
Some(&["mal"]),
Some(&["mam"]),
Some(&["mns"]),
Some(&["arn"]),
Some(&["mar"]),
Some(&["mwr", "dhd", "rwr", "mve", "wry", "mtr", "swv"]),
Some(&["kmb"]),
Some(&["mbo"]),
Some(&["mnc"]),
Some(&["crm"]),
Some(&["men"]),
Some(&["mdr"]),
Some(&["mym"]),
Some(&["mer"]),
Some(&["mfa"]),
Some(&["mfe"]),
Some(&["min"]),
Some(&["lus"]),
Some(&["mkd"]),
Some(&["mak"]),
Some(&["mkw"]),
Some(&["mdy"]),
Some(&["mlg"]),
Some(&["mlq"]),
Some(&["mal"]),
Some(&["msa"]),
Some(&["mnk"]),
Some(&["mon"]),
Some(&["mni"]),
Some(&["man", "mnk", "myq", "mku", "msc", "emk", "mwk", "mlq"]),
Some(&["glv"]),
Some(&["moh"]),
Some(&["mdf"]),
Some(&["mol"]),
Some(&["mnw"]),
None,
Some(&["mos"]),
Some(&["mri"]),
Some(&["mai"]),
Some(&["mlt"]),
Some(&["unr"]),
Some(&["mus"]),
Some(&["mwl"]),
Some(&["mww"]),
Some(&["acr", "agu", "caa", "cac", "cak", "chf", "ckz", "cob", "ctu", "emy", "hus", "itz", "ixl", "jac", "kek", "kjb", "knj", "lac", "mam", "mhc", "mop", "myn", "poc", "poh", "quc", "qum", "quv", "toj", "ttc", "tzh", "tzj", "tzo", "usp", "yua"]),
Some(&["mzn"]),
Some(&["nag"]),
Some(&["azd", "azn", "azz", "nah", "naz", "nch", "nci", "ncj", "ncl", "ncx", "ngu", "nhc", "nhe", "nhg", "nhi", "nhk", "nhm", "nhn", "nhp", "nhq", "nht", "nhv", "nhw", "nhx", "nhy", "nhz", "nlv", "npl", "nsu", "nuz"]),
Some(&["gld"]),
Some(&["nap"]),
Some(&["nsk"]),
Some(&["nau"]),
Some(&["nav"]),
Some(&["csw"]),
Some(&["nbl", "nde"]),
Some(&["ndc"]),
Some(&["ndo"]),
Some(&["nds"]),
Some(&["nep"]),
Some(&["new"]),
Some(&["nga"]),
None,
Some(&["csw"]),
Some(&["dap", "njz", "tgj"]),
Some(&["niu"]),
Some(&["nyn"]),
Some(&["nqo"]),
Some(&["nld"]),
Some(&["noe"]),
Some(&["nog"]),
Some(&["nob"]),
Some(&["nov"]),
Some(&["sme"]),
Some(&["nso"]),
Some(&["nod"]),
Some(&["epo"]),
Some(&["nym"]),
Some(&["nno"]),
Some(&["nza"]),
Some(&["oci"]),
Some(&["ojs"]),
Some(&["oji"]),
Some(&["ori"]),
Some(&["orm"]),
Some(&["oss"]),
Some(&["sam"]),
Some(&["pag"]),
Some(&["pli"]),
Some(&["pam"]),
Some(&["pan"]),
Some(&["plp"]),
Some(&["pap"]),
Some(&["pus"]),
Some(&["pau"]),
Some(&["pcc"]),
Some(&["pcd"]),
Some(&["pdc"]),
Some(&["ell"]),
Some(&["phk"]),
Some(&["pih"]),
Some(&["fil"]),
Some(&["pce", "rbb", "pll"]),
Some(&["pol"]),
Some(&["pms"]),
Some(&["pnb"]),
Some(&["poh"]),
Some(&["pon"]),
Some(&["pro"]),
Some(&["por"]),
Some(&["pwo"]),
Some(&["bgr", "biu", "cek", "cey", "cfm", "cbl", "cka", "ckn", "clj", "clt", "cmr", "cnb", "cnh", "cnk", "cnw", "csh", "csj", "csv", "csy", "ctd", "cth", "czt", "dao", "gnb", "hlt", "hmr", "hra", "lus", "mrh", "mwq", "pck", "pkh", "pub", "ral", "rtc", "sch", "sez", "shl", "smt", "tcp", "tcz", "vap", "weu", "zom", "zyp"]),
Some(&["quc"]),
Some(&["quh"]),
Some(&["quz"]),
Some(&["qvi"]),
Some(&["qwh"]),
Some(&["raj"]),
Some(&["rar"]),
Some(&["bxr"]),
Some(&["atj"]),
Some(&["rej"]),
Some(&["ria"]),
Some(&["rif"]),
Some(&["rit"]),
Some(&["rkw"]),
Some(&["roh"]),
Some(&["rmy"]),
Some(&["ron"]),
Some(&["rom"]),
Some(&["rue"]),
Some(&["rtm"]),
Some(&["kin"]),
Some(&["run"]),
Some(&["rup"]),
Some(&["rus"]),
Some(&["sck"]),
Some(&["san"]),
Some(&["sas"]),
Some(&["sat"]),
Some(&["chp"]),
Some(&["scn"]),
Some(&["sco"]),
Some(&["scs"]),
Some(&["xan"]),
Some(&["sel"]),
Some(&["sga"]),
Some(&["sag"]),
Some(&["sgs"]),
Some(&["shi"]),
Some(&["shn"]),
Some(&["sjo"]),
Some(&["sid"]),
Some(&["xst", "stv", "wle"]),
Some(&["sms"]),
Some(&["slk"]),
Some(&["den", "scs", "xsl"]),
Some(&["slv"]),
Some(&["som"]),
Some(&["smo"]),
Some(&["seh"]),
Some(&["sna"]),
Some(&["snd"]),
Some(&["sin"]),
Some(&["snk"]),
Some(&["gru"]),
Some(&["sop"]),
Some(&["sot"]),
Some(&["sqi"]),
Some(&["cnr", "srp"]),
Some(&["srd"]),
Some(&["skr"]),
Some(&["srr"]),
Some(&["xsl"]),
Some(&["sma"]),
Some(&["stq"]),
Some(&["suk"]),
Some(&["sun"]),
Some(&["suq"]),
Some(&["sva"]),
Some(&["swe"]),
Some(&["aii"]),
Some(&["swa"]),
Some(&["ssw"]),
Some(&["ngo", "xnj", "xnq"]),
Some(&["sxu"]),
Some(&["syl"]),
Some(&["aii", "amw", "cld", "syc", "syr", "tru"]),
Some(&["syc", "syr"]),
Some(&["syc", "syr"]),
Some(&["syc", "syr"]),
Some(&["szl"]),
Some(&["tab"]),
Some(&["tgk"]),
Some(&["tam"]),
Some(&["tat"]),
Some(&["cwd"]),
Some(&["tdd"]),
Some(&["tel"]),
Some(&["tet"]),
Some(&["tgl"]),
Some(&["ton"]),
Some(&["tig"]),
Some(&["tir"]),
Some(&["tha"]),
Some(&["tah"]),
Some(&["bod"]),
Some(&["tiv"]),
Some(&["tuk"]),
Some(&["taq", "thv", "thz", "tmh", "ttq"]),
Some(&["tem"]),
Some(&["tsn"]),
Some(&["enh"]),
Some(&["toi"]),
Some(&["xal"]),
Some(&["tod"]),
Some(&["tpi"]),
Some(&["tur"]),
Some(&["tso"]),
Some(&["tsj"]),
Some(&["tru"]),
Some(&["tcy"]),
Some(&["tum"]),
Some(&["tyv"]),
Some(&["tvl"]),
Some(&["twi"]),
Some(&["tyz"]),
Some(&["tzm"]),
Some(&["tzo"]),
Some(&["udm"]),
Some(&["ukr"]),
Some(&["umb"]),
Some(&["urd"]),
Some(&["hsb"]),
Some(&["uig"]),
Some(&["uzb"]),
Some(&["vec"]),
Some(&["ven"]),
Some(&["vie"]),
Some(&["vol"]),
Some(&["vro"]),
Some(&["wbm"]),
Some(&["wbr"]),
Some(&["war"]),
Some(&["crk"]),
Some(&["cym"]),
Some(&["wol"]),
Some(&["wln"]),
Some(&["wtm"]),
Some(&["khb"]),
Some(&["xho"]),
Some(&["xjb"]),
Some(&["xkf"]),
Some(&["xog"]),
Some(&["xpe"]),
Some(&["sah"]),
Some(&["yao"]),
Some(&["yap"]),
Some(&["yor"]),
Some(&["crj", "crk", "crl"]),
None,
Some(&["iii"]),
Some(&["zea"]),
Some(&["zgh"]),
Some(&["zha"]),
Some(&["zho"]),
Some(&["zho"]),
Some(&["zho"]),
Some(&["zho"]),
Some(&["zho"]),
Some(&["zne"]),
Some(&["zul"]),
Some(&["zza"]),
];
static LANGUAGE_NAMES: &[&str] = &[
"Abaza",
"Abkhazian",
"Acholi",
"Achi",
"Adyghe",
"Afrikaans",
"Afar",
"Agaw",
"Aiton",
"Akan",
"Batak Angkola",
"Alsatian",
"Altai",
"Amharic",
"Anglo-Saxon",
"Phonetic transcription—Americanist conventions",
"Arabic",
"Aragonese",
"Aari",
"Rakhine",
"Assamese",
"Asturian",
"Athapaskan languages",
"Avar",
"Awadhi",
"Aymara",
"Torki",
"Azerbaijani",
"Badaga",
"Banda",
"Baghelkhandi",
"Balkar",
"Balinese",
"Bavarian",
"Baulé",
"Batak Toba",
"Berber",
"Bench",
"Bible Cree",
"Bandjalang",
"Belarussian",
"Bemba",
"Bengali",
"Haryanvi",
"Bagri",
"Bulgarian",
"Bhili",
"Bhojpuri",
"Bikol",
"Bilen",
"Bislama",
"Kanauji",
"Blackfoot",
"Baluchi",
"Pa’o Karen",
"Balante",
"Balti",
"Bambara (Bamanankan)",
"Bamileke",
"Bosnian",
"Bishnupriya Manipuri",
"Breton",
"Brahui",
"Braj Bhasha",
"Burmese",
"Bodo",
"Bashkir",
"Burushaski",
"Batak Dairi (Pakpak)",
"Beti",
"Batak languages",
"Batak Mandailing",
"Batak Simalungun",
"Batak Karo",
"Batak Alas-Kluet",
"Bugis",
"Medumba",
"Kaqchikel",
"Catalan",
"Zamboanga Chavacano",
"Chinantec",
"Cebuano",
"Chiga",
"Chamorro",
"Chechen",
"Chaha Gurage",
"Chattisgarhi",
"Chichewa (Chewa, Nyanja)",
"Chukchi",
"Chuukese",
"Choctaw",
"Chipewyan",
"Cherokee",
"Chuvash",
"Cheyenne",
"Western Cham",
"Eastern Cham",
"Comorian",
"Coptic",
"Cornish",
"Corsican",
"Creoles",
"Cree",
"Carrier",
"Crimean Tatar",
"Kashubian",
"Church Slavonic",
"Czech",
"Chittagonian",
"San Blas Kuna",
"Dagbani",
"Danish",
"Dargwa",
"Dayi",
"Woods Cree",
"German",
"Default",
"Dogri (individual language)",
"Dogri (macrolanguage)",
"Dhangu",
"Divehi (Dhivehi, Maldivian)",
"Dimli",
"Divehi (Dhivehi, Maldivian)",
"Zarma",
"Djambarrpuyngu",
"Dangme",
"Dan",
"Dinka",
"Dari",
"Dhuwal",
"Dungan",
"Dzongkha",
"Ebira",
"Eastern Cree",
"Edo",
"Efik",
"Greek",
"Eastern Maninkakan",
"English",
"Erzya",
"Spanish",
"Central Yupik",
"Estonian",
"Basque",
"Evenki",
"Even",
"Ewe",
"French Antillean",
"Fang",
"Persian",
"Fanti",
"Finnish",
"Fijian",
"Dutch (Flemish)",
"Fe’fe’",
"Forest Enets",
"Fon",
"Faroese",
"French",
"Cajun French",
"Frisian",
"Friulian",
"Arpitan",
"Futa",
"Fulah",
"Nigerian Fulfulde",
"Ga",
"Scottish Gaelic (Gaelic)",
"Gagauz",
"Galician",
"Garshuni",
"Garhwali",
"Geez",
"Githabul",
"Gilyak",
"Kiribati (Gilbertese)",
"Kpelle (Guinea)",
"Gilaki",
"Gumuz",
"Gumatj",
"Gogo",
"Gondi",
"Greenlandic",
"Garo",
"Guarani",
"Wayuu",
"Gupapuyngu",
"Gujarati",
"Gusii",
"Haitian (Haitian Creole)",
"Halam (Falam Chin)",
"Harauti",
"Hausa",
"Hawaiian",
"Haya",
"Hazaragi",
"Hammer-Banna",
"Herero",
"Hiligaynon",
"Hindi",
"High Mari",
"Hmong",
"Hiri Motu",
"Hindko",
"Ho",
"Harari",
"Croatian",
"Hungarian",
"Armenian",
"Armenian East",
"Iban",
"Ibibio",
"Igbo",
"Ido",
"Ijo languages",
"Interlingue",
"Ilokano",
"Interlingua",
"Indonesian",
"Ingush",
"Inuktitut",
"Inupiat",
"Phonetic transcription—IPA conventions",
"Irish",
"Irish Traditional",
"Icelandic",
"Inari Sami",
"Italian",
"Hebrew",
"Jamaican Creole",
"Japanese",
"Javanese",
"Lojban",
"Krymchak",
"Yiddish",
"Ladino",
"Jula",
"Kabardian",
"Kabyle",
"Kachchi",
"Kalenjin",
"Kannada",
"Karachay",
"Georgian",
"Kazakh",
"Makonde",
"Kabuverdianu (Crioulo)",
"Kebena",
"Kekchi",
"Khutsuri Georgian",
"Khakass",
"Khanty-Kazim",
"Khmer",
"Khanty-Shurishkar",
"Khamti Shan",
"Khanty-Vakhi",
"Khowar",
"Kikuyu (Gikuyu)",
"Kirghiz (Kyrgyz)",
"Kisii",
"Kirmanjki",
"Southern Kiwai",
"Eastern Pwo Karen",
"Bumthangkha",
"Kokni",
"Kalmyk",
"Kamba",
"Kumaoni",
"Komo",
"Komso",
"Khorasani Turkic",
"Kanuri",
"Kodagu",
"Korean Old Hangul",
"Konkani",
"Komi",
"Kikongo",
"Kongo",
"Komi-Permyak",
"Korean",
"Kosraean",
"Komi-Zyrian",
"Kpelle",
"Krio",
"Karakalpak",
"Karelian",
"Karaim",
"Karen",
"Koorete",
"Kashmiri",
"Ripuarian",
"Khasi",
"Kildin Sami",
"S’gaw Karen",
"Kuanyama",
"Kui",
"Kulvi",
"Kumyk",
"Kurdish",
"Kurukh",
"Kuy",
"Koryak",
"Western Kayah",
"Ladin",
"Lahuli",
"Lak",
"Lambani",
"Lao",
"Latin",
"Laz",
"L-Cree",
"Ladakhi",
"Lezgi",
"Ligurian",
"Limburgish",
"Lingala",
"Lisu",
"Lampung",
"Laki",
"Low Mari",
"Limbu",
"Lombard",
"Lomwe",
"Loma",
"Luri",
"Lower Sorbian",
"Lule Sami",
"Lithuanian",
"Luxembourgish",
"Luba-Lulua",
"Luba-Katanga",
"Ganda",
"Luyia",
"Luo",
"Latvian",
"Madura",
"Magahi",
"Marshallese",
"Majang",
"Makhuwa",
"Malayalam",
"Mam",
"Mansi",
"Mapudungun",
"Marathi",
"Marwari",
"Mbundu",
"Mbo",
"Manchu",
"Moose Cree",
"Mende",
"Mandar",
"Me’en",
"Meru",
"Pattani Malay",
"Morisyen",
"Minangkabau",
"Mizo",
"Macedonian",
"Makasar",
"Kituba",
"Male",
"Malagasy",
"Malinke",
"Malayalam Reformed",
"Malay",
"Mandinka",
"Mongolian",
"Manipuri",
"Maninka",
"Manx",
"Mohawk",
"Moksha",
"Moldavian",
"Mon",
"Moroccan",
"Mossi",
"Maori",
"Maithili",
"Maltese",
"Mundari",
"Muscogee",
"Mirandese",
"Hmong Daw",
"Mayan",
"Mazanderani",
"Naga-Assamese",
"Nahuatl",
"Nanai",
"Neapolitan",
"Naskapi",
"Nauruan",
"Navajo",
"N-Cree",
"Ndebele",
"Ndau",
"Ndonga",
"Low Saxon",
"Nepali",
"Newari",
"Ngbaka",
"Nagari",
"Norway House Cree",
"Nisi",
"Niuean",
"Nyankole",
"N’Ko",
"Dutch",
"Nimadi",
"Nogai",
"Norwegian",
"Novial",
"Northern Sami",
"Northern Sotho",
"Northern Tai",
"Esperanto",
"Nyamwezi",
"Norwegian Nynorsk (Nynorsk, Norwegian)",
"Mbembe Tigon",
"Occitan",
"Oji-Cree",
"Ojibway",
"Odia (formerly Oriya)",
"Oromo",
"Ossetian",
"Palestinian Aramaic",
"Pangasinan",
"Pali",
"Pampangan",
"Punjabi",
"Palpa",
"Papiamentu",
"Pashto",
"Palauan",
"Bouyei",
"Picard",
"Pennsylvania German",
"Polytonic Greek",
"Phake",
"Norfolk",
"Filipino",
"Palaung",
"Polish",
"Piemontese",
"Western Panjabi",
"Pocomchi",
"Pohnpeian",
"Provençal / Old Provençal",
"Portuguese",
"Western Pwo Karen",
"Chin",
"K’iche’",
"Quechua (Bolivia)",
"Quechua",
"Quechua (Ecuador)",
"Quechua (Peru)",
"Rajasthani",
"Rarotongan",
"Russian Buriat",
"R-Cree",
"Rejang",
"Riang",
"Tarifit",
"Ritarungo",
"Arakwal",
"Romansh",
"Vlax Romani",
"Romanian",
"Romany",
"Rusyn",
"Rotuman",
"Kinyarwanda",
"Rundi",
"Aromanian",
"Russian",
"Sadri",
"Sanskrit",
"Sasak",
"Santali",
"Sayisi",
"Sicilian",
"Scots",
"North Slavey",
"Sekota",
"Selkup",
"Old Irish",
"Sango",
"Samogitian",
"Tachelhit",
"Shan",
"Sibe",
"Sidamo",
"Silte Gurage",
"Skolt Sami",
"Slovak",
"Slavey",
"Slovenian",
"Somali",
"Samoan",
"Sena",
"Shona",
"Sindhi",
"Sinhala (Sinhalese)",
"Soninke",
"Sodo Gurage",
"Songe",
"Southern Sotho",
"Albanian",
"Serbian",
"Sardinian",
"Saraiki",
"Serer",
"South Slavey",
"Southern Sami",
"Saterland Frisian",
"Sukuma",
"Sundanese",
"Suri",
"Svan",
"Swedish",
"Swadaya Aramaic",
"Swahili",
"Swati",
"Sutu",
"Upper Saxon",
"Sylheti",
"Syriac",
"Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre')",
"Syriac, Western script-variant (equivalent to ISO 15924 'Syrj')",
"Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn')",
"Silesian",
"Tabasaran",
"Tajiki",
"Tamil",
"Tatar",
"TH-Cree",
"Dehong Dai",
"Telugu",
"Tetum",
"Tagalog",
"Tongan",
"Tigre",
"Tigrinya",
"Thai",
"Tahitian",
"Tibetan",
"Tiv",
"Turkmen",
"Tamashek",
"Temne",
"Tswana",
"Tundra Enets",
"Tonga",
"Todo",
"Toma",
"Tok Pisin",
"Turkish",
"Tsonga",
"Tshangla",
"Turoyo Aramaic",
"Tumbuka",
"Tulu",
"Tuvin",
"Tuvalu",
"Twi",
"Tày",
"Tamazight",
"Tzotzil",
"Udmurt",
"Ukrainian",
"Umbundu",
"Urdu",
"Upper Sorbian",
"Uyghur",
"Uzbek",
"Venetian",
"Venda",
"Vietnamese",
"Volapük",
"Võro",
"Wa",
"Wagdi",
"Waray-Waray",
"West-Cree",
"Welsh",
"Wolof",
"Walloon",
"Mewati",
"Lü",
"Xhosa",
"Minjangbal",
"Khengkha",
"Soga",
"Kpelle (Liberia)",
"Sakha",
"Yao",
"Yapese",
"Yoruba",
"Y-Cree",
"Yi Classic",
"Yi Modern",
"Zealandic",
"Standard Moroccan Tamazight",
"Zhuang",
"Chinese, Traditional, Hong Kong SAR",
"Chinese, Phonetic",
"Chinese, Simplified",
"Chinese, Traditional",
"Chinese, Traditional, Macao SAR",
"Zande",
"Zulu",
"Zazaki"
];
/// An OpenType language identifier.
#[derive(Debug, PartialEq, Copy, Clone)]
#[allow(unused)]
pub enum Language {
ABA,
ABK,
ACH,
ACR,
ADY,
AFK,
AFR,
AGW,
AIO,
AKA,
AKB,
ALS,
ALT,
AMH,
ANG,
APPH,
ARA,
ARG,
ARI,
ARK,
ASM,
AST,
ATH,
AVR,
AWA,
AYM,
AZB,
AZE,
BAD,
BAD0,
BAG,
BAL,
BAN,
BAR,
BAU,
BBC,
BBR,
BCH,
BCR,
BDY,
BEL,
BEM,
BEN,
BGC,
BGQ,
BGR,
BHI,
BHO,
BIK,
BIL,
BIS,
BJJ,
BKF,
BLI,
BLK,
BLN,
BLT,
BMB,
BML,
BOS,
BPY,
BRE,
BRH,
BRI,
BRM,
BRX,
BSH,
BSK,
BTD,
BTI,
BTK,
BTM,
BTS,
BTX,
BTZ,
BUG,
BYV,
CAK,
CAT,
CBK,
CCHN,
CEB,
CGG,
CHA,
CHE,
CHG,
CHH,
CHI,
CHK,
CHK0,
CHO,
CHP,
CHR,
CHU,
CHY,
CJA,
CJM,
CMR,
COP,
COR,
COS,
CPP,
CRE,
CRR,
CRT,
CSB,
CSL,
CSY,
CTG,
CUK,
DAG,
DAN,
DAR,
DAX,
DCR,
DEU,
#[allow(non_camel_case_types)]
dflt,
DGO,
DGR,
DHG,
DHV, // deprecated
DIQ,
DIV,
DJR,
DJR0,
DNG,
DNJ,
DNK,
DRI,
DUJ,
DUN,
DZN,
EBI,
ECR,
EDO,
EFI,
ELL,
EMK,
ENG,
ERZ,
ESP,
ESU,
ETI,
EUQ,
EVK,
EVN,
EWE,
FAN,
FAN0,
FAR,
FAT,
FIN,
FJI,
FLE,
FMP,
FNE,
FON,
FOS,
FRA,
FRC,
FRI,
FRL,
FRP,
FTA,
FUL,
FUV,
GAD,
GAE,
GAG,
GAL,
GAR,
GAW,
GEZ,
GIH,
GIL,
GIL0,
GKP,
GLK,
GMZ,
GNN,
GOG,
GON,
GRN,
GRO,
GUA,
GUC,
GUF,
GUJ,
GUZ,
HAI,
HAL,
HAR,
HAU,
HAW,
HAY,
HAZ,
HBN,
HER,
HIL,
HIN,
HMA,
HMN,
HMO,
HND,
HO,
HRI,
HRV,
HUN,
HYE,
HYE0,
IBA,
IBB,
IBO,
IDO,
IJO,
ILE,
ILO,
INA,
IND,
ING,
INU,
IPK,
IPPH,
IRI,
IRT,
ISL,
ISM,
ITA,
IWR,
JAM,
JAN,
JAV,
JBO,
JCT,
JII,
JUD,
JUL,
KAB,
KAB0,
KAC,
KAL,
KAN,
KAR,
KAT,
KAZ,
KDE,
KEA,
KEB,
KEK,
KGE,
KHA,
KHK,
KHM,
KHS,
KHT,
KHV,
KHW,
KIK,
KIR,
KIS,
KIU,
KJD,
KJP,
KJZ,
KKN,
KLM,
KMB,
KMN,
KMO,
KMS,
KMZ,
KNR,
KOD,
KOH,
KOK,
KOM,
KON,
KON0,
KOP,
KOR,
KOS,
KOZ,
KPL,
KRI,
KRK,
KRL,
KRM,
KRN,
KRT,
KSH,
KSH0,
KSI,
KSM,
KSW,
KUA,
KUI,
KUL,
KUM,
KUR,
KUU,
KUY,
KYK,
KYU,
LAD,
LAH,
LAK,
LAM,
LAO,
LAT,
LAZ,
LCR,
LDK,
LEZ,
LIJ,
LIM,
LIN,
LIS,
LJP,
LKI,
LMA,
LMB,
LMO,
LMW,
LOM,
LRC,
LSB,
LSM,
LTH,
LTZ,
LUA,
LUB,
LUG,
LUH,
LUO,
LVI,
MAD,
MAG,
MAH,
MAJ,
MAK,
MAL,
MAM,
MAN,
MAP,
MAR,
MAW,
MBN,
MBO,
MCH,
MCR,
MDE,
MDR,
MEN,
MER,
MFA,
MFE,
MIN,
MIZ,
MKD,
MKR,
MKW,
MLE,
MLG,
MLN,
MLR,
MLY,
MND,
MNG,
MNI,
MNK,
MNX,
MOH,
MOK,
MOL,
MON,
MOR,
MOS,
MRI,
MTH,
MTS,
MUN,
MUS,
MWL,
MWW,
MYN,
MZN,
NAG,
NAH,
NAN,
NAP,
NAS,
NAU,
NAV,
NCR,
NDB,
NDC,
NDG,
NDS,
NEP,
NEW,
NGA,
NGR,
NHC,
NIS,
NIU,
NKL,
NKO,
NLD,
NOE,
NOG,
NOR,
NOV,
NSM,
NSO,
NTA,
NTO,
NYM,
NYN,
NZA,
OCI,
OCR,
OJB,
ORI,
ORO,
OSS,
PAA,
PAG,
PAL,
PAM,
PAN,
PAP,
PAP0,
PAS,
PAU,
PCC,
PCD,
PDC,
PGR,
PHK,
PIH,
PIL,
PLG,
PLK,
PMS,
PNB,
POH,
PON,
PRO,
PTG,
PWO,
QIN,
QUC,
QUH,
QUZ,
QVI,
QWH,
RAJ,
RAR,
RBU,
RCR,
REJ,
RIA,
RIF,
RIT,
RKW,
RMS,
RMY,
ROM,
ROY,
RSY,
RTM,
RUA,
RUN,
RUP,
RUS,
SAD,
SAN,
SAS,
SAT,
SAY,
SCN,
SCO,
SCS,
SEK,
SEL,
SGA,
SGO,
SGS,
SHI,
SHN,
SIB,
SID,
SIG,
SKS,
SKY,
SLA,
SLV,
SML,
SMO,
SNA,
SNA0,
SND,
SNH,
SNK,
SOG,
SOP,
SOT,
SQI,
SRB,
SRD,
SRK,
SRR,
SSL,
SSM,
STQ,
SUK,
SUN,
SUR,
SVA,
SVE,
SWA,
SWK,
SWZ,
SXT,
SXU,
SYL,
SYR,
SYRE,
SYRJ,
SYRN,
SZL,
TAB,
TAJ,
TAM,
TAT,
TCR,
TDD,
TEL,
TET,
TGL,
TGN,
TGR,
TGY,
THA,
THT,
TIB,
TIV,
TKM,
TMH,
TMN,
TNA,
TNE,
TNG,
TOD,
TOD0,
TPI,
TRK,
TSG,
TSJ,
TUA,
TUL,
TUM,
TUV,
TVL,
TWI,
TYZ,
TZM,
TZO,
UDM,
UKR,
UMB,
URD,
USB,
UYG,
UZB,
VEC,
VEN,
VIT,
VOL,
VRO,
WA,
WAG,
WAR,
WCR,
WEL,
WLF,
WLN,
WTM,
XBD,
XHS,
XJB,
XKF,
XOG,
XPE,
YAK,
YAO,
YAP,
YBA,
YCR,
YIC,
YIM,
ZEA,
ZGH,
ZHA,
ZHH,
ZHP,
ZHS,
ZHT,
ZHTM,
ZND,
ZUL,
ZZA
}
impl Eq for Language {}
impl Language {
/// Whether or not this language tag is deprecated
pub fn is_deprecated(&self) -> bool {
*self == Language::DHV
}
/// Whether or not this is the default language
pub fn is_default(&self) -> bool {
*self == Language::dflt
}
/// The human-readable name assigned to this language tag
pub fn name(&self) -> &'static str {
LANGUAGE_NAMES[*self as usize]
}
/// This language tag in ISO639 (if available)
pub fn as_iso639_ids(&self) -> Option<&'static [&'static str]> {
LANGUAGE_ISO[*self as usize]
}
}
#[cfg(test)]
mod tests {
use crate::language::Language;
#[test]
fn test_languages() {
assert!(Language::DHV.is_deprecated());
assert!(Language::dflt.is_default());
assert!(!Language::JAN.is_default());
assert_eq!(Language::JAN.name(), "Japanese");
assert!(Language::JAN.as_iso639_ids().is_some());
assert_eq!(Language::JAN.as_iso639_ids().unwrap()[0], "jpn");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment