Modul:Jezik
Izgled
Dokumentaciju za ovaj modul možete napraviti na stranici Modul:Jezik/dok
local podaci = mw.loadData("Module:Jezik/podaci")
local konverzija = mw.loadData("Module:Konverzija")
local varijante = {
["ец"] = 1,
["ec"] = 1,
["јц"] = 2,
["jc"] = 2,
["ел"] = 3,
["el"] = 3,
["јл"] = 4,
["jl"] = 4
}
-- konvertuje string iz ćirilice u latinicu
function cir2lat(text)
ret = ""
for codepoint in mw.ustring.gcodepoint(text) do
slovo = mw.ustring.char(codepoint)
if konverzija[slovo] then
ret = ret .. konverzija[slovo]
else
ret = ret .. slovo
end
end
return ret
end
local p = {}
function p.prikaz(frame)
text = frame.args["text"]
kod = frame.args["kod"]
var = frame.args["var"]
-- ako nije zadat kod ili zadati kod nije valjan, podrazumevaju se ekavica i ćirilica
if not var or not varijante[var] then
var = 'ec'
end
varijanta = varijante[var]
-- ako nismo definisali kod jezika ili nije valjan kod varijante, prikazuje se samo text
if not podaci[kod] then
return "-{''" .. text .. "''}-"
else
cirilica = true
if varijanta > 2 then
cirilica = false
varijanta = varijanta - 2;
end
index = varijanta
if not podaci[kod][varijanta] then
index = 1
end
naziv, skr, italic, dir = podaci[kod]["naziv"], podaci[kod][index], podaci[kod]["italic"], podaci[kod]["dir"]
-- smer teksta -- RTL ili LTR
direction = ''
if dir == 'rtl' then
direction = ' dir="rtl"'
end
italictext = ""
if italic == nil or italic then
italictext = "''"
end
if not cirilica then
skr = cir2lat(skr)
end
ret = '[[' .. naziv .. '|' .. skr .. '.]] '
if #kod == 2 then
ret = ret .. '<span lang="' .. kod .. '" xml:lang="' .. kod .. '"' .. direction .. '>'
end
ret = ret .. '' .. italictext .. text .. italictext .. ''
if #kod == 2 then
ret = ret .. '</span>'
end
return ret
end
end
return p