Terraria Wiki
Terraria Wiki

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Localization/opis

local ugsub = mw.ustring.gsub
local usub = mw.ustring.sub

------------------------------
return {
	-- replace all tokens in source string with replacement
	replace = function(frame)
		local str = frame.args['str']
		-- iterate over parameters
		for token, replace in pairs(frame:getParent().args) do
			local isReplacementArg = usub(token, 1, 1) == '$' -- parameter name starts with the "$" character
			if frame.args['calledFromModule'] ~= nil and frame.args['calledFromModule'] ~= '' then
				-- if {{l10n/long}} was called from a module, then it is impossible to include the "$" character in a parameter name
				-- therefore, replacement arguments are not in the format of "$arg$", but "__arg" there
				isReplacementArg = usub(token, 1, 2) == '__'
				token = '$' .. usub(token, 3) .. '$' -- reformat "__arg" to "$arg$"
			end
			if isReplacementArg then
				-- escape, to perform plain text replacement. see Module:String
				str = ugsub(str, (ugsub(token, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1")), (ugsub(replace, "%%", "%%%%" ))) -- () to force return only 1 value.
			end
		end
		return str
	end,

}