"اس ماڈیول کی دستاویز ماڈیول: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 OGONEK    = u(0x0328)

-- Puncuation to be used for standardChars field
local PUNCTUATION = ' \!\#\$\%\&\*\+\,\-\.\/\:\;\<\=\>\?\@\^\_\`\|\~\'\(\)'

local m = {}

m["aa"] = {
	canonicalName = "عفار",
	scripts = {"Latn"},
	family = "cus",
	wikipedia_article = "عفار زبان",
}

m["ab"] = {
	canonicalName = "Abkhaz",
	scripts = {"Cyrl", "Geor", "Latn"},
	family = "cau-abz",
	translit_module = "ab-translit",
	override_translit = true,
	entry_name = {
		from = {GRAVE, ACUTE},
		to   = {}} ,
	wikipedia_article = "ابخاز زبان",
}

m["ae"] = {
	canonicalName = "اوستائی",
	scripts = {"Avst", "Gujr"},
	family = "ira-eas",
	translit_module = "Avst-translit",
	wikipedia_article = "اوستائی زبان",
}

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

m["ak"] = {
	canonicalName = "اکان",
	otherNames = {"توی"},
	scripts = {"Latn"},
	family = "alv-kwa",
	wikipedia_article = "اکان زبان",
}

m["am"] = {
	canonicalName = "امہری",
	scripts = {"Ethi"},
	family = "sem-eth",
	translit_module = "Ethi-translit",
	wikipedia_article = "امہری زبان",
}

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

m["ar"] = {
	canonicalName = "عربی",
	scripts = {"Arab", "Brai"},
	family = "sem-arb",
	-- alif waṣl to alif, remove diacritics
	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)}},
	wikipedia_article = "عربی زبان",
	standardChars = "ء-غف-ْٰٱ" .. PUNCTUATION .. "٠-٩،؛؟٫٬ـ",
}

m["as"] = {
	canonicalName = "آسامی",
	scripts = {"Beng"},
	family = "inc",
	ancestors = {"inc-mgd"},
	translit_module = "as-translit",
}

m["av"] = {
	canonicalName = "Avar",
	scripts = {"Cyrl"},
	family = "cau-nec",
	ancestors = {"oav"},
	translit_module = "av-translit",
	override_translit = true,
	entry_name = {
		from = {GRAVE, ACUTE},
		to   = {}} ,
	wikipedia_article = "آواری زبان",
}

m["ay"] = {
	canonicalName = "Aymara",
	scripts = {"Latn"},
	family = "sai-aym",
}

m["az"] = {
	canonicalName = "آذربائیجانی",
	scripts = {"Latn", "Cyrl", "fa-Arab"},
	family = "trk-ogz",
	wikipedia_article = "آذربائیجانی زبان",
}

m["ba"] = {
	canonicalName = "باشقیر",
	scripts = {"Cyrl"},
	family = "trk-kip",
	translit_module = "ba-translit",
	override_translit = true,
}

m["be"] = {
	canonicalName = "بیلاروسی",
	scripts = {"Cyrl"},
	family = "zle",
	ancestors = {"orv"},
	translit_module = "be-translit",
	sort_key = {
		from = {"Ё", "ё"},
		to   = {"Е" , "е"}},
	entry_name = {
		from = {"Ѐ", "ѐ", GRAVE, ACUTE},
		to   = {"Е", "е"}},
}

m["bg"] = {
	canonicalName = "بلغاری",
	scripts = {"Cyrl"},
	family = "zls",
	translit_module = "bg-translit",
	entry_name = {
		from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE},
		to   = {"Е", "е", "И", "и"}},
}

m["bh"] = {
	canonicalName = "بہاری",
	scripts = {"Deva"},
	family = "inc",
	ancestors = {"inc-mgd"},
	wikipedia_article = "بہاری زبانیں",
}

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

m["bm"] = {
	canonicalName = "Bambara",
	scripts = {"Latn"},
	family = "dmn",
}

m["bn"] = {
	canonicalName = "بنگالی",
	otherNames = {"بنگلہ"},
	scripts = {"Beng"},
	family = "inc",
	ancestors = {"inc-mgd"},
	translit_module = "bn-translit",
}

m["bo"] = {
	canonicalName = "تبتی",
	scripts = {"Tibt"},
	family = "tbq",
	ancestors = {"xct"},
	translit_module = "bo-translit",
	override_translit = true,
	wikipedia_article = "تبتی زبان",
}

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

m["ca"] = {
	canonicalName = "کتلونیائی",
	scripts = {"Latn"},
	family = "roa",
	ancestors = {"roa-oca"},
	sort_key = {
		from = {"à", "[èé]", "[íï]", "[òó]", "[úü]", "ç", "l·l"},
		to   = {"a", "e"   , "i"   , "o"   , "u"   , "c", "ll" }} ,
}

m["ce"] = {
	canonicalName = "چیچنی",
	scripts = {"Cyrl"},
	family = "cau-nkh",
	translit_module = "ce-translit",
	override_translit = true,
	entry_name = {
		from = {MACRON},
		to   = {}},
}

m["ch"] = {
	canonicalName = "Chamorro",
	scripts = {"Latn"},
	family = "poz-sus",
}

m["co"] = {
	canonicalName = "Corsican",
	scripts = {"Latn"},
	family = "roa",
}

m["cr"] = {
	canonicalName = "Cree",
	scripts = {"Cans", "Latn"},
	family = "alg",
	translit_module = "cr-translit",
}

m["cs"] = {
	canonicalName = "چیک",
	scripts = {"Latn"},
	family = "zlw",
	ancestors = {"zlw-ocs"},
	sort_key = {
		from = {"á", "é", "í", "ó", "[úů]", "ý"},
		to   = {"a", "e", "i", "o", "u"   , "y"}} ,
}

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

