Modul:Pg: Unterschied zwischen den Versionen
handle interwiki links better in getMyLanguage
Tt (Diskussion | Beiträge) K (1 Version importiert) |
StadtbahnBI>AntiCompositeNumber (handle interwiki links better in getMyLanguage) |
||
Zeile 6: | Zeile 6: | ||
-- at read time if that exists, or English otherwise | -- at read time if that exists, or English otherwise | ||
local function getMyLanguage(title) | local function getMyLanguage(title) | ||
return mw.title.new('Special:MyLanguage/' .. title.fullText) | -- interwiki prefixes for wikis with translate extension | ||
-- created from https://phabricator.wikimedia.org/source/mediawiki-config/browse/master/wmf-config/InitialiseSettings.php$19151 | |||
-- and https://commons.wikimedia.org/wiki/Special:Interwiki | |||
-- frwiktionary is excluded because there are multiple wiktionaries | |||
local multilang = { | |||
wmam = true, | |||
wmbe = true, | |||
betawikiversity = true, | |||
wmbr = true, | |||
wmbd = true, | |||
wmca = true, | |||
wmge = true, | |||
wmid = true, | |||
wmhi = true, | |||
incubator = true, | |||
m = true, | |||
meta = true, | |||
metawiki = true, | |||
metawikimedia = true, | |||
metawikipedia = true, | |||
wmno = true, | |||
otrswiki = true, | |||
vrtwiki = true, | |||
outreach = true, | |||
outreachwiki = true, | |||
wmpl = true, | |||
wmru = true, | |||
wmpunjabi = true, | |||
oldwikisource = true, | |||
species = true, | |||
wikispecies = true, | |||
wmse = true, | |||
testwiki = true, | |||
wmua = true, | |||
d = true, | |||
wikidata = true, | |||
wmania = true, | |||
wikimania = true, | |||
} | |||
if title.isExternal then | |||
if multilang[title.interwiki] then | |||
-- mw.title.interwiki only seperates the first interwiki or interlanguage | |||
-- prefix. that means this wouldn't work with a link that has both, | |||
-- eg 'wikt:fr:foo' -> 'wikt:Special:MyLanguage/fr:foo' which breaks. | |||
-- if the wiki supports translation, the link probably doesn't have an | |||
-- interlanguage prefix and Special:MyLanguage might be useful | |||
return mw.title.new(title.interwiki .. ':Special:MyLanguage/' .. title.nsText .. title.text) | |||
else | |||
-- wiki doesn't support translation, so don't try to add Special:MyLanguage | |||
return title | |||
end | |||
else | |||
return mw.title.new('Special:MyLanguage/' .. title.fullText) | |||
end | |||
end | end | ||