From 6573e70ae352358480593e10d8cd1f2d07f1a8ff Mon Sep 17 00:00:00 2001 From: Alexander Shursha Date: Mon, 10 Apr 2017 09:48:49 +0300 Subject: [PATCH] Setting locale in ApiControllerBase --- .../OPNsense/Base/ApiControllerBase.php | 1 + .../OPNsense/Base/ControllerBase.php | 27 ++++--------------- .../OPNsense/Base/ControllerRoot.php | 26 ++++++++++++++++++ 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php b/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php index f5b0d504f..56c7881ba 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php @@ -91,6 +91,7 @@ class ApiControllerBase extends ControllerRoot { // disable view processing set_error_handler(array($this, 'APIErrorHandler')); + self::setLocale(); } /** diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php b/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php index 832d0073e..a88d7ed06 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php @@ -44,32 +44,15 @@ class ControllerBase extends ControllerRoot * @param OPNsense\Core\Config $cnf config handle * @return ViewTranslator */ - public function getTranslator($cnf) + public function getTranslator() { - $lang = 'en_US'; - - foreach ($cnf->object()->system->children() as $key => $node) { - if ($key == 'language') { - $lang = $node->__toString(); - break; - } - } - - $lang_encoding = $lang . '.UTF-8'; - $textdomain = 'OPNsense'; - $ret = new ViewTranslator(array( 'directory' => '/usr/local/share/locale', - 'defaultDomain' => $textdomain, - 'locale' => $lang_encoding, + 'defaultDomain' => 'OPNsense', + 'locale' => "en_US.UTF-8", )); - /* this isn't being done by Phalcon */ - putenv('LANG=' . $lang_encoding); - textdomain($textdomain); - bindtextdomain($textdomain, '/usr/local/share/locale'); - bind_textdomain_codeset($textdomain, $lang_encoding); - + self::setLocale(); return $ret; } @@ -211,7 +194,7 @@ class ControllerBase extends ControllerRoot $cnf = Config::getInstance(); // set translator - $this->view->setVar('lang', $this->getTranslator($cnf)); + $this->view->setVar('lang', $this->getTranslator()); $this->view->menuSystem = $menu->getItems("/ui".$this->router->getRewriteUri()); // set theme in ui_theme template var, let template handle its defaults (if there is no theme). diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerRoot.php b/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerRoot.php index 59d2622a7..a128e969b 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerRoot.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerRoot.php @@ -29,6 +29,7 @@ namespace OPNsense\Base; +use OPNsense\Core\Config; use Phalcon\Mvc\Controller; use Phalcon\Logger\Adapter\Syslog; use OPNsense\Core\ACL; @@ -47,6 +48,31 @@ class ControllerRoot extends Controller session_write_close(); } + /** + * Set locale for gettext + */ + public static function setLocale() + { + $lang = 'en_US'; + + // Set locale + foreach (Config::getInstance()->object()->system->children() as $key => $node) { + if ($key == 'language') { + $lang = $node->__toString(); + break; + } + } + + $lang_encoding = $lang . '.UTF-8'; + $textdomain = 'OPNsense'; + + /* this isn't being done by Phalcon */ + putenv('LANG=' . $lang_encoding); + textdomain($textdomain); + bindtextdomain($textdomain, '/usr/local/share/locale'); + bind_textdomain_codeset($textdomain, $lang_encoding); + } + /** * get system logger * @param string $ident syslog identifier