diff --git a/core/lib/Drupal/Core/Language/LanguageManager.php b/core/lib/Drupal/Core/Language/LanguageManager.php index c51532b..546aa64 100644 --- a/core/lib/Drupal/Core/Language/LanguageManager.php +++ b/core/lib/Drupal/Core/Language/LanguageManager.php @@ -134,8 +134,7 @@ public function getLanguages($flags = LanguageInterface::STATE_CONFIGURABLE) { // No language module, so use the default language only. $default = $this->getDefaultLanguage(); $this->languages = array($default->id => $default); - // Add the special languages, they will be filtered later if needed. - $this->languages += $this->getDefaultLockedLanguages($default->weight); + } // Filter the full list of languages based on the value of the $all flag. By // default we remove the locked languages, but the caller may request for diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 0c37638..8c4c6b7 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -205,9 +205,10 @@ function language_configuration_element_default_options() { 'authors_default' => t("Author's preferred language"), ); + /* @var LanguageInterface[] $languages */ $languages = \Drupal::languageManager()->getLanguages(LanguageInterface::STATE_ALL); foreach ($languages as $langcode => $language) { - $language_options[$langcode] = $language->locked ? t('- @name -', array('@name' => $language->name)) : $language->name; + $language_options[$langcode] = $language->locked ? t('- @name -', array('@name' => $language->getName())) : $language->getName(); } return $language_options; diff --git a/core/modules/language/src/ConfigurableLanguageManager.php b/core/modules/language/src/ConfigurableLanguageManager.php index 6652df8..2bbe14f 100644 --- a/core/modules/language/src/ConfigurableLanguageManager.php +++ b/core/modules/language/src/ConfigurableLanguageManager.php @@ -267,30 +267,7 @@ public function setNegotiator(LanguageNegotiatorInterface $negotiator) { * {@inheritdoc} */ public function getLanguages($flags = LanguageInterface::STATE_CONFIGURABLE) { - // Prepopulate the language list with the default language to keep things - // working even if we have no configuration. - $default = $this->getDefaultLanguage(); - $languages = array($default->id => $default); - - // Retrieve the list of languages defined in configuration. - $prefix = 'language.entity.'; - $config_ids = $this->configFactory->listAll($prefix); - - // Instantiate languages from config objects. - $weight = 0; - foreach ($this->configFactory->loadMultiple($config_ids) as $config) { - $data = $config->get(); - $langcode = $data['id']; - // 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']; - $languages[$langcode] = new Language($data); - $weight = max(array($weight, $languages[$langcode]->weight)); - } - - // Add locked languages, they will be filtered later if needed. - $languages += $this->getDefaultLockedLanguages($weight); + $languages = entity_load_multiple('configurable_language'); // Sort the language list by weight then title. Language::sort($languages);