Difference between revisions of "Module:Int"
Jump to navigation
Jump to search
>ExE Boss (Correctly handle missing messages when `lang="qqx"`) |
>ExE Boss (Add parameter `missing`) |
||
Line 2: | Line 2: | ||
local templateTranslation = require('Module:Template translation') | local templateTranslation = require('Module:Template translation') | ||
local this = {} | local this = {} | ||
local function _ne(value) | |||
return value and value ~= '' | |||
end | |||
function this.renderIntMessage(frame) | function this.renderIntMessage(frame) | ||
Line 26: | Line 30: | ||
return frame:preprocess(msgstr) | return frame:preprocess(msgstr) | ||
else | else | ||
return '⧼' .. args[1] .. '⧽' | return args.missing ~= '' | ||
and args.missing | |||
or '⧼' .. args[1] .. '⧽' | |||
end | end | ||
end | end | ||
return this | return this |
Revision as of 22:02, 25 August 2021
Documentation for this module may be created at Module:Int/doc
-- This is a helper module for [[Template:int]]
local templateTranslation = require('Module:Template translation')
local this = {}
local function _ne(value)
return value and value ~= ''
end
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 msg = mw.message.new(mw.text.trim(args[1]), arguments)
local lang
if args.lang and args.lang ~= '' and mw.language.isValidCode(args.lang) then
lang = args.lang
else
lang = templateTranslation.getLanguage()
end
if (msg:exists() and not msg:isDisabled()) or lang == 'qqx' then
local msgstr = msg:inLanguage(lang):plain()
return frame:preprocess(msgstr)
else
return args.missing ~= ''
and args.missing
or '⧼' .. args[1] .. '⧽'
end
end
return this