// if variant is explicitely selected, use it instead the one from wgUser
// see bug #7605
- if( $wgContLang->hasVariants() && $code == $wgContLanguageCode ){
+ if( $wgContLang->hasVariants() && in_array($code, $wgContLang->getVariants()) ){
$variant = $wgContLang->getPreferredVariant();
if( $variant != $wgContLanguageCode )
$code = $variant;
$defaultUserLang = $this->mMainLanguageCode;
$userLang = $wgRequest->getVal( 'uselang', $defaultUserLang );
// see if interface language is same as content, if not, prevent conversion
- if( $this->mMainLanguageCode != $userLang ){
+ if( ! in_array( $userLang, $this->mVariants ) ){
$this->mPreferredVariant = $this->mMainLanguageCode; // no conversion
return $this->mPreferredVariant;
}