Модул:Jezik — разлика између измена

Iz Vojne Enciklopedije
Пређи на навигацију Пређи на претрагу
м (mislim da si ovo hteo...)
 
м (1 измена увезена)
Ред 42: Ред 42:
     kod = frame.args["kod"]
     kod = frame.args["kod"]
     var = frame.args["var"]
     var = frame.args["var"]
    kurziv = frame.args["kurziv"]
    veza = frame.args["veza"]
    prevod = frame.args["prevod"]
      
      
     -- ako nije zadat kod ili zadati kod nije valjan, podrazumevaju se ekavica i ćirilica
     -- ako nije zadat kod ili zadati kod nije valjan, podrazumevaju se ekavica i ćirilica
Ред 51: Ред 48:
     end
     end
     varijanta = varijante[var]
     varijanta = varijante[var]
   
    plain = kurziv and (kurziv == 'ne' or kurziv == 'не')
   
    nolink = veza and (veza == 'ne' or veza == 'не')
      
      
     -- ako nismo definisali kod jezika ili nije valjan kod varijante, prikazuje se samo text
     -- ako nismo definisali kod jezika ili nije valjan kod varijante, prikazuje se samo text
Ред 80: Ред 73:
          
          
         italictext = ""
         italictext = ""
         if (italic == nil or italic) and not plain then
         if italic == nil or italic then
             italictext = "''"
             italictext = "''"
         end
         end
Ред 88: Ред 81:
         end
         end
          
          
         ret = skr .. '.'
         ret = '[[' .. naziv .. '|' .. skr .. '.]] '      
        if nolink then
        ret = ret .. ' '
        else
        ret = '[[' .. naziv .. '|' .. ret .. ']] '
        end
       
         if #kod == 2 then
         if #kod == 2 then
             ret = ret .. '<span lang="' .. kod .. '" xml:lang="' .. kod .. '"' .. direction .. '>'
             ret = ret .. '<span lang="' .. kod .. '" xml:lang="' .. kod .. '"' .. direction .. '>'
Ред 101: Ред 88:
         if #kod == 2 then
         if #kod == 2 then
             ret = ret .. '</span>'
             ret = ret .. '</span>'
        if prevod and prevod ~= "{{{превод}}}" and prevod ~= "{{{prevod}}}" then
        ret = ret .. ' — „' .. prevod .. '”'
        end
         end
         end
         return ret
         return ret

Верзија на датум 1. новембар 2020. у 13:48

Пример позивања:

{{#invoke:Jezik|prikaz|text=Entschuldigen!|kod=de|var=jl}}

njem. Entschuldigen!


local podaci = mw.loadData("Module:Jezik/podaci")

local konverzija = mw.loadData("Module:Konverzija")

local varijante = {
    ["ец"] = 1,
    ["ec"] = 1,
    ["ЕЦ"] = 1,
    ["EC"] = 1,
    ["јц"] = 2,
    ["jc"] = 2,
    ["ЈЦ"] = 2,
    ["JC"] = 2,
    ["ел"] = 3,
    ["el"] = 3,
    ["ЕЛ"] = 3,
    ["EL"] = 3,
    ["јл"] = 4,
    ["jl"] = 4,
    ["ЈЛ"] = 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