Module:Message: Difference between revisions
Appearance
No edit summary |
MusikBot II (talk | contribs) m Protected "Module:Message": High-risk template or module: 1229 transclusions (more info) ([Edit=Require autoconfirmed or confirmed access] (indefinite)) |
(No difference)
|
Latest revision as of 18:00, 12 April 2024
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