m["cv"] = {
	canonicalName = "Chuvash",
	scripts = {"Cyrl"},
	family = "trk-ogr",
	translit_module = "cv-translit",
	override_translit = true,
}

m["cy"] = {
	canonicalName = "ویلش",
	scripts = {"Latn"},
	family = "cel-bry",
	ancestors = {"wlm"},
	sort_key = {
		from = {"[âáàä]", "ch", "dd", "[êéèë]", "ff", "ngh", "[îíìï]", "ll", "[ôóòö]", "ph", "rh", "th", "[ûúùü]", "[ŵẃẁẅ]", "[ŷýỳÿ]", "'"},
		to   = {"a"	    , "c~", "d~", "e"	  , "f~", "g~h", "i"	  , "l~", "o"	  , "p~", "r~", "t~", "u"	  , "w"     , "y"	       }} ,
	standardChars = "A-IL-PR-UWYa-il-pr-uwy0-9ÂâÊêÎîÔôÛûŴŵŶŷ" .. PUNCTUATION
}

m["da"] = {
	canonicalName = "ڈینش",
	scripts = {"Latn"},
	family = "gmq",
	ancestors = {"gmq-oda"},
}

m["de"] = {
	canonicalName = "جرمن",
	scripts = {"Latn", "Latf"},
	family = "gmw",
	ancestors = {"gmh"},
	sort_key = {
		from = {"[äàáâå]", "[ëèéê]", "[ïìíî]", "[öòóô]", "[üùúû]", "ß" },
		to   = {"a"	  , "e"	 , "i"	 , "o"	 , "u"	 , "ss"}} ,
	standardChars = "A-Za-z0-9ÄäÖöÜüß" .. PUNCTUATION
}

m["dv"] = {
	canonicalName = "دیویہی",
	otherNames = {"مالدیپی"},
	scripts = {"Thaa"},
	family = "inc",
	ancestors = {"pmh"},	-- or Helu?
	translit_module = "dv-translit",
	override_translit = true,
	wikipedia_article = "Maldivian language",
}

m["dz"] = {
	canonicalName = "زونگکھا",
	otherNames = {"جزونگکھا"},
	scripts = {"Tibt"},
	family = "tbq",
	ancestors = {"xct"},
	translit_module = "bo-translit",
	override_translit = true,
	wikipedia_article = "Dzongkha",
}

m["ee"] = {
	canonicalName = "Ewe",
	scripts = {"Latn"},
	family = "alv-von",
}

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

m["en"] = {
	canonicalName = "انگریزی",
	otherNames = {"انگلش"},
	scripts = {"Latn", "Brai", "Shaw", "Dsrt"}, -- entries in Shaw or Dsrt might require prior discussion
	family = "gmw",
	ancestors = {"enm"},
	sort_key = {
		from = {"[äàáâåā]", "[ëèéêē]", "[ïìíîī]", "[öòóôō]", "[üùúûū]", "æ" , "œ" , "[çč]", "ñ", "'"},
		to   = {"a"       , "e"      , "i"      , "o"      , "u"      , "ae", "oe", "c"   , "n"}},
	wikimedia_codes = {"en", "simple"},
	standardChars = "A-Za-z0-9" .. PUNCTUATION .. u(0x2800) .. "-" .. u(0x28FF)
}

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

m["es"] = {
	canonicalName = "ہسپانوی",
	otherNames = {"اسپینش", "سپینش"},
	scripts = {"Latn", "Brai"},
	family = "roa",
	ancestors = {"osp"},
	sort_key = {
		from = {"á", "é", "í", "ó", "[úü]", "ç", "ñ"},
		to   = {"a", "e", "i", "o", "u"   , "c", "n"}},
	standardChars = "A-VXYZa-vxyz0-9ÁáÉéÍíÓóÚúÑñ¿¡" .. PUNCTUATION
}

m["et"] = {
	canonicalName = "استونیائی",
	scripts = {"Latn"},
	family = "fiu-fin",
}

m["eu"] = {
	canonicalName = "باسک",
	otherNames = {"Euskara"},
	scripts = {"Latn"},
	family = "euq",
}

m["fa"] = {
	canonicalName = "فارسی",
	otherNames = {"فارسی", "نئی فارسی", "جدید فارسی", "مغربی فارسی", "ایرانی فارسی", "مشرقی فارسی", "دری"},
	scripts = {"fa-Arab"},
	family = "ira-wes",
	ancestors = {"pal"}, -- "ira-mid"
	entry_name = {
		from = {u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652)},
		to   = {}} ,
}

m["ff"] = {
	canonicalName = "Fula",
	scripts = {"Latn", "Adlm"},
	family = "alv-sng",
}

m["fi"] = {
	canonicalName = "فنی",
	scripts = {"Latn"},
	family = "fiu-fin",
	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",
	scripts = {"Latn"},
	family = "poz-occ",
}

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

m["fr"] = {
	canonicalName = "فرانسیسی",
	otherNames = {"فرینچ"},
	scripts = {"Latn", "Brai"},
	family = "roa-oil",
	ancestors = {"frm"},
	sort_key = {
		from = {"[áàâä]", "[éèêë]", "[íìîï]", "[óòôö]", "[úùûü]", "[ýỳŷÿ]", "ç", "æ" , "œ" , "'"},
		to   = {"a"	 , "e"	 , "i"	 , "o"	 , "u"	 , "y"	 , "c", "ae", "oe"}},
	standardChars = "A-Za-z0-9ÀÂÇÉÈÊËÎÏÔŒÛÙÜàâçéèêëîïôœûùü«»" .. PUNCTUATION
}

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

m["ga"] = {
	canonicalName = "آئرش",
	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"}} ,
	standardChars = "A-IL-PR-Ua-il-pr-u0-9ÁáÉéÍíÓóÚú" .. PUNCTUATION
}

