You are here

protected function LanguageNegotiator::negotiateLanguage in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/language/src/LanguageNegotiator.php \Drupal\language\LanguageNegotiator::negotiateLanguage()
  2. 9 core/modules/language/src/LanguageNegotiator.php \Drupal\language\LanguageNegotiator::negotiateLanguage()

Performs language negotiation using the specified negotiation method.

Parameters

string $type: The language type to be initialized.

string $method_id: The string identifier of the language negotiation method to use to detect language.

Return value

\Drupal\Core\Language\LanguageInterface|null Negotiated language object for given type and method, FALSE otherwise.

File

core/modules/language/src/LanguageNegotiator.php, line 183

Class

LanguageNegotiator
Class responsible for performing language negotiation.

Namespace

Drupal\language

Code

protected function negotiateLanguage($type, $method_id) {
  $langcode = NULL;
  $method = $this->negotiatorManager
    ->getDefinition($method_id);
  if (!isset($method['types']) || in_array($type, $method['types'])) {
    $langcode = $this
      ->getNegotiationMethodInstance($method_id)
      ->getLangcode($this->requestStack
      ->getCurrentRequest());
  }
  $languages = $this->languageManager
    ->getLanguages();
  return $languages[$langcode] ?? NULL;
}