Modul:Magyaros
Megjelenés
Magyaros[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
Ez a {{magyaros}}
(?) sablon működéséhez szükséges modul. Az adatokat a Modul:Magyaros/lista lapon tároljuk, megjegyzésben szerepel a formátum.
Függvényei
[szerkesztés]- main
- Fő függvény, a sablon hívja meg. Egyszerre tetszőleges számú nyelvet tud kezelni.
- mind
- Az összes ismert nyelv felsorolása, itt jelenik meg:
local p = {}
local getArgs = require('Modul:Arguments').getArgs
local az = require('Modul:Nyelvtani modul').az
local nyelvek = mw.loadData('Modul:Magyaros/lista')
local function nyelv(nyelvtable)
if type(nyelvtable) ~= 'table' then
nyelvtable = {nyelvtable, mw.ustring.upper(mw.ustring.format(nyelvek[0][2], nyelvtable))}
end
if nyelvtable.spec then -- hettitát külön kezeljük le
return "Ebben a szócikkben a [[hettita nyelv]] hangzói az "
.. mw.getCurrentFrame():expandTemplate{ title = 'ÓKTCh magyarázattal' }
.. ". [[Wikipédia:Hettita nevek átírása|útmutatása alapján]] magyar ejtés szerint szerepelnek."
end
local keleti = ""
if nyelvtable.keleti then
keleti = "és [[keleti névsorrend]]ben "
end
return "Ebben a szócikkben " .. az(nyelvtable[1]) .. " " .. nyelvtable[1] .. " nevek [[" .. nyelvtable[2] ..
"|magyaros átírásban]] " .. keleti .. "szerepelnek."
end
function p.mind(frame)
frame = mw.getCurrentFrame()
local text = {}
local function insert(...)
table.insert( text, frame:expandTemplate{ title = 'Dablink', args = { ... } } )
return
end
insert("'''[[" .. string.upper( string.format( nyelvek[0][2], 'id' ) ) .. "]] – alapértelmezett'''", nyelvek[0][3], nyelvek[0][4])
for _, v in ipairs(nyelvek) do
local id, img, px = v[1], v[3], v[4]
id = '<tt>' .. v[1] .. '</tt>: [[' .. v[2] .. ']]'
if v.keleti then
id = id .. " – keleti névsorrend"
end
insert(id, img, px)
end
return table.concat( text )
end
function p.main(frame)
local args = getArgs(frame)
frame = mw.getCurrentFrame()
local text = {}
local nyelv_megad = {}
local kat = {}
local nokat = (args.minta or mw.title.getCurrentTitle().namespace ~= 0)
local n_nyelvek = 0
local function add_kat(s)
if not nokat then
table.insert(kat, '[[Kategória:Szócikkek ' .. s .. ' nyelvű tartalommal]]')
end
return
end
for n, v in pairs(args) do
if type(n) == 'number' then
nyelv_megad[v] = true
n_nyelvek = n_nyelvek + 1
add_kat(v)
end
end
if n_nyelvek == 0 then
return ''
elseif n_nyelvek == 1 then
local ny
for n, v in pairs(nyelv_megad) do
ny = n
break;
end
for _, v in pairs(nyelvek) do
if v[1] == ny then
ny = v
break;
end
end
return frame:expandTemplate{ title = 'Dablink', args = { nyelv(ny), ny[3] or nyelvek[0][3], ny[4] or nyelvek[0][4] } } ..
table.concat(kat)
end
local nyelv_lista = {}
local keletiek = {}
local van_spec = false
table.insert(text, "Ebben a szócikkben ")
if nyelv_megad['hettita'] then
table.insert(text, "a [[hettita nyelv]] hangzói az "
.. frame:expandTemplate{ title = 'ÓKTCh magyarázattal' }
.. ". [[Wikipédia:Hettita nevek átírása|útmutatása alapján]] magyar ejtés szerint, ")
van_spec = true
nyelv_megad['hettita'] = nil
end
local van_nyugati = false
for _, v in ipairs(nyelvek) do
if nyelv_megad[ v[1] ] then
if #nyelv_lista == 0 then
table.insert(text, az(v[1]) .. " ")
end
table.insert(nyelv_lista, '[[' .. v[2] .. '|' .. v[1] .. ']]')
if v.keleti then
table.insert(keletiek, v[1])
else
van_nyugati = true
end
nyelv_megad[ v[1] ] = nil
end
end
for n, v in pairs(nyelv_megad) do
table.insert(nyelv_lista, '[[' .. mw.ustring.upper(string.format(nyelvek[0][2], n) ) .. '|' .. n .. ']]')
end
table.insert(text, mw.text.listToText(nyelv_lista) )
if van_spec then
table.insert(text, " nevek pedig [[Wikipédia:Átírás|magyaros átírásban]]")
else
table.insert(text, " nevek [[Wikipédia:Átírás|magyaros átírásban]]")
end
if #keletiek > 0 then
if van_nyugati then
table.insert(text, " és – " .. mw.text.listToText(keletiek) .. " nyelvűek esetében – [[keleti névsorrend]]ben")
else
table.insert(text, " és [[keleti névsorrend]]ben")
end
end
table.insert(text, " szerepelnek.")
return frame:expandTemplate{ title = 'Dablink', args = { table.concat(text), nyelvek[0][3], nyelvek[0][4] } }
.. table.concat(kat)
end
function p.name(frame)
local args = getArgs(frame)
if args[1] then
return args[1]
end
local title = require"Modul:String".simpletitle()
local item = mw.wikibase.getEntity()
if not item then
return title
end
for _, s in ipairs(item:getBestStatements"P1559") do -- name in native language
if s.mainsnak.snaktype == "value" then
if s.mainsnak.datavalue.value.language == "ko" then
if s.qualifiers and s.qualifiers.P2001 then
for _, snak in ipairs(s.qualifiers.P2001) do -- Revised Romanization, átdolgozott latin betűs átírás
if snak.snaktype == "value" then
return frame:expandTemplate{ title = "Koreai", args = { snak.datavalue.value, title } }
end
end
end
end
end
end
return title
end
return p