Difference between revisions of "Module:Int"

From WPRDC Wiki
Jump to navigation Jump to search
>Tacsipacsi
(allow passing custom language, second try)
>ExE Boss
m (Linkify “Template:int”; format module source)
Line 1: Line 1:
-- This is a helper module for Template:int
-- This is a helper module for [[Template:int]]
local templateTranslation = require('Module:Template translation')
local this = {}
local this = {}
local templateTranslation = require 'Module:Template translation'


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


    local msg = mw.message.new(mw.text.trim(args[1]), arguments)
local msg = mw.message.new(mw.text.trim(args[1]), arguments)
    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
    lang = args.lang
lang = args.lang
    else
else
    lang = templateTranslation.getLanguage()
lang = templateTranslation.getLanguage()
    end
end
    if (msg:exists() and not msg:isDisabled()) then
if (msg:exists() and not msg:isDisabled()) then
        local msgstr = msg:inLanguage(lang):plain()
local msgstr = msg:inLanguage(lang):plain()
        return frame:preprocess(msgstr)
return frame:preprocess(msgstr)
    else
else
        return '⧼' .. args[1] .. '⧽'
return '⧼' .. args[1] .. '⧽'
    end
end
end
end


return this
return this

Revision as of 11:50, 27 July 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 = {}

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()) then
		local msgstr = msg:inLanguage(lang):plain()
		return frame:preprocess(msgstr)
	else
		return '⧼' .. args[1] .. '⧽'
	end
end

return this