LanguageNegotiationUser.php in Zircon Profile 8
Same filename and directory in other branches
Namespace
Drupal\user\Plugin\LanguageNegotiationFile
core/modules/user/src/Plugin/LanguageNegotiation/LanguageNegotiationUser.phpView source
<?php
/**
* @file
* Contains \Drupal\user\Plugin\LanguageNegotiation\LanguageNegotiationUser.
*/
namespace Drupal\user\Plugin\LanguageNegotiation;
use Drupal\language\LanguageNegotiationMethodBase;
use Symfony\Component\HttpFoundation\Request;
/**
* Class for identifying language from the user preferences.
*
* @LanguageNegotiation(
* id = \Drupal\user\Plugin\LanguageNegotiation\LanguageNegotiationUser::METHOD_ID,
* weight = -4,
* name = @Translation("User"),
* description = @Translation("Follow the user's language preference.")
* )
*/
class LanguageNegotiationUser extends LanguageNegotiationMethodBase {
/**
* The language negotiation method id.
*/
const METHOD_ID = 'language-user';
/**
* {@inheritdoc}
*/
public function getLangcode(Request $request = NULL) {
$langcode = NULL;
// User preference (only for authenticated users).
if ($this->languageManager && $this->currentUser
->isAuthenticated()) {
$preferred_langcode = $this->currentUser
->getPreferredLangcode();
$default_langcode = $this->languageManager
->getDefaultLanguage()
->getId();
$languages = $this->languageManager
->getLanguages();
if (!empty($preferred_langcode) && $preferred_langcode != $default_langcode && isset($languages[$preferred_langcode])) {
$langcode = $preferred_langcode;
}
}
// No language preference from the user.
return $langcode;
}
}
Classes
Name![]() |
Description |
---|---|
LanguageNegotiationUser | Class for identifying language from the user preferences. |