From ceecd29b53b7d570b56fb391a09abb71fe80566b Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Thu, 21 Jan 2016 19:10:21 -0200 Subject: Fix #5690: - Remove parameters from set_language() - Add a global variable for default language - add env var for LANG, otherwise it won't work --- src/etc/inc/pfsense-utils.inc | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src/etc/inc/pfsense-utils.inc') diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc index ae00bee..5a0a34e 100644 --- a/src/etc/inc/pfsense-utils.inc +++ b/src/etc/inc/pfsense-utils.inc @@ -2756,11 +2756,21 @@ function pfSense_handle_custom_code($src_dir) { } } -function set_language($lang = 'en_US', $encoding = "UTF-8") { - setlocale(LC_ALL, "{$lang}.{$encoding}"); - textdomain("pfSense"); - bindtextdomain("pfSense", "/usr/local/share/locale"); - bind_textdomain_codeset("pfSense", "{$lang}.{$encoding}"); +function set_language() { + global $config, $g; + + if (!empty($config['system']['language'])) { + $lang = $config['system']['language']; + } elseif (!empty($g['language'])) { + $lang = $g['language']; + } + $lang .= ".UTF-8"; + + putenv("LANG={$lang}"); + $r = setlocale(LC_ALL, $lang); + $r = textdomain("pfSense"); + $r = bindtextdomain("pfSense", "/usr/local/share/locale"); + $r = bind_textdomain_codeset("pfSense", $lang); } function get_locale_list() { -- cgit v1.1