* Reverting r28802 until I can figure what is going on
authorNiklas Laxström <nikerabbit@users.mediawiki.org>
Mon, 24 Dec 2007 13:14:25 +0000 (13:14 +0000)
committerNiklas Laxström <nikerabbit@users.mediawiki.org>
Mon, 24 Dec 2007 13:14:25 +0000 (13:14 +0000)
RELEASE-NOTES
includes/StubObject.php

index 96581c7..9fe10ac 100644 (file)
@@ -267,7 +267,6 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 12371) Handle more namespace case variants in namespaceDupes.php
 * (bug 12380) Bot-friendly EditPage::spamPage
 * (bug 8066) Spaces can't be entered in special page aliases
-* (bug 10837) Interface "variant" overruling "language" preference
 
 == Parser changes in 1.12 ==
 
index 16c5302..876cf50 100644 (file)
@@ -91,16 +91,13 @@ class StubUserLang extends StubObject {
                global $wgContLanguageCode, $wgRequest, $wgUser, $wgContLang;
                $code = $wgRequest->getVal('uselang', $wgUser->getOption('language') );
 
-               // IF the content language has variants...
-               if ( $wgContLang->hasVariants() ) {
-                       // AND IF the current interface language is the same as content language
-                       if ( $code === $wgContLanguageCode ) {
-                               // THEN use preferred variant as interface language.
-                               // Happens when anonymous users or logged in users with default language
-                               // setting selects a variant conversion.
-                               $code = $wgContLang->getPreferredVariant();
-                       }
-               }
+               // if variant is explicitely selected, use it instead the one from wgUser
+               // see bug #7605
+               if($wgContLang->hasVariants()){
+                       $variant = $wgContLang->getPreferredVariant();
+                       if($variant != $wgContLanguageCode)
+                               $code = $variant;
+               }        
 
                # Validate $code
                if( empty( $code ) || !preg_match( '/^[a-z-]+$/', $code ) ) {