/**
  * Causes the container to be rebuilt on the next request.
  *
  * @param ConfigCrudEvent $event
  *   The configuration event.
  */
 public function onConfigSave(ConfigCrudEvent $event)
 {
     $saved_config = $event->getConfig();
     if ($saved_config->getName() == 'system.site' && $event->isChanged('default_langcode')) {
         $language = $this->languageManager->getLanguage($saved_config->get('default_langcode'));
         // During an import the language might not exist yet.
         if ($language) {
             $this->languageDefault->set($language);
             $this->languageManager->reset();
             language_negotiation_url_prefixes_update();
         }
         // Trigger a container rebuild on the next request by invalidating it.
         ConfigurableLanguageManager::rebuildServices();
     }
 }
 /**
  * Causes the container to be rebuilt on the next request.
  *
  * @param ConfigCrudEvent $event
  *   The configuration event.
  */
 public function onConfigSave(ConfigCrudEvent $event)
 {
     $saved_config = $event->getConfig();
     if ($saved_config->getName() == 'system.site' && $event->isChanged('langcode')) {
         $language = $this->languageManager->getLanguage($saved_config->get('langcode'));
         // During an import the language might not exist yet.
         if ($language) {
             $this->languageDefault->set($language);
             $this->languageManager->reset();
             language_negotiation_url_prefixes_update();
         }
         // Trigger a container rebuild on the next request by deleting compiled
         // from PHP storage.
         PhpStorageFactory::get('service_container')->deleteAll();
     }
 }
 /**
  * {@inheritdoc}
  */
 public function postSave(EntityStorageInterface $storage, $update = TRUE)
 {
     parent::postSave($storage, $update);
     $language_manager = \Drupal::languageManager();
     $language_manager->reset();
     if (!$this->isLocked() && $language_manager instanceof ConfigurableLanguageManagerInterface && !$this->isSyncing()) {
         $language_manager->updateLockedLanguageWeights();
     }
     // Update URL Prefixes for all languages after the
     // LanguageManagerInterface::getLanguages() cache is flushed.
     language_negotiation_url_prefixes_update();
     // If after adding this language the site will become multilingual, we need
     // to rebuild language services.
     if (!$this->preSaveMultilingual && !$update && $language_manager instanceof ConfigurableLanguageManagerInterface) {
         $language_manager::rebuildServices();
     }
     if (!$update) {
         // Install any available language configuration overrides for the language.
         \Drupal::service('language.config_factory_override')->installLanguageOverrides($this->id());
     }
 }
Exemple #4
0
 /**
  * {@inheritdoc}
  */
 public function postSave(EntityStorageInterface $storage, $update = TRUE)
 {
     parent::postSave($storage, $update);
     // Only set the default language and save it to system.site configuration if
     // it needs to updated.
     if ($this->isDefault() && static::getDefaultLangcode() != $this->id()) {
         // Update the config. Saving the configuration fires and event that causes
         // the container to be rebuilt.
         \Drupal::config('system.site')->set('langcode', $this->id())->save();
         \Drupal::service('language.default')->set($this->toLanguageObject());
     }
     $language_manager = \Drupal::languageManager();
     $language_manager->reset();
     if ($language_manager instanceof ConfigurableLanguageManagerInterface) {
         $language_manager->updateLockedLanguageWeights();
     }
     // Update URL Prefixes for all languages after the new default language is
     // propagated and the LanguageManagerInterface::getLanguages() cache is
     // flushed.
     language_negotiation_url_prefixes_update();
     // If after adding this language the site will become multilingual, we need
     // to rebuild language services.
     if (!$this->preSaveMultilingual && !$update && $language_manager instanceof ConfigurableLanguageManagerInterface) {
         $language_manager::rebuildServices();
     }
 }