Модул:Jezik — разлика између измена
Пређи на навигацију
Пређи на претрагу
м (mislim da si ovo hteo...) |
м (1 измена увезена) |
||
| (Нису приказане 2 међуизмене 2 корисника) | |||
| Ред 42: | Ред 42: | ||
kod = frame.args["kod"] | kod = frame.args["kod"] | ||
var = frame.args["var"] | var = frame.args["var"] | ||
-- 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] | ||
-- 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 | if italic == nil or italic then | ||
italictext = "''" | italictext = "''" | ||
end | end | ||
| Ред 88: | Ред 81: | ||
end | end | ||
ret = '[[' .. naziv .. '|' .. skr .. '.]] ' | |||
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>' | ||
end | end | ||
return ret | return ret | ||
Тренутна верзија на датум 5. фебруар 2021. у 13:50
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