Modul:Jezik

Izvor: Wikipedija
Prijeđi na navigaciju Prijeđi na pretragu

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