Mô đun:Wikt-lang/data

local U = mw.ustring.char
-- Diacritics, from the Combining Diacritical Marks block.
local grave        = U(0x300)
local acute        = U(0x301)
local circumflex   = U(0x302)
local tilde        = U(0x303)
local macron       = U(0x304)
local breve        = U(0x306)
local dot          = U(0x307)
local diaeresis    = U(0x308)
local double_acute = U(0x30B)
local caron        = U(0x30C)
local double_grave = U(0x30F)
local invbreve     = U(0x311)
local dot_below    = U(0x323)
local undertie     = U(0x35C)
--
	
	This is a table of Wiktionary language codes with data belonging to them.
	Name is the "canonical name" used on Wiktionary.
	Article is the Wikipedia article.
	Script is the ISO 15924 code.
local data = {
	"languages" = {
		"aaq" = {
			"name" = "Tiếng Penobscot",
		},
		"ab" = {
			"name" = "Tiếng Abkhaz",
		},
		"abe" = {
			"name" = "Tiếng Abenaki",
		},
		"ang" = {
			"name" = "Tiếng Anh cổ",
			"article" = {"Tiếng Anh cổ"},
			-- Remove macrons, acutes, and overdots
			"replacements" = {
				decompose = true,
				from = { "" .. macron .. acute .. dot .. "" },
			},
		},
		"ar" = {
			"name" = "Tiếng Ả Rập",
			"article" = "Tiếng Ả Rập",
			"direction" = "rtl", -- Should be in the script data module.
			"replacements" = {
				-- ālif with wasla is replaced by ālif;
				U(0x0671) = U(0x0627),
				-- taṭwīl, fatḥatan, ḍammatan, kasratan,
				-- fatḥa, ḍamma, kasra,
				-- shadda, sukūn, and superscript (dagger) ālif are removed.
				""..U(0x0640)..U(0x064B)..U(0x064C)..U(0x064D)
					..U(0x064E)..U(0x064F)..U(0x0650)
					..U(0x0651)..U(0x0652)..U(0x0670).."" = "",
			},
		},
		"ara" = {
			"name" = "Tiếng Ả Rập",
			"article" = "Tiếng Ả Rập",
			"direction" = "rtl", -- Should be in the script data module.
			"replacements" = {
				-- ālif with wasla is replaced by ālif;
				U(0x0671) = U(0x0627),
				-- taṭwīl, fatḥatan, ḍammatan, kasratan,
				-- fatḥa, ḍamma, kasra,
				-- shadda, sukūn, and superscript (dagger) ālif are removed.
				""..U(0x0640)..U(0x064B)..U(0x064C)..U(0x064D)
					..U(0x064E)..U(0x064F)..U(0x0650)
					..U(0x0651)..U(0x0652)..U(0x0670).."" = "",
			},
		},
		"arb" = {
			"name" = "Tiếng Ả Rập chuẩn hiện đại",
			"article" = "Tiếng Ả Rập chuẩn",
			"direction" = "rtl", -- Should be in the script data module.
			"replacements" = {
				-- ālif with wasla is replaced by ālif;
				U(0x0671) = U(0x0627),
				-- taṭwīl, fatḥatan, ḍammatan, kasratan,
				-- fatḥa, ḍamma, kasra,
				-- shadda, sukūn, and superscript (dagger) ālif are removed.
				""..U(0x0640)..U(0x064B)..U(0x064C)..U(0x064D)
					..U(0x064E)..U(0x064F)..U(0x0650)
					..U(0x0651)..U(0x0652)..U(0x0670).."" = "",
			},
		},
		"apc" = {
			"name" = "Tiếng Ả Rập Bắc Levant",
			"article" = "Tiếng Ả Rập Bắc Levant",
			"direction" = "rtl", -- Should be in the script data module.
			"replacements" = {
				-- ālif with wasla is replaced by ālif;
				U(0x0671) = U(0x0627),
				-- taṭwīl, fatḥatan, ḍammatan, kasratan,
				-- fatḥa, ḍamma, kasra,
				-- shadda, sukūn, and superscript (dagger) ālif are removed.
				""..U(0x0640)..U(0x064B)..U(0x064C)..U(0x064D)
					..U(0x064E)..U(0x064F)..U(0x0650)
					..U(0x0651)..U(0x0652)..U(0x0670).."" = "",
			},
		},
		"ajp" = {
			"name" = "Tiếng Ả Rập Nam Levant",
			"article" = "Tiếng Ả Rập Nam Levant",
			"direction" = "rtl", -- Should be in the script data module.
			"replacements" = {
				-- ālif with wasla is replaced by ālif;
				U(0x0671) = U(0x0627),
				-- taṭwīl, fatḥatan, ḍammatan, kasratan,
				-- fatḥa, ḍamma, kasra,
				-- shadda, sukūn, and superscript (dagger) ālif are removed.
				""..U(0x0640)..U(0x064B)..U(0x064C)..U(0x064D)
					..U(0x064E)..U(0x064F)..U(0x0650)
					..U(0x0651)..U(0x0652)..U(0x0670).."" = "",
			},
		},
		"arz" = {
			"name" = "Tiếng Ả Rập Ai Cập",
			"article" = "Tiếng Ả Rập Ai Cập",
			"direction" = "rtl", -- Should be in the script data module.
			"replacements" = {
				-- ālif with wasla is replaced by ālif;
				U(0x0671) = U(0x0627),
				-- taṭwīl, fatḥatan, ḍammatan, kasratan,
				-- fatḥa, ḍamma, kasra,
				-- shadda, sukūn, and superscript (dagger) ālif are removed.
				""..U(0x0640)..U(0x064B)..U(0x064C)..U(0x064D)
					..U(0x064E)..U(0x064F)..U(0x0650)
					..U(0x0651)..U(0x0652)..U(0x0670).."" = "",
			},
		},
		"av" = {
			"name" = "Tiếng Avar"
		},
		"be" = {
			"article" = "Tiếng Belarus",
			"replacements" = { acute = "", },
		},
		"bn" = {
			"name" = "Tiếng Bengal",
			"article" = "Tiếng Bengal",
		},
		"bua" = {
			"name" = "Tiếng Buryat",
		},
		"cel-pro" = {							-- Incorrect tag
			"name" = "Tiếng Celt nguyên thủy",
			"Wikipedia_code" = "cel-x-proto",
		},
		"cel-x-proto" = {
			"name" = "Tiếng Celt nguyên thủy",
		},
		"cel-bry-pro" = {						-- Incorrect tag
			"name" = "Tiếng Britton nguyên thủy",
			"article" = "Tiếng Britton thông dụng",
			"type" = "reconstructed",
		},
	    "com" = {
	    	"name" = "Tiếng Comanche",
	    	"article" = "Tiếng Comanche",
	    },
		"cu" = {
			"name" = "Tiếng Slav Giáo hội cổ",
			"article" = "Tiếng Slav Giáo hội cổ",
		},
		"de" = {
			"name" = "Tiếng Đức",
			"article" = "Tiếng Đức",
		},
		"en" = {
			"name" = "Tiếng Anh",
			"article" = "Tiếng Anh",
		},
		"es" = {
			"name" = "Tiếng Tây Ban Nha",
			"article" = "Tiếng Tây Ban Nha",
		},
		"egy" = {
			"name" = "Tiếng Ai Cập",
		},
		"evn" = {
			"name" = "Tiếng Evenk",
			"article" = "Tiếng Evenk",
		},
		"fr" = {
			"name" = "Tiếng Pháp",
			"article" = "Tiếng Pháp",
		},
		"frm" = {
			"name" = "Tiếng Pháp trung đại",
			"article" = "Tiếng Pháp trung đại",
		},
		"frp" = {
			"name" = "Tiếng Franco-Provençal",
		},
		"ff" = {
			"name" = "Tiếng Fula",
		},
		"gem-pro" = {							-- Incorrect tag
			"name" = "Tiếng Đức nguyên thủy",
			"article" = "Tiếng Đức nguyên thủy",
			"type" = "reconstructed",
			"replacements" = {},
			"Wikipedia_code" = "gem-x-proto",
		},
		"gem-x-proto" = {
			"name" = "Tiếng Đức nguyên thủy",
			"article" = "Tiếng Đức nguyên thủy",
			"type" = "reconstructed",
			"replacements" = {},
		},
		"gml" = {
			"name" = "Tiếng Đức Hạ Trung",
		},
		"gmw-ecg" = {
			"name" = "Tiếng Đức Đông Trung",
		},
		"gmw-x-proto" = {
			"name" = "Tiếng Tây Đức nguyên thủy",
			"article" = "Tiếng Tây Đức nguyên thủy",
			"type" = "reconstructed",
			"replacements" = {},
		},
		"gmq-x-gut" = {
			"name" = "Tiếng Gut",
			"article" = "Tiếng Gut",
		},
		"goh" = {
			"replacements" = {
				decompose = true,
				from = {
					"" .. macron .. circumflex .. diaeresis .. "",
				},
			},
		},
		"got" = {
			"name" = "Tiếng Goth",
			"article" = "Tiếng Goth",
			"replacements" = {
				-- Latin to Gothic since people will not want to have to copy
				-- and paste Gothic letters in
				"AÁaáĀā" = "𐌰",
				"Bb"     = "𐌱",
				"Gg"     = "𐌲",
				"Dd"     = "𐌳",
				"EeĒē"   = "𐌴",
				"Qq"     = "𐌵",
				"Zz"     = "𐌶",
				"Hh"     = "𐌷",
				"Þþ"     = "𐌸",
				"IiÍí"   = "𐌹",
				"Kk"     = "𐌺",
				"Ll"     = "𐌻",
				"Mm"     = "𐌼",
				"Nn"     = "𐌽",
				"Jj"     = "𐌾",		
				"UuÚúŪū" = "𐌿",	
				"Pp"     = "𐍀",		
				"Rr"     = "𐍂",	
				"Ss"     = "𐍃",	
				"Tt"     = "𐍄",	
				"WwYy"   = "𐍅",
				"Ff"     = "𐍆",
				"Xx"     = "𐍇",
				"Ƕƕ"    = "𐍈", -- Not sure if "hw" and "hv" can safely be converted
				"OoŌō"   = "𐍉",
			},
		},
		"gsw" = {
			"name" = "Tiếng Alemanni",
		},
		"grc" = {
			"name" = "Hy Lạp cổ đại",
			"article" = "Hy Lạp cổ đại",
			"replacements" = {
				decompose = true,
				from = {
					-- Replace variant letterforms with standard ones.
					"ϐ", "ϵ", "ϑ", "ϰ", "ϱ", "ϲ", "ϕ",
					-- Remove macrons and breves.
					"" .. macron .. breve .. undertie .. ""
				},
				to   = {
					"β", "ε", "θ", "κ", "ρ", "σ", "φ",
				}
			},
		},
		"grk-pro" = {							-- Incorrect tag
			"name" = "Tiếng Hy Lạp nguyên thủy",
			"Wikipedia_name" = "Tiếng Hy Lạp nguyên thủy",
			"article" = "Tiếng Hy Lạp nguyên thủy",
			"type" = "reconstructed",
			"replacements" = {},
			"Wikipedia_code" = "grk-x-proto",
		},
		"grk-x-proto" = {
			"name" = "Tiếng Hy Lạp nguyên thủy",
			"Wikipedia_name" = "Tiếng Hy Lạp nguyên thủy",
			"article" = "Tiếng Hy Lạp nguyên thủy",
			"type" = "reconstructed",
			"replacements" = {},
		},
		"grt" = {
			"name" = "Tiếng Garo",
		},
		"ha" = {
			"name" = "Tiếng Hausa",
			-- remove tilde, grave, acute, macron, circumflex
			"replacements" = {
				decompose = true,
				from = { "" .. grave .. circumflex .. macron .. acute .. tilde .. "" },
			},
		},
		"hi" = {
			"name" = "Tiếng Hindi",
			"article" = "Tiếng Hindi",
		},
		"ine-bsl-pro" = {
			"name" = "Tiếng Balt-Slav nguyên thủy",
			"article" = "Tiếng Balt-Slav nguyên thủy",
			"type" = "reconstructed",
		},
		"ine-pro" = {							-- Incorrect tag
			"name" = "Tiếng Ấn-Âu nguyên thủy",
			"article" = "Tiếng Ấn-Âu nguyên thủy",
			"type" = "reconstructed",
			"replacements" = {},
			"Wikipedia_code" = "ine-x-proto",
		},
		"ine-x-proto" = {
			"name" = "Tiếng Ấn-Âu nguyên thủy",
			"article" = "Tiếng Ấn-Âu nguyên thủy",
			"type" = "reconstructed",
			"replacements" = {},
		},
		"ja" = {
			"name" = "Tiếng Nhật",
			"article" = "Tiếng Nhật",
		},
		"jbo" = { -- Lojban
			"type" = "appendix",
		},
		"ket" = {
			"name" = "Tiếng Ket",
			"article" = "Tiếng Ket",
		},
		"ksk" = {
			"name" = "Tiếng Kansa",
			"article" = "Tiếng Kansa",
		},
		"la" = {
			"name" = "Tiếng Latinh",
			"article" = "Tiếng Latinh",
			"replacements" = {
				decompose = true,
				from = { "" .. macron .. breve .. diaeresis .. "" },
			},
		},
		"lt" = {
			"name" = "Tiếng Litva",
			-- remove acute, tilde, grave
			"replacements" = {
				decompose = true,
				from = { "" .. acute .. tilde .. grave .. "" },
			},
		},
		"moe" = {
			"name" = "Tiếng Cree",
		},
		"mul" = {
			"name" = "Đa ngôn ngữ",
			"article" = "",
		},
		"nci" = {
			"name" = "Tiếng Nahuatl cổ điển",
			"article" = "Tiếng Nahuatl cổ điển",
			-- Remove macrons, acutes, circumflexes and graves
			"replacements" = {
				decompose = true,
				-- Remove macrons, acutes, circumflexes, graves, and saltillo;
				-- see Saltillo (linguistics).
				from = { "" .. grave .. acute .. macron .. circumflex .. "Ꞌꞌʻʼ'ʔ" },
			},
		},
		"nds-de" = {
			"name" = "Tiếng Đức Hạ Đức",
		},
		"non" = {
			"name" = "Tiếng Bắc Âu cổ",
		},
		"non-x-proto" = {
			"name" = "Tiếng Bắc Âu nguyên thủy",
		},
		"odt" = {
			"name" = "Tiếng Hà Lan",
		},
		"oge" = {
			"name" = "Tiếng Gruzia cổ",
		},
		"oj" = {
			"name" = "Tiếng Ojibwe",
		},
		"orv" = {
			"name" = "Tiếng Slav Đông cổ",
			"article" = "Tiếng Slav Đông cổ",
			"replacements" = {
				U(0x484) = "",
			},
		},
		"osx" = {
			"name" = "Tiếng Saxon Cổ",
		},
		"pt" = {
			"name" = "Tiếng Bồ Đào Nha",
			"article" = "Tiếng Bồ Đào Nha",
			-- "scripts" = { "Latn" },
		},
		"pa" = {
			"name" = "Tiếng Punjab",
			"article" = "Tiếng Punjab",
		},
		"pgl" = {
			"name" = "Tiếng Ireland nguyên thủy",
			"article" = "Tiếng Ireland nguyên thủy",
		},
		"pis" = {
			"name" = "Tiếng Pijin",
			"article" = "Tiếng Pijin",
		},
		"poz-x-poly-proto" = {
			"name" = "Tiếng Polynesia nguyên thủy",
			"article" = "Tiếng Polynesia nguyên thủy",
			"type" = "reconstructed",
		},
		"rap" = {
			"name" = "Tiếng Rapa Nui",
			"article" = "Tiếng Rapa Nui",
		},
		"ru" = {
			"name" = "Tiếng Nga",
			"article" = "Tiếng Nga",
			"replacements" = { acute = "", },
		},
		"rw" = {
			"name" = "Tiếng Rwanda-Rundi",
		},
		"se" = {
			"replacements" = {
				"(đflmnŋrsšŧv)'%1" = "%1%1",
			},
		},
		"sem-pro" = {
			"name" = "Tiếng Semit nguyên thủy",
			"article" = "Tiếng Semit nguyên thủy",
			"type" = "reconstructed",
		},
		"sh" = {
			"article" = "Tiếng Serbo-Croatia",
			"replacements" = {
				decompose = true,
				from =  { "(AaEeIiOoUuRrАаЕеИиОоУуРр)" .. double_grave
					.. grave .. invbreve .. acute .. macron .. tilde .. "" },
				to   = { "%1" },
			},
		},
		"sl" = {
			"name" = "Tiếng Slovene",
			"replacements" = {
				decompose = true,
				-- remove tonal orthography
				from = {"ł", "" .. grave .. acute .. macron .. double_grave .. invbreve .. circumflex .. dot_below .. ""},
				to = {"l"},
			},
		},
		"sla-pro" = {
			"name" = "Tiếng Slav nguyên thủy", -- also Common Slavic
			"type" = "reconstructed",
			"replacements" = {
				"ÀÁÃĀȀȂ" = "A",
				"àáãāȁȃ" = "a",
				"ÈÉẼĒȄȆ" = "E",
				"èéẽēȅȇ" = "e",
				"ÌÍĨĪȈȊ" = "I",
				"ìíĩīȉȋ" = "i",
				"ÒÓÕŌȌȎŐ" = "O", 
				"òóõōȍȏő" = "o",
				"ÙÚŨŪȔȖŰ" = "U",
				"ùúũūȕȗű" = "u",
				"ỲÝỸȲ" = "Y",
				"ỳýỹȳ" = "y",
				"Ǭ" = "Ǫ",
				"ǭ" = "ǫ",
				"" .. grave .. acute .. double_acute .. tilde .. macron .. double_grave .. invbreve .. "" = "",
				"ĭ" = "ь",
				"ŭ" = "ъ",
			},
		},
		"tts" = {
			"name" = "Tiếng Isan", -- also "Northeastern Thai"
			"article" = "Tiếng Isan",
		},
		"ug" = {
			"name" = "Tiếng Duy Ngô Nhĩ", --also less commonly "Uighur"
			"article" = "Tiếng Duy Ngô Nhĩ",
		},
		"uk" = {
			"article" = "Tiếng Ukraina",
			"replacements" = { acute = "", }
		},
		"ur" = {
			"name" = "Tiếng Urdu",
			"article" = "Tiếng Urdu",
		},
		"xcl" = {
			"name" = "Tiếng Armenia cổ",
			"article" = "Tiếng Armenia cổ điển",
			"replacements" = {
				"՞՜՛՟" = "",
				"և" = "եւ",
			},
		},
		"xgf" = {
			"name" = "Tiếng Gabrielino-Fernandeño", -- not ISO name "Gabrielino-Fernandeño"
			"article" = "Tiếng Gabrielino-Fernandeño",
			"replacements" = {
				"'`ʔ" = "ʼ",
			},
		},
		"xlu" = {
			"name" = "Tiếng Luwia", -- not ISO name "Cuneiform Luwian"
			"article" = "Chữ hình nêm tiếng Luwia"
		},
		"xpq" = {
			"name" = "Tiếng Mohegan-Pequot",
		},
		"xxt" = {
			"name" = "Tiếng Tambora",
			"article" = "Tiếng Tambora",
		},
		"xvn" = {
			"name" = "Tiếng Vandal",
			"article" = "Tiếng Vandal",
		},
		"yua" = {
			"name" = "Tiếng Maya Yucatán",
			"article" = "Tiếng Maya Yucatán",
		},
		"zh" = {
			"name" = "Tiếng Trung Quốc",
			"article" = "Tiếng Trung Quốc",
			-- "scripts" = { "Hani" },
		},
		"zle-ort" = {
			"name" = "Tiếng Ruthen cổ",
			"article" = "Tiếng Ruthen cổ",
			"replacements" = { acute = "", },
		},
	},
-- Here, keys (for example, "gem") are Wikipedia language codes used in
-- , and values (for example, "gem-pro") are the equivalent Wiktionary
-- code.
-- Subtags are not currently supported.
	"redirects" = {
		"aae" = "sq",
		"aiq" = "fa",
		"aln" = "sq",
		"als" = "sq",
		"azb" = "az",
		"azj" = "az",
		"bgn" = "bal",
		"bs" = "sh",
		"bxr" = "bua",
		"ciw" = "oj",
		"cnr" = "sh",
		"fil" = "tl",
		"fuf" = "ff",
		"gem" = "gem-pro", -- Not correct, but is commonly used.
		"hak" = "zh",
		"hbo" = "he",
		"hr" = "sh",
		"ine" = "ine-pro", -- Not correct, but might be commonly used.
		"kjv" = "sh",
		"nan" = "zh",
		"prs" = "fa",
		"rn" = "rw",
		"sli" = "gmw-ecg",
		"sr" = "sh",
		"src" = "sc",
		"sro" = "sc",
		"tw" = "ak",
		"wae" = "gsw",
		"wep" = "nds-de",
		"yue" = "zh",
		"xno" = "fro",
	},
}
return data