มอดูล:Language/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" = {
		"ab" = {
			"name" = "Abkhaz",
		},
		"ang" = {
			"name" = "ภาษาอังกฤษเก่า",
			"article" = {"ภาษาอังกฤษเก่า"},
			-- Remove macrons, acutes, and overdots
			"replacements" = {
				decompose = true,
				from = { "" .. macron .. acute .. dot .. "" },
			},
		},
		"ar" = {
			"name" = "ภาษาอาหรับ",
			"article" = "ภาษาอาหรับ",
			"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" = "Avar"
		},
		"be" = {
			"article" = "Belarusian language",
			"replacements" = { acute = "", },
		},
		"bn" = {
			"name" = "เบงกอล",
			"article" = "ภาษาเบงกอล",
		},
		"bua" = {
			"name" = "บูร์ยัต",
		},
		"cel-pro" = {							-- Incorrect tag
			"name" = "Proto-Celtic",
			"Wikipedia_code" = "cel-x-proto",
		},
		"cel-x-proto" = {
			"name" = "Proto-Celtic",
		},
		"cu" = {
			"name" = "Old Church Slavonic",
			"article" = "Old Church Slavonic",
		},
		"de" = {
			"name" = "ภาษาเยอรมัน",
			"article" = "ภาษาเยอรมัน",
		},
		"en" = {
			"name" = "ภาษาอังกฤษ",
			"article" = "ภาษาอังกฤษ",
		},
		"es" = {
			"name" = "ภาษาสเปน",
			"article" = "ภาษาสเปน",
		},
		"egy" = {
			"name" = "Egyptian",
		},
		"fr" = {
			"name" = "ภาษาฝรั่งเศส",
			"article" = "ภาษาฝรั่งเศส",
		},
		"frm" = {
			"name" = "Middle French",
			"article" = "Middle French",
		},
		"frp" = {
			"name" = "ภาษาอาร์เปอตัง",
		},
		"ff" = {
			"name" = "Fula",
		},
		"gem-pro" = {							-- Incorrect tag
			"name" = "Proto-Germanic",
			"article" = "Proto-Germanic language",
			"type" = "reconstructed",
			"replacements" = {},
			"Wikipedia_code" = "gem-x-proto",
		},
		"gem-x-proto" = {
			"name" = "Proto-Germanic",
			"article" = "Proto-Germanic language",
			"type" = "reconstructed",
			"replacements" = {},
		},
		"gml" = {
			"name" = "Middle Low German",
		},
		"gmw-ecg" = {
			"name" = "East Central German",
		},
		"goh" = {
			"replacements" = {
				decompose = true,
				from = {
					"" .. macron .. circumflex .. diaeresis .. "",
				},
			},
		},
		"got" = {
			"name" = "Gothic",
			"article" = "Gothic language",
			"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" = "Alemannic German",
		},
		"grc" = {
			"name" = "Ancient Greek",
			"article" = "Ancient Greek",
			"replacements" = {
				decompose = true,
				from = {
					-- Replace variant letterforms with standard ones.
					"ϐ", "ϵ", "ϑ", "ϰ", "ϱ", "ϲ", "ϕ",
					-- Remove macrons and breves.
					"" .. macron .. breve .. undertie .. ""
				},
				to   = {
					"β", "ε", "θ", "κ", "ρ", "σ", "φ",
				}
			},
		},
		"grk-pro" = {
			"name" = "Proto-Hellenic",
			"Wikipedia_name" = "Proto-Greek",
			"article" = "Proto-Greek language",
			"type" = "reconstructed",
			"replacements" = {},
		},
		"ha" = {
			"name" = "Hausa",
			-- remove tilde, grave, acute, macron, circumflex
			"replacements" = {
				decompose = true,
				from = { "" .. grave .. circumflex .. macron .. acute .. tilde .. "" },
			},
		},
		"hi" = {
			"name" = "ภาษาฮินดี",
			"article" = "ภาษาฮินดี",
		},
		"ine-bsl-pro" = {
			"name" = "Proto-Balto-Slavic",
			"article" = "Proto-Balto-Slavic language",
			"type" = "reconstructed",
		},
		"ine-pro" = {							-- Incorrect tag
			"name" = "Proto-Indo-European",
			"article" = "Proto-Indo-European language",
			"type" = "reconstructed",
			"replacements" = {},
			"Wikipedia_code" = "ine-x-proto",
		},
		"ine-x-proto" = {
			"name" = "Proto-Indo-European",
			"article" = "Proto-Indo-European language",
			"type" = "reconstructed",
			"replacements" = {},
		},
		"ja" = {
			"name" = "ภาษาญี่ปุ่น",
			"article" = "ภาษาญี่ปุ่น",
		},
		"jbo" = { -- Lojban
			"type" = "appendix",
		},
		"la" = {
			"name" = "ภาษาละติน",
			"article" = "ภาษาละติน",
			"replacements" = {
				decompose = true,
				from = { "" .. macron .. breve .. diaeresis .. "" },
			},
		},
		"lt" = {
			"name" = "Lithuanian",
			-- remove acute, tilde, grave
			"replacements" = {
				decompose = true,
				from = { "" .. acute .. tilde .. grave .. "" },
			},
		},
		"moe" = {
			"name" = "Cree",
		},
		"mul" = {
			"name" = "Translingual",
			"article" = "",
		},
		"nci" = {
			"name" = "Classical Nahuatl",
			"article" = "Classical Nahuatl",
			-- 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" = "German Low German",
		},
		"oge" = {
			"name" = "Old Georgian",
		},
		"oj" = {
			"name" = "Ojibwe",
		},
		"orv" = {
			"name" = "Old East Slavic",
			"article" = "Old East Slavic",
			"replacements" = {
				U(0x484) = "",
			},
		},
		"osx" = {
			"name" = "Old Saxon",
		},
		"pt" = {
			"name" = "ภาษาโปรตุเกส",
			"article" = "ภาษาโปรตุเกส",
			-- "scripts" = { "Latn" },
		},
		"pa" = {
			"name" = "ภาษาปัญจาบ",
			"article" = "ภาษาปัญจาบ",
		},
		"ru" = {
			"name" = "ภาษารัสเซีย",
			"article" = "ภาษารัสเซีย",
			"replacements" = { acute = "", },
		},
		"rw" = {
			"name" = "Rwanda-Rundi",
		},
		"se" = {
			"replacements" = {
				"(đflmnŋrsšŧv)'%1" = "%1%1",
			},
		},
		"sem-pro" = {
			"name" = "Proto-Semitic",
			"article" = "Proto-Semitic",
			"type" = "reconstructed",
		},
		"sh" = {
			"article" = "ภาษาบอสเนีย-โครเอเชีย-มอนเตเนโกร-เซอร์เบีย",
			"replacements" = {
				decompose = true,
				from =  { "(AaEeIiOoUuRrАаЕеИиОоУуРр)" .. double_grave
					.. grave .. invbreve .. acute .. macron .. tilde .. "" },
				to   = { "%1" },
			},
		},
		"sl" = {
			"name" = "ภาษาสโลวีเนีย",
			"replacements" = {
				decompose = true,
				-- remove tonal orthography
				from = {"ł", "" .. grave .. acute .. macron .. double_grave .. invbreve .. circumflex .. dot_below .. ""},
				to = {"l"},
			},
		},
		"sla-pro" = {
			"name" = "Proto-Slavic", -- 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 .. "" = "",
				"ĭ" = "ь",
				"ŭ" = "ъ",
			},
		},
		"uk" = {
			"article" = "ภาษายูเครน",
			"replacements" = { acute = "", }
		},
		"ur" = {
			"name" = "ภาษาอูรดู",
			"article" = "ภาษาอูรดู",
		},
		"zh" = {
			"name" = "ภาษาจีน",
			"article" = "ภาษาจีน",
			-- "scripts" = { "Hani" },
		},
		"xcl" = {
			"name" = "Old Armenian",
			"article" = "Classical Armenian",
			"replacements" = {
				"՞՜՛՟" = "",
				"և" = "եւ",
			},
		},
		"xgf" = {
			"name" = "Tongva", -- not ISO name "Gabrielino-Fernandeño"
			"article" = "Tongva language",
			"replacements" = {
				"'`ʔ" = "ʼ",
			},
		},
		"xvn" = {
			"name" = "Vandalic",
			"article" = "Vandalic language",
		},
		"yua" = {
			"name" = "Yucatec Maya",
			"article" = "Yucatec Maya language",
		},
	},
-- 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