/** * 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; }
/** * 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; }
public function testValidLang() { $nls = new Horde_Registry_Nlsconfig(); $this->assertTrue($nls->validLang('en_US')); $this->assertFalse($nls->validLang('xy_XY')); }