LanguageManager::filterLanguages

protected LanguageManager::filterLanguages(array $languages, $flags = LanguageInterface::STATE_CONFIGURABLE)

Filters the full list of languages based on the value of the flag.

The locked languages are removed by default.

Parameters

\Drupal\Core\Language\LanguageInterface[] $languages: Array with languages to be filtered.

int $flags: (optional) Specifies the state of the languages that have to be returned. It can be: LanguageInterface::STATE_CONFIGURABLE, LanguageInterface::STATE_LOCKED, or LanguageInterface::STATE_ALL.

Return value

\Drupal\Core\Language\LanguageInterface[] An associative array of languages, keyed by the language code.

File

core/lib/Drupal/Core/Language/LanguageManager.php, line 388

Class

LanguageManager
Class responsible for providing language support on language-unaware sites.

Namespace

Drupal\Core\Language

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
protected function filterLanguages(array $languages, $flags = LanguageInterface::STATE_CONFIGURABLE) {
  // STATE_ALL means we don't actually filter, so skip the rest of the method.
  if ($flags == LanguageInterface::STATE_ALL) {
    return $languages;
  }
 
  $filtered_languages = array();
  // Add the site's default language if requested.
  if ($flags & LanguageInterface::STATE_SITE_DEFAULT) {
 
    // Setup a language to have the defaults with data appropriate of the
    // default language only for runtime.
    $defaultLanguage = $this->getDefaultLanguage();
    $default = new Language(
    array(
      'id' => $defaultLanguage->getId(),
      'name' => new TranslatableMarkup("Site's default language (@lang_name)",
      array('@lang_name' => $defaultLanguage->getName())),
      'direction' => $defaultLanguage->getDirection(),
      'weight' => $defaultLanguage->getWeight(),
    )
    );
    $filtered_languages[LanguageInterface::LANGCODE_SITE_DEFAULT] = $default;
  }
 
  foreach ($languages as $id => $language) {
    if (($language->isLocked() && ($flags & LanguageInterface::STATE_LOCKED)) || (!$language->isLocked() && ($flags & LanguageInterface::STATE_CONFIGURABLE))) {
      $filtered_languages[$id] = $language;
    }
  }
 
  return $filtered_languages;
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.