Modulus:wikimedia languages/templates
Appearance
local export = {}
function export.exists(frame, fallback)
local args = frame.args
local lang = args[1] or error("Wikimedia language code has not been specified. Please pass parameter 1 to the module invocation.")
lang = require("Module:wikimedia languages")[(fallback and "getByCodeWithFallback" or "getByCode")](lang)
if lang then
return "1"
else
return ""
end
end
function export.existsWithFallback(frame)
return export.exists(frame, true)
end
function export.getByCode(frame, fallback)
local args = frame.args
local langcode = args[1] or error("Wikimedia language code has not been specified. Please pass parameter 1 to the module invocation.")
local itemname = args[2] or error("Type of information to look up has not been specified. Please pass parameter 2 to the module invocation.")
local lang = require("Module:wikimedia languages")[(fallback and "getByCodeWithFallback" or "getByCode")](langcode)
if not lang then
error("The wikimedia language code '" .. langcode .. "' is not valid.")
end
-- The item that the caller wanted to look up
if itemname == "getAllNames" then
local index = args[3]; if index == "" then index = nil end
index = tonumber(index or error("Please specify the numeric index of the desired name."))
return lang:getAllNames()[index] or ""
elseif itemname == "getWiktionaryLanguage" then
return lang:getWiktionaryLanguage():getCode()
elseif lang[itemname] then
local ret = lang[itemname](lang)
if type(ret) == "string" then
return ret
else
error("The function \"" .. itemname .. "\" did not return a string value.")
end
else
error("Requested invalid item name \"" .. itemname .. "\".")
end
end
function export.getByCodeWithFallback(frame)
return export.getByCode(frame, true)
end
return export