public LanguageNegotiator::initializeType($type)
Initializes the specified language type.
Parameters
string $type: The language type to be initialized.
Return value
\Drupal\Core\Language\LanguageInterface[] Returns an array containing a single language keyed by the language negotiation method ID used to determine the language of the specified type. If negotiation is not possible the default language is returned.
Overrides LanguageNegotiatorInterface::initializeType
File
- core/modules/language/src/LanguageNegotiator.php, line 123
Class
- LanguageNegotiator
- Class responsible for performing language negotiation.
Namespace
Drupal\language
Code
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 array($method_id => $language); }
Please login to continue.