diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml index d22819e70..6ec9f3226 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml @@ -5,7 +5,9 @@ - + + + diff --git a/src/www/guiconfig.inc b/src/www/guiconfig.inc index 0816f9634..874061a4d 100644 --- a/src/www/guiconfig.inc +++ b/src/www/guiconfig.inc @@ -57,7 +57,6 @@ function html_safe($text) header("X-Frame-Options: SAMEORIGIN"); -/* set language */ $lang = 'en_US'; if (!empty($config['system']['language'])) { $lang = $config['system']['language']; @@ -73,6 +72,22 @@ bind_textdomain_codeset($textdomain, $lang_encoding); require_once("authgui.inc"); +if (!empty($_SESSION['Username']) && array_key_exists($_SESSION['Username'], $userindex)) { + $old_lang = $lang; + $lang = $config['system']['user'][$userindex[$_SESSION['Username']]]['language']; + + /* a bit silly to redo this now but ok... */ + if (!empty($lang) && $lang != $old_lang) { + $lang_encoding = $lang . '.UTF-8'; + $textdomain = 'OPNsense'; + + putenv('LANG=' . $lang_encoding); + textdomain($textdomain); + bindtextdomain($textdomain, '/usr/local/share/locale'); + bind_textdomain_codeset($textdomain, $lang_encoding); + } +} + /* Reserved table names to avoid colision */ $reserved_table_names = array( "bogons", diff --git a/src/www/system_general.php b/src/www/system_general.php index c2169a108..ab146b287 100644 --- a/src/www/system_general.php +++ b/src/www/system_general.php @@ -40,12 +40,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $savemsg = htmlspecialchars(gettext($_GET['savemsg'])); } - $pconfig['theme'] = null; - $pconfig['language'] = null; - $pconfig['timezone'] = 'Etc/UTC'; - $pconfig['prefer_ipv4'] = isset($config['system']['prefer_ipv4']); - $pconfig['hostname'] = $config['system']['hostname']; + $pconfig['dnsallowoverride'] = isset($config['system']['dnsallowoverride']); + $pconfig['dnslocalhost'] = isset($config['system']['dnslocalhost']); $pconfig['domain'] = $config['system']['domain']; + $pconfig['hostname'] = $config['system']['hostname']; + $pconfig['language'] = $config['system']['language']; + $pconfig['prefer_ipv4'] = isset($config['system']['prefer_ipv4']); + $pconfig['theme'] = $config['theme']; + $pconfig['timezone'] = $config['system']['timezone']; + $pconfig['timezone'] = 'Etc/UTC'; for ($dnscounter = 1; $dnscounter < 9; $dnscounter++) { $dnsname = "dns{$dnscounter}"; @@ -54,16 +57,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $dnsgwname= "dns{$dnscounter}gw"; $pconfig[$dnsgwname] = !empty($config['system'][$dnsgwname]) ? $config['system'][$dnsgwname] : 'none'; } - - $pconfig['dnsallowoverride'] = isset($config['system']['dnsallowoverride']); - $pconfig['timezone'] = $config['system']['timezone']; - if (isset($config['theme'])) { - $pconfig['theme'] = $config['theme']; - } - if (isset($config['system']['language'])) { - $pconfig['language'] = $config['system']['language']; - } - $pconfig['dnslocalhost'] = isset($config['system']['dnslocalhost']); } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') { $input_errors = array(); $pconfig = $_POST; @@ -132,15 +125,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { } if (count($input_errors) == 0) { - $config['system']['hostname'] = $pconfig['hostname']; $config['system']['domain'] = $pconfig['domain']; + $config['system']['hostname'] = $pconfig['hostname']; + $config['system']['language'] = $pconfig['language']; $config['system']['timezone'] = $pconfig['timezone']; $config['theme'] = $pconfig['theme']; - if (!empty($pconfig['language']) && $pconfig['language'] != $config['system']['language']) { - $config['system']['language'] = $pconfig['language']; - } - if (!empty($pconfig['prefer_ipv4'])) { $config['system']['prefer_ipv4'] = true; } elseif (isset($config['system']['prefer_ipv4'])) { @@ -254,7 +244,7 @@ include("head.inc"); - @@ -304,7 +294,7 @@ include("head.inc"); + + + +
+
+ + +
diff --git a/src/www/system_usermanager_passwordmg.php b/src/www/system_usermanager_passwordmg.php index c23e45181..a52721971 100644 --- a/src/www/system_usermanager_passwordmg.php +++ b/src/www/system_usermanager_passwordmg.php @@ -1,72 +1,93 @@ "; + header(url_safe('Location: /system_usermanager_passwordmg.php?savemsg=%s', sprintf(gettext('Saved settings for user "%s"'), $username))); + exit; } } +legacy_html_escape_form_data($pconfig); + include("head.inc"); ?> @@ -89,23 +110,49 @@ include("head.inc");
- + + + + + - + - + + + + +
+ + +
+ + +