Modul:Nyelvkódszűrő
Nyelvkódszűrő[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
-- A MODUL FÜGGVÉNYEIT ÉS ADATAIT CSAK pl local valami = require('Modul:Nyelvkódszűrő)
-- MÓDON TUDJUK ELÉRNI.
-- A CitWeb és családja számára készült el.
-- kell a nyelvkódok ellenőrzéséhez
--[[
NYELVKÓDSZŰRŐ:
Kiszűri a bemenetén kapott kétjegyű nyelvkódokból pl hu,de,it,fr,qq,qx a hibásakat
a) a helyes nyelvkódokból listát csinál (hu,de,it,fr,qq,qx)
b) a hibás nyelvkódokból is listát csinál (qq,qx) és vörössel közli "hibás nyelvkód"
--]]
require('strict')
local ou = ''
local popmax = 50
local oumarad = popmax
local function pop(...) -- idézőjeles rész és bővítmények az ou számára
-- memóriatúllépést okozhat, csak teszteléshez
local list = {...}
oumarad = oumarad - 1 -- előre csökkentjük, így mindig a maradék lehetséges pop hívások számát mutatja
if oumarad == 0 then return end -- hogy ne legyen memóriatúllépés
for _, var in pairs(list) do
ou = ou .. tostring(var) .. '\n '
mw.log(ou)
end
end
-- ISO NYELVKÓDOK
local lans = {
["aa"] = "afarul",
["ab"] = "abházul",
["ae"] = "avesztaiul",
["af"] = "afrikaansul",
["ak"] = "akanul",
["am"] = "amharaiul",
["an"] = "aragóniaiul" ,
["ar"] = "arabul",
["as"] = "asszámiul" ,
["av"] = "avarul" ,
["ay"] = "ajmara" ,
["az"] = "azeriül" ,
["ba"] = "baskírul",
["be"] = "belaruszul",
["bg"] = "bolgárul",
["bh"] = "bihári nyelveken ",
["bi"] = "biszlamául",
["bm"] = "bambarául",
["bn"] = "bengáliul",
["bo"] = "tibetiül",
["br"] = "bretonul",
["bs"] = "bosnyákul",
["ca"] = "katalánul",
["ce"] = "csecsenül",
["ch"] = "csamorroul",
["co"] = "korzikaiul",
["cr"] = "kríul",
["cs"] = "csehül",
["cu"] = "óegyházi szlávul",
["cv"] = "csuvasul",
["cy"] = "walesiul",
["da"] = "dánul",
["de"] = "németül",
["dv"] = "maldívul",
["dz"] = "dzongkhául",
["ee"] = "eveül",
["el"] = "görögül",
["en"] = "angolul",
["eo"] = "eszperantóul",
["es"] = "spanyolul",
["et"] = "észtül",
["eu"] = "baszkul",
["fa"] = "perzsául",
["ff"] = "fulul",
["fi"] = "finnül",
["fj"] = "fidzsiül",
["fo"] = "feröeriül",
["fr"] = "franciául",
["fy"] = "frízül",
["ga"] = "írül",
["gd"] = "gélül",
["gl"] = "galiciaiul",
["gn"] = "guaraniul",
["gu"] = "gudzsarátiul",
["gv"] = "manxul",
["ha"] = "hauszául",
["he"] = "héberül",
["hi"] = "hindiül",
["ho"] = "hiri motuul",
["hr"] = "horvátul",
["ht"] = "haiti kreolul",
["hu"] = "magyarul",
["hy"] = "örményül",
["hz"] = "hereroul",
["ia"] = "interlingva nyelven",
["id"] = "indonézül",
["ie"] = "okcidentálul",
["ig"] = "igbóul",
["ii"] = "nuoszuul",
["ik"] = "inupiakul",
["io"] = "idoul",
["is"] = "izlandiul",
["it"] = "olaszul",
["iu"] = "inuktitutul",
["ja"] = "japánul",
["jv"] = "jávaiul",
["ka"] = "grúzul",
["kg"] = "kikongoul",
["ki"] = "kikujuul",
["kj"] = "kvanyamául",
["kk"] = "kazakul",
["kl"] = "grönlandiul",
["km"] = "khmerül",
["kn"] = "kannadául",
["ko"] = "koreaiul",
["kr"] = "kanuriul",
["ks"] = "kasmíriul",
["ku"] = "kurdul",
["kv"] = "komiul",
["kw"] = "korniul",
["ky"] = "kirgizül",
["la"] = "latinul",
["lb"] = "luxemburgiul",
["lg"] = "lugandául",
["li"] = "limburgiul",
["ln"] = "lingalául",
["lo"] = "laoul",
["lt"] = "litvánul",
["lu"] = "luba-katangául",
["lv"] = "lettül",
["mg"] = "malgasul",
["mh"] = "Marshall-szigetekiül",
["mi"] = "maoriul",
["mk"] = "macedónul",
["ml"] = "malajálamul",
["mn"] = "mongolul",
["mr"] = "maráthiul",
["ms"] = "malájul",
["mt"] = "máltaiul",
["my"] = "burmaiul",
["na"] = "nauruiul",
["nb"] = "norvégul",
["nd"] = "északi ndebeléül",
["ne"] = "nepáliul",
["ng"] = "ndongául",
["nl"] = "hollandul",
["nn"] = "nynorskul",
["no"] = "norvégul",
["nr"] = "déli ndebeléül",
["nv"] = "navahóul",
["ny"] = "nyandzsául",
["oc"] = "okcitánul",
["oj"] = "odzsibvául",
["om"] = "oromóul",
["or"] = "orijául",
["os"] = "oszétül",
["pa"] = "pandzsábiul",
["pi"] = "páliul",
["pl"] = "lengyelül",
["ps"] = "pastuul",
["pt"] = "portugálul",
["qu"] = "kecsuául",
["rm"] = "romansul",
["rn"] = "rundiul",
["ro"] = "románul",
["ru"] = "oroszul",
["rw"] = "kinyarvandául",
["sa"] = "szanszkritül",
["sc"] = "szardíniaiul",
["sd"] = "szindhiul",
["se"] = "északi számiul",
["sg"] = "szangóul",
["si"] = "szingalézül",
["sk"] = "szlovákul",
["sl"] = "szlovénul",
["sm"] = "szamoaiul",
["sn"] = "sonául",
["so"] = "szomáliul",
["sq"] = "albánul",
["sr"] = "szerbül",
["ss"] = "szváziul",
["st"] = "szotoul",
["su"] = "szundaiul",
["sv"] = "svédul",
["sw"] = "szuahéliül",
["ta"] = "tamilul",
["te"] = "teluguul",
["tg"] = "tádzsikul",
["th"] = "sziámiul",
["ti"] = "tigrinyául",
["tk"] = "türkménuül",
["tl"] = "tagalogul",
["tn"] = "csvanául",
["to"] = "tongául",
["tr"] = "törökül",
["ts"] = "congául",
["tt"] = "tatárul",
["tw"] = "tviül",
["ty"] = "tahitiül",
["ug"] = "ujgurul",
["uk"] = "ukránul",
["ur"] = "urduul",
["uz"] = "üzbégül",
["ve"] = "vendául",
["vi"] = "vietnámiul",
["vo"] = "volapükül",
["wa"] = "vallonul",
["wo"] = "voloful",
["xh"] = "xhoszául",
["yi"] = "jiddisül",
["yo"] = "jorubául",
["za"] = "csuangul",
["zh"] = "kínaiul",
["zu"] = "zuluul",
}
local function nyelvszuro (lan) -- a lan string tipusú
-- nyelv parameter kezelése
local tagok = {}
local s = lan
s = string.gsub(s, "%s", ",") -- szóközöket vesszőre cserél
s = string.gsub(s, "%.", ",") -- pontokat vesszőre cserél
s = string.gsub(s, ",,+", ",") -- többszörös vesszőket egy vesszőre cserél
s = string.gsub(s, '[%,]$', '') -- hogy csak a string belsejében legyen vessző
s = string.gsub(s, '^[%,]', '') -- hogy csak a string belsejében legyen vessző
lan = s
-- pop("lan=",lan)
tagok = mw.text.split(lan, ',', true)
--[[
for i, tag in ipairs(tagok) do
pop(tostring(i), tagok[i])
end
--]]
-- indul az -ul, -ül lista összeállítása
local i
local hikod = {}
local hibak
local outlan= {}
if #tagok > 0 then
for i = 1, #tagok do
if lans[tagok[i]] then -- fent van a listánkon
-- pop('index=', tagok[i])
table.insert(outlan, lans[tagok[i]])
else
table.insert(hikod, tagok[i]) -- nem csak 1 lehet
-- pop("hikodhoz", tagok[i])
end --if lans[tagok[i]]
end --icikl
lan = "(".. table.concat(outlan,', ')..")" -- lan itt már string egy vagy több elem benne vesszőkkel elválasztva
if #hikod > 0 then
hibak = "(".. table.concat(hikod,', ')..")"
-- pop("hibák=", hibak)
end --#hicod > 0
end -- if #tagok> 0
-- pop('nyelvlista a végén = ', lan)
return lan,hibak,ou -- azaz nyelvlista + hibalista+ a nyomkövető
end
-- csak a nyelvszuro függvény publikus a modulból
local q = {
nyelvszuro = nyelvszuro,
}
return q