* (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 ==
global $wgContLanguageCode, $wgRequest, $wgUser, $wgContLang;
$code = $wgRequest->getVal('uselang', $wgUser->getOption('language') );
- // 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;
- }
+ // 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();
+ }
+ }
# Validate $code
if( empty( $code ) || !preg_match( '/^[a-z-]+$/', $code ) ) {
$code = $wgContLanguageCode;
}
- if( $code == $wgContLanguageCode ) {
+ if( $code === $wgContLanguageCode ) {
return $wgContLang;
} else {
$obj = Language::factory( $code );