m["gd"] = {
	canonicalName = "اسکوٹش گالک",
	scripts = {"Latn"},
	family = "cel-gae",
	ancestors = {"mga"},
	sort_key = {
		from = {"[áà]", "[éè]", "[íì]", "[óò]", "[úù]", "[ýỳ]"},
		to   = {"a"   , "e"   , "i"   , "o"   , "u"   , "y"   }} ,
	wikipedia_article = "Scottish Gaelic",
	standardChars = "A-IL-PR-Ua-il-pr-u0-9ÀàÈèÌìÒòÙù" .. PUNCTUATION
}

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

m["gn"] = {
	canonicalName = "Guaraní",
	scripts = {"Latn"},
	family = "tup-gua",
	wikipedia_article = "Guarani language",
}

m["gu"] = {
	canonicalName = "گجراتی",
	scripts = {"Gujr"},
	family = "inc",
	ancestors = {"inc-ogu"},
	translit_module = "gu-translit",
}

m["gv"] = {
	canonicalName = "Manx",
	otherNames = {"Manx Gaelic"},
	scripts = {"Latn"},
	family = "cel-gae",
	ancestors = {"mga"},
	sort_key = {
		from = {"ç", "-"},
		to   = {"c"}} ,
	standardChars = "A-WYÇa-wyç0-9" .. PUNCTUATION
}

