Jump to content

Module:Int

From wikiNonStop
Revision as of 22:06, 30 January 2022 by en>AntiCompositeNumber (check message in the target language, not the default, still return missing message markup if message does not exist (and is not just disabled))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Module documentation

Implements {{int}}.

Tests

-- This is a helper module for [[Template:int]]
local templateTranslation = require('Module:Template translation')
local this = {}

function this.renderIntMessage(frame)
	local args = frame.args
	local pargs = (frame:getParent() or {}).args
	local arguments = {}
	for k, v in pairs(pargs) do
		local n = tonumber(k) or 0
		if (n >= 2) then
			arguments[n - 1] = mw.text.trim(v)
		end
	end

	local lang
	if args.lang and args.lang ~= '' and mw.language.isValidCode(args.lang) then
		lang = args.lang
	else
		lang = templateTranslation.getLanguage()
	end
	local msg = mw.message.new(mw.text.trim(args[1]), arguments):inLanguage(lang)

	if msg:exists() or lang == 'qqx' then
		if msg:isDisabled() then
			return args.missing or ''
		else
			local msgstr = msg:plain()
			return frame:preprocess(msgstr)
		end
	else
		return args.missing ~= ''
			and args.missing
			or '⧼' .. args[1] .. '⧽'
	end
end

return this