Module:Template translation: Difference between revisions
Content added Content deleted
m (there are other chars that generate exceptions in mw.language.isKnownLanguageTag, and some language codes still not validated correctly; check this correctly) |
m (mw.title.new() no longer returns a tile object with id=0, but nil, if page is not found. Fix it.) |
||
Line 103: | Line 103: | ||
if (namespace ~= '') -- Checks for namespace parameter for custom ns. |
if (namespace ~= '') -- Checks for namespace parameter for custom ns. |
||
then |
then |
||
title = mw.title.new(pagename, namespace) -- Costly |
title = mw.title.new(pagename, namespace) or {} -- Costly |
||
else -- Supposes that set page is in ns10. |
else -- Supposes that set page is in ns10. |
||
namespace = 'Template' |
namespace = 'Template' |
||
title = mw.title.new(pagename, namespace) -- Costly |
title = mw.title.new(pagename, namespace) or {} -- Costly |
||
if (title.id == 0 |
if (title.id or 0) == 0 |
||
then -- not found in the Template namespace, assume the main namespace (for backward compatibility) |
then -- not found in the Template namespace, assume the main namespace (for backward compatibility) |
||
namespace = '' |
namespace = '' |
||
title = mw.title.new(pagename, namespace) -- Costly |
title = mw.title.new(pagename, namespace) or {} -- Costly |
||
end |
end |
||
end |
end |
||
Line 123: | Line 123: | ||
then |
then |
||
-- Check if a translation of the pagename exists in English |
-- Check if a translation of the pagename exists in English |
||
local newtitle = mw.title.new(pagename .. '/' .. 'en', namespace) -- Costly |
local newtitle = mw.title.new(pagename .. '/' .. 'en', namespace) or {} -- Costly |
||
-- Use the translation when it exists |
-- Use the translation when it exists |
||
if (newtitle.id ~= 0 |
if (newtitle.id or 0) ~= 0 |
||
then |
then |
||
title = newtitle |
title = newtitle |
||
Line 131: | Line 131: | ||
else |
else |
||
-- Check if a translation of the pagename exists in that language |
-- Check if a translation of the pagename exists in that language |
||
local newtitle = mw.title.new(pagename .. '/' .. subpage, namespace) -- Costly |
local newtitle = mw.title.new(pagename .. '/' .. subpage, namespace) or {} -- Costly |
||
if (newtitle.id == 0 |
if (newtitle.id or 0) == 0 |
||
then |
then |
||
-- Check if a translation of the pagename exists in English |
-- Check if a translation of the pagename exists in English |
||
newtitle = mw.title.new(pagename .. '/' .. 'en', namespace) -- Costly |
newtitle = mw.title.new(pagename .. '/' .. 'en', namespace) or {} -- Costly |
||
end |
end |
||
-- Use the translation when it exists |
-- Use the translation when it exists |
||
if (newtitle.id ~= 0 |
if (newtitle.id or 0) ~= 0 |
||
then |
then |
||
title = newtitle |
title = newtitle |
||
Line 145: | Line 145: | ||
-- At this point the title should exist, otherwise render a red link to the missing page (resolved in its assumed namespace) |
-- At this point the title should exist, otherwise render a red link to the missing page (resolved in its assumed namespace) |
||
if (title.id == 0 |
if (title.id or 0) == 0 |
||
then |
then |
||
return '[[' .. title.prefixedText .. ']]' |
return '[[' .. title.prefixedText .. ']]' |