m["ha"] = {
	canonicalName = "Hausa",
	scripts = {"Latn", "Arab"},
	family = "cdc-wst",
    sort_key = {
		from = {"ɓ",   "ɗ",   "ƙ",  "'y", "ƴ",  "'" },
		to   = {"b~" , "d~"	, "k~", "y~", "y~", ""  }},
    entry_name = {
		from = {"R̃", "r̃", "À", "à", "È", "è", "Ì", "ì", "Ò", "ò", "Ù", "ù", "Â", "â", "Ê", "ê", "Î", "î", "Ô", "ô", "Û", "û", "Ā", "ā", "Ē", "ē", "Ī", "ī", "Ō", "ō", "Ū", "ū", "Á", "á", "É", "é", "Í", "í", "Ó", "ó", "Ú", "ú", "Ā̀", "ā̀", "Ḕ", "ḕ", "Ī̀", "ī̀", "Ṑ", "ṑ", "Ū̀", "ū̀", GRAVE, ACUTE},
		to   = {"R", "r", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u"}},
}

m["he"] = {
	canonicalName = "عبرانی",
	scripts = {"Hebr", "Phnx", "Brai"},
	translit_module = "he-translit",
	family = "sem-can",
	entry_name = {
		from = {"[" .. u(0x0591) .. "-" .. u(0x05BD) .. u(0x05BF) .. "-" .. u(0x05C5) .. u(0x05C7) .. "]"},
		to   = {}} ,
}

m["hi"] = {
	"ہندی",
	"Q1568",
	"inc-hnd",
	otherNames = {"ہندوی"},
	scripts = {"Deva", "Kthi", "Newa"},
	ancestors = {"inc-ohi"},
	translit_module = "hi-translit",
	standardChars = "ँंअ-ऊएऐओ-घच-झट-नप-रलवशसहा-ूेैो-◌्।-॰ड़ढ़" .. PUNCTUATION,
}

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

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

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

m["hy"] = {
	canonicalName = "آرمینیائی",
	otherNames = {"Modern Armenian", "Eastern Armenian", "Western Armenian"},
	scripts = {"Armn", "Brai"},
	family = "hyx",
	ancestors = {"axm"},
	translit_module = "Armn-translit",
	override_translit = true,
	sort_key = {
		from = {"ու", "և", "եւ"},
		to   = {"ւ", "եվ", "եվ"}},
	entry_name = {
		from = {"՞", "՜", "՛", "՟", "և", "<sup>յ</sup>", "<sup>ի</sup>"},
		to   = {"", "", "", "", "եւ", "յ", "ի"}} ,
}

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

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

m["id"] = {
	canonicalName = "انڈونیشیائی",
	otherNames = {"انڈونیشین"},
	scripts = {"Latn"},
	family = "poz-mly",
	ancestors = {"ms"},
}

m["ie"] = {
	canonicalName = "Interlingue",
	scripts = {"Latn"},
	family = "art",
	wikipedia_article = "Occidental language",
}

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

m["ii"] = {
	canonicalName = "Sichuan Yi",
	scripts = {"Yiii"},
	family = "tbq-lol",
	wikipedia_article = "Nuosu language",
}

m["ik"] = {
	canonicalName = "Inupiak",
	scripts = {"Latn"},
	family = "esx-inu",
	wikipedia_article = "Inupiaq",
}

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

m["is"] = {
	canonicalName = "آئس لینڈی",
	scripts = {"Latn"},
	family = "gmq",
	ancestors = {"non"},
}

m["it"] = {
	canonicalName = "اطالوی",
	scripts = {"Latn"},
	family = "roa",
	sort_key = {
		from = {"[àáâäå]", "[èéêë]", "[ìíîï]", "[òóôö]", "[ùúûü]"},
		to   = {"a"	  , "e"	 , "i"	 , "o"	 , "u"	 }} ,
	wikipedia_article = "اطالوی زبان",
}

m["iu"] = {
	canonicalName = "Inuktitut",
	scripts = {"Cans", "Latn"},
	family = "esx-inu",
	translit_module = "iu-translit",
	override_translit = true,
	wikipedia_article = "Inuktitut",
}

m["ja"] = {
	canonicalName = "جاپانی",
	scripts = {"Jpan", "Latn", "Hira", "Brai"},
	family = "jpx",
	ancestors = {"ojp"},
	--[=[
	-- Handled by jsort function in [[Module:ja]].
	sort_key = {
		from = {"[ぁァア]", "[ぃィイ]", "[ぅゔゥウヴ]", "[ぇェエ]", "[ぉォオ]", "[がゕカガヵ]", "[ぎキギ]", "[ぐクグㇰ]", "[げゖケゲヶ]", "[ごコゴ]", "[ざサザ]", "[じシジㇱ]", "[ずスズㇲ]", "[ぜセゼ]", "[ぞソゾ]", "[だタダ]", "[ぢチヂ]", "[っづッツヅ]", "[でテデ]", "[どトドㇳ]", "ナ", "ニ", "[ヌㇴ]", "ネ", "ノ", "[ばぱハバパㇵ]", "[びぴヒビピㇶ]", "[ぶぷフブプㇷ]", "[べぺヘベペㇸ]", "[ぼぽホボポㇹ]", "マ", "ミ", "[ムㇺ]", "メ", "モ", "[ゃャヤ]", "[ゅュユ]", "[ょョヨ]", "[ラㇻ]", "[リㇼ]", "[ルㇽ]", "[レㇾ]", "[ロㇿ]", "[ゎヮワヷ]", "[ヰヸ]", "[ヱヹ]", "[ヲヺ]", "ン", "[゙゚゛゜ゝゞ・ヽヾ]", "𛀀"},
		to   = {"あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ", "ゐ", "ゑ", "を", "ん", "", "え"}},
	--]=]
}

m["jv"] = {
	canonicalName = "جاوی",
	scripts = {"Latn", "Java"},
	family = "poz-sus",
	ancestors = {"kaw"},
	link_tr = true,
}

m["ka"] = {
	canonicalName = "جارجیائی",
	scripts = {"Geor", "Geok", "Hebr"}, -- Hebr is used to write Judeo-Georgian
	family = "ccs-gzn",
	ancestors = {"oge"},
	translit_module = "Geor-translit",
	override_translit = true,
	entry_name = {
		from = {"̂"},
		to   = {""}},
}

m["kg"] = {
	canonicalName = "Kongo",
	scripts = {"Latn"},
	family = "bnt",
}

m["ki"] = {
	canonicalName = "Kikuyu",
	scripts = {"Latn"},
	family = "bnt",
}

m["kj"] = {
	canonicalName = "Kwanyama",
	scripts = {"Latn"},
	family = "bnt",
	wikipedia_article = "Kwanyama dialect",
}

m["kk"] = {
	canonicalName = "قازق",
	otherNames = {"قازقی"},
	scripts = {"Cyrl", "Latn", "Arab", "kk-Arab"},
	family = "trk-kip",
	translit_module = "kk-translit",
	override_translit = true,
}

m["kl"] = {
	canonicalName = "Greenlandic",
	scripts = {"Latn"},
	family = "esx-inu",
}

m["km"] = {
	canonicalName = "خمیر",
	scripts = {"Khmr"},
	family = "mkh",
	ancestors = {"mkh-mkm"},
	translit_module = "km-translit",
}

m["kn"] = {
	canonicalName = "کنڑ",
	scripts = {"کنڑا", "کنڈ", "کنڈا"},
	family = "dra",
	ancestors = {"dra-mkn"},
	wikipedia_article = "کنڑا زبان",
}

m["ko"] = {
	canonicalName = "کوریائی",
	scripts = {"Kore", "Hani", "Brai"},
	family = "qfa-kor",
	ancestors = {"okm"},
	translit_module = "ko-translit",
}

m["kr"] = {
	canonicalName = "Kanuri",
	scripts = {"Latn", "Arab"},
	family = "ssa-sah",
	sort_key = {
		from = {"ny", "ǝ", "sh"},
		to   = {"n~", "e~", "s~"}} , -- the sortkey and entry_name are only for standard Kanuri; when dialectal entries get added, someone will have to work out how the dialects should be represented orthographically
	entry_name = {
		from = {"À", "à", "È", "è", "Ǝ̀", "ǝ̀", "Ì", "ì", "Ò", "ò", "Ù", "ù", "Â", "â", "Ê", "ê", "Ǝ̂", "ǝ̂", "Î", "î", "Ô", "ô", "Û", "û", "Ă", "ă", "Ĕ", "ĕ", "Ǝ̆", "ǝ̆", "Ĭ", "ĭ", "Ŏ", "ŏ", "Ŭ", "ŭ", "Á", "á", "É", "é", "Ǝ́", "ǝ́", "Í", "í", "Ó", "ó", "Ú", "ú", GRAVE, ACUTE},
		to   = {"A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u"}},
}

m["ks"] = {
	canonicalName = "کشمیری",
	scripts = {"ks-Arab", "Deva"},
	family = "inc-dar",
}

m["ku"] = {
	canonicalName = "کردی",
	scripts = {"Latn", "ku-Arab", "Armn", "Cyrl"},
	family = "ira-wes",
	wikipedia_article = "کردی زبان",
}

-- "kv" IS TREATED AS "koi", "kpv", SEE WT:LT

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

m["ky"] = {
	canonicalName = "کرغیز",
	scripts = {"Cyrl", "Latn", "Arab"},
	family = "trk-kip",
	translit_module = "ky-translit",
	override_translit = true,
}

m["la"] = {
	canonicalName = "لاطینی",
	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"}},
	wikipedia_article = "Latin",
	standardChars = "A-Za-zÆ挜Ā-ăĒ-ĕĪ-ĭŌ-ŏŪ-ŭȲȳ" .. MACRON .. BREVE .. PUNCTUATION
}

m["lb"] = {
	canonicalName = "لکسمبرگی",
	scripts = {"Latn"},
	family = "gmw",
	ancestors = {"gmh"},
	wikipedia_article = "لکسمبرگی",
}

m["lg"] = {
	canonicalName = "Luganda",
	scripts = {"Latn"},
	family = "bnt",
	entry_name = {
		from = {"á", "Á", "é", "É", "í", "Í", "ó", "Ó", "ú", "Ú", "ń", "Ń", "ḿ", "Ḿ", "â", "Â", "ê", "Ê", "î", "Î", "ô", "Ô", "û", "Û" },
		to   = {"a", "A", "e", "E", "i", "I", "o", "O", "u", "U", "n", "N", "m", "M", "a", "A", "e", "E", "i", "I", "o", "O", "u", "U",}},
	sort_key = {
		from = {"ŋ"},
		to   = {"n"}} ,
	wikipedia_article = "Luganda",
}

m["li"] = {
	canonicalName = "Limburgish",
	scripts = {"Latn"},
	family = "gmw",
	ancestors = {"dum"},
}

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

m["lo"] = {
	canonicalName = "لاؤ",
	scripts = {"Laoo"},
	family = "tai-swe",
	translit_module = "lo-translit",
	sort_key = {
		from = {"ຼ", "ຽ", "ໜ", "ໝ", "([ເແໂໃໄ])([ກ-ຮ])"},
		to   = {"ລ", "ຍ", "ຫນ", "ຫມ", "%2%1"}},
}

m["lt"] = {
	canonicalName = "لتھوینیائی",
	scripts = {"Latn"},
	family = "bat",
	ancestors = {"olt"},
	entry_name = {
		from = {"[áãà]", "[ÁÃÀ]", "[éẽè]", "[ÉẼÈ]", "[íĩì]", "[ÍĨÌ]", "[ýỹ]", "[ÝỸ]", "ñ", "[óõò]", "[ÓÕÒ]", "[úũù]", "[ÚŨÙ]", ACUTE, GRAVE, TILDE},
		to   = {"a",       "A",     "e",     "E",     "i",     "I",     "y",   "Y",   "n",   "o",    "O",     "u",      "U"}} ,
}

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

m["lv"] = {
	canonicalName = "Latvian",
	scripts = {"Latn"},
	family = "bat",
	entry_name = {
		-- This attempts to convert vowels with tone marks to vowels either with
		-- or without macrons. Specifically, there should be no macrons if the
		-- vowel is part of a diphthong (including resonant diphthongs such
		-- pìrksts -> pirksts not #pīrksts). What we do is first convert the
		-- vowel + tone mark to a vowel + tilde in a decomposed fashion,
		-- then remove the tilde in diphthongs, then convert the remaining
		-- vowel + tilde sequences to macroned vowels, then delete any other
		-- tilde. We leave already-macroned vowels alone: Both e.g. ar and ār
		-- occur before consonants. FIXME: This still might not be sufficient.
		from = {"Ȩ", "ȩ", "[ÂÃÀ]", "[âãà]", "[ÊẼÈ]", "[êẽè]", "[ÎĨÌ]", "[îĩì]", "[ÔÕÒ]", "[ôõò]", "[ÛŨÙ]", "[ûũù]", "[ÑǸ]", "[ñǹ]", "[" .. CIRC .. TILDE ..GRAVE .."]", "([aAeEiIoOuU])" .. TILDE .."?([lrnmuiLRNMUI])" .. TILDE .. "?([^aAeEiIoOuUāĀēĒīĪūŪ])", "([aAeEiIoOuU])" .. TILDE .."?([lrnmuiLRNMUI])" .. TILDE .."?$", "([iI])" .. TILDE .. "?([eE])" .. TILDE .. "?", "A" .. TILDE, "a" .. TILDE, "E" .. TILDE, "e" .. TILDE, "I" .. TILDE, "i" .. TILDE, "U" .. TILDE, "u" .. TILDE, TILDE},
		to   = {"E", "e", "A" .. TILDE, "a" .. TILDE, "E" .. TILDE, "e" .. TILDE, "I" .. TILDE, "i" .. TILDE, "O", "o", "U" .. TILDE, "u" .. TILDE, "N", "n", TILDE, "%1%2%3", "%1%2", "%1%2", "Ā", "ā", "Ē", "ē", "Ī", "ī", "Ū", "ū", ""}},
}

m["mg"] = {
	canonicalName = "مالاگاسی",
	scripts = {"Latn"},
	family = "poz-bre",
}

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

m["mi"] = {
	canonicalName = "ماؤری",
	scripts = {"Latn"},
	family = "poz-pol",
	wikipedia_article = "ماوری زبان",
}

m["mk"] = {
	canonicalName = "مکدونیائی",
	scripts = {"Cyrl"},
	family = "zls",
	translit_module = "mk-translit",
	entry_name = {
		from = {ACUTE},
		to   = {}},
}

m["ml"] = {
	canonicalName = "ملیالم",
	scripts = {"Mlym"},
	family = "dra",
	translit_module = "ml-translit",
	override_translit = true,
	wikipedia_article = "ملیالم زبان",
}

m["mn"] = {
	canonicalName = "منگولی",
	scripts = {"Cyrl", "Mong", "Soyo", "Zanb"}, -- entries in Soyo or Zanb might require prior discussion
	family = "xgn",
	ancestors = {"cmg"},
	translit_module = "mn-translit",
	override_translit = true,
}

-- "mo" IS TREATED AS "ro", SEE WT:LT

m["mr"] = {
	canonicalName = "مراٹھی",
	scripts = {"Deva", "Modi"},
	family = "inc",
	ancestors = {"omr"},
}

m["ms"] = {
	canonicalName = "ملائی",
	scripts = {"Latn", "ms-Arab"},
	family = "poz-mly",
}

m["mt"] = {
	canonicalName = "مالٹی",
	otherNames = {"مالٹیز"},
	scripts = {"Latn"},
	family = "sem-arb",
	ancestors = {"sqr"},
}

m["my"] = {
	canonicalName = "برمی",
	scripts = {"Mymr"},
	family = "tbq-brm",
	ancestors = {"obr"},
	override_translit = true,
}

m["na"] = {
	canonicalName = "Nauruan",
	scripts = {"Latn"},
	family = "poz-mic",
}

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

m["nd"] = {
	canonicalName = "Northern Ndebele",
	scripts = {"Latn"},
	family = "bnt-ngu",
	entry_name = {
		from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON},
		to   = {"a"      , "e"      , "i"      , "o"      , "u"      , "m", "n"    }},
}

m["ne"] = {
	canonicalName = "نیپالی",
	otherNames = {"Nepalese"},
	scripts = {"Deva"},
	family = "inc-pah",
	ancestors = {"psu"},
}

m["ng"] = {
	canonicalName = "Ndonga",
	scripts = {"Latn"},
	family = "bnt",
	wikipedia_article = "Ndonga dialect",
}

m["nl"] = {
	canonicalName = "ولندیزی",
	otherNames = {"ڈچ", "فلیمش"},
	scripts = {"Latn"},
	family = "gmw",
	ancestors = {"dum"},
	sort_key = {
		from = {"[äáâå]", "[ëéê]", "[ïíî]", "[öóô]", "[üúû]", "ç", "ñ", "^-"},
		to   = {"a"	 , "e"	, "i"	, "o"	, "u"	, "c", "n"}} ,
	standardChars = "A-Za-z0-9" .. PUNCTUATION .. u(0x2800) .. "-" .. u(0x28FF),
}

m["nn"] = {
	canonicalName = "Norwegian Nynorsk",
	scripts = {"Latn"},
	family = "gmq",
	ancestors = {"gmq-mno"},
	wikipedia_article = "Nynorsk",
}

m["no"] = {
	canonicalName = "ناروی",
	scripts = {"Latn"},
	family = "gmq",
	ancestors = {"gmq-mno"},
}

m["nr"] = {
	canonicalName = "Southern Ndebele",
	scripts = {"Latn"},
	family = "bnt-ngu",
	entry_name = {
		from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON},
		to   = {"a"      , "e"      , "i"      , "o"      , "u"      , "m", "n"    }},
}

m["nv"] = {
	canonicalName = "Navajo",
	scripts = {"nv-Latn"},
	family = "apa",
	sort_key = {
		from = {"[áą]", "[éę]", "[íį]", "[óǫ]", "ń", "^n([djlt])", "ł" , "[ʼ’']", ACUTE},
		to   = {"a"   , "e"   , "i"   , "o"   , "n", "ni%1"	  , "l~"}}, -- the tilde is used to guarantee that ł will always be sorted after all other words with l
}

m["ny"] = {
	canonicalName = "Chichewa",
	scripts = {"Latn"},
	family = "bnt",
	entry_name = {
		from = {"ŵ", "Ŵ", "á", "Á", "é", "É", "í", "Í", "ó", "Ó", "ú", "Ú", "ń", "Ń", "ḿ", "Ḿ" },
		to   = {"w", "W", "a", "A", "e", "E", "i", "I", "o", "O", "u", "U", "n", "N", "m", "M"}},
	sort_key = {
		from = {"ng'"},
		to   = {"ng"}} ,
	wikipedia_article = "Chewa language",
}

m["oc"] = {
	canonicalName = "آکسیٹان",
	scripts = {"Latn", "Hebr"},
	family = "roa",
	ancestors = {"pro"},
	sort_key = {
		from = {"[àá]", "[èé]", "[íï]", "[òó]", "[úü]", "ç", "([lns])·h"},
		to   = {"a"   , "e"   , "i"   , "o"   , "u"   , "c", "%1h"	  }} ,
}

m["oj"] = {
	canonicalName = "Ojibwe",
	scripts = {"Cans", "Latn"},
	family = "alg",
}

m["om"] = {
	canonicalName = "Oromo",
	scripts = {"Latn", "Ethi"},
	family = "cus",
}

m["or"] = {
	canonicalName = "اڑیہ",
	otherNames = {"اڈیہ"},
	scripts = {"Orya"},
	family = "inc",
	ancestors = {"inc-mgd"},
	translit_module = "or-translit",
	wikipedia_article = "Odia language",
}

m["os"] = {
	canonicalName = "Ossetian",
	scripts = {"Cyrl", "Geor", "Latn"},
	family = "ira-eas",
	ancestors = {"oos"},
	translit_module = "os-translit",
	override_translit = true,
	entry_name = {
		from = {GRAVE, ACUTE},
		to   = {}} ,
}

m["pa"] = {
	canonicalName = "پنجابی",
	scripts = {"Guru", "Arab"},
	family = "inc",
	ancestors = {"psu"},
}

m["pi"] = {
	canonicalName = "پالی",
	scripts = {"Latn", "Brah", "Deva", "Beng", "Sinh", "Mymr", "Thai", "Lana", "Khmr"}, -- holds Laoo, not enough glyphes to render
	family = "inc",
	ancestors = {"sa"},
	sort_key = {
		from = {"ā", "ī", "ū", "ḍ", "ḷ", "[ṁṃ]", "[ṇñṅ]", "ṭ", "([เแโใไ])([ก-ฮ])", u(0xFE00)},
		to   = {"a", "i", "u", "d", "l", "m"   , "n"	, "t", "%2%1"}} ,
	entry_name = {
		from = {u(0xFE00)},
		to   = {}},
	wikipedia_article = "پالی زبان",
}

m["pl"] = {
	canonicalName = "پولش",
	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 = "پشتو",
	otherNames = {"پٹھانی", "افغانی"},
	scripts = {"ps-Arab"},
	family = "ira-eas",
	wikipedia_article = "پشتو زبان",
	translit_module = "ps-translit",
}

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

m["qu"] = {
	canonicalName = "Quechua",
	scripts = {"Latn"},
	family = "qwe",
	wikipedia_article = "Quechuan languages",
}

m["rm"] = {
	canonicalName = "Romansch",
	scripts = {"Latn"},
	family = "roa",
	wikipedia_article = "Romansh language",
}

m["ro"] = {
	canonicalName = "رومانیائی",
	scripts = {"Latn", "Cyrl"},
	family = "roa",
	sort_key = {
        from = {"ă" , "â"  , "î" , "ș" , "ț" },
        to   = {"a~", "a~~", "i~", "s~", "t~"}},
}

m["ru"] = {
	canonicalName = "روسی",
	scripts = {"Cyrl", "Brai"},
	family = "zle",
	sort_key = {
		from = {"ё"},
		to   = {"е" .. mw.ustring.char(0x10FFFF)}},
	entry_name = {
		from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE},
		to   = {"Е", "е", "И", "и"}},
	standardChars = "ЁІА-яёі0-9—" .. PUNCTUATION,
}

