Module:Caller title
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules
This module simply returns the title of the page calling this module. It’s intended for templates translated using the Translate extension. It has two entry points, both can be called with {{#invoke:Caller title|entry point name}}
:
- title
- Get the full title of the template.
- lang
- Get the language code (subpage name). In fact, it doesn’t check if the subpage name is a valid language code, so if called from X/y/z, it’ll happily return z. The template using this functionality should ensure it’s only used on language subpages (or be okay with garbage output). An additional
|base=
parameter can be given with the full title of the translation base page, so that page language is used on that page (as there is no language code subpage there).
Code
local p = {}
function p.title(frame)
return frame:getParent():getTitle()
end
function p.lang(frame)
local base = frame.args.base
local title = p.title(frame)
if base ~= title then
local parts = mw.text.split(p.title(frame), '/', true)
return parts[#parts]
else
-- we’re on the base page of the translation (directly, it’s not translated from somewhere),
-- so we have no subpage language code, but we use PAGELANGUAGE
return frame:preprocess('{{PAGELANGUAGE}}')
end
end
return p