diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 4e7f017..ea1dbd0 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -399,35 +399,6 @@ function language_modules_uninstalled($modules) { } /** - * Implements hook_ENTITY_TYPE_insert() for 'configurable_language'. - */ -function language_configurable_language_insert(ConfigurableLanguageInterface $language) { - if ($language->isLocked()) { - return; - } - - // Add language to the list of language domains. - $domains = language_negotiation_url_domains(); - $domains[$language->id()] = ''; - language_negotiation_url_domains_save($domains); -} - -/** - * Implements hook_ENTITY_TYPE_delete() for 'configurable_language'. - */ -function language_configurable_language_delete(ConfigurableLanguageInterface $language) { - // Remove language from language prefix list. - $prefixes = language_negotiation_url_prefixes(); - unset($prefixes[$language->id()]); - language_negotiation_url_prefixes_save($prefixes); - - // Remove language from language domain list. - $domains = language_negotiation_url_domains(); - unset($domains[$language->id()]); - language_negotiation_url_domains_save($domains); -} - -/** * Implements hook_preprocess_HOOK() for block templates. */ function language_preprocess_block(&$variables) { diff --git a/core/modules/language/src/Entity/ConfigurableLanguage.php b/core/modules/language/src/Entity/ConfigurableLanguage.php index 89cc167..31b5433 100644 --- a/core/modules/language/src/Entity/ConfigurableLanguage.php +++ b/core/modules/language/src/Entity/ConfigurableLanguage.php @@ -144,6 +144,15 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) { // Install any available language configuration overrides for the language. \Drupal::service('language.config_factory_override')->installLanguageOverrides($this->id()); } + + if ($this->isLocked()) { + return; + } + + // Add language to the list of language domains. + $domains = language_negotiation_url_domains(); + $domains[$this->id()] = ''; + language_negotiation_url_domains_save($domains); } /** @@ -178,6 +187,16 @@ public static function postDelete(EntityStorageInterface $storage, array $entiti if (!\Drupal::languageManager()->isMultilingual()) { ConfigurableLanguageManager::rebuildServices(); } + + // Remove language from language prefix list. + $prefixes = language_negotiation_url_prefixes(); + unset($prefixes[$language_manager->getCurrentLanguage()->getId()]); + language_negotiation_url_prefixes_save($prefixes); + + // Remove language from language domain list. + $domains = language_negotiation_url_domains(); + unset($domains[$language_manager->getCurrentLanguage()->getId()]); + language_negotiation_url_domains_save($domains); } /**