Difference between revisions of "Module:Template translation"
update from mw:Module:Template_translation, please revert if it causes issues
>MarcoAurelio m (Protected "Module:Template translation": high-risk Lua module ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only administrators] (indefinite))) |
>MarcoAurelio (update from mw:Module:Template_translation, please revert if it causes issues) |
||
Line 63: | Line 63: | ||
local subpage = titleparts[#titleparts] | local subpage = titleparts[#titleparts] | ||
return this.checkLanguage(subpage, '') | return this.checkLanguage(subpage, '') | ||
end | |||
--[[Get the first part of the language code of the subpage, before the '-'. | |||
]] | |||
function this.getMainLanguageSubpage() | |||
parts = mw.text.split( this.getLanguageSubpage(), '-' ) | |||
return parts[1] | |||
end | end | ||
Line 134: | Line 141: | ||
]] | ]] | ||
local title | local title | ||
local namespace = args[' | local namespace = args['tntns'] or '' | ||
if (namespace ~= '') -- Checks for | if (namespace ~= '') -- Checks for tntns parameter for custom ns. | ||
then | then | ||
title = this.title(namespace, pagename) -- Costly | title = this.title(namespace, pagename) -- Costly | ||
Line 236: | Line 243: | ||
end | end | ||
arguments['template'] = title -- override the existing parameter of the base template name supplied with the full name of the actual template expanded | arguments['template'] = title -- override the existing parameter of the base template name supplied with the full name of the actual template expanded | ||
arguments[' | arguments['tntns'] = nil -- discard the specified namespace override | ||
arguments['uselang'] = args['uselang'] -- argument forwarded into parent frame | arguments['uselang'] = args['uselang'] -- argument forwarded into parent frame | ||
arguments['noshift'] = args['noshift'] -- argument forwarded into parent frame | arguments['noshift'] = args['noshift'] -- argument forwarded into parent frame | ||
return frame:expandTemplate{title = ':' .. title, args = arguments} | return frame:expandTemplate{title = ':' .. title, args = arguments} | ||
end | |||
--[[A helper for mocking TNT in Special:TemplateSandbox. TNT breaks | |||
TemplateSandbox; mocking it with this method means templates won't be | |||
localized but at least TemplateSandbox substitutions will work properly. | |||
Won't work with complex uses. | |||
]] | |||
function this.mockTNT(frame) | |||
local pargs = (frame:getParent() or {}).args | |||
local arguments = {} | |||
for k, v in pairs(pargs) do | |||
-- numbered args >= 1 need to be shifted | |||
local n = tonumber(k) or 0 | |||
if (n > 0) | |||
then | |||
if (n >= 2) | |||
then | |||
arguments[n - 1] = v | |||
end | |||
else | |||
arguments[k] = v | |||
end | |||
end | |||
if not pargs[1] | |||
then | |||
return '' | |||
end | |||
return frame:expandTemplate{title = 'Template:' .. pargs[1], args = arguments} | |||
end | end | ||
return this | return this |