* @return Title|null
*/
public function findTitle( $par ) {
- global $wgLanguageCode;
// base = title without language code suffix
// provided = the title as it was given
$base = $provided = Title::newFromText( $par );
$pos = strrpos( $par, '/' );
$basepage = substr( $par, 0, $pos );
$code = substr( $par, $pos + 1 );
- if ( Language::isKnownLanguageTag( $code ) ) {
+ if ( strlen( $code ) && Language::isKnownLanguageTag( $code ) ) {
$base = Title::newFromText( $basepage );
}
}
return null;
}
+ if ( $base->isRedirect() ) {
+ $page = new WikiPage( $base );
+ $base = $page->getRedirectTarget();
+ }
+
$uiCode = $this->getLanguage()->getCode();
$proposed = $base->getSubpage( $uiCode );
- if ( $uiCode !== $wgLanguageCode && $proposed && $proposed->exists() ) {
+ if ( $uiCode !== $this->getConfig()->get( 'LanguageCode' ) && $proposed && $proposed->exists() ) {
return $proposed;
} elseif ( $provided && $provided->exists() ) {
return $provided;