* @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.
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 );
+ }
}
}
$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;
}
}
// 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;