--- 3150540-30.patch 2023-05-22 18:29:38.000000000 +0300 +++ 3150540-35.patch 2023-05-23 19:53:13.000000000 +0300 @@ -1,61 +1,70 @@ diff --git a/core/modules/locale/config/install/locale.settings.yml b/core/modules/locale/config/install/locale.settings.yml -index a6cd4f3043..c235ef2d52 100644 +index a6cd4f3043..3cfd42e3cb 100644 --- a/core/modules/locale/config/install/locale.settings.yml +++ b/core/modules/locale/config/install/locale.settings.yml @@ -1,4 +1,5 @@ cache_strings: true -+enable_set_config_langcodes: true ++update_default_config_langcodes: true translate_english: false javascript: directory: languages diff --git a/core/modules/locale/config/schema/locale.schema.yml b/core/modules/locale/config/schema/locale.schema.yml -index 7321f60113..a5b532397e 100644 +index 7321f60113..bf30c5428b 100644 --- a/core/modules/locale/config/schema/locale.schema.yml +++ b/core/modules/locale/config/schema/locale.schema.yml @@ -7,6 +7,9 @@ locale.settings: cache_strings: type: boolean label: 'Cache strings' -+ enable_set_config_langcodes: ++ update_default_config_langcodes: + type: boolean -+ label: 'Enable setting config language codes with default language when new modules or themes are installed' ++ label: 'Update default configuration langcodes when new modules or themes are installed.' translate_english: type: boolean label: 'Enable English translation' diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module -index 1a30d0bfc1..44b42a4a1f 100644 +index 0631326914..6fdea48b25 100644 --- a/core/modules/locale/locale.module +++ b/core/modules/locale/locale.module -@@ -368,6 +368,16 @@ function locale_cron() { +@@ -366,7 +366,12 @@ function locale_cron() { * Updates default configuration when new modules or themes are installed. */ function locale_system_set_config_langcodes() { -+ $enable_set_config_langcodes = \Drupal::config('locale.settings')->get('enable_set_config_langcodes'); -+ if (NULL === $enable_set_config_langcodes) { -+ // This means the option is not set, in which case we want to default to the -+ // value we provide as the default value when installing locale module. -+ $enable_set_config_langcodes = TRUE; +- Locale::config()->updateDefaultConfigLangcodes(); ++ // Read update_default_config_langcodes from locale settings, fallback to the ++ // default value (TRUE) if it's not overridden. ++ $update_default_config_langcodes = \Drupal::config('locale.settings')->get('update_default_config_langcodes') ?? TRUE; ++ if ($update_default_config_langcodes) { ++ Locale::config()->updateDefaultConfigLangcodes(); + } -+ \Drupal::moduleHandler()->alter('locale_enable_set_config_langcodes', $enable_set_config_langcodes); -+ if (!$enable_set_config_langcodes) { -+ return; -+ } - // Need to rewrite some default configuration language codes if the default - // site language is not English. - $default_langcode = \Drupal::languageManager()->getDefaultLanguage()->getId(); + } + + /** +@@ -410,7 +415,10 @@ function locale_system_update(array $components) { + // components. Do this even if import is not enabled because parsing new + // configuration may expose new source strings. + $module_handler->loadInclude('locale', 'inc', 'locale.bulk'); +- if ($batch = locale_config_batch_update_components([], [], [], TRUE)) { ++ // Read update_default_config_langcodes from locale settings, fallback to ++ // the default value (TRUE) if it's not overridden. ++ $update_default_config_langcodes = \Drupal::config('locale.settings')->get('update_default_config_langcodes') ?? TRUE; ++ if ($batch = locale_config_batch_update_components([], [], [], $update_default_config_langcodes)) { + batch_set($batch); + } + } diff --git a/core/modules/locale/src/Form/LocaleSettingsForm.php b/core/modules/locale/src/Form/LocaleSettingsForm.php -index 05a47b20c2..68753a5637 100644 +index 05a47b20c2..96405e09ad 100644 --- a/core/modules/locale/src/Form/LocaleSettingsForm.php +++ b/core/modules/locale/src/Form/LocaleSettingsForm.php @@ -32,6 +32,12 @@ protected function getEditableConfigNames() { */ public function buildForm(array $form, FormStateInterface $form_state) { $config = $this->config('locale.settings'); -+ $form['enable_set_config_langcodes'] = [ ++ $form['update_default_config_langcodes'] = [ + '#type' => 'checkbox', -+ '#title' => $this->t('Enable setting config language codes with default language when new modules or themes are installed'), -+ '#default_value' => $config->get('enable_set_config_langcodes'), -+ '#description' => $this->t('If you want to enable setting the config language of your configuration objects to the sites default language every time you install a new module or theme, enable this setting.'), ++ '#title' => $this->t('Update default configuration when new modules or themes are installed.'), ++ '#default_value' => $config->get('update_default_config_langcodes') ?? TRUE, ++ '#description' => $this->t("With this setting enabled, configuration langcodes will be updated to site's default language when installing new modules or themes. If this behaviour is not desired in your setup (i.e., langcodes need to be in a different language then the site's default one), disable it."), + ]; $form['update_interval_days'] = [ @@ -64,7 +73,7 @@ $config = $this->config('locale.settings'); $config->set('translation.update_interval_days', $values['update_interval_days'])->save(); $config->set('translation.use_source', $values['use_source'])->save(); -+ $config->set('enable_set_config_langcodes', $values['enable_set_config_langcodes'])->save(); ++ $config->set('update_default_config_langcodes', $values['update_default_config_langcodes'])->save(); switch ($values['overwrite']) { case LOCALE_TRANSLATION_OVERWRITE_ALL: