Module:Languages/data2

local u = mw.ustring.char

-- UTF-8 encoded strings for some commonly-used diacritics local GRAVE    = u(0x0300) local ACUTE    = u(0x0301) local CIRC     = u(0x0302) local TILDE    = u(0x0303) local MACRON   = u(0x0304) local BREVE    = u(0x0306) local DOTABOVE = u(0x0307) local DIAER    = u(0x0308) local CARON    = u(0x030C) local DGRAVE   = u(0x030F) local INVBREVE = u(0x0311) local DOTBELOW = u(0x0323) local RINGBELOW = u(0x0325) local CEDILLA  = u(0x0327)

local m = {}

m["aa"] = { canonicalName = "Afar", otherNames = {"Qafar"}, type = "regular", scripts = {"Latn"}, family = "cus", }

m["ab"] = { canonicalName = "Abkhaz", otherNames = {"Abkhazian", "Abxazo"}, type = "regular", scripts = {"Cyrl", "Geor", "Latn"}, family = "cau-abz", ancestors = {"cau-abz-pro"}, translit_module = "ab-translit", entry_name = { from = {GRAVE, ACUTE}, to  = {}} , }

m["ae"] = { canonicalName = "Avestan", otherNames = {"Zend", "Old Bactrian"}, type = "regular", scripts = {"Avst", "Gujr"}, family = "ira", ancestors = {"ira-pro"}, translit_module = "Avst-translit", }

m["af"] = { canonicalName = "Afrikaans", type = "regular", scripts = {"Latn", "Arab"}, family = "gmw", ancestors = {"nl"}, sort_key = { from = {"[äáâà]", "[ëéêè]", "[ïíîì]", "[öóôò]", "[üúûù]", "[ÿýŷỳ]", "^-", "'"}, to  = {"a"	, "e"	, "i"	, "o"	, "u"  , "y" }} , }

m["ak"] = { canonicalName = "Akan", otherNames = {"Twi-Fante", "Twi", "Fante", "Fanti", "Asante", "Akuapem"}, type = "regular", scripts = {"Latn"}, family = "alv-kwa", }

m["am"] = { canonicalName = "Amharic", type = "regular", scripts = {"Ethi"}, family = "sem-eth", translit_module = "Ethi-translit", }

m["an"] = { canonicalName = "Aragonese", type = "regular", scripts = {"Latn"}, ancestors = {"roa-oan"}, family = "roa", }

m["ar"] = { canonicalName = "Arabic", otherNames = {"Modern Standard Arabic", "Standard Arabic", "Literary Arabic", "Classical Arabic"}, type = "regular", scripts = {"Arab"}, family = "sem-arb", ancestors = {"sem-pro"}, entry_name = { from = {u(0x0671), u(0x064B), u(0x064C), u(0x064D), u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652), u(0x0670), u(0x0640)}, to  = {u(0x0627)}}, translit_module = "ar-translit", }

m["as"] = { canonicalName = "Assamese", type = "regular", scripts = {"Beng"}, family = "inc", ancestors = {"pka"}, }

m["av"] = { canonicalName = "Avar", otherNames = {"Avaric"}, type = "regular", scripts = {"Cyrl"}, family = "cau-nec", ancestors = {"oav"}, translit_module = "av-translit", }

m["ay"] = { canonicalName = "Aymara", otherNames = {"Southern Aymara", "Central Aymara"}, type = "regular", scripts = {"Latn"}, family = "sai-aym", }

m["az"] = { canonicalName = "Azeri", otherNames = {"Azerbaijani", "Azari", "Azeri Turkic", "Azerbaijani Turkic", "North Azerbaijani", "South Azerbaijani"}, type = "regular", scripts = {"Latn", "Cyrl", "fa-Arab"}, family = "trk", ancestors = {"trk-pro"}, }

m["ba"] = { canonicalName = "Bashkir", type = "regular", scripts = {"Cyrl"}, family = "trk", ancestors = {"qwm"}, translit_module = "ba-translit", }

m["be"] = { canonicalName = "Belarusian", otherNames = {"Belorussian", "Belarusan", "Bielorussian", "Byelorussian", "Belarussian", "White Russian"}, type = "regular", scripts = {"Cyrl"}, family = "zle", ancestors = {"orv"}, translit_module = "be-translit", sort_key = { from = {"Ё", "ё"}, to  = {"Е", "е"}}, entry_name = { from = {"Ѐ", "ѐ", GRAVE, ACUTE}, to  = {"Е", "е"}}, }

m["bg"] = { canonicalName = "Bulgarian", type = "regular", scripts = {"Cyrl"}, family = "zls", ancestors = {"sla-pro"}, translit_module = "bg-translit", entry_name = { from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE}, to  = {"Е", "е", "И", "и"}}, }

m["bh"] = { canonicalName = "Bihari", type = "regular", scripts = {"Deva"}, family = "inc", }

m["bi"] = { canonicalName = "Bislama", type = "regular", scripts = {"Latn"}, family = "crp", ancestors = {"en"}, }

m["bm"] = { canonicalName = "Bambara", otherNames = {"Bamanankan"}, type = "regular", scripts = {"Latn"}, family = "dmn", }

m["bn"] = { canonicalName = "Bengali", otherNames = {"Bangla"}, type = "regular", scripts = {"Beng"}, family = "inc", ancestors = {"pka"}, }

m["bo"] = { canonicalName = "Tibetan", type = "regular", scripts = {"Tibt"}, family = "tbq", ancestors = {"xct"}, translit_module = "bo-translit", }

m["br"] = { canonicalName = "Breton", type = "regular", scripts = {"Latn"}, family = "cel-bry", ancestors = {"xbm"}, }

m["ca"] = { canonicalName = "Catalan", otherNames = {"Valencian"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"roa-oca"}, sort_key = { from = {"à", "[èé]", "[íï]", "[òó]", "[úü]", "ç", "l·l"}, to  = {"a", "e"  , "i"   , "o"   , "u"   , "c", "ll" }} , }

m["ce"] = { canonicalName = "Chechen", type = "regular", scripts = {"Cyrl"}, family = "cau-nkh", ancestors = {"cau-nkh-pro"}, translit_module = "ce-translit", entry_name = { from = {MACRON}, to  = {}}, }

m["ch"] = { canonicalName = "Chamorro", otherNames = {"Chamoru"}, type = "regular", scripts = {"Latn"}, family = "poz-sus", ancestors = {"poz-sus-pro"}, }

m["co"] = { canonicalName = "Corsican", otherNames = {"Corsu"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"la"}, }

m["cr"] = { canonicalName = "Cree", type = "regular", scripts = {"Cans", "Latn"}, family = "alg", ancestors = {"alg-pro"}, }

m["cs"] = { canonicalName = "Czech", type = "regular", scripts = {"Latn"}, family = "zlw", ancestors = {"sla-pro"}, sort_key = { from = {"á", "é", "í", "ó", "[úů]", "ý"}, to  = {"a", "e", "i", "o", "u"  , "y"}} , }

m["cu"] = { canonicalName = "Old Church Slavonic", otherNames = {"Old Church Slavic"}, type = "regular", scripts = {"Cyrs", "Glag"}, family = "zls", ancestors = {"sla-pro"}, translit_module = "Cyrs-Glag-translit", entry_name = { from = {u(0x0484)}, -- kamora to  = {}}, sort_key = { from = {"оу", "є"}, to  = {"у", "е"}} , }

m["cv"] = { canonicalName = "Chuvash", type = "regular", scripts = {"Cyrl"}, family = "trk", ancestors = {"trk-pro"}, translit_module = "cv-translit", }

m["cy"] = { canonicalName = "Welsh", type = "regular", scripts = {"Latn"}, family = "cel-bry", ancestors = {"wlm"}, sort_key = { from = {"[âáàä]", "[êéèë]", "[îíìï]", "[ôóòö]", "[ûúùü]", "[ŵẃẁẅ]", "[ŷýỳÿ]", "'"}, to  = {"a"	, "e"	 , "i"	 , "o"	 , "u"	 , "w"	 , "y"	 }} , }

m["da"] = { canonicalName = "Danish", type = "regular", scripts = {"Latn"}, family = "gmq", ancestors = {"gmq-oda"}, }

m["de"] = { canonicalName = "German", otherNames = {"High German", "New High German", "Deutsch"}, -- the last name is indeed also used in English type = "regular", scripts = {"Latn", "Latf"}, family = "gmw", ancestors = {"gmh"}, sort_key = { from = {"[äàáâå]", "[ëèéê]", "[ïìíî]", "[öòóô]", "[üùúû]", "ß" }, to  = {"a"	 , "e"	 , "i"	 , "o"	 , "u"	 , "ss"}} , }

m["dv"] = { canonicalName = "Dhivehi", otherNames = {"Divehi", "Mahal", "Mahl", "Maldivian"}, type = "regular", scripts = {"Thaa"}, family = "inc", ancestors = {"pmh"}, translit_module = "dv-translit", }

m["dz"] = { canonicalName = "Dzongkha", type = "regular", scripts = {"Tibt"}, family = "tbq", ancestors = {"xct"}, translit_module = "bo-translit", }

m["ee"] = { canonicalName = "Ewe", type = "regular", scripts = {"Latn"}, family = "alv", }

m["el"] = { canonicalName = "Greek", otherNames = {"Modern Greek", "Neo-Hellenic"}, type = "regular", scripts = {"Grek"}, family = "grk", ancestors = {"gkm"}, translit_module = "el-translit", sort_key = { -- Keep this synchronized with grc, cpg, pnt from = {"[ᾳάᾴὰᾲᾶᾷἀᾀἄᾄἂᾂἆᾆἁᾁἅᾅἃᾃἇᾇ]", "[έὲἐἔἒἑἕἓ]", "[ῃήῄὴῂῆῇἠᾐἤᾔἢᾒἦᾖἡᾑἥᾕἣᾓἧᾗ]", "[ίὶῖἰἴἲἶἱἵἳἷϊΐῒῗ]", "[όὸὀὄὂὁὅὃ]", "[ύὺῦὐὔὒὖὑὕὓὗϋΰῢῧ]", "[ῳώῴὼῲῶῷὠᾠὤᾤὢᾢὦᾦὡᾡὥᾥὣᾣὧᾧ]", "ῥ", "ς"}, to  = {"α"					, "ε"		 , "η"						, "ι"				, "ο"		 , "υ"				, "ω"						, "ρ", "σ"}} , }

m["en"] = { canonicalName = "English", otherNames = {"Modern English", "New English", "Hawaiian Creole English", "Hawai'ian Creole English", "Hawaiian Creole", "Hawai'ian Creole", "Polari", "Yinglish"}, -- all but the first three are names and alt names of subsumed dialects which once had ISO codes type = "regular", scripts = {"Latn", "Shaw", "Dsrt"}, -- last two are rare but probably attested; entries in them might require community approval, but it's good for the script codes not to be orphans family = "gmw", ancestors = {"enm"}, sort_key = { from = {"[äàáâåā]", "[ëèéêē]", "[ïìíîī]", "[öòóôō]", "[üùúûū]", "æ", "œ" , "[çč]", "ñ", "'"}, to  = {"a"      , "e"      , "i"      , "o"      , "u"      , "ae", "oe", "c"   , "n"}}, wikimedia_codes = {"en", "simple"}, }

m["eo"] = { canonicalName = "Esperanto", type = "regular", scripts = {"Latn"}, family = "art", sort_key = { from = {"[áà]", "[éè]", "[íì]", "[óò]", "[úù]", "[ĉ]", "[ĝ]", "[ĥ]", "[ĵ]", "[ŝ]", "[ŭ]"}, to  = {"a"	  , "e"  , "i"  , "o"  , "u", "cĉ", "gĉ", "hĉ", "jĉ", "sĉ", "uĉ"}} , }

m["es"] = { canonicalName = "Spanish", otherNames = {"Castilian"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"osp"}, sort_key = { from = {"á", "é", "í", "ó", "[úü]", "ç", "ñ"}, to  = {"a", "e", "i", "o", "u"  , "c", "n"}} , }

m["et"] = { canonicalName = "Estonian", type = "regular", scripts = {"Latn"}, family = "fiu-fin", ancestors = {"fiu-fin-pro"}, }

m["eu"] = { canonicalName = "Basque", otherNames = {"Euskara"}, type = "regular", scripts = {"Latn"}, family = "euq", ancestors = {"euq-pro"}, }

m["fa"] = { canonicalName = "Persian", otherNames = {"Farsi", "New Persian", "Modern Persian", "Western Persian", "Iranian Persian", "Eastern Persian", "Dari"}, type = "regular", scripts = {"fa-Arab"}, family = "ira", ancestors = {"pal"}, entry_name = { from = {u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652)}, to  = {}} , }

m["ff"] = { canonicalName = "Fula", otherNames = {"Adamawa Fulfulde", "Bagirmi Fulfulde", "Borgu Fulfulde", "Central-Eastern Niger Fulfulde", "Fulani", "Fulfulde", "Maasina Fulfulde", "Nigerian Fulfulde", "Pular", "Pulaar", "Western Niger Fulfulde"}, -- Maasina, etc are dialects, subsumed into this code type = "regular", scripts = {"Latn"}, family = "alv-sng", }

m["fi"] = { canonicalName = "Finnish", otherNames = {"Suomi"}, type = "regular", scripts = {"Latn"}, family = "fiu-fin", ancestors = {"fiu-fin-pro"}, entry_name = { from = {"ˣ"}, -- Used to indicate gemination of the next consonant to  = {}}, sort_key = { from = {"[áàâã]", "[éèêẽ]", "[íìîĩ]", "[óòôõ]", "[úùûũ]", "[ýỳŷüű]", "[øõő]", "æ", "œ" , "[čç]", "š", "ž", "ß" , "[':]"}, to  = {"a"	, "e"	 , "i"	 , "o"	 , "u"	 ,  "y"	 , "ö"	, "ae", "oe", "c"   , "s", "z", "ss"}} , }

m["fj"] = { canonicalName = "Fijian", type = "regular", scripts = {"Latn"}, family = "poz-occ", ancestors = {"poz-oce-pro"}, }

m["fo"] = { canonicalName = "Faroese", type = "regular", scripts = {"Latn"}, family = "gmq", ancestors = {"non"}, }

m["fr"] = { canonicalName = "French", otherNames = {"Modern French"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"frm"}, sort_key = { from = {"[áàâä]", "[éèêë]", "[íìîï]", "[óòôö]", "[úùûü]", "[ýỳŷÿ]", "ç", "æ", "œ" , "'"}, to  = {"a"	, "e"	 , "i"	 , "o"	 , "u"	 , "y"	 , "c", "ae", "oe"}} , }

m["fy"] = { canonicalName = "West Frisian", otherNames = {"Western Frisian", "Frisian"}, type = "regular", scripts = {"Latn"}, family = "gmw-fri", ancestors = {"ofs"}, }

m["ga"] = { canonicalName = "Irish", otherNames = {"Irish Gaelic"}, type = "regular", scripts = {"Latn"}, family = "cel-gae", ancestors = {"mga"}, sort_key = { from = {"á", "é", "í", "ó", "ú", "ý", "ḃ", "ċ" , "ḋ" , "ḟ" , "ġ" , "ṁ" , "ṗ" , "ṡ" , "ṫ" }, to  = {"a", "e", "i", "o", "u", "y", "bh", "ch", "dh", "fh", "gh", "mh", "ph", "sh", "th"}} , }

m["gd"] = { canonicalName = "Scottish Gaelic", otherNames = {"Gàidhlig", "Highland Gaelic", "Scots Gaelic", "Scottish"}, type = "regular", scripts = {"Latn"}, family = "cel-gae", ancestors = {"mga"}, sort_key = { from = {"[áà]", "[éè]", "[íì]", "[óò]", "[úù]", "[ýỳ]"}, to  = {"a"  , "e"   , "i"   , "o"   , "u"   , "y"   }} , }

m["gl"] = { canonicalName = "Galician", type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"roa-opt"}, sort_key = { from = {"á", "é", "í", "ó", "ú"}, to  = {"a", "e", "i", "o", "u"}} , }

m["gn"] = { canonicalName = "Guaraní", type = "regular", scripts = {"Latn"}, family = "tup", }

m["gu"] = { canonicalName = "Gujarati", type = "regular", scripts = {"Gujr"}, family = "inc", ancestors = {"psu"}, }

m["gv"] = { canonicalName = "Manx", otherNames = {"Manx Gaelic"}, type = "regular", scripts = {"Latn"}, family = "cel-gae", ancestors = {"mga"}, sort_key = { from = {"ç", "-"}, to  = {"c"}} , }

m["ha"] = { canonicalName = "Hausa", type = "regular", scripts = {"Latn", "Arab"}, family = "cdc-wst", }

m["he"] = { canonicalName = "Hebrew", otherNames = {"Ivrit"}, type = "regular", scripts = {"Hebr", "Phnx"}, family = "sem-can", ancestors = {"sem-pro"}, entry_name = { from = {"[" .. u(0x0591) .. "-" .. u(0x05BD) .. u(0x05BF) .. "-" .. u(0x05C5) .. u(0x05C7) .. "]"},		to  = {}} , }

m["hi"] = { canonicalName = "Hindi", type = "regular", scripts = {"Deva"}, family = "inc", ancestors = {"psu"}, translit_module = "hi-translit", }

m["ho"] = { canonicalName = "Hiri Motu", otherNames = {"Pidgin Motu", "Police Motu"}, type = "regular", scripts = {"Latn"}, family = "crp", ancestors = {"meu"}, }

