system: provide default for user language

Sometimes users are confused why their user's language does not
change when edited under System: Settings: General.  Even during
password change a language is forced so we can avoid it by giving
an empty default which will keep the language tied to the system.
This commit is contained in:
Franco Fichtner 2018-06-18 09:59:46 +02:00
parent 6c6b3e107e
commit ccee4c9927

View File

@ -51,12 +51,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$savemsg = gettext('Your password does not match the selected security policies. Please provide a new one.');
}
if ($userFound) {
$pconfig['language'] = $config['system']['user'][$userindex[$username]]['language'];
}
if (empty($pconfig['language'])) {
$pconfig['language'] = $config['system']['language'];
}
$pconfig['language'] = $userFound ? $config['system']['user'][$userindex[$username]]['language'] : null;
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
$input_errors = array();
$pconfig = $_POST;
@ -77,7 +72,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
}
if (count($input_errors) == 0) {
$config['system']['user'][$userindex[$username]]['language'] = $pconfig['language'];
if (!empty($pconfig['language'])) {
$config['system']['user'][$userindex[$username]]['language'] = $pconfig['language'];
} elseif (isset($config['system']['user'][$userindex[$username]]['language'])) {
unset($config['system']['user'][$userindex[$username]]['language']);
}
// only update password change date if there is a policy constraint
if (!empty($config['system']['webgui']['enable_password_policy_constraints']) &&
!empty($config['system']['webgui']['password_policy_length'])
@ -154,13 +154,10 @@ include("head.inc");
<td><a id="help_for_language" href="#" class="showhelp"><i class="fa fa-info-circle"></i></a> <?=gettext("Language");?></td>
<td>
<select name="language" class="selectpicker" data-style="btn-default">
<?php
foreach (get_locale_list() as $lcode => $ldesc):?>
<option value="<?=$lcode;?>" <?=$lcode == $pconfig['language'] ? "selected=\"selected\"" : "";?>>
<?=$ldesc;?>
</option>
<?php
endforeach;?>
<option value="" <?= empty($pconfig['language']) ? "selected='selected'" : '' ?>><?=gettext('System defaults') ?></option>
<?php foreach (get_locale_list() as $lcode => $ldesc): ?>
<option value="<?= html_safe($lcode) ?>" <?= $lcode == $pconfig['language'] ? 'selected="selected"' : '' ?>><?= $ldesc ?></option>
<?php endforeach ?>
</select>
<div class="hidden" data-for="help_for_language">
<?= gettext('Choose a language for the web GUI.') ?>