Module:Int: Difference between revisions
From Neodyland Wiki
More actions
use internal page language instead of an expensive module; no pages using legacy manual translation use this module anyway |
|||
| Line 13: | Line 13: | ||
end | end | ||
local lang | local lang | ||
if args.lang and args.lang ~= '' and mw.language.isValidCode(args.lang) then | if args.lang and args.lang ~= '' and mw.language.isValidCode(args.lang) then | ||
| Line 20: | Line 19: | ||
lang = mw.getCurrentFrame():preprocess('{{PAGELANGUAGE}}') | lang = mw.getCurrentFrame():preprocess('{{PAGELANGUAGE}}') | ||
end | end | ||
local msg = mw.message.new(mw.text.trim(args[1]), arguments):inLanguage(lang) | |||
if | if msg:exists() or lang == 'qqx' then | ||
local msgstr = msg | if msg:isDisabled() then | ||
return args.missing or '' | |||
else | |||
local msgstr = msg:plain() | |||
return frame:preprocess(msgstr) | |||
end | |||
else | else | ||
return args.missing ~= '' | return args.missing ~= '' | ||
Revision as of 08:53, 30 March 2023
This documentation is transcluded from Module:Int/doc.
-- This is a helper module for [[Template:int]]
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 = mw.getCurrentFrame():preprocess('{{PAGELANGUAGE}}')
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