Merge "vector/screen.css: Remove some unnecessary rules"
[lhc/web/wiklou.git] / languages / LanguageConverter.php
index e13cb59..79ddb6a 100644 (file)
@@ -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
         */