Jump to content

Module:NUMBEROFGROUP/data

From Meta, a Wikimedia project coordination wiki
Module documentation

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

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