Module:Template translation: Difference between revisions
Content added Content deleted
MarcoAurelio (talk | contribs) m (Protected "Module:Template translation": high-risk Lua module ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only administrators] (indefinite))) |
MarcoAurelio (talk | contribs) (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 |
||