X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2FLanguageConverter.php;h=79ddb6ac8638792c1a2590400dc0d26aa24003fe;hb=5098f9f1b17c29904d1f8219016b764e638a38a5;hp=e13cb59b054ec35394ea2bf3206bbda27c173755;hpb=703206f38c63ba51e75a8aa49724f112ab78047d;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index e13cb59b05..79ddb6ac86 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -246,7 +246,7 @@ class LanguageConverter { * @return Mixed: variant if one found, false otherwise. */ protected function getUserVariant() { - global $wgUser; + global $wgUser, $wgContLang; // memoizing this function wreaks havoc on parserTest.php /* @@ -259,7 +259,11 @@ class LanguageConverter { // Don't call this on stub objects because that causes infinite // recursion during initialisation if ( $wgUser->isLoggedIn() ) { - $ret = $wgUser->getOption( 'variant' ); + if ( $this->mMainLanguageCode == $wgContLang->getCode() ) { + $ret = $wgUser->getOption( 'variant' ); + } else { + $ret = $wgUser->getOption( 'variant-' . $this->mMainLanguageCode ); + } } else { // figure out user lang without constructing wgLang to avoid // infinite recursion @@ -551,7 +555,7 @@ class LanguageConverter { $variant = $this->getPreferredVariant(); $index = $title->getNamespace(); if ( $index !== NS_MAIN ) { - $text = $this->convertNamespace( $index ) . ':'; + $text = $this->convertNamespace( $index, $variant ) . ':'; } else { $text = ''; } @@ -563,10 +567,13 @@ class LanguageConverter { * Get the namespace display name in the preferred variant. * * @param $index int namespace id + * @param $variant string|null variant code or null for preferred variant * @return String: namespace name for display */ - public function convertNamespace( $index ) { - $variant = $this->getPreferredVariant(); + public function convertNamespace( $index, $variant = null ) { + if ( $variant === null ) { + $variant = $this->getPreferredVariant(); + } if ( $index === NS_MAIN ) { return ''; } else { @@ -1363,7 +1370,7 @@ class ConverterRule { * and may return false in this case (so this title conversion rule * will be ignored and the original title is shown). * - * @since 1.21 + * @since 1.22 * @param $variant The variant code to display page title in * @return String|false The converted title or false if just page name */