Module:Message

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