Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Message

Permanently protected module
From Wikipedia, the free encyclopedia
return function(cfg)
	return function(cfgKey, valArray, expectType)
		--[[
		-- Gets a message from the cfg table and formats it if appropriate.
		-- The function raises an error if the value from the cfg table is not
		-- of the type expectType. The default type for expectType is 'string'.
		-- If the table valArray is present, strings such as $1, $2 etc. in the
		-- message are substituted with values from the table keys [1], [2] etc.
		-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
		-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
		--]]
		local msg = cfg[cfgKey]
		expectType = expectType or 'string'
		if type(msg) ~= expectType then
			error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
		end
		if not valArray then
			return msg
		end
	
		local function getMessageVal(match)
			match = tonumber(match)
			return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
		end
	
		return mw.ustring.gsub(msg, '$([1-9][0-9]*)', getMessageVal)
	end
end