diff --git a/core/modules/language/src/ConfigurableLanguageManager.php b/core/modules/language/src/ConfigurableLanguageManager.php index b8650e3..f822194 100644 --- a/core/modules/language/src/ConfigurableLanguageManager.php +++ b/core/modules/language/src/ConfigurableLanguageManager.php @@ -15,6 +15,7 @@ use Drupal\Core\Language\LanguageDefault; use Drupal\Core\Language\LanguageManager; use Drupal\language\Config\LanguageConfigFactoryOverrideInterface; +use Drupal\language\Entity\ConfigurableLanguage; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; @@ -304,7 +305,6 @@ public function getLanguages($flags = BaseLanguageInterface::STATE_CONFIGURABLE) */ public function getNativeLanguages() { $languages = array(); - $default = $this->getDefaultLanguage(); // Retrieve the list of languages defined in configuration. $prefix = 'language.entity.'; @@ -320,20 +320,14 @@ public function getNativeLanguages() { foreach ($config_ids as $config_id) { $langcode = $langcodes[$i]; $this->setConfigOverrideLanguage(new Language(array('id' => $langcode))); - $data = $this->configFactory->get($config_id)->get(); - if (!$data['locked']) { - // Initialize default property so callers have an easy reference and can - // save the same object without data loss. - $data['default'] = ($langcode == $default->id); - $data['name'] = $data['label']; - $language = new Language($data); + $language = ConfigurableLanguage::load($langcode); + if (!$language->locked) { $languages[$langcode] = $language; } ++$i; } $this->setConfigOverrideLanguage($original_language); - Language::sort($languages); - + uasort($languages, array('\Drupal\language\Entity\ConfigurableLanguage', 'sort')); return $languages; } diff --git a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationSession.php b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationSession.php index 2096792..b445371 100644 --- a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationSession.php +++ b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationSession.php @@ -135,7 +135,7 @@ function getLanguageSwitchLinks(Request $request, $type, $path) { $langcode = $language->id; $links[$langcode] = array( 'href' => $path, - 'title' => $language->name, + 'title' => $language->label, 'attributes' => array('class' => array('language-link')), 'query' => $query, ); diff --git a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationUrl.php b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationUrl.php index 2c6b92a..a451db6 100644 --- a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationUrl.php +++ b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationUrl.php @@ -193,7 +193,7 @@ function getLanguageSwitchLinks(Request $request, $type, $path) { foreach ($this->languageManager->getNativeLanguages() as $language) { $links[$language->id] = array( 'href' => $path, - 'title' => $language->name, + 'title' => $language->label, 'language' => $language, 'attributes' => array('class' => array('language-link')), );