From aad2e5c38bfea0e2def9b811e4ecda2cd132fc29 Mon Sep 17 00:00:00 2001 From: Fomafix Date: Sat, 24 Feb 2018 15:49:46 +0100 Subject: [PATCH] Preferences: Allow only languages with translations in user options This change allows only language codes with translations for the user option 'language'. This restrict the selectable values in the preferences and also prevents setting the user option via API. With the URL parameter 'uselang' the user interface language can still set to a language code without translation. In the current situation this change will remove the following language codes from the allowed values: > print '* ' . implode( "\n* ", array_diff( array_keys( Language::fetchLanguageNames( null, 'mw' ) ), array_keys( Language::fetchLanguageNames( null, 'mwfile' ) ) ) ); * aa * als * bat-smg * be-x-old * cho * fiu-vro * ho * hz * kj * kr * mh * mus * ng * no * rn * roa-rup * shi-latn * shi-tfng * simple * tum * uz-cyrl * uz-latn * zh-classical * zh-min-nan * zh-yue The change I1dd6fb1f240ce3319b132d0f29f0622fba33e655 ensures that the deprecated language codes get replaced by the new language codes. The other untranslated language codes get replaced by the content language codes when the user loads the preferences. Bug: T118199 Change-Id: I1382996b031af3fe9f6e1568beeb6376dcbcd217 --- includes/preferences/DefaultPreferencesFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/preferences/DefaultPreferencesFactory.php b/includes/preferences/DefaultPreferencesFactory.php index eed4b0d209..bf6ab4a82c 100644 --- a/includes/preferences/DefaultPreferencesFactory.php +++ b/includes/preferences/DefaultPreferencesFactory.php @@ -406,7 +406,7 @@ class DefaultPreferencesFactory implements PreferencesFactory { } // Language - $languages = Language::fetchLanguageNames( null, 'mw' ); + $languages = Language::fetchLanguageNames( null, 'mwfile' ); $languageCode = $this->config->get( 'LanguageCode' ); if ( !array_key_exists( $languageCode, $languages ) ) { $languages[$languageCode] = $languageCode; -- 2.20.1