Modul:Magyaros
From Wikipedia, the free encyclopedia
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' } .. ". útmutatása alapján magyar ejtés szerint szerepelnek." end local keleti = "" if nyelvtable.keleti then keleti = "és keleti névsorrendben " 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 = '' .. v[1] .. ': [[' .. 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, '') 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' } .. ". ú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 magyaros átírásban") else table.insert(text, " nevek 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évsorrendben") else table.insert(text, " és keleti névsorrendben") 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