diff --git a/core/modules/language/language.module b/core/modules/language/language.module index ec87033..968183f 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -367,7 +367,7 @@ function language_language_negotiation_info() { 'file' => $file, 'weight' => -8, 'name' => t('URL'), - 'description' => t('Language from the URL (Path prefix or domain).'), + 'description' => t('Determine the language from the URL (Path prefix or domain).'), 'config' => 'admin/config/regional/language/detection/url', ); @@ -380,7 +380,7 @@ function language_language_negotiation_info() { 'file' => $file, 'weight' => -6, 'name' => t('Session'), - 'description' => t('Language from a request/session parameter.'), + 'description' => t('Determine the language from a request/session parameter.'), 'config' => 'admin/config/regional/language/detection/session', ); @@ -388,8 +388,8 @@ function language_language_negotiation_info() { 'callbacks' => array('negotiation' => 'language_from_user'), 'file' => $file, 'weight' => -4, - 'name' => t('Account'), - 'description' => t("Account site language setting."), + 'name' => t('User'), + 'description' => t("Follow the user's language preference."), ); $negotiation_info[LANGUAGE_NEGOTIATION_BROWSER] = array( @@ -398,7 +398,7 @@ function language_language_negotiation_info() { 'weight' => -2, 'cache' => 0, 'name' => t('Browser'), - 'description' => t("Language from the browser's language settings."), + 'description' => t("Determine the language from the browser's language settings."), ); $negotiation_info[LANGUAGE_NEGOTIATION_INTERFACE] = array( @@ -424,8 +424,8 @@ function language_language_negotiation_info() { 'callbacks' => array('negotiation' => 'language_from_user_admin'), 'file' => $file, 'weight' => 10, - 'name' => t('Account administration pages'), - 'description' => t("Account administration pages language setting."), + 'name' => t('User admin language'), + 'description' => t("Follow the user's admin language preference."), ); return $negotiation_info; diff --git a/core/modules/language/language.negotiation.inc b/core/modules/language/language.negotiation.inc index 577e6a6..e83adc0 100644 --- a/core/modules/language/language.negotiation.inc +++ b/core/modules/language/language.negotiation.inc @@ -158,7 +158,7 @@ function language_from_user($languages) { // User preference (only for authenticated users). global $user; - if ($user->uid && !empty($user->preferred_langcode) && array_key_exists($user->preferred_langcode, $languages)) { + if ($user->uid && !empty($user->preferred_langcode) && isset($languages[$user->preferred_langcode])) { return $user->preferred_langcode; } @@ -179,7 +179,7 @@ function language_from_user_admin($languages) { // User preference (only for authenticated users). global $user; - if ($user->uid && !empty($user->preferred_admin_langcode) && array_key_exists($user->preferred_admin_langcode, $languages) && path_is_admin(current_path())) { + if ($user->uid && !empty($user->preferred_admin_langcode) && isset($languages[$user->preferred_admin_langcode]) && path_is_admin(current_path())) { return $user->preferred_admin_langcode; } diff --git a/core/modules/user/user.module b/core/modules/user/user.module index 88be6be..b8f5c36 100644 --- a/core/modules/user/user.module +++ b/core/modules/user/user.module @@ -2972,11 +2972,11 @@ function theme_user_signature($variables) { */ function user_preferred_language($account, $type = NULL, $default = NULL) { $language_list = language_list(); - if (empty($type)) { - $preferred_langcode = $account->preferred_langcode; + if (isset($type)) { + $preferred_langcode = $account->{'preferred_' . $type . '_langcode'}; } else { - $preferred_langcode = $account->{'preferred_' . $type . '_langcode'}; + $preferred_langcode = $account->preferred_langcode; } if (!empty($preferred_langcode) && isset($language_list[$preferred_langcode])) { return $language_list[$preferred_langcode];