m["rw"] = {
	canonicalName = "Rwanda-Rundi",
	scripts = {"Latn"},
	family = "bnt",
	wikipedia_article = "Rwanda-Rundi",
}

m["sa"] = {
	canonicalName = "سنسکرت",
	scripts = {"Deva", "Beng", "Bhks", "Brah", "Gran", "Gujr", "Guru", "Khar", "Khmr", "Knda", "Lana", "Mlym", "Mymr", "Newa", "Orya", "Shrd", "Sidd", "Sinh", "Taml", "Telu", "Thai", "Tibt"}, -- holds Laoo, not enough glyphes to render
	family = "inc",
	sort_key = {
		from = {"([เแโใไ])([ก-ฮ])", u(0xFE00)},
		to   = {"%2%1"}} ,
	entry_name = {
		from = {u(0xFE00)},
		to   = {}},
	wikipedia_article = "سنسکرت زبان",
}

m["sc"] = {
	canonicalName = "Sardinian",
	scripts = {"Latn"},
	family = "roa",
}

m["sd"] = {
	canonicalName = "سندھی",
	scripts = {"sd-Arab", "Deva", "Sind", "Khoj"},
	family = "inc",
	ancestors = {"psu"},
}

m["se"] = {
	canonicalName = "Northern Sami",
	scripts = {"Latn"},
	family = "smi",
	entry_name = {
		from = {"ạ", "[ēẹ]", "ī", "[ōọ]", "ū", "ˈ"},
		to   = {"a", "e"   , "i", "o"   , "u"} },
	sort_key = {
		from = {"á" , "č" , "đ" , "ŋ" , "š" , "ŧ" , "ž" },
		to   = {"a²", "c²", "d²", "n²", "s²", "t²", "z²"} },
	wikipedia_article = "Northern Sami",
	standardChars = "A-PR-VZa-pr-vz0-9ÁáČčĐđŊŋŠšŦŧŽž" .. PUNCTUATION
}

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

