Author: Lars Michelsen <[email protected]>
Date: Tue Aug 30 11:52:58 2011 +0200
Committer: Lars Michelsen <[email protected]>
Commit-Date: Tue Aug 30 11:52:58 2011 +0200
Fixed user language handling after latest recodings
---
share/server/core/classes/GlobalLanguage.php | 40 +++++++++++++++++---------
share/server/core/defines/global.php | 1 +
share/server/core/functions/index.php | 3 ++
3 files changed, 30 insertions(+), 14 deletions(-)
diff --git a/share/server/core/classes/GlobalLanguage.php
b/share/server/core/classes/GlobalLanguage.php
index 46f6250..5addfe8 100644
--- a/share/server/core/classes/GlobalLanguage.php
+++ b/share/server/core/classes/GlobalLanguage.php
@@ -44,23 +44,13 @@ class GlobalLanguage {
$this->textDomain = $textDomain;
- $this->USERCFG = new CoreUserCfg();
-
- $this->sCurrentLanguage = $this->gatherCurrentLanguage();
-
// Append encoding (UTF8)
$this->sCurrentEncoding = 'UTF-8';
// Check for gettext extension
require_once('../../server/core/ext/php-gettext-1.0.9/gettext.inc');
- // Check if choosen language is available
- $this->checkLanguageAvailable($this->sCurrentLanguage, true, true);
-
- // Set the language to us
- putenv('LC_ALL='.$this->sCurrentLanguage.'.'.$this->sCurrentEncoding);
- putenv('LANG='.$this->sCurrentLanguage.'.'.$this->sCurrentEncoding);
- T_setlocale(LC_MESSAGES,
$this->sCurrentLanguage.'.'.$this->sCurrentEncoding);
+ $this->setLanguage();
T_bindtextdomain($this->textDomain, cfg('paths', 'language'));
T_bind_textdomain_codeset($this->textDomain, $this->sCurrentEncoding);
@@ -78,6 +68,25 @@ class GlobalLanguage {
}
/**
+ * Sets the language to be used for future localized strings
+ * while processing the current page.
+ */
+ public function setLanguage($handleUserCfg = false) {
+ if($handleUserCfg)
+ $this->USERCFG = new CoreUserCfg();
+
+ $this->sCurrentLanguage = $this->gatherCurrentLanguage();
+
+ // Check if choosen language is available
+ $this->checkLanguageAvailable($this->sCurrentLanguage, true, true);
+
+ // Set the language to us
+ putenv('LC_ALL='.$this->sCurrentLanguage.'.'.$this->sCurrentEncoding);
+ putenv('LANG='.$this->sCurrentLanguage.'.'.$this->sCurrentEncoding);
+ T_setlocale(LC_MESSAGES,
$this->sCurrentLanguage.'.'.$this->sCurrentEncoding);
+ }
+
+ /**
* Reads the language to use in NagVis
*
* @return String
@@ -92,7 +101,8 @@ class GlobalLanguage {
switch($sMethod) {
case 'session':
// Read the user choice from user options
- $sReturn = $this->USERCFG->getValue('language', '');
+ if($this->USERCFG !== null)
+ $sReturn = $this->USERCFG->getValue('language',
'');
break;
case 'browser':
// Read the prefered language from the users browser
@@ -107,8 +117,10 @@ class GlobalLanguage {
$sReturn = $this->getUserLanguage();
// Save language to user config when user set one
- if($sReturn != '' && $sReturn !=
$this->USERCFG->getValue('language', ''))
- $this->USERCFG->doSet(Array('language'
=> $sReturn));
+ if($sReturn != ''
+ && $this->USERCFG !== null
+ && $sReturn != $this->USERCFG->getValue('language',
''))
+ $this->USERCFG->doSet(Array('language' =>
$sReturn));
break;
case 'config':
// Read default language from configuration
diff --git a/share/server/core/defines/global.php
b/share/server/core/defines/global.php
index 31b921f..a374d82 100644
--- a/share/server/core/defines/global.php
+++ b/share/server/core/defines/global.php
@@ -100,6 +100,7 @@ define('GET_PHYSICAL_PATH', false);
define('DONT_GET_OBJECT_STATE', false);
define('DONT_GET_SINGLE_MEMBER_STATES', false);
define('GET_SINGLE_MEMBER_STATES', true);
+define('HANDLE_USERCFG', true);
define('ONLY_STATE', true);
define('COMPLETE', false);
diff --git a/share/server/core/functions/index.php
b/share/server/core/functions/index.php
index bbb2e4a..8b451cd 100644
--- a/share/server/core/functions/index.php
+++ b/share/server/core/functions/index.php
@@ -57,6 +57,9 @@ if($AUTH->isAuthenticated()) {
// Make the AA information available to whole NagVis for permission checks
$CORE->setAA($AUTH, $AUTHORISATION);
+// Re-set the language to handle the user individual language
+$_LANG->setLanguage(HANDLE_USERCFG);
+
/*
* Module handling 1: Choose modules
*/
------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Nagvis-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagvis-checkins