Module documentation

Data retrieval from Commons using Module:NUMBEROF/data. Invoked by Module:NUMBEROFGROUP one time per page.

local groups = {
	-- ine: Indo-European
	gem = {"en", "de", "nl", "sv", "no", "da", "nn", "simple", "lb", "is", "fy", "af", "nds", "als", "yi", "li", "sco", "fo", "nds-nl", "vls", "bar", "ang", "ksh", "stq", "pdc", "frr", "pfl", "zea", "got"},
	itc = {"fr", "it", "es", "pt", "ca", "ro", "gl", "roa-rup", "la", "nap", "pms", "oc", "an", "lmo", "scn", "ast", "wa", "vec", "roa-tara", "co", "nrm", "rm", "fur", "lij", "lad", "sc", "frp", "ext", "pcd", "eml", "mwl", "mo", "lld"},
	sla = {"ru", "pl", "uk", "sr", "cs", "sh", "bg", "sk", "hr", "be", "sl", "mk", "bs", "be-tarask", "szl", "hsb", "rue", "rsk", "csb", "dsb", "cu"},
	iir = {"fa", "tg", "diq", "ku", "ckb", "mzn", "os", "ps", "lrc", "glk", "tly"},
	inc = {"hi", "mr", "bpy", "bn", "gu", "ur", "ne", "pnb", "sa", "si", "dv", "hif", "bh", "pi", "pa", "or", "rmy", "as", "sd", "ks", "mai", "gom", "awa", "skr", "dty", "anp"},
	bat = {"lt", "lv", "bat-smg", "ltg"},
	cel = {"br", "cy", "ga", "gd", "gv", "kw"},
	hyx = {"hy", "hyw"},
	grk = {"el", "pnt"},
	sqj = {"sq"},
	-- map: Austronesian
	phi = {"ceb", "war", "tl", "ilo", "gor", "bcl", "pam", "pag"},
	["poz--phi"] = {"iba", "id", "ms", "min", "jv", "su", "bug", "map-bms", "ace", "bjn", "ch", "kge", "mad", "ban", "nia", "mg", "bbc", "btm", "bdr"},
	fox = {"szy", "tay", "trv", "ami", "pwn"},
	Polynesian = {"dtp", "mi", "haw", "to", "ty", "sm"},
	Micronesian = {"na", "mh"},
	["East Fijian"] = {"fj"},
	["Timor-Babar"] = {"tet"},
	["Papuan Tip"] = {"ho"},
	-- afa: Afroasiatic
	sem = {"ar", "he", "am", "arz", "mt", "arc", "ti", "ary"},
	cdc = {"ha"},
	cus = {"so", "om", "aa"},
	ber = {"kab", "shi", "zgh"},
	-- sit: Sino-Tibetan
	zhx = {"zh", "zh-yue", "zh-min-nan", "gan", "wuu", "zh-classical", "hak", "cdo"},
	tbq = {"new", "mni", "my", "bo", "dz", "ii", "blk"},
	-- trk: Turkic
	["Common Turkic"] = {"tr", "az", "kk", "tt", "uz", "sah", "tk", "ug", "krc", "crh", "ky", "ba", "gag", "kaa", "azb", "tyv", "alt"},
	Oghur = {"cv"},
	-- urj: Uralic
	fiu = {"hu", "et", "mrj", "mhr", "se", "vep", "myv", "fiu-vro", "kv", "udm", "koi", "olo", "smn", "mdf", "fi"},
	-- aav: Austroasiatic
	mkh = {"vi", "km", "mnw"},
	mun = {"sat"},
	-- Japonic
	jpx = {"ja"},
	-- Koreanic
	Koreanic = {"ko"},
	-- Constructed
	art = {"eo", "vo", "io", "ia", "nov", "ie", "jbo", "lfn", "avk"},
	-- Vasconic
	euq = {"eu"},
	-- ccn: North Caucasian
	["ccn-e"] = {"ce", "lbe", "av", "lez", "inh"},
	["ccn-w"] = {"ab", "kbd", "ady"},
	-- Dravidian
	dra = {"te", "ta", "mi", "kn", "tcy"},
	-- Kartvelian
	ccs = {"ka", "xmf"},
	-- Kra-Dai
	tai = {"th", "lo", "za", "shn", "tdd"},
	-- nic: Niger-Congo
	bnt = {"sw", "rw", "ln", "kg", "nr", "ss", "zu", "ve", "ts", "rn", "tum", "lg", "ny", "st", "xh", "tn", "ki", "sn", "ng", "kj", "hz", "nso"},
	Yoruboid = {"yo", "igl"},
	alv = {"ann", "kbp", "wo", "ff", "dag", "dga", "gur", "guw", "kcg", "kus", "mos"},
	Kwa = {"ee", "ak", "tw", "fat", "fon", "guw"},
	Igboid = {"ig"},
	dmn = {"bm", "nqo"},
	Ubangian = {"sg"},
	-- crp: Creole
	cpf = {"ht", "gcr"},
	cpe = {"tpi", "srn", "bi", "pih", "jam", "pcm", "gpe"},
	cpp = {"pap"},
	["Malay-Creoles"] = {"bew"},
	["Spanish-Creoles"] = {"cbk-zam"},
	-- xgn: Mongolic
	["Central Mongolic"] = {"mn", "xal", "bxr"},
	-- Quechuan
	qwe = {"qu"},
	-- Dene-Yeniseian
	xnd = {"nv"},
	-- Uto-Aztecan
	azc = {"nah"},
	-- Aymaran
	Aymaran = {"ay"},
	-- Je-Tupi-Carib
	tup = {"gn"},
	-- Algic
	alg = {"cr", "chy", "atj"},
	-- Eskimo-Aleut
	esx = {"kl", "ik", "iu"},
	-- Iroquoian
	iro = {"chr"},
	-- Arawakan
	awd = {"guc"},     
	-- ssa: Nilo-Saharan
	Nilotic = {"din"}, 
	Saharan = {"kr"},   
	--Muskogean 
	Muskogean = {"cho", "mus"},
	total = {"total"}
}
local langData = mw.loadData("Module:NUMBEROF/data")
local langMap = langData.map
langData = langData.data
local groupData = {}
for family, languages in pairs(groups) do
	local i = 1
	local myData = {}
	while i < 8 do
		local total = 0
		for _, language in pairs(languages) do
			local myLangData = langData[language .. ".wikipedia"];
			if myLangData ~= nil then
				total = total + myLangData[i];
			end
		end
		myData[i] = total
		i = i + 1;
	end
	groupData[family] = myData
end
-- This should not be needed ...
local mapClone = {}
for k, v in pairs(langMap) do
	mapClone[k] = v
end
return {
	data = groupData,
	map = mapClone
}