diff options
author | Gábor Hojtsy <gabor@hojtsy.hu> | 2008-01-06 16:46:02 +0000 |
---|---|---|
committer | Gábor Hojtsy <gabor@hojtsy.hu> | 2008-01-06 16:46:02 +0000 |
commit | 8c809ebc3e28f75b9db62f7a790f6588526c5840 (patch) | |
tree | 39b3ce584237687c0deb1d53524bb3c8e6ab9ca0 | |
parent | 7127adabb0fd7add82a92200b1e56372f1163882 (diff) | |
download | brdo-8c809ebc3e28f75b9db62f7a790f6588526c5840.tar.gz brdo-8c809ebc3e28f75b9db62f7a790f6588526c5840.tar.bz2 |
#205602 by theborg: disabled languages were included in the language lookup logic
-rw-r--r-- | includes/language.inc | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/includes/language.inc b/includes/language.inc index e997efa37..75efe91d5 100644 --- a/includes/language.inc +++ b/includes/language.inc @@ -12,13 +12,17 @@ function language_initialize() { global $user; + // Configured presentation language mode. $mode = variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE); + // Get a list of enabled languages. + $languages = language_list('enabled'); + $languages = $languages[1]; + switch ($mode) { case LANGUAGE_NEGOTIATION_NONE: return language_default(); case LANGUAGE_NEGOTIATION_DOMAIN: - $languages = language_list(); foreach ($languages as $language) { $parts = parse_url($language->domain); if (!empty($parts['host']) && ($_SERVER['SERVER_NAME'] == $parts['host'])) { @@ -29,24 +33,26 @@ function language_initialize() { case LANGUAGE_NEGOTIATION_PATH_DEFAULT: case LANGUAGE_NEGOTIATION_PATH: - $languages = language_list('prefix'); // $_GET['q'] might not be available at this time, because // path initialization runs after the language bootstrap phase. $args = isset($_GET['q']) ? explode('/', $_GET['q']) : array(); - $language = array_shift($args); - if (isset($languages[$language])) { - // Rebuild $GET['q'] with the language removed. - $_GET['q'] = implode('/', $args); - return $languages[$language]; + $prefix = array_shift($args); + // Search prefix within enabled languages. + foreach ($languages as $language) { + if (!empty($language->prefix) && $language->prefix == $prefix) { + // Rebuild $GET['q'] with the language removed. + $_GET['q'] = implode('/', $args); + return $language; + } } - elseif ($mode == LANGUAGE_NEGOTIATION_PATH_DEFAULT) { + if ($mode == LANGUAGE_NEGOTIATION_PATH_DEFAULT) { + // If we did not found the language by prefix, choose the default. return language_default(); } break; } // User language. - $languages = language_list(); if ($user->uid && isset($languages[$user->language])) { return $languages[$user->language]; } |