m["ht"] = { canonicalName = "Haitian Creole", otherNames = {"Creole", "Haitian", "Kreyòl"}, type = "regular", scripts = {"Latn"}, family = "crp", }

m["hu"] = { canonicalName = "Hungarian", otherNames = {"Magyar"}, type = "regular", scripts = {"Latn"}, family = "fiu-ugr", ancestors = {"ohu"}, sort_key = { from = {"á", "é", "í", "ó", "ú", "ő", "ű"}, to  = {"a", "e", "i", "o", "u", "ö", "ü"}} , }

m["hy"] = { canonicalName = "Armenian", otherNames = {"Modern Armenian", "Eastern Armenian", "Western Armenian"}, type = "regular", scripts = {"Armn"}, family = "hyx", ancestors = {"axm"}, translit_module = "Armn-translit", sort_key = { from = {"ու", "և", "եւ"}, to  = {"ւ", "եվ", "եվ"}}, entry_name = { from = {"՞", "՜", "՛", "՟", "և", "յ", "ի"}, to  = {"", "", "", "", "եւ", "յ", "ի"}} , }

m["hz"] = { canonicalName = "Herero", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["ia"] = { canonicalName = "Interlingua", type = "regular", scripts = {"Latn"}, family = "art", }

m["id"] = { canonicalName = "Indonesian", type = "regular", scripts = {"Latn"}, family = "poz-mly", ancestors = {"ms"}, }

m["ie"] = { canonicalName = "Interlingue", otherNames = {"Occidental"}, type = "regular", scripts = {"Latn"}, family = "art", }

m["ig"] = { canonicalName = "Igbo", type = "regular", scripts = {"Latn"}, family = "nic-bco", }

m["ii"] = { canonicalName = "Sichuan Yi", type = "regular", scripts = {"Yiii"}, family = "tbq", }

m["ik"] = { canonicalName = "Inupiak", otherNames = {"Inupiaq", "Iñupiaq", "Inupiatun"}, type = "regular", scripts = {"Latn"}, family = "esx-inu", ancestors = {"esx-inu-pro"}, }

m["io"] = { canonicalName = "Ido", type = "regular", scripts = {"Latn"}, family = "art", }

m["is"] = { canonicalName = "Icelandic", type = "regular", scripts = {"Latn"}, family = "gmq", ancestors = {"non"}, }

m["it"] = { canonicalName = "Italian", type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"la"}, sort_key = { from = {"[àáâäå]", "[èéêë]", "[ìíîï]", "[òóôö]", "[ùúûü]"}, to  = {"a"	 , "e"	 , "i"	 , "o"	 , "u"	 }} , }

m["iu"] = { canonicalName = "Inuktitut", otherNames = {"Eastern Canadian Inuktitut", "Eastern Canadian Inuit", "Western Canadian Inuktitut", "Western Canadian Inuit", "Western Canadian Inuktun", "Inuinnaq", "Inuinnaqtun", "Inuvialuk", "Inuvialuktun", "Nunavimmiutit", "Nunatsiavummiut", "Aivilimmiut", "Natsilingmiut", "Kivallirmiut", "Siglit", "Siglitun"}, type = "regular", scripts = {"Cans", "Latn"}, family = "esx-inu", ancestors = {"esx-inu-pro"}, translit_module = "iu-translit", }

m["ja"] = { canonicalName = "Japanese", otherNames = {"Modern Japanese", "Nipponese", "Nihongo"}, type = "regular", scripts = {"Jpan", "Latn", "Hira"}, family = "jpx", ancestors = {"ojp"}, }

m["jv"] = { canonicalName = "Javanese", type = "regular", scripts = {"Latn", "Java"}, family = "poz-sus", ancestors = {"kaw"}, }

m["ka"] = { canonicalName = "Georgian", otherNames = {"Kartvelian"}, type = "regular", scripts = {"Geor", "Geok"}, family = "ccs-gzn", ancestors = {"oge"}, translit_module = "Geor-translit", entry_name = { from = {"̂"}, to  = {""}}, }

