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&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
