break;
}
+/* Change language. */
+if (!$is_auth &&
+ !$prefs->isLocked('language') &&
+ ($new_lang = Horde_Util::getGet('new_lang'))) {
+ $registry->setLanguageEnvironment($new_lang);
+}
+
if ($logout_reason) {
if ($is_auth) {
try {
$is_auth = null;
}
- $language = $prefs->getValue('language');
-
$entry = sprintf('User %s [%s] logged out of Horde', $registry->getAuth(), $_SERVER['REMOTE_ADDR']);
Horde::logMessage($entry, 'NOTICE');
$registry->clearAuth();
}
$session->setup();
- $registry->setLanguageEnvironment($language, $vars->app);
- /* Hook to preselect the correct language in the widget. */
- $_GET['new_lang'] = $language;
+ /* Explicitly set language in un-authenticated session. */
+ $registry->setLanguage($GLOBALS['language']);
} elseif (Horde_Util::getPost('login_post') ||
Horde_Util::getPost('login_button')) {
/* Get the login params from the login screen. */
$entry = sprintf('FAILED LOGIN for %s [%s] to Horde',
$vars->horde_user, $_SERVER['REMOTE_ADDR']);
Horde::logMessage($entry, 'ERR');
-} elseif ($new_lang = Horde_Util::getGet('new_lang')) {
- $registry->setLanguageEnvironment($new_lang);
}
/* Build the list of necessary login parameters.
/* Build the <select> widget containing the available languages. */
if (!$is_auth && !$prefs->isLocked('language')) {
- $session->set('horde', 'language', $registry->preferredLang($vars->new_lang));
$langs = array();
-
foreach ($registry->nlsconfig['languages'] as $key => $val) {
$langs[] = array(
- 'sel' => ($key == $session->get('horde', 'language')),
+ 'sel' => ($key == $GLOBALS['language']),
'val' => $key,
// Language names are already encoded.
'name' => $val