Localization update for he.
[lhc/web/wiklou.git] / languages / LanguageConverter.php
index 6209540..b54fcbc 100644 (file)
@@ -126,13 +126,15 @@ class LanguageConverter {
        /**
         * get preferred language variants.
         * @param boolean $fromUser Get it from $wgUser's preferences
+        * @param boolean $fromHeader Get it from Accept-Language
         * @return string the preferred language code
         * @public
         */
-       function getPreferredVariant( $fromUser = true ) {
-               global $wgUser, $wgRequest, $wgVariantArticlePath, $wgDefaultLanguageVariant;
+       function getPreferredVariant( $fromUser = true, $fromHeader = false ) {
+               global $wgUser, $wgRequest, $wgVariantArticlePath, $wgDefaultLanguageVariant, $wgOut;
 
-               if($this->mPreferredVariant)
+               // bug 21974, don't return $this->mPreferredVariant if $fromUser = false
+               if( $fromUser && $this->mPreferredVariant )
                        return $this->mPreferredVariant;
 
                // figure out user lang without constructing wgLang to avoid infinite recursion
@@ -174,7 +176,7 @@ class LanguageConverter {
                }
 
                // see if default variant is globaly set
-               if($wgDefaultLanguageVariant != false  &&  in_array( $wgDefaultLanguageVariant, $this->mVariants )){
+               if($wgDefaultLanguageVariant != false && in_array( $wgDefaultLanguageVariant, $this->mVariants )){
                        $this->mPreferredVariant = $wgDefaultLanguageVariant;
                        return $this->mPreferredVariant;
                }
@@ -184,9 +186,8 @@ class LanguageConverter {
                        // http header, but we don't set the mPreferredVariant
                        // variable in case this is called before the user's
                        // preference is loaded
-                       if( array_key_exists( 'HTTP_ACCEPT_LANGUAGE', $_SERVER ) ) {
+                       if( $fromHeader && array_key_exists( 'HTTP_ACCEPT_LANGUAGE', $_SERVER ) ) {
                                $acceptLanguage = strtolower( $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
-                               
                                // explode by comma
                                $result = explode(',', $acceptLanguage);
                                
@@ -231,7 +232,6 @@ class LanguageConverter {
                                }
                        }
                }
-
                return $this->mMainLanguageCode;
        }