Module:Endangered Languages Project
From The Goon Show Depository
Revision as of 14:56, 5 March 2021 by en>Uanfala (rm pseudo-reference per Template_talk:Infobox_language#ELP_and_Glottopedia_links)
--[[
Module:Endangered Languages Project
--]]
local p = {}
local elpf = "http://www.endangeredlanguages.com/lang/" -- or get P1630
local make_display = function(elpc, elpn)
return "[" .. elpf .. elpc .. " " .. elpn .. "]"
end
local tidy_param = function(param)
if param == "" then param = nil end
return param
end
p.make_entry = function(frame)
local elpname = tidy_param(frame.args.elpname)
local elpcode = tidy_param(frame.args.elpcode)
local qid = tidy_param((frame.args.qid or ""):upper()) or mw.wikibase.getEntityIdForCurrentPage()
local out = {}
if elpcode and elpname then
out[#out+1] = make_display(elpcode, elpname)
else
if qid then
local props = mw.wikibase.getBestStatements(qid, "P2192")
if props[1] then
for i, v in ipairs(props) do
local elpc = elpcode or v.mainsnak.datavalue and v.mainsnak.datavalue.value
local elpn = elpname or v.qualifiers["P1810"][1].datavalue and v.qualifiers["P1810"][1].datavalue.value
if elpc and elpn then
out[#out+1] = make_display(elpc, elpn)
end
end
elseif elpcode or elpname then
return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
end
else
if elpcode or elpname then
return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
end
end
end
local ret = ""
if #out > 1 then
ret = frame:expandTemplate{title = "ubl", args = out}
else
ret = out[1]
end
return ret
end
return p