Config page for Амодуль:External links which controls aspects such as argument names and module messages


local messages = {}
messages['en'] = {
	['wikidata-linkback-edit'] = 'Edit on Wikidata',
	['missing-limits'] = 'Missing limits-var in [[Module:External links/conf/$1]]',
	['missing-conf'] = 'Missing content in [[Module:External links/conf/$1]]',
	['msg-langcode'] = '<span class="languageicon"> (in $2)</span>', -- $1 is language code, $2 is language name
	['msg-ul-prepend'] = '* ',
	['msg-inline-separator'] = ', ',
}

local arguments = {
	['arg-conf'] = 'conf',
	['arg-title'] = 'title',
	['arg-properties'] = 'properties',
	['arg-maxlink'] = 'maxlink',
	['arg-short'] = 'short',
	['arg-languages'] = 'languages',
	['arg-no-categories'] = 'no categories',
	['arg-inline'] = 'inline',
	['arg-track'] = 'track',
	['mod-filter-all'] = 'all',
	['mod-filter-separator'] = ',',
}

local p = {
	['g'] = function (self, ...)
		for _,v in ipairs(arg) do
			if self.messages[v] then
				return self.messages[v]
			end
		end
		return '<'..arg[1]..'>'
	end,
	['a'] = function (self, ...)
		for _,v in ipairs(arg) do
			if self.arguments[v] then
				return self.arguments[v]
			end
		end
		return '<'..arg[1]..'>'
	end
}

-- metatable for the export
local mt = {
	-- adjust the installation of the module
	['__call'] = function (self, lang)
		self.messages = messages[lang]
		self.arguments = arguments
		return self
	end
}

-- install the metatable
setmetatable(p, mt)

return p