Make language variant selection work again for zh
authorZheng Zhu <zhengzhu@users.mediawiki.org>
Tue, 5 Jul 2005 05:21:53 +0000 (05:21 +0000)
committerZheng Zhu <zhengzhu@users.mediawiki.org>
Tue, 5 Jul 2005 05:21:53 +0000 (05:21 +0000)
RELEASE-NOTES
languages/LanguageConverter.php

index a37314a..85ab0c9 100644 (file)
@@ -473,6 +473,7 @@ of MediaWiki:Newpagetext) to &action=edit, if page is new.
 * (bug 2674) Include some site configuration info in export data:
   namespaces definitions, case-sensitivity, site name, version.
 * Use xml:space="preserve" hint on export <text> elements
+* Make language variant selection work again for zh
 
 
 === Caveats ===
index dd02162..d4a0b10 100644 (file)
@@ -92,23 +92,26 @@ class LanguageConverter {
                // get language variant preference from logged in users 
                if(is_object($wgUser) && $wgUser->isLoggedIn() )  {
                        $this->mPreferredVariant = $wgUser->getOption('variant');
+                       return $this->mPreferredVariant;
                }
 
                # FIXME rewrite code for parsing http header. The current code
                # is written specific for detecting zh- variants
                if( !$this->mPreferredVariant ) {
-                       // see if some zh- variant is set in the http header,
-                       $this->mPreferredVariant=$this->mMainLanguageCode;
+                       // see if some supported language variant is set in the
+                       // http header, but we don't set the mPreferredVariant
+                       // variable in case this is called before the user's
+                       // preference is loaded
+                       $pv=$this->mMainLanguageCode;
                        if(array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER)) {
                                $header = str_replace( '_', '-', strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"]));
                                $zh = strstr($header, 'zh-');
                                if($zh) {
-                                       $this->mPreferredVariant = substr($zh,0,5);
+                                       $pv = substr($zh,0,5);
                                }
                        }
+                       return $pv;
                }
-
-               return $this->mPreferredVariant;
        }
 
        /**