diff --git a/core/modules/language/src/EventSubscriber/ConfigSubscriber.php b/core/modules/language/src/EventSubscriber/ConfigSubscriber.php index 738a1b0..a56ac01 100644 --- a/core/modules/language/src/EventSubscriber/ConfigSubscriber.php +++ b/core/modules/language/src/EventSubscriber/ConfigSubscriber.php @@ -84,16 +84,7 @@ public function __construct(LanguageManagerInterface $language_manager, Language public function onConfigSave(ConfigCrudEvent $event) { $saved_config = $event->getConfig(); if ($saved_config->getName() == 'system.site' && $event->isChanged('default_langcode')) { - // Ensure that the configuration that will be changed or relied upon has - // the expected data type of 'string'. - $default_langcode_definition = $this->typedConfig->get('system.site')->get('default_langcode')->getDataDefinition(); - $old_default_langcode = $saved_config->getOriginal('default_langcode'); - $url_prefix_definition = $this->typedConfig->get('language.negotiation')->get('url.prefixes.' . $old_default_langcode)->getDataDefinition(); - if ($default_langcode_definition->getDataType() !== 'string' || $url_prefix_definition->getDataType() != 'string') { - return; - } $new_default_langcode = $saved_config->get('default_langcode'); - $default_language = $this->configFactory->get('language.entity.' . $new_default_langcode); // During an import the language might not exist yet. if (!$default_language->isNew()) { @@ -105,6 +96,7 @@ public function onConfigSave(ConfigCrudEvent $event) { $negotiation_config = $this->configFactory->getEditable('language.negotiation'); $negotiation_changed = FALSE; $url_prefixes = $negotiation_config->get('url.prefixes'); + $old_default_langcode = $saved_config->getOriginal('default_langcode'); if (empty($url_prefixes[$old_default_langcode])) { $negotiation_config->set('url.prefixes.' . $old_default_langcode, $old_default_langcode); $negotiation_changed = TRUE;