Modul:Sprachenübersicht
Dieses Modul dient vorrangig dazu Wiktionary:Statistik/Sprachenübersicht zu erzeugen. Man kann es aber auch anderweitig einsetzen, um eine Tabelle mit ausgewählten Sprachen zu erzeugen. Über einen weiteren Parameter wird eine weitere Spalte mit einem Link erzeugt, über den eine entsprechend benannte Unterseite erreicht wird, die dann mit detaillierteren Statistiken zur jeweiligen Sprache dienen kann. Mittels des Parameters Summe=1 wird am Ende der Tabelle eine Summe angezeigt.
Beispiel
{{#invoke:Sprachenübersicht|main|Russisch,Ukrainisch,Weißrussisch}}
Sprache/Kategorie | Einträge | Prozent | |
---|---|---|---|
Einträge gesamt | 1144246 | 100,00 | |
1. | Ukrainisch | 14997 | 1.31 |
2. | Weißrussisch | 6461 | 0.56 |
3. | Russisch | 3525 | 0.31 |
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
summe = 0
Sprachen = args1 or { "Albanisch", "Altgriechisch", "Arabisch", "Armenisch", "Baskisch", "Bosnisch", "Bulgarisch", "Chinesisch", "Dänisch", "Deutsch", "Englisch", "Esperanto", "Estnisch", "Färöisch", "Finnisch", "Französisch", "Friaulisch", "Indonesisch", "Irisch", "Isländisch", "Italienisch", "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", "Schwedisch", "Serbisch", "Sesotho", "Slowakisch", "Spanisch", "Suaheli", "Sumerisch", "Türkisch", "Thai", "Tschechisch", "Ungarisch", "Venezianisch", "Walisisch", "Zentral-Nahuatl" }
Uebersicht = { }
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('Sprache/Kategorie')
:tag('th')
:wikitext('Einträge')
:tag('th')
:addClass('unsortable')
:wikitext('Prozent')
if args[2] then
tagtr:tag('th')
:addClass('unsortable')
:wikitext(args[2])
end
tagtr = root:tag('tr')
:addClass('unsortable')
:tag('th')
:tag('th')
:wikitext('Einträge gesamt')
: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(Sprachen) do
Uebersicht[k] = {k, mw.site.stats.pagesInCategory(Sprache,"pages")}
end
table.sort(Uebersicht, function (k1, k2) return k1[2]>k2[2] end )
zaehler = 1
for k,Ue in ipairs(Uebersicht) do
link = mw.title.new("Kategorie:" .. Sprachen[Ue[1]])
tagtr = root:tag('tr')
:tag('td')
:wikitext(zaehler .. ".")
:tag('td')
:css('text-align','left')
-- :wikitext(string.format( "[%s %s]", tostring(link:fullUrl()), Sprachen[Ue[1]]))
:wikitext("[[:Kategorie:" .. Sprachen[Ue[1]] .. "|" .. Sprachen[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] .. " (" .. Sprachen[Ue[1]] .. ")|" .. args[2] .. "]]")
end
zaehler = zaehler + 1
summe = summe + Ue[2]
end
if frame.args.Summe then
tagtr = root:tag('tr')
tagtr:tag('td')
:wikitext("")
tagtr:tag('td')
:css('text-align','left')
-- :wikitext(string.format( "[%s %s]", tostring(link:fullUrl()), Sprachen[Ue[1]]))
:wikitext("'''Summe'''")
tagtr:tag('td')
:wikitext(summe)
tagtr:tag('td')
:wikitext(string.format("%.2f",summe/Geszahl*100))
end
return tostring(root)
end
return p