function ConfigurableLanguageManager::getLanguageSwitchLinks

Same name in other branches
  1. 9 core/modules/language/src/ConfigurableLanguageManager.php \Drupal\language\ConfigurableLanguageManager::getLanguageSwitchLinks()
  2. 10 core/modules/language/src/ConfigurableLanguageManager.php \Drupal\language\ConfigurableLanguageManager::getLanguageSwitchLinks()
  3. 11.x core/modules/language/src/ConfigurableLanguageManager.php \Drupal\language\ConfigurableLanguageManager::getLanguageSwitchLinks()

Overrides LanguageManager::getLanguageSwitchLinks

File

core/modules/language/src/ConfigurableLanguageManager.php, line 405

Class

ConfigurableLanguageManager
Overrides default LanguageManager to provide configured languages.

Namespace

Drupal\language

Code

public function getLanguageSwitchLinks($type, Url $url) {
    $links = FALSE;
    if ($this->negotiator) {
        foreach ($this->negotiator
            ->getNegotiationMethods($type) as $method_id => $method) {
            $reflector = new \ReflectionClass($method['class']);
            if ($reflector->implementsInterface('\\Drupal\\language\\LanguageSwitcherInterface')) {
                $result = $this->negotiator
                    ->getNegotiationMethodInstance($method_id)
                    ->getLanguageSwitchLinks($this->requestStack
                    ->getCurrentRequest(), $type, $url);
                if (!empty($result)) {
                    // Allow modules to provide translations for specific links.
                    $this->moduleHandler
                        ->alter('language_switch_links', $result, $type, $url);
                    $links = (object) [
                        'links' => $result,
                        'method_id' => $method_id,
                    ];
                    break;
                }
            }
        }
    }
    return $links;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.