X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialMyLanguage.php;h=408bd92883428ed84b26f5497fcec2a1fbdc2e0c;hb=9e8439e79d67788916d488f645108f79016d9aca;hp=37d96f47cc16ad9178dae81ac02df636b50994c5;hpb=0eb07d1394fcf4f16983071888d1ce3b949ce813;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialMyLanguage.php b/includes/specials/SpecialMyLanguage.php index 37d96f47cc..408bd92883 100644 --- a/includes/specials/SpecialMyLanguage.php +++ b/includes/specials/SpecialMyLanguage.php @@ -23,6 +23,8 @@ * @copyright Copyright © 2010-2013 Niklas Laxström, Siebrand Mazeland */ +use MediaWiki\MediaWikiServices; + /** * Unlisted special page just to redirect the user to the translated version of * a page, if it exists. @@ -69,14 +71,14 @@ class SpecialMyLanguage extends RedirectSpecialArticle { if ( $subpage !== null ) { $provided = Title::newFromText( $subpage ); $base = $provided; - } - if ( $provided && strpos( $subpage, '/' ) !== false ) { - $pos = strrpos( $subpage, '/' ); - $basepage = substr( $subpage, 0, $pos ); - $code = substr( $subpage, $pos + 1 ); - if ( strlen( $code ) && Language::isKnownLanguageTag( $code ) ) { - $base = Title::newFromText( $basepage ); + if ( $provided && strpos( $subpage, '/' ) !== false ) { + $pos = strrpos( $subpage, '/' ); + $basepage = substr( $subpage, 0, $pos ); + $code = substr( $subpage, $pos + 1 ); + if ( strlen( $code ) && Language::isKnownLanguageTag( $code ) ) { + $base = Title::newFromText( $basepage ); + } } } @@ -90,17 +92,17 @@ class SpecialMyLanguage extends RedirectSpecialArticle { $base = $page->getRedirectTarget(); } - $uiCode = $this->getLanguage()->getCode(); - $wikiLangCode = $this->getConfig()->get( 'LanguageCode' ); + $uiLang = $this->getLanguage(); + $contLang = MediaWikiServices::getInstance()->getContentLanguage(); - if ( $uiCode === $wikiLangCode ) { + if ( $uiLang->equals( $contLang ) ) { // Short circuit when the current UI language is the // wiki's default language to avoid unnecessary page lookups. return $base; } // Check for a subpage in current UI language - $proposed = $base->getSubpage( $uiCode ); + $proposed = $base->getSubpage( $uiLang->getCode() ); if ( $proposed && $proposed->exists() ) { return $proposed; } @@ -111,9 +113,9 @@ class SpecialMyLanguage extends RedirectSpecialArticle { } // Check for fallback languages specified by the UI language - $possibilities = Language::getFallbacksFor( $uiCode ); + $possibilities = $uiLang->getFallbackLanguages(); foreach ( $possibilities as $lang ) { - if ( $lang !== $wikiLangCode ) { + if ( $lang !== $contLang->getCode() ) { $proposed = $base->getSubpage( $lang ); if ( $proposed && $proposed->exists() ) { return $proposed;