m["sh"] = {
	canonicalName = "سرب کروشیائی",
	scripts = {"Latn", "Cyrl"},
	family = "zls",
	entry_name = {
		from = {"[ȀÀȂÁĀÃ]", "[ȁàȃáāã]", "[ȄÈȆÉĒẼ]", "[ȅèȇéēẽ]", "[ȈÌȊÍĪĨ]", "[ȉìȋíīĩ]", "[ȌÒȎÓŌÕ]", "[ȍòȏóōõ]", "[ȐȒŔ]", "[ȑȓŕ]", "[ȔÙȖÚŪŨ]", "[ȕùȗúūũ]", "Ѐ", "ѐ", "[ӢЍ]", "[ӣѝ]", "[Ӯ]", "[ӯ]", GRAVE, ACUTE, DGRAVE, INVBREVE, MACRON, TILDE},
		to   = {"A"	  , "a"	  , "E"	  , "e"	  , "I"	  , "i"	  , "O"	  , "o"	  , "R"	, "r"	, "U"	  , "u"	  , "Е", "е", "И"   , "и", "У", "у"   }},
	wikimedia_codes = {"sh", "bs", "hr", "sr"},
	wikipedia_article = "سرب کروشیائی",
}

m["si"] = {
	canonicalName = "سنہالی",
	scripts = {"Sinh"},
	family = "inc",
	ancestors = {"elu-prk"},
	override_translit = true,
}

