diff --git a/core/modules/locale/src/LocaleConfigManager.php b/core/modules/locale/src/LocaleConfigManager.php index f2f9d74..e1bb6db 100644 --- a/core/modules/locale/src/LocaleConfigManager.php +++ b/core/modules/locale/src/LocaleConfigManager.php @@ -479,7 +479,13 @@ public function hasTranslation($name, $langcode) { public function getDefaultConfigLangcode($name) { // Config entities that do not have the 'default_config_hash' cannot be // shipped configuration regardless of whether there is a name match. - if (!\Drupal::service('config.manager')->getEntityTypeIdByName($name) || !empty($this->configFactory->get($name)->get('default_config_hash'))) { + // configurable_language entities are a special case since they can be + // translated regardless of whether they are shipped if they in the standard + // language list. + $config_entity_type = \Drupal::service('config.manager')->getEntityTypeIdByName($name); + if (!$config_entity_type || $config_entity_type === 'configurable_language' + || !empty($this->configFactory->get($name)->get('default_config_hash')) + ) { $shipped = $this->defaultConfigStorage->read($name); if (!empty($shipped)) { return !empty($shipped['langcode']) ? $shipped['langcode'] : 'en';