Modul:Language
Vzhled
Modul sjednocující lokalizaci názvů jazyků. Zdrojem lokalizace jsou MediaWiki (tedy CLDR) a datový Modul:Languages/data (který má vždy přednost).
Funkce pro wikitext (všechny přijímají jeden nepojmenovaný argument odpovídající ISO kódu jazyka a v případě nedostupné lokalizace nevracejí žádný výstup):
getName
– vrací název jazyka v češtiněgetNameVJazyce
– vrací název jazyka v češtině v příslovečném tvaru (odpověď na otázku jak?, zde je datový modul jediným možným zdrojem lokalizace)getLink
– vrací wikitextový odkaz na článek o jazyku na české WikipediigetLinkVJazyce
– vrací wikitextový odkaz na článek s názvem jazyka v příslovečném tvaru jako jeho popiskem
Funkce pro moduly jsou totožné s těmi pro wikitext, jen jsou uvozeny podtržítkem (např. _getName
).
require 'Modul:No globals'
local p = {}
local function getCode(args)
return mw.text.trim(args[1] or '')
end
-- pozor, vrací prázdný string (který se chová jako true), ne nil
function p._getName(code)
local data = mw.loadData('Modul:Languages/data')
return data['overrides-names'][code] or mw.language.fetchLanguageName(code, 'cs')
end
function p._getNameVJazyce(code)
local data = mw.loadData('Modul:Languages/data')
return data['jak'][code]
end
function p._getLink(code)
local data = mw.loadData('Modul:Languages/data')
local target = data['overrides-links'][code]
local label = p._getName(code)
if label == '' then
label = target
end
if not label then
return nil
end
if target then
return mw.ustring.format('[[%s|%s]]', target, label)
else
return mw.ustring.format('[[%s]]', label)
end
end
function p._getLinkVJazyce(code)
local data = mw.loadData('Modul:Languages/data')
local label = p._getNameVJazyce(code)
if not label then
return nil
end
local n
label, n = mw.ustring.gsub(label, '^(ve?) ', '%1 ', 1)
local target = data['overrides-links'][code] or p._getName(code)
if target ~= '' then
return mw.ustring.format('[[%s|%s]]', target, label)
else
return label
end
end
function p.getName(frame)
local code = getCode(frame.args)
return p._getName(code)
end
function p.getNameVJazyce(frame)
local code = getCode(frame.args)
return p._getNameVJazyce(code)
end
function p.getLink(frame)
local code = getCode(frame.args)
return p._getLink(code)
end
function p.getLinkVJazyce(frame)
local code = getCode(frame.args)
return p._getLinkVJazyce(code)
end
return p