m["sk"] = {
	canonicalName = "سلوواک",
	scripts = {"Latn"},
	family = "zlw",
	sort_key = {
		from = {"[áä]", "é", "í", "[óô]", "ú", "ý", "ŕ", "ĺ", "[" .. DIAER .. ACUTE .. CIRC .. "]"},
		to   = {"a"   , "e", "i", "o"   , "u", "y", "r", "l", ""}} ,
}

m["sl"] = {
	canonicalName = "Slovene",
	scripts = {"Latn"},
	family = "zls",
	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",
	scripts = {"Latn"},
	family = "poz-pol",
}

m["sn"] = {
	canonicalName = "شونا",
	scripts = {"Latn"},
	family = "bnt",
}

m["so"] = {
	canonicalName = "صومالی",
	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 = "البانوی",
	scripts = {"Latn", "Elba"},
	family = "sqj",
	sort_key = {
		from = { '[âãä]', '[ÂÃÄ]', '[êẽë]', '[ÊẼË]', 'ĩ', 'Ĩ', 'õ', 'Õ', 'ũ', 'Ũ', 'ỹ', 'Ỹ', 'ç', 'Ç' },
		to   = {     'a',     'A',     'e',     'E', 'i', 'I', 'o', 'O', 'u', 'U', 'y', 'Y', 'c', 'C' } } ,
}

