public function LanguageNegotiator::initializeType in Drupal 10
Same name and namespace in other branches
- 8 core/modules/language/src/LanguageNegotiator.php \Drupal\language\LanguageNegotiator::initializeType()
- 9 core/modules/language/src/LanguageNegotiator.php \Drupal\language\LanguageNegotiator::initializeType()
File
- core/
modules/ language/ src/ LanguageNegotiator.php, line 125
Class
- LanguageNegotiator
- Class responsible for performing language negotiation.
Namespace
Drupal\languageCode
public function initializeType($type) {
$language = NULL;
if ($this->currentUser) {
// Execute the language negotiation methods in the order they were set up
// and return the first valid language found.
foreach ($this
->getEnabledNegotiators($type) as $method_id => $info) {
if (!isset($this->negotiatedLanguages[$method_id])) {
$this->negotiatedLanguages[$method_id] = $this
->negotiateLanguage($type, $method_id);
}
// Since objects are references, we need to return a clone to prevent
// the language negotiation method cache from being unintentionally
// altered. The same methods might be used with different language types
// based on configuration.
$language = !empty($this->negotiatedLanguages[$method_id]) ? clone $this->negotiatedLanguages[$method_id] : NULL;
if ($language) {
$this
->getNegotiationMethodInstance($method_id)
->persist($language);
break;
}
}
}
if (!$language) {
// If no other language was found use the default one.
$language = $this->languageManager
->getDefaultLanguage();
$method_id = static::METHOD_ID;
}
return [
$method_id => $language,
];
}