summaryrefslogtreecommitdiff
path: root/includes/language.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/language.inc')
-rw-r--r--includes/language.inc23
1 files changed, 11 insertions, 12 deletions
diff --git a/includes/language.inc b/includes/language.inc
index de4ef393a..c36ba7c01 100644
--- a/includes/language.inc
+++ b/includes/language.inc
@@ -103,37 +103,36 @@ function language_url_rewrite(&$path, &$options) {
if (!$options['external']) {
// Language can be passed as an option, or we go for current language.
- $path_language = isset($options['language']) ? $options['language'] : $language;
+ if (!isset($options['language'])) {
+ $options['language'] = $language;
+ }
+
switch (variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE)) {
-
case LANGUAGE_NEGOTIATION_NONE:
+ // No language dependent path allowed in this mode.
+ unset($options['language']);
break;
case LANGUAGE_NEGOTIATION_DOMAIN:
- if ($path_language->domain) {
+ if ($options['language']->domain) {
// Ask for an absolute URL with our modified base_url.
$options['absolute'] = TRUE;
- $options['base_url'] = $path_language->domain;
- // Ensure that path alias generation will use this language.
- $options['langcode'] = $path_language->language;
+ $options['base_url'] = $options['language']->domain;
}
break;
case LANGUAGE_NEGOTIATION_PATH_DEFAULT:
$default = language_default();
- if ($path_language->language == $default->language) {
+ if ($options['language']->language == $default->language) {
break;
}
// Intentionally no break here.
case LANGUAGE_NEGOTIATION_PATH:
- if (isset($path_language->prefix) && $path_language->prefix) {
- // Ensure that path alias generation will use this language.
- $options['langcode'] = $path_language->language;
- $path = (empty($path) || ($path == '<front>')) ? $path_language->prefix : $path_language->prefix .'/'. $path;
+ if (!empty($options['language']->prefix)) {
+ $options['prefix'] = $options['language']->prefix .'/';
}
break;
-
}
}
}