function user_preferred_langcode

Get the language object preferred by the user. This user preference can be set on the user account editing page, and is only available if there are more than one languages enabled on the site. If the user did not choose a preferred language, or is the anonymous user, the $default value, or if it is not set, the site default language will be returned.

Parameters

$account: User account to look up language for.

$type: Optional string to define which preferred langcode should be used. Default to 'preferred_langcode' property. If set 'preferred_$type_langcode' is used.

$default: Optional default language code to return if the account has no valid language.

7 calls to user_preferred_langcode()
AccountFormController::form in drupal/core/modules/user/lib/Drupal/user/AccountFormController.php
Overrides Drupal\Core\Entity\EntityFormController::form().
action_send_email_action in drupal/core/modules/action/action.module
Sends an e-mail message.
contact_personal_form_submit in drupal/core/modules/contact/contact.pages.inc
Form submission handler for contact_personal_form().
user_cancel_url in drupal/core/modules/user/user.module
Generates a URL to confirm an account cancellation request.
user_pass_reset_url in drupal/core/modules/user/user.module
Generates a unique URL for a user to login and reset their password.

... See full list

File

drupal/core/modules/user/user.module, line 2678
Enables the user registration and login system.

Code

function user_preferred_langcode($account, $type = NULL, $default = NULL) {
  $language_list = language_list();
  if (isset($type)) {
    $preferred_langcode = $account->{'preferred_' . $type . '_langcode'};
  }
  else {
    $preferred_langcode = $account->preferred_langcode;
  }
  if (!empty($preferred_langcode) && isset($language_list[$preferred_langcode])) {
    return $language_list[$preferred_langcode]->langcode;
  }
  else {
    return $default ? $default : language_default()->langcode;
  }
}