Module:User:Victar/lectlabel

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

local m_languages = require("Module:languages")

local function errorf(level, ...)
	if type(level) == number then
		return error(string.format(...), level + 1)
	else -- level is actually the format string.
		return error(string.format(level, ...), 2)
	end
end

local function logf(...)
	return mw.log(string.format(...))
end

function export.etyl(frame)
	local params = {
		 = {}, -- parent language code?
		 = {list = true},
		 = {},
	}
	local args = require("Module:parameters").process(frame:getParent().args, params)
	
	local sort_key = args
	
	local lang = m_languages.getByCode(args) or m_languages.err(args, 1)
	local langCode = lang:getCode()
	
	local lects = args
	
	for i, lect in ipairs(lects) do
		local langObject = require("Module:etymology languages").getByCode(lect)
		if langObject then
			-- Imperfect: some etymology languages are probably farther away
			-- generationally than daughters.
			if langObject:getParentCode() ~= langCode then
				logf("%s (%s) is not the parent of %s (%s)",
					lang:getCanonicalName(), langCode,
					langObject:getCanonicalName(), langObject:getCode())
			end
			lects = langObject:makeWikipediaLink()
		else
			errorf("The language code %s is not recognized", lect)
		end
	end
	
	if not lects then
		return frame.args.default
	else
		return require "Module:table".serialCommaJoin(lects)
	end

end

return export