Module: nagvis
Branch: master
Commit: 85ae6f4a05e6c1e05a3c74fd1b3ae259d8aeef28
URL:    
http://nagvis.git.sourceforge.net/git/gitweb.cgi?p=nagvis/nagvis;a=commit;h=85ae6f4a05e6c1e05a3c74fd1b3ae259d8aeef28

Author: Lars Michelsen <[email protected]>
Date:   Thu Oct 22 20:51:37 2009 +0200

#15 User can now choose the language by dropdown menu in the header

---

 .../nagvis-js/classes/GlobalHeaderMenu.php         |   32 ++++++++++++++++++++
 share/server/core/classes/GlobalCore.php           |   19 ++++++++++++
 share/server/core/classes/GlobalLanguage.php       |    3 +-
 share/userfiles/templates/header/tmpl.default.html |    2 +
 4 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/share/frontend/nagvis-js/classes/GlobalHeaderMenu.php 
b/share/frontend/nagvis-js/classes/GlobalHeaderMenu.php
index 2f87b5b..f8309cb 100644
--- a/share/frontend/nagvis-js/classes/GlobalHeaderMenu.php
+++ b/share/frontend/nagvis-js/classes/GlobalHeaderMenu.php
@@ -156,6 +156,38 @@ class GlobalHeaderMenu {
                                        }
                                        
                                        $this->code = preg_replace('/<!-- BEGIN 
'.$key.' -->(?:(?s).*)<!-- END '.$key.' -->/',$sReplace,$this->code);
+                               } elseif($key == 'langlist') {
+                                       $sReplace = '';
+                                       preg_match_all('/<!-- BEGIN '.$key.' 
-->((?s).*)<!-- END '.$key.' -->/', $this->code, $matchReturn1);
+                                       
+                                       
foreach($this->CORE->getAvailableAndEnabledLanguages() AS $lang) {
+                                               $sReplaceObj = 
str_replace('[language]', $lang, $matchReturn1[1][0]);
+                                               
+                                               // Get translated language name
+                                               switch($lang) {
+                                                       case 'en_US':
+                                                               
$languageLocated = $this->CORE->getLang()->getText('en_US');
+                                                       break;
+                                                       case 'de_DE':
+                                                               
$languageLocated = $this->CORE->getLang()->getText('de_DE');
+                                                       break;
+                                                       case 'es_ES':
+                                                               
$languageLocated = $this->CORE->getLang()->getText('es_ES');
+                                                       break;
+                                                       case 'pt_BR':
+                                                               
$languageLocated = $this->CORE->getLang()->getText('pt_BR');
+                                                       break;
+                                                       default:
+                                                               
$languageLocated = $this->CORE->getLang()->getText($lang);
+                                                       break;
+                                               }
+                                               
+                                               $sReplaceObj = 
str_replace('[lang_language_located]', $languageLocated, $sReplaceObj);
+                                                               
+                                               $sReplace .= $sReplaceObj;
+                                       }
+                                       
+                                       $this->code = preg_replace('/<!-- BEGIN 
'.$key.' -->(?:(?s).*)<!-- END '.$key.' -->/', $sReplace, $this->code);
                                }
                        }
                }
diff --git a/share/server/core/classes/GlobalCore.php 
b/share/server/core/classes/GlobalCore.php
index 2d78a5d..64f37e4 100644
--- a/share/server/core/classes/GlobalCore.php
+++ b/share/server/core/classes/GlobalCore.php
@@ -173,6 +173,25 @@ class GlobalCore {
        }
        
        /**
+        * Reads all languages which are available in NagVis and
+        * are enabled by the configuration
+        *
+        * @return      Array list
+        * @author      Lars Michelsen <[email protected]>
+        */
+       public function getAvailableAndEnabledLanguages() {
+               $aRet = Array();
+               
+               foreach($this->getAvailableLanguages() AS $val) {
+                       if(in_array($val, 
$this->getMainCfg()->getValue('global', 'language_available'))) {
+                               $aRet[] = $val;
+                       }
+               }
+               
+               return $aRet;
+       }
+       
+       /**
         * Reads all available backends
         *
         * @return      Array Html
diff --git a/share/server/core/classes/GlobalLanguage.php 
b/share/server/core/classes/GlobalLanguage.php
index 97fe4fb..feea183 100644
--- a/share/server/core/classes/GlobalLanguage.php
+++ b/share/server/core/classes/GlobalLanguage.php
@@ -226,8 +226,7 @@ class GlobalLanguage {
                // Checks two things:
                // a) The language availabilty in the filesyste,
                // b) Listed language in global/language_available config option
-               
-               if(in_array($sLang, $this->CORE->getAvailableLanguages())) {
+               if(in_array($sLang, $this->CORE->getAvailableLanguages()) && 
($ignoreConf == true || ($ignoreConf == false && in_array($sLang, 
$this->CORE->getMainCfg()->getValue('global', 'language_available'))))) {
                        return TRUE;
                } else {
                        if($printErr) {
diff --git a/share/userfiles/templates/header/tmpl.default.html 
b/share/userfiles/templates/header/tmpl.default.html
index d579779..9119e49 100644
--- a/share/userfiles/templates/header/tmpl.default.html
+++ b/share/userfiles/templates/header/tmpl.default.html
@@ -26,6 +26,8 @@
                                <option 
value="http://www.nagios-portal.org/wbb/index.php?page=Board&amp;boardID=42";>[lang_forum]</option>
                                <option 
value="[html_base]/frontend/nagvis-js/index.php?mod=Info">[lang_support_info]</option>
                                <option value="">---</option>
+                               <!-- BEGIN langlist --><option 
value="[html_base]/frontend/nagvis-js/index.php?lang=[language]">[lang_language_located]</option><!--
 END langlist -->
+                               <option value="">---</option>
                                <option 
value="[html_base]/frontend/nagvis-js/index.php?mod=Auth&act=logout">[lang_logout]</option>
                        </select>
                </td>


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Nagvis-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagvis-checkins

Reply via email to