diff --git a/core/modules/language/language.services.yml b/core/modules/language/language.services.yml index 19d0f21..4fda648 100644 --- a/core/modules/language/language.services.yml +++ b/core/modules/language/language.services.yml @@ -14,7 +14,7 @@ services: - { name: event_subscriber } language.config_factory_override: class: Drupal\language\Config\LanguageConfigFactoryOverride - arguments: ['@config.storage', '@event_dispatcher', '@config.typed'] + arguments: ['@config.storage', '@event_dispatcher', '@config.typed', '@language.default'] tags: - { name: config.factory.override, priority: -254 } - { name: event_subscriber } diff --git a/core/modules/language/src/Config/LanguageConfigFactoryOverride.php b/core/modules/language/src/Config/LanguageConfigFactoryOverride.php index cb41969..322e1d0 100644 --- a/core/modules/language/src/Config/LanguageConfigFactoryOverride.php +++ b/core/modules/language/src/Config/LanguageConfigFactoryOverride.php @@ -68,11 +68,16 @@ class LanguageConfigFactoryOverride extends ConfigFactoryOverrideBase implements * An event dispatcher instance to use for configuration events. * @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config * The typed configuration manager. + * @param \Drupal\Core\Language\LanguageDefault $default_language + * The default language. */ - public function __construct(StorageInterface $storage, EventDispatcherInterface $event_dispatcher, TypedConfigManagerInterface $typed_config) { + public function __construct(StorageInterface $storage, EventDispatcherInterface $event_dispatcher, TypedConfigManagerInterface $typed_config, LanguageDefault $default_language) { $this->baseStorage = $storage; $this->eventDispatcher = $event_dispatcher; $this->typedConfigManager = $typed_config; + // Prior to negiotiation the override language should be the default + // language. + $this->language = $default_language->get()->getId(); } /** diff --git a/core/modules/language/src/LanguageServiceProvider.php b/core/modules/language/src/LanguageServiceProvider.php index cb4ad88..2d2004f 100644 --- a/core/modules/language/src/LanguageServiceProvider.php +++ b/core/modules/language/src/LanguageServiceProvider.php @@ -54,13 +54,6 @@ public function alter(ContainerBuilder $container) { $container->setParameter('language.default_values', $default_language_values); } - // For monolingual sites, we explicitly set the default language for the - // language config override service as there is no language negotiation. - if (!$this->isMultilingual()) { - $container->getDefinition('language.config_factory_override') - ->addMethodCall('setLanguageFromDefault', array(new Reference('language.default'))); - } - } /**