Module:wikimedia languages/templates

Hello, you have come here looking for the meaning of the word Module:wikimedia languages/templates. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:wikimedia languages/templates, but we will also tell you about its etymology, its characteristics and you will know how to say Module:wikimedia languages/templates in singular and plural. Everything you need to know about the word Module:wikimedia languages/templates you have here. The definition of the word Module:wikimedia languages/templates will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:wikimedia languages/templates, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

This module needs documentation.
Please document this module by describing its purpose and usage on the documentation page.

local export = {}

function export.exists(frame, fallback)
	local args = frame.args
	local lang = args or error("Wikimedia language code has not been specified. Please pass parameter 1 to the module invocation.")
	
	lang = require("Module:wikimedia languages")(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 or error("Wikimedia language code has not been specified. Please pass parameter 1 to the module invocation.")
	local itemname = args 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")(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; if index == "" then index = nil end
		index = tonumber(index or error("Please specify the numeric index of the desired name."))
		return lang:getAllNames() or ""
	elseif itemname == "getWiktionaryLanguage" then
		return lang:getWiktionaryLanguage():getCode()
	elseif lang then
		local ret = lang(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