Author: Michael Slusarz (slusarz@horde.org)
Example #1
0
 /**
  * Sets the language.
  *
  * @param string $lang  The language abbreviation.
  *
  * @return string  The current language (since 2.5.0).
  *
  * @throws Horde_Exception
  */
 public function setLanguage($lang = null)
 {
     if (empty($lang) || !$this->nlsconfig->validLang($lang)) {
         $lang = $this->preferredLang();
     }
     $GLOBALS['session']->set('horde', 'language', $lang);
     $changed = false;
     if (isset($GLOBALS['language'])) {
         if ($GLOBALS['language'] == $lang) {
             return $lang;
         }
         $changed = true;
     }
     $GLOBALS['language'] = $lang;
     $lang_charset = $lang . '.UTF-8';
     if (setlocale(LC_ALL, $lang_charset)) {
         putenv('LC_ALL=' . $lang_charset);
         putenv('LANG=' . $lang_charset);
         putenv('LANGUAGE=' . $lang_charset);
     } else {
         $changed = false;
     }
     if ($changed) {
         $this->rebuild();
         $this->_cache['cfile'] = array();
         foreach ($this->listApps() as $app) {
             if ($this->isAuthenticated(array('app' => $app, 'notransparent' => true))) {
                 $this->callAppMethod($app, 'changeLanguage');
             }
         }
     }
     return $lang;
 }
Example #2
0
 /**
  * Sets the language.
  *
  * @param string $lang  The language abbreviation.
  *
  * @return string  The current language (since 2.5.0).
  *
  * @throws Horde_Exception
  */
 public function setLanguage($lang = null)
 {
     if (empty($lang) || !$this->nlsconfig->validLang($lang)) {
         $lang = $this->preferredLang();
     }
     $GLOBALS['session']->set('horde', 'language', $lang);
     $changed = false;
     if (isset($GLOBALS['language'])) {
         if ($GLOBALS['language'] == $lang) {
             return $lang;
         }
         $changed = true;
     }
     $GLOBALS['language'] = $lang;
     $lang_charset = $lang . '.UTF-8';
     if (setlocale(LC_ALL, $lang_charset)) {
         putenv('LC_ALL=' . $lang_charset);
         putenv('LANG=' . $lang_charset);
         putenv('LANGUAGE=' . $lang_charset);
     } else {
         $changed = false;
     }
     if ($changed) {
         $this->rebuild();
     }
     return $lang;
 }
Example #3
0
 public function testValidLang()
 {
     $nls = new Horde_Registry_Nlsconfig();
     $this->assertTrue($nls->validLang('en_US'));
     $this->assertFalse($nls->validLang('xy_XY'));
 }