m["kg"] = { canonicalName = "Kongo", otherNames = {"Kikongo", "Koongo", "Laari", "San Salvador Kongo", "Yombe"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["ki"] = { canonicalName = "Kikuyu", otherNames = {"Gikuyu", "Gĩkũyũ"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["kj"] = { canonicalName = "Kwanyama", otherNames = {"Kuanyama", "Oshikwanyama"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["kk"] = { canonicalName = "Kazakh", type = "regular", scripts = {"Cyrl", "Latn", "Arab", "kk-Arab"}, family = "trk", ancestors = {"qwm"}, translit_module = "kk-translit", }

m["kl"] = { canonicalName = "Greenlandic", otherNames = {"Kalaallisut"}, type = "regular", scripts = {"Latn"}, family = "esx-inu", ancestors = {"esx-inu-pro"}, }

m["km"] = { canonicalName = "Khmer", otherNames = {"Cambodian"}, type = "regular", scripts = {"Khmr"}, family = "mkh", ancestors = {"mkh-pro"}, translit_module = "km-translit", }

m["kn"] = { canonicalName = "Kannada", type = "regular", scripts = {"Knda"}, family = "dra", ancestors = {"dra-pro"}, translit_module = "kn-translit", }

m["ko"] = { canonicalName = "Korean", otherNames = {"Modern Korean"}, type = "regular", scripts = {"Kore"}, family = "qfa-kor", ancestors = {"okm"}, translit_module = "ko-translit", }

m["kr"] = { canonicalName = "Kanuri", otherNames = {"Kanembu", "Bilma Kanuri", "Central Kanuri", "Manga Kanuri", "Tumari Kanuri"}, type = "regular", scripts = {"Latn"}, family = "ssa", }

m["ks"] = { canonicalName = "Kashmiri", type = "regular", scripts = {"ks-Arab", "Deva"}, family = "iir-dar", ancestors = {"sa"}, }

m["ku"] = { canonicalName = "Kurdish", type = "regular", scripts = {"Latn", "ku-Arab", "Armn", "Cyrl"}, family = "ira", ancestors = {"ira-pro"}, }

m["kw"] = { canonicalName = "Cornish", type = "regular", scripts = {"Latn"}, family = "cel-bry", ancestors = {"cnx"}, }

m["ky"] = { canonicalName = "Kyrgyz", otherNames = {"Kirghiz", "Kirgiz"}, type = "regular", scripts = {"Cyrl", "Latn", "Arab"}, family = "trk", ancestors = {"qwm"}, translit_module = "ky-translit", }

m["la"] = { canonicalName = "Latin", type = "regular", scripts = {"Latn"}, family = "itc", ancestors = {"itc-ola"}, entry_name = { from = {"[ĀĂ]", "[āă]", "[ĒĔ]", "[ēĕë]", "[ĪĬÏ]", "[īĭï]", "[ŌŎ]", "[ōŏ]", "[ŪŬÜ]", "[ūŭü]", "Ȳ", "ȳ", MACRON, BREVE, DIAER}, to  = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "Y", "y"}}, }

m["lb"] = { canonicalName = "Luxembourgish", type = "regular", scripts = {"Latn"}, family = "gmw", ancestors = {"gmh"}, }

m["lg"] = { canonicalName = "Luganda", otherNames = {"Ganda"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["li"] = { canonicalName = "Limburgish", otherNames = {"Limburgan", "Limburgian", "Limburgic"}, type = "regular", scripts = {"Latn"}, family = "gmw", ancestors = {"dum"}, }

m["ln"] = { canonicalName = "Lingala", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["lo"] = { canonicalName = "Lao", otherNames = {"Laotian"}, type = "regular", scripts = {"Laoo"}, family = "tai-swe", ancestors = {"tai-swe-pro"}, translit_module = "lo-translit", }

m["lt"] = { canonicalName = "Lithuanian", type = "regular", scripts = {"Latn"}, family = "bat", ancestors = {"ine-bsl-pro"}, entry_name = { from = {"[áãà]", "[éẽè]", "[íĩì]", "[ýỹ]", "ñ", "[óõò]", "[úũù]", ACUTE, GRAVE, TILDE}, to  = {"a",     "e",     "i",     "y",    "n", "o",     "u"   }} , }

m["lu"] = { canonicalName = "Luba-Katanga", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["lv"] = { canonicalName = "Latvian", otherNames = {"Lettish", "Lett"}, type = "regular", scripts = {"Latn"}, family = "bat", ancestors = {"ine-bsl-pro"}, }

m["mg"] = { canonicalName = "Malagasy", otherNames = {"Betsimisaraka Malagasy", "Betsimisaraka", "Northern Betsimisaraka Malagasy", "Northern Betsimisaraka", "Southern Betsimisaraka Malagasy", "Southern Betsimisaraka", "Bara Malagasy", "Bara", "Masikoro Malagasy", "Masikoro", "Antankarana", "Antankarana Malagasy", "Plateau Malagasy", "Sakalava", "Tandroy Malagasy", "Tandroy", "Tanosy", "Tanosy Malagasy", "Tesaka", "Tsimihety", "Tsimihety Malagasy"}, type = "regular", scripts = {"Latn"}, family = "poz-bre", ancestors = {"poz-pro"}, }

m["mh"] = { canonicalName = "Marshallese", type = "regular", scripts = {"Latn"}, family = "poz-mic", ancestors = {"poz-oce-pro"}, sort_key = { from = {"ā", "ļ" , "m̧" , "ņ" , "n̄" , "o̧" , "ō"  , "ū" }, to  = {"a~", "l~", "m~", "n~", "n", "o~", "o", "u~"}} , }

m["mi"] = { canonicalName = "Maori", otherNames = {"Māori"}, type = "regular", scripts = {"Latn"}, family = "poz-pol", ancestors = {"poz-pol-pro"}, }

m["mk"] = { canonicalName = "Macedonian", type = "regular", scripts = {"Cyrl"}, family = "zls", ancestors = {"sla-pro"}, translit_module = "mk-translit", entry_name = { from = {ACUTE}, to  = {}}, }

m["ml"] = { canonicalName = "Malayalam", type = "regular", scripts = {"Mlym"}, family = "dra", ancestors = {"dra-pro"}, translit_module = "ml-translit", }

m["mn"] = { canonicalName = "Mongolian", otherNames = {"Khalkha Mongolian"}, type = "regular", scripts = {"Cyrl", "Mong"}, family = "xgn", ancestors = {"xng"}, translit_module = "mn-translit", }

m["mr"] = { canonicalName = "Marathi", type = "regular", scripts = {"Deva"}, family = "inc", ancestors = {"pmh"}, translit_module = "hi-translit", }

m["ms"] = { canonicalName = "Malay", type = "regular", scripts = {"Latn", "Arab"}, family = "poz-mly", ancestors = {"poz-mly-pro"}, }

m["mt"] = { canonicalName = "Maltese", type = "regular", scripts = {"Latn"}, family = "sem-arb", ancestors = {"sqr"}, }

m["my"] = { canonicalName = "Burmese", otherNames = {"Myanmar"}, type = "regular", scripts = {"Mymr"}, family = "tbq-brm", ancestors = {"obr"}, translit_module = "my-translit", }

m["na"] = { canonicalName = "Nauruan", otherNames = {"Nauru"}, type = "regular", scripts = {"Latn"}, family = "poz-mic", ancestors = {"poz-oce-pro"}, }

m["nb"] = { canonicalName = "Norwegian Bokmål", otherNames = {"Bokmål"}, type = "regular", scripts = {"Latn"}, family = "gmq", ancestors = {"gmq-mno"}, wikimedia_codes = {"no"}, }

m["nd"] = { canonicalName = "Northern Ndebele", otherNames = {"North Ndebele"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["ne"] = { canonicalName = "Nepali", otherNames = {"Nepalese"}, type = "regular", scripts = {"Deva"}, family = "inc", translit_module = "ne-translit", }

m["ng"] = { canonicalName = "Ndonga", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["nl"] = { canonicalName = "Dutch", otherNames = {"Netherlandic", "Flemish"}, type = "regular", scripts = {"Latn"}, family = "gmw", ancestors = {"dum"}, sort_key = { from = {"[äáâå]", "[ëéê]", "[ïíî]", "[öóô]", "[üúû]", "ç", "ñ", "^-"}, to  = {"a"	, "e"	, "i"	, "o"	, "u"	, "c", "n"}} , }

m["nn"] = { canonicalName = "Norwegian Nynorsk", otherNames = {"New Norwegian", "Nynorsk"}, type = "regular", scripts = {"Latn"}, family = "gmq", ancestors = {"gmq-mno"}, }

m["no"] = { canonicalName = "Norwegian", type = "regular", scripts = {"Latn"}, family = "gmq", ancestors = {"gmq-mno"}, }

m["nr"] = { canonicalName = "Southern Ndebele", otherNames = {"South Ndebele"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["nv"] = { canonicalName = "Navajo", type = "regular", scripts = {"nv-Latn"}, family = "apa", ancestors = {"ath-pro"}, sort_key = { from = {"[áą]", "[éę]", "[íį]", "[óǫ]", "ń", "^n([djlt])", "ł", "[ʼ’']", ACUTE}, to  = {"a"  , "e"   , "i"   , "o"   , "n", "ni%1"	  , "l"}} }  -- the copyright sign is used to guarantee that ł will always be sorted after all other words with l m["ny"] = { canonicalName = "Chichewa", otherNames = {"Chicheŵa", "Chinyanja", "Nyanja", "Chewa"}, type = "regular", scripts = {"Latn"}, family = "bnt", entry_name = { from = {ACUTE}, to  = {}}, }

m["oc"] = { canonicalName = "Occitan", otherNames = {"Provençal", "Auvergnat", "Auvernhat", "Gascon", "Languedocien", "Lengadocian"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"pro"}, sort_key = { from = {"[àá]", "[èé]", "[íï]", "[òó]", "[úü]", "ç", "([lns])·h"}, to  = {"a"  , "e"   , "i"   , "o"   , "u"   , "c", "%1h"	  }} , }

m["oj"] = { canonicalName = "Ojibwe", otherNames = {"Chippewa", "Ojibway", "Ojibwemowin", "Southwestern Ojibwa"}, type = "regular", scripts = {"Cans", "Latn"}, family = "alg", ancestors = {"alg-pro"}, }

m["om"] = { canonicalName = "Oromo", otherNames = {"Orma", "Borana-Arsi-Guji Oromo", "West Central Oromo"}, type = "regular", scripts = {"Latn", "Ethi"}, family = "cus", }

m["or"] = { canonicalName = "Oriya", otherNames = {"Odia", "Oorya"}, type = "regular", scripts = {"Orya"}, family = "inc", ancestors = {"pka"}, }

m["os"] = { canonicalName = "Ossetian", otherNames = {"Ossete", "Ossetic", "Digor", "Iron"}, type = "regular", scripts = {"Cyrl", "Geor", "Latn"}, family = "ira", translit_module = "os-translit", ancestors = {"oos"}, entry_name = { from = {GRAVE, ACUTE}, to  = {}} , }

m["pa"] = { canonicalName = "Punjabi", otherNames = {"Panjabi"}, type = "regular", scripts = {"Guru", "Arab", "Deva"}, family = "inc", ancestors = {"psu"}, }

m["pi"] = { canonicalName = "Pali", type = "regular", scripts = {"Latn", "Deva", "Sinh", "Mymr", "Khmr", "Thai"}, family = "inc", ancestors = {"sa"}, sort_key = { from = {"ā", "ī", "ū", "ḍ", "ḷ", "[ṁṃ]", "[ṇñṅ]", "ṭ"}, to  = {"a", "i", "u", "d", "l", "m"  , "n"	, "t"}} , }

m["pl"] = { canonicalName = "Polish", type = "regular", scripts = {"Latn"}, family = "zlw", ancestors = {"zlw-opl"}, sort_key = { from = {"[Ąą]", "[Ćć]", "[Ęę]", "[Łł]", "[Ńń]", "[Óó]", "[Śś]", "[Żż]", "[Źź]"}, to  = { "a" .. u(0x10FFFF), "c" .. u(0x10FFFF), "e" .. u(0x10FFFF), "l" .. u(0x10FFFF), "n" .. u(0x10FFFF), "o" .. u(0x10FFFF), "s" .. u(0x10FFFF), "z" .. u(0x10FFFF), "z" .. u(0x10FFFE)}} , }

m["ps"] = { canonicalName = "Pashto", otherNames = {"Pashtun", "Pushto", "Pashtu", "Central Pashto", "Northern Pashto", "Southern Pashto", "Pukhto", "Pakhto", "Pakkhto", "Afghani"}, type = "regular", scripts = {"ps-Arab"}, family = "ira", ancestors = {"ira-pro"}, }

m["pt"] = { canonicalName = "Portuguese", otherNames = {"Modern Portuguese"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"roa-opt"}, sort_key = { from = {"[àãáâä]", "[èẽéêë]", "[ìĩíï]", "[òóôõö]", "[üúùũ]", "ç", "ñ"}, to  = {"a"	 , "e"	  , "i"	 , "o"	  , "u"	 , "c", "n"}} , }

m["qu"] = { canonicalName = "Quechua", type = "regular", scripts = {"Latn"}, family = "qwe", }

m["rm"] = { canonicalName = "Romansch", otherNames = {"Romansh", "Rumantsch", "Romanche"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"la"}, }

m["rn"] = { canonicalName = "Kirundi", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["ro"] = { canonicalName = "Romanian", otherNames = {"Daco-Romanian", "Roumanian", "Rumanian"}, type = "regular", scripts = {"Latn", "Cyrl"}, family = "roa", ancestors = {"la"}, }

m["ru"] = { canonicalName = "Russian", type = "regular", scripts = {"Cyrl"}, family = "zle", ancestors = {"orv"}, translit_module = "ru-translit", sort_key = { from = {"ё"}, to  = {"е" .. mw.ustring.char(0x10FFFF)}}, entry_name = { from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE}, to  = {"Е", "е", "И", "и"}}, }

m["rw"] = { canonicalName = "Kinyarwanda", otherNames = {"Rwanda"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["sa"] = { canonicalName = "Sanskrit", type = "regular", scripts = {"Deva", "Beng", "Brah", "Gran", "Gujr", "Guru", "Khar", "Knda", "Mlym", "Mymr", "Orya", "Shrd", "Sinh", "Taml", "Telu", "Thai", "Tibt"}, family = "inc", ancestors = {"inc-pro"}, translit_module = "sa-translit", }

m["sc"] = { canonicalName = "Sardinian", otherNames = {"Campidanese", "Campidanese Sardinian", "Logudorese", "Logudorese Sardinian", "Nuorese", "Nuorese Sardinian"}, type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"la"}, }

m["sd"] = { canonicalName = "Sindhi", type = "regular", scripts = {"sd-Arab"}, family = "inc", ancestors = {"sa"}, }

m["se"] = { canonicalName = "Northern Sami", otherNames = {"North Sami", "Northern Saami", "North Saami"}, type = "regular", scripts = {"Latn"}, family = "smi", ancestors = {"smi-pro"}, entry_name = { from = {"([đflmnŋrsšŧv])'%1"}, to  = {"%1%1"} }, }

m["sg"] = { canonicalName = "Sango", type = "regular", scripts = {"Latn"}, family = "crp", }

m["sh"] = { canonicalName = "Serbo-Croatian", otherNames = {"BCS", "Croato-Serbian", "Serbocroatian", "Bosnian", "Croatian", "Montenegrin", "Serbian"}, type = "regular", scripts = {"Latn", "Cyrl"}, family = "zls", ancestors = {"sla-pro"}, entry_name = { from = {"[ȀÀȂÁĀ]", "[ȁàȃáā]", "[ȄÈȆÉĒ]", "[ȅèȇéē]", "[ȈÌȊÍĪ]", "[ȉìȋíī]", "[ȌÒȎÓŌ]", "[ȍòȏóō]", "[ȐȒŔ]", "[ȑȓŕ]", "[ȔÙȖÚŪ]", "[ȕùȗúū]", "Ѐ", "ѐ", "[ӢЍ]", "[ӣѝ]", "[Ӯ]", "[ӯ]", GRAVE, ACUTE, DGRAVE, INVBREVE, MACRON}, to  = {"A"	 , "a"	  , "E"	  , "e"	  , "I"	  , "i"	  , "O"	  , "o"	  , "R"	, "r"	, "U"	  , "u"	  , "Е", "е", "И"   , "и", "У", "у"   }}, wikimedia_codes = {"sh", "bs", "hr", "sr"}, }

m["si"] = { canonicalName = "Sinhalese", otherNames = {"Singhalese", "Sinhala"}, type = "regular", scripts = {"Sinh"}, family = "inc", ancestors = {"sa"}, translit_module = "si-translit", }

m["sk"] = { canonicalName = "Slovak", type = "regular", scripts = {"Latn"}, family = "zlw", ancestors = {"sla-pro"}, sort_key = { from = {"[áä]", "é", "í", "[óô]", "ú", "ý", "ŕ", "ĺ"}, to  = {"a"  , "e", "i", "o"   , "u", "y", "r", "l"}} , }

m["sl"] = { canonicalName = "Slovene", otherNames = {"Slovenian"}, type = "regular", scripts = {"Latn"}, family = "zls", ancestors = {"sla-pro"}, entry_name = { from = {"[ÁÀÂȂȀ]", "[áàâȃȁ]", "[ÉÈÊȆȄỆẸ]", "[éèêȇȅệẹə]", "[ÍÌÎȊȈ]", "[íìîȋȉ]", "[ÓÒÔȎȌỘỌ]", "[óòôȏȍộọ]", "[ŔȒȐ]", "[ŕȓȑ]", "[ÚÙÛȖȔ]", "[úùûȗȕ]", "ł", GRAVE, ACUTE, DGRAVE, INVBREVE, CIRC, DOTBELOW}, to  = {"A"	 , "a"	  , "E"		, "e"		 , "I"	  , "i"	  , "O"		, "o"		, "R"	, "r"	, "U"	  , "u"	  , "l"}} , }

m["sm"] = { canonicalName = "Samoan", type = "regular", scripts = {"Latn"}, family = "poz-pol", ancestors = {"poz-pol-pro"}, }

m["sn"] = { canonicalName = "Shona", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["so"] = { canonicalName = "Somali", type = "regular", scripts = {"Latn", "Arab", "Osma"}, family = "cus", entry_name = { from = {"[ÁÀÂ]", "[áàâ]", "[ÉÈÊ]", "[éèê]", "[ÍÌÎ]", "[íìî]", "[ÓÒÔ]", "[óòô]", "[ÚÙÛ]", "[úùû]", "[ÝỲ]", "[ýỳ]"}, to  = {"A"	 , "a"	  , "E"	, "e" , "I"	  , "i"	  , "O"	, "o"	, "U"  , "u", "Y", "y"}} , }

m["sq"] = { canonicalName = "Albanian", type = "regular", scripts = {"Latn", "Elba"}, family = "sqj", ancestors = {"sqj-pro"}, sort_key = { from = { '[âãä]', '[ÂÃÄ]', '[êẽë]', '[ÊẼË]', 'ĩ', 'Ĩ', 'õ', 'Õ', 'ũ', 'Ũ', 'ỹ', 'Ỹ', 'ç', 'Ç' }, to  = {     'a',     'A',     'e',     'E', 'i', 'I', 'o', 'O', 'u', 'U', 'y', 'Y', 'c', 'C' } } , }

m["ss"] = { canonicalName = "Swazi", otherNames = {"Swati"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["st"] = { canonicalName = "Sotho", otherNames = {"Sesotho", "Southern Sesotho", "Southern Sotho"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["su"] = { canonicalName = "Sundanese", type = "regular", scripts = {"Latn", "Sund"}, family = "poz-msa", ancestors = {"poz-msa-pro"}, translit_module = "su-translit", }

m["sv"] = { canonicalName = "Swedish", type = "regular", scripts = {"Latn"}, family = "gmq", ancestors = {"gmq-osw"}, }

m["sw"] = { canonicalName = "Swahili", type = "regular", scripts = {"Latn", "Arab"}, family = "bnt", sort_key = { from = {"ng'", "^-"}, to  = {"ngz"}} , }

m["ta"] = { canonicalName = "Tamil", type = "regular", scripts = {"Taml"}, family = "dra", ancestors = {"oty"}, translit_module = "ta-translit", }

m["te"] = { canonicalName = "Telugu", type = "regular", scripts = {"Telu"}, family = "dra", ancestors = {"dra-pro"}, translit_module = "te-translit", }

m["tg"] = { canonicalName = "Tajik", otherNames = {"Tadjik", "Tadzhik", "Tajiki", "Tajik Persian"}, type = "regular", scripts = {"Cyrl", "fa-Arab", "Latn"}, family = "ira", translit_module = "tg-translit", sort_key = { from = {"Ё", "ё"}, to  = {"Е", "е"}} , entry_name = { from = {ACUTE}, to  = {}} , }

m["th"] = { canonicalName = "Thai", type = "regular", scripts = {"Thai"}, family = "tai-swe", ancestors = {"tai-swe-pro"}, }

m["ti"] = { canonicalName = "Tigrinya", type = "regular", scripts = {"Ethi"}, family = "sem-eth", translit_module = "Ethi-translit", }

m["tk"] = { canonicalName = "Turkmen", type = "regular", scripts = {"Latn", "Cyrl"}, family = "trk", ancestors = {"trk-pro"}, }

m["tl"] = { canonicalName = "Tagalog", type = "regular", scripts = {"Latn", "Tglg"}, family = "phi", ancestors = {"phi-pro"}, }

m["tn"] = { canonicalName = "Tswana", otherNames = {"Setswana"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

m["to"] = { canonicalName = "Tongan", type = "regular", scripts = {"Latn"}, family = "poz-pol", ancestors = {"poz-pol-pro"}, }

m["tr"] = { canonicalName = "Turkish", type = "regular", scripts = {"Latn"}, family = "trk", ancestors = {"ota"}, }

m["ts"] = { canonicalName = "Tsonga", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["tt"] = { canonicalName = "Tatar", type = "regular", scripts = {"Cyrl", "Latn", "Arab", "tt-Arab"}, family = "trk", ancestors = {"qwm"}, translit_module = "tt-translit", }

m["ty"] = { canonicalName = "Tahitian", type = "regular", scripts = {"Latn"}, family = "poz-pol", ancestors = {"poz-pol-pro"}, }

m["ug"] = { canonicalName = "Uyghur", otherNames = {"Uigur", "Uighur", "Uygur"}, type = "regular", scripts = {"ug-Arab", "Latn", "Cyrl"}, family = "trk", ancestors = {"trk-pro"}, translit_module = "ug-translit", }

m["uk"] = { canonicalName = "Ukrainian", type = "regular", scripts = {"Cyrl"}, family = "zle", ancestors = {"orv"}, translit_module = "uk-translit", entry_name = { from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE}, to  = {"Е", "е", "И", "и"}}, } m["ur"] = { canonicalName = "Urdu", type = "regular", scripts = {"ur-Arab"}, family = "inc", ancestors = {"psu"}, entry_name = { from = {u(0x064B), u(0x064C), u(0x064D), u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652)}, to  = {}} , }

m["uz"] = { canonicalName = "Uzbek", otherNames = {"Northern Uzbek", "Southern Uzbek"}, type = "regular", scripts = {"Latn", "Cyrl", "fa-Arab"}, family = "trk", ancestors = {"trk-pro"}, }

m["ve"] = { canonicalName = "Venda", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["vi"] = { canonicalName = "Vietnamese", otherNames = {"Annamese", "Annamite"}, type = "regular", scripts = {"Latn", "Hani"}, family = "mkh-vie", ancestors = {"mkh-mvi"}, }

m["vo"] = { canonicalName = "Volapük", type = "regular", scripts = {"Latn"}, family = "art", }

m["wa"] = { canonicalName = "Walloon", type = "regular", scripts = {"Latn"}, family = "roa", ancestors = {"fro"}, sort_key = { from = {"[áàâäå]", "[éèêë]", "[íìîï]", "[óòôö]", "[úùûü]", "[ýỳŷÿ]", "ç", "'"}, to  = {"a"	 , "e"	 , "i"	 , "o"	 , "u"	 , "y"	 , "c"}} , }

m["wo"] = { canonicalName = "Wolof", type = "regular", scripts = {"Latn", "Arab"}, family = "alv-sng", }

m["xh"] = { canonicalName = "Xhosa", type = "regular", scripts = {"Latn"}, family = "bnt", }

m["yi"] = { canonicalName = "Yiddish", type = "regular", scripts = {"Hebr"}, family = "gmw", ancestors = {"gmh", "he"}, translit_module = "yi-translit", }

m["yo"] = { canonicalName = "Yoruba", type = "regular", scripts = {"Latn"}, family = "alv-von", }

m["za"] = { canonicalName = "Zhuang", type = "regular", scripts = {"Latn", "Hani"}, family = "tai", }

m["zh"] = { canonicalName = "Chinese", type = "regular", scripts = {"Hani"}, family = "sit", ancestors = {"ltc"}, }

m["zu"] = { canonicalName = "Zulu", otherNames = {"isiZulu"}, type = "regular", scripts = {"Latn"}, family = "bnt", }

return m