Modul:Homokozó/Pepo41/Nyelvkódszűrő
Megjelenés
Homokozó/Pepo41/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áss nyelvkódokból is listát csinál (qq,qx) és vörössel közli "hibás nyelvkód"
--]]
require('Modul:No globals')
local hibavan = false
local hiba_jelzes = {}
local kategorizalas_van = false
local ou = ''
local oumax = 20 -- a tesztüzenetek számának maximuma
local oumarad = oumax
local nyl , hl, szoveg
local hibavan = false
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
local function error(about) -- hibajelzést szolgál
-- Enclose errorMsg with <span>
-- Precondition:
-- about -- string
hibavan = true
local r = about
if type(about) == 'string' then
if #about == 0 then
r = 'Lua-hiba'
end
else
r = tostring(about)
end
return '<span class="error">' .. r .. '</span>, '
end -- error()
-- ISO NYELVKÓDOK
local lans={}
lans["aa"]="afarul"
lans["ab"]="abházul"
lans["ae"]="avesztaiul"
lans["af"]="afrikaansul"
lans["ak"]="akanul"
lans["am"]="amharaiul"
lans["an"]="aragóniaiul"
lans["ar"]="arabul"
lans["as"]="asszámiul"
lans["av"]="avarul"
lans["ay"]="ajmara"
lans["az"]="azeriül"
lans["ba"] = "baskírul"
lans["be"] = "belaruszul"
lans["bg"] = "bolgárul"
lans["bh"] = "bihári nyelveken "
lans["bi"] = "biszlamául"
lans["bm"] = "bambarául"
lans["bn"] = "bengáliul"
lans["bo"] = "tibetiül"
lans["br"] = "bretonul"
lans["bs"] = "bosnyákul"
lans["ca"] = "katalánul"
lans["ce"] = "csecsenül"
lans["ch"] = "csamorroul"
lans["co"] = "korzikaiul"
lans["cr"] = "kríul"
lans["cs"] = "csehül"
lans["cu"] = "óegyházi szlávul"
lans["cv"] = "csuvasul"
lans["cy"] = "walesiul"
lans["da"] = "dánul"
lans["de"] = "németül"
lans["dv"] = "maldívul"
lans["dz"] = "dzongkhául"
lans["ee"] = "eveül"
lans["el"] = "görögül"
lans["en"] = "angolul"
lans["eo"] = "eszperantóul"
lans["es"] = "spanyolul"
lans["et"] = "észtül"
lans["eu"] = "baszkul"
lans["fa"] = "perzsául"
lans["ff"] = "fulul"
lans["fi"] = "finnül"
lans["fj"] = "fidzsiül"
lans["fo"] = "feröeriül"
lans["fr"] = "franciául"
lans["fy"] = "frízül"
lans["ga"] = "írül"
lans["gd"] = "gélül"
lans["gl"] = "galiciaiul"
lans["gn"] = "guaraniul"
lans["gu"] = "gudzsarátiul"
lans["gv"] = "manxul"
lans["ha"] = "hauszául"
lans["he"] = "héberül"
lans["hi"] = "hindiül"
lans["ho"] = "hiri motuul"
lans["hr"] = "horvátul"
lans["ht"] = "haiti kreolul"
lans["hu"] = "magyarul"
lans["hy"] = "örményül"
lans["hz"] = "hereroul"
lans["ia"] = "interlingva nyelven"
lans["id"] = "indonézül"
lans["ie"] = "okcidentálul"
lans["ig"] = "igbóul"
lans["ii"] = "nuoszuul"
lans["ik"] = "inupiakul"
lans["io"] = "idoul"
lans["is"] = "izlandiul"
lans["it"] = "olaszul"
lans["iu"] = "inuktitutul"
lans["ja"] = "japánul"
lans["jv"] = "jávaiul"
lans["ka"] = "grúzul"
lans["kg"] = "kikongoul"
lans["ki"] = "kikujuul"
lans["kj"] = "kvanyamául"
lans["kk"] = "kazakul"
lans["kl"] = "grönlandiul"
lans["km"] = "khmerül"
lans["kn"] = "kannadául"
lans["ko"] = "koreaiul"
lans["kr"] = "kanuriul"
lans["ks"] = "kasmíriul"
lans["ku"] = "kurdul"
lans["kv"] = "komiul"
lans["kw"] = "korniul"
lans["ky"] = "kirgizül"
lans["la"] = "latinul"
lans["lb"] = "luxemburgiul"
lans["lg"] = "lugandául"
lans["li"] = "limburgiul"
lans["ln"] = "lingalául"
lans["lo"] = "laoul"
lans["lt"] = "litvánul"
lans["lu"] = "luba-katangául"
lans["lv"] = "lettül"
lans["mg"] = "malgasul"
lans["mh"] = "Marshall-szigetekiül"
lans["mi"] = "maoriul"
lans["mk"] = "macedónul"
lans["ml"] = "malajálamul"
lans["mn"] = "mongolul"
lans["mr"] = "maráthiul"
lans["ms"] = "malájul"
lans["mt"] = "máltaiul"
lans["my"] = "burmaiul"
lans["na"] = "nauruiul"
lans["nb"] = "norvégul"
lans["nd"] = "északi ndebeléül"
lans["ne"] = "nepáliul"
lans["ng"] = "ndongául"
lans["nl"] = "hollandul"
lans["nn"] = "nynorskul"
lans["no"] = "norvégul"
lans["nr"] = "déli ndebeléül"
lans["nv"] = "navahóul"
lans["ny"] = "nyandzsául"
lans["oc"] = "okcitánul"
lans["oj"] = "odzsibvául"
lans["om"] = "oromóul"
lans["or"] = "orijául"
lans["os"] = "oszétül"
lans["pa"] = "pandzsábiul"
lans["pi"] = "páliul"
lans["pl"] = "lengyelül"
lans["ps"] = "pastuul"
lans["pt"] = "portugálul"
lans["qu"] = "kecsuául"
lans["rm"] = "romansul"
lans["rn"] = "rundiul"
lans["ro"] = "románul"
lans["ru"] = "oroszul"
lans["rw"] = "kinyarvandául"
lans["sa"] = "szanszkritül"
lans["sc"] = "szardíniaiul"
lans["sd"] = "szindhiul"
lans["se"] = "északi számiul"
lans["sg"] = "szangóul"
lans["si"] = "szingalézül"
lans["sk"] = "szlovákul"
lans["sl"] = "szlovénul"
lans["sm"] = "szamoaiul"
lans["sn"] = "sonául"
lans["so"] = "szomáliul"
lans["sq"] = "albánul"
lans["sr"] = "szerbül"
lans["ss"] = "szváziul"
lans["st"] = "szotoul"
lans["su"] = "szundaiul"
lans["sv"] = "svédul"
lans["sw"] = "szuahéliül"
lans["ta"] = "tamilul"
lans["te"] = "teluguul"
lans["tg"] = "tádzsikul"
lans["th"] = "sziámiul"
lans["ti"] = "tigrinyául"
lans["tk"] = "türkménuül"
lans["tl"] = "tagalogul"
lans["tn"] = "csvanául"
lans["to"] = "tongául"
lans["tr"] = "törökül"
lans["ts"] = "congául"
lans["tt"] = "tatárul"
lans["tw"] = "tviül"
lans["ty"] = "tahitiül"
lans["ug"] = "ujgurul"
lans["uk"] = "ukránul"
lans["ur"] = "urduul"
lans["uz"] = "üzbégül"
lans["ve"] = "vendául"
lans["vi"] = "vietnámiul"
lans["vo"] = "volapükül"
lans["wa"] = "vallonul"
lans["wo"] = "voloful"
lans["xh"] = "xhoszául"
lans["yi"] = "jiddisül"
lans["yo"] = "jorubául"
lans["za"] = "csuangul"
lans["zh"] = "kínaiul"
lans["zu"] = "zuluul"
local function nyelvszuro (lan) -- a lan string tipusú
-- nyelv parameter kezelése
local tagok={}
local i,j,szel
if lan then
local s = lan
local count
s = string.gsub( s , " " , ",") -- szóközöket vesszőre cserél
s = string.gsub( s , "%." , ",") -- pontokat vesszőre cserél
repeat
s,count = string.gsub( s , ",," , ",") -- többszörös vesszőket egy vesszőre cserél
until count == 0 -- számlálja a cseréket
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)
i, j = string.find(lan, ',')
while i do
-- pop("lan",lan)
szel=string.sub(lan,1,i)
szel=string.gsub(szel, '[%,]$', '') -- vesszü levägva
-- pop("szelet", szel)
table.insert(tagok,szel)
lan=string.sub(lan,i+1,-1)
-- pop("lan maradeka",lan)
i, j = string.find(lan, ',')
end -- while i
table.insert(tagok,lan) -- ne maradjon le az utólsó
for i=1, #tagok do
-- pop(tostring(i),tagok[i])
end -- icikl
end -- if lan
-- indul az -ul, -ül lista összeállítása
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