Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 16:37, 12 August 2026 by Admin (talk | contribs) (3 revisions imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Module documentation[ create · purge ]
This documentation is transcluded from Module:Message/doc.
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
Cookies help us deliver our services. By using our services, you agree to our use of cookies.