diff --git a/core/lib/Drupal/Core/TypedData/TypedDataManager.php b/core/lib/Drupal/Core/TypedData/TypedDataManager.php index f2bd59f..b9c4a47 100644 --- a/core/lib/Drupal/Core/TypedData/TypedDataManager.php +++ b/core/lib/Drupal/Core/TypedData/TypedDataManager.php @@ -368,4 +368,14 @@ public function getConstraints(DataDefinitionInterface $definition) { return $constraints; } + + /** + * {@inheritdoc} + */ + public function clearCachedDefinitions() { + parent::clearCachedDefinitions(); + $this->prototypes = array(); + } + + } diff --git a/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module index b912afb..9dab1ea 100644 --- a/core/modules/content_translation/content_translation.module +++ b/core/modules/content_translation/content_translation.module @@ -121,13 +121,13 @@ function content_translation_entity_field_info_alter(&$fields, $entity_type, $bu // Currently field translatability is defined per-field but we may want to // make it per-instance instead, so leaving the possibility open for further // easier refactoring. - $fields = array(); + $field_settings = array(); foreach ($translation_settings as $bundle => $settings) { - $fields += !empty($settings['content_translation']['fields']) ? $settings['content_translation']['fields'] : array(); + $field_settings += !empty($settings['content_translation']['fields']) ? $settings['content_translation']['fields'] : array(); } foreach ($fields as $name => $translatable) { - if (isset($fields[$name])) { + if (isset($field_settings[$name])) { $fields[$name]->setTranslatable((bool) $translatable); break; } diff --git a/core/modules/field/field.info.inc b/core/modules/field/field.info.inc index 5b1e81a..a1af0ca 100644 --- a/core/modules/field/field.info.inc +++ b/core/modules/field/field.info.inc @@ -39,6 +39,7 @@ function field_info_cache_clear() { \Drupal::typedData()->clearCachedDefinitions(); \Drupal::service('plugin.manager.field.field_type')->clearCachedDefinitions(); \Drupal::service('config.factory')->reset(); + \Drupal::typedData()->clearCachedDefinitions(); Field::fieldInfo()->flush(); }