Модуль:Огляд мов

Матеріал з Вікісловника

Документацію для цього модуля можна створити у Модуль:Огляд мов/документація

local p = {}
local raus = ""

function p.main(frame)
	args = frame.args
	args1 = {}
	if args[1] then s = args[1] 
		for w in (s..","):gmatch("([^,]+), *") do
			table.insert(args1, w)
		end
	end
	sumo = 0

	Lingvoj = args1 or { "Albana", "Malnovgreka", "Angla", "Araba", "Armena", "Baska", "Bosna", "Bulgara", "Weißrussisch", "Chinesisch", "Dänisch", "Deutsch", "Englisch", "Esperanto", "Estnisch", "Färöisch", "Finnisch", "Französisch", "Friaulisch", "Indonezia", "Irisch", "Isländisch", "Italienisch", "Inguschische", "Japanisch", "Katalanisch", "Koreanisch", "Krimtatarisch", "Kurdisch", "Latein", "Lettisch", "Litauisch", "Maori", "Mittellatein", "Neugriechisch", "Neulatein", "Niederländisch", "Norwegisch", "Obersorbisch", "Okzitanisch", "Persisch", "Plattdeutsch", "Polnisch", "Portugiesisch", "Prußisch", "Rumänisch", "Russisch", "Sardisch", "Sveda", "Serbisch", "Sesotho", "Slowakisch", "Spanisch", "Suaheli", "Sumerisch", "Türkisch", "Thai", "Tschechisch", "Ungarisch", "Venezianisch", "Walisisch", "Zentral-Nahuatl" }
	Superrigardo = { }
	Geszahl = mw.site.stats.articles
	
	local root = mw.html.create('table')
	root:addClass('wikitable sortable zebra centered') 
	root:css('text-align','right')
	tagtr = root:tag('tr')
		:tag('th')
		:tag('th')
			:wikitext('Мова/Категорія')		
		:tag('th')
			:wikitext('Слів')		
		:tag('th')
			:addClass('unsortable')
			:wikitext('Відсоток')		
        if args[2] then
                tagtr:tag('th')
			:addClass('unsortable')
			:wikitext(args[2])
        end
	tagtr = root:tag('tr')
		:addClass('unsortable')
		:tag('th')
		:tag('th')
			:wikitext('Слів загалом')		
		:tag('th')
			:wikitext(Geszahl)		
		:tag('th')
			:wikitext('100,00 ')		
        if args[2] then
                tagtr:tag('th')
			:addClass('unsortable')
			:wikitext(' ')
        end
	for k, Sprache in ipairs(Lingvoj) do
		Superrigardo[k] = {k, mw.site.stats.pagesInCategory(Sprache,"pages")}
	end
	table.sort(Superrigardo, function (k1, k2) return k1[2]>k2[2] end )
	zaehler = 1
	for k,Ue in ipairs(Superrigardo) do
		link = mw.title.new("Категорія:" .. Lingvoj[Ue[1]])
		tagtr = root:tag('tr')
			:tag('td')
				:wikitext(zaehler .. ".")
			:tag('td')
				:css('text-align','left')
				-- :wikitext(string.format( "[%s %s]", tostring(link:fullUrl()), Lingvoj[Ue[1]]))
				:wikitext("[[:Категорія:" ..  Lingvoj[Ue[1]] .. "|" ..  Lingvoj[Ue[1]] .. "]]")
			:tag('td')
				:wikitext(Ue[2])
			:tag('td')
				:wikitext(string.format("%.2f",Ue[2]/Geszahl*100))
                if args[2] then
		        tagtr:tag('td')
			:addClass('unsortable')
			:css('text-align','left')
			:wikitext("[[" .. mw.title.getCurrentTitle().prefixedText .. "/" .. args[2] .. " (" .. Lingvoj[Ue[1]] .. ")|" .. args[2] .. "]]")
                end
		zaehler = zaehler + 1
		sumo = sumo + Ue[2]
	end
        if frame.args.Sumo then
	   tagtr = root:tag('tr')
		tagtr:tag('td')
			:wikitext("")
		tagtr:tag('td')
			:css('text-align','left')
			-- :wikitext(string.format( "[%s %s]", tostring(link:fullUrl()), Lingvoj[Ue[1]]))
			:wikitext("'''Sumo'''")
		tagtr:tag('td')
			:wikitext(sumo)
		tagtr:tag('td')
			:wikitext(string.format("%.2f",sumo/Geszahl*100))
        end
	return tostring(root)
end

return p