Unbreak locale selection in admin interface

http://php.net/manual/en/function.setlocale.php says "Different systems
have different naming schemes for locales." This seems to be true for
platforms (eg Win vs. Linux), but on Debian AFAIR locales were always at
least two-part (de_DE), never just one (de). This seems to have been
broken in 504651a3, likely by mistake.

Also, switch locale immediately, even before writing to the database.

BTW, what happens when system default locale is configured to e.g. fr_FR
and the user selects "English" - does that work?
This commit is contained in:
Florian Schlichting 2017-01-17 00:10:32 +01:00
parent 21b5f8bacf
commit 2a84694331
14 changed files with 27 additions and 24 deletions

View File

@ -4,7 +4,7 @@ INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'ar', 'Arabic', 'العَرَبِية' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'de', 'German', 'Deutsch' );
VALUES( 'de_DE', 'German', 'Deutsch' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'es_AR', 'Spanish (Argentina)', 'Español (Argentina)' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
@ -14,32 +14,32 @@ INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'es_VE', 'Spanish (Venezuela)', 'Español (Venezuela)' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'et', 'Estonian', 'Eesti' );
VALUES( 'et_EE', 'Estonian', 'Eesti' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'fi', 'Finnish', 'Suomi' );
VALUES( 'fi_FI', 'Finnish', 'Suomi' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'fr', 'French', 'Français' );
VALUES( 'fr_FR', 'French', 'Français' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'hu', 'Hungarian', 'Magyar' );
VALUES( 'hu_HU', 'Hungarian', 'Magyar' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'it', 'Italian', 'Italiano' );
VALUES( 'it_IT', 'Italian', 'Italiano' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'ja', 'Japanese', '日本語' );
VALUES( 'ja_JP', 'Japanese', '日本語' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'ko_KR', 'Korean (Korea)', '한국어' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'nb', 'Norwegian', 'Bokmål' );
VALUES( 'nb_NO', 'Norwegian', 'Bokmål' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'nl', 'Netherlands', 'Nederlands' );
VALUES( 'nl_NL', 'Netherlands', 'Nederlands' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'pl', 'Polish', 'Polski' );
VALUES( 'pl_PL', 'Polish', 'Polski' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'pt_BR', 'Brazilian Portuguese', 'Brazilian Portuguese' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'pt_PT', 'Portuguese', 'Portuguese' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'ru', 'Russian', 'Русский' );
VALUES( 'ru_RU', 'Russian', 'Русский' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'sk_SK', 'Slovak (Slovakia)', 'Slovenčina' );
INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale )
VALUES( 'sv', 'Swedish', 'Svenska' );
VALUES( 'sv_SE', 'Swedish', 'Svenska' );

View File

@ -220,6 +220,9 @@ function principal_editor() {
if ( isset($_POST['fullname']) && !isset($_POST['displayname']) ) {
$_POST['displayname'] = $_POST['fullname'];
}
if ( isset($_POST['locale']) ) {
awl_set_locale($_POST['locale']); // activate immediately
}
if ( isset($_POST['default_privileges']) ) {
$privilege_bitpos = array_flip($privilege_names);
$priv_names = array_keys($_POST['default_privileges']);

View File

@ -1 +1 @@
VALUES( 'de', 'German', 'Deutsch' );
VALUES( 'de_DE', 'German', 'Deutsch' );

View File

@ -1 +1 @@
VALUES( 'et', 'Estonian', 'Eesti' );
VALUES( 'et_EE', 'Estonian', 'Eesti' );

View File

@ -1 +1 @@
VALUES( 'fi', 'Finnish', 'Suomi' );
VALUES( 'fi_FI', 'Finnish', 'Suomi' );

View File

@ -1 +1 @@
VALUES( 'fr', 'French', 'Français' );
VALUES( 'fr_FR', 'French', 'Français' );

View File

@ -1 +1 @@
VALUES( 'hu', 'Hungarian', 'Magyar' );
VALUES( 'hu_HU', 'Hungarian', 'Magyar' );

View File

@ -1 +1 @@
VALUES( 'it', 'Italian', 'Italiano' );
VALUES( 'it_IT', 'Italian', 'Italiano' );

View File

@ -1 +1 @@
VALUES( 'ja', 'Japanese', '日本語' );
VALUES( 'ja_JP', 'Japanese', '日本語' );

View File

@ -1 +1 @@
VALUES( 'nb', 'Norwegian', 'Bokmål' );
VALUES( 'nb_NO', 'Norwegian', 'Bokmål' );

View File

@ -1 +1 @@
VALUES( 'nl', 'Netherlands', 'Nederlands' );
VALUES( 'nl_NL', 'Netherlands', 'Nederlands' );

View File

@ -1 +1 @@
VALUES( 'pl', 'Polish', 'Polski' );
VALUES( 'pl_PL', 'Polish', 'Polski' );

View File

@ -1 +1 @@
VALUES( 'ru', 'Russian', 'Русский' );
VALUES( 'ru_RU', 'Russian', 'Русский' );

View File

@ -1 +1 @@
VALUES( 'sv', 'Swedish', 'Svenska' );
VALUES( 'sv_SE', 'Swedish', 'Svenska' );