m["ss"] = {
	canonicalName = "Swazi",
	scripts = {"Latn"},
	family = "bnt-ngu",
	entry_name = {
		from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON},
		to   = {"a"      , "e"      , "i"      , "o"      , "u"      , "m", "n"    }},
}

m["st"] = {
	canonicalName = "Sotho",
	scripts = {"Latn"},
	family = "bnt",
}

m["su"] = {
	canonicalName = "سوڈانی",
	scripts = {"Latn", "Sund"},
	family = "poz-msa",
	translit_module = "su-translit",
}

m["sv"] = {
	canonicalName = "سویڈش",
	scripts = {"Latn"},
	family = "gmq",
	ancestors = {"gmq-osw"},
}

m["sw"] = {
	canonicalName = "سواحلی",
	scripts = {"Latn", "Arab"},
	family = "bnt",
	sort_key = {
		from = {"ng'", "^-"},
		to   = {"ngz"}} ,
}

m["ta"] = {
	canonicalName = "تامل",
	otherNames = {"تمل"},
	scripts = {"Taml"},
	family = "dra",
	ancestors = {"oty"},
	translit_module = "ta-translit",
	override_translit = true,
}

m["te"] = {
	canonicalName = "تیلگو",
	scripts = {"Telu"},
	family = "dra",
	translit_module = "te-translit",
	override_translit = true,
}

m["tg"] = {
	canonicalName = "تاجک",
	scripts = {"Cyrl", "fa-Arab", "Latn"},
	family = "ira-wes",
	ancestors = {"fa"},
	override_translit = true,
	sort_key = {
		from = {"Ё", "ё"},
		to   = {"Е" , "е"}} ,
	entry_name = {
		from = {ACUTE},
		to   = {}} ,
}

m["th"] = {
	canonicalName = "تھائی",
	scripts = {"Thai", "Brai"},
	family = "tai-swe",
	sort_key = {
		from = {"%p", "([เแโใไ])([ก-ฮ])"},
		to   = {"", "%2%1"}},
}

m["ti"] = {
	canonicalName = "ٹگرینیا",
	scripts = {"Ethi"},
	family = "sem-eth",
}

m["tk"] = {
	canonicalName = "ترکمن",
	scripts = {"Latn", "Cyrl"},
	family = "trk-ogz",
	entry_name = {
		from = {"ā", "ē", "ī", "ō", "ū", "ȳ", "ȫ", "ǖ", MACRON},
		to   = {"a", "e", "i", "o", "u", "y", "ö", "ü", ""}},
}

m["tl"] = {
	canonicalName = "تگالوگ",
	scripts = {"Latn", "Tglg"},
	family = "phi",
	entry_name = {
		from = {"[áàâ]", "[éèê]", "[íìî]", "[óòô]", "[úùû]", ACUTE, GRAVE, CIRC},
		to   = {"a"    , "e"    , "i"    , "o"    , "u"    }},
}

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

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

m["tr"] = {
	canonicalName = "ترکی",
	scripts = {"Latn"},
	family = "trk-ogz",
	ancestors = {"ota"},
}

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

m["tt"] = {
	canonicalName = "تاتار",
	scripts = {"Cyrl", "Latn", "Arab", "tt-Arab"},
	family = "trk-kip",
	translit_module = "tt-translit",
	override_translit = true,
}

-- "tw" IS TREATED AS "ak", SEE WT:LT

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

m["ug"] = {
	canonicalName = "اویغور",
	scripts = {"ug-Arab", "Latn", "Cyrl"},
	family = "trk",
	ancestors = {"chg"},
	override_translit = true,
}

m["uk"] = {
	canonicalName = "یوکرینی",
	scripts = {"Cyrl"},
	family = "zle",
	ancestors = {"orv"},
	entry_name = {
		from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE},
		to   = {"Е", "е", "И", "и"}},
	standardChars = "ЄІЇА-ЩЫЬЮ-щыьюяєії" .. PUNCTUATION
} 
m["ur"] = {
	canonicalName = "اردو",
	scripts = {"ur-Arab"},
	family = "inc",
	ancestors = {"inc-sap"},
	entry_name = {
		from = {u(0x064B), u(0x064C), u(0x064D), u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652)},
		to   = {}} ,
	wikipedia_article = "اردو زبان",
}

m["uz"] = {
	canonicalName = "ازبک",
	scripts = {"Latn", "Cyrl", "fa-Arab"},
	family = "trk",
	ancestors = {"chg"},
}

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

m["vi"] = {
	canonicalName = "ویتنامی",
	scripts = {"Latn", "Hani"},
	family = "mkh-vie",
	ancestors = {"mkh-mvi"},
	sort_key = "vi-sortkey",
}

m["vo"] = {
	canonicalName = "ولاپک",
	scripts = {"Latn"},
	family = "art",
	wikipedia_article = "ولاپک",
}

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

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

m["xh"] = {
	canonicalName = "Xhosa",
	scripts = {"Latn"},
	family = "bnt-ngu",
	entry_name = {
		from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON},
		to   = {"a"      , "e"      , "i"      , "o"      , "u"      , "m", "n"    }},
}

m["yi"] = {
	canonicalName = "یدیش",
	scripts = {"Hebr"},
	family = "gmw",
	ancestors = {"gmh"},
	wikipedia_article = "یدیش",
}

m["yo"] = {
	canonicalName = "یوروبا",
	scripts = {"Latn"},
	family = "alv-von",
}

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

m["zh"] = {
	canonicalName = "چینی",
	scripts = {"Hani", "Brai"},
	family = "sit",
	ancestors = {"ltc"},
	sort_key = "zh-sortkey",
}

m["zu"] = {
	canonicalName = "Zulu",
	scripts = {"Latn"},
	family = "bnt-ngu",
	entry_name = {
                from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON},
                to   = {"a"      , "e"      , "i"      , "o"      , "u"      , "m", "n"    }},
}

return m