Merge "Use Language::isSupportedLanguage for language code validation"
This commit is contained in:
@@ -151,12 +151,6 @@ class UniversalLanguageSelectorHooks {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static function isSupportedLanguage( $language ) {
|
|
||||||
$supported = Language::fetchLanguageNames( null, 'mwfile' ); // since 1.20
|
|
||||||
|
|
||||||
return isset( $supported[$language] );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $preferred
|
* @param array $preferred
|
||||||
* @return string
|
* @return string
|
||||||
@@ -201,8 +195,8 @@ class UniversalLanguageSelectorHooks {
|
|||||||
|
|
||||||
$request = $context->getRequest();
|
$request = $context->getRequest();
|
||||||
|
|
||||||
$languageToSave = $request->getVal( 'setlang' );
|
$languageToSave = $request->getText( 'setlang' );
|
||||||
if ( $request->getVal( 'uselang' ) && !$languageToSave ) {
|
if ( $request->getText( 'uselang' ) && !$languageToSave ) {
|
||||||
// uselang can be used for temporary override of language preference
|
// uselang can be used for temporary override of language preference
|
||||||
// when setlang is not provided
|
// when setlang is not provided
|
||||||
return true;
|
return true;
|
||||||
@@ -211,7 +205,7 @@ class UniversalLanguageSelectorHooks {
|
|||||||
// Registered users - simple
|
// Registered users - simple
|
||||||
if ( !$user->isAnon() ) {
|
if ( !$user->isAnon() ) {
|
||||||
// Language change
|
// Language change
|
||||||
if ( self::isSupportedLanguage( $languageToSave ) ) {
|
if ( Language::isSupportedLanguage( $languageToSave ) ) {
|
||||||
$user->setOption( 'language', $languageToSave );
|
$user->setOption( 'language', $languageToSave );
|
||||||
$user->saveSettings();
|
$user->saveSettings();
|
||||||
// Apply immediately
|
// Apply immediately
|
||||||
@@ -228,7 +222,7 @@ class UniversalLanguageSelectorHooks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Language change
|
// Language change
|
||||||
if ( self::isSupportedLanguage( $languageToSave ) ) {
|
if ( Language::isSupportedLanguage( $languageToSave ) ) {
|
||||||
$request->response()->setcookie( 'language', $languageToSave );
|
$request->response()->setcookie( 'language', $languageToSave );
|
||||||
$code = $languageToSave;
|
$code = $languageToSave;
|
||||||
|
|
||||||
@@ -236,8 +230,8 @@ class UniversalLanguageSelectorHooks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Try cookie
|
// Try cookie
|
||||||
$languageToUse = $request->getCookie( 'language' );
|
$languageToUse = $request->getCookie( 'language', null, '' );
|
||||||
if ( self::isSupportedLanguage( $languageToUse ) ) {
|
if ( Language::isSupportedLanguage( $languageToUse ) ) {
|
||||||
$code = $languageToUse;
|
$code = $languageToUse;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user