+ // Make sure that revisionable entity types are correctly defined.
+ if ($entity_type->isRevisionable()) {
+ // Disable the BC layer to prevent a recursion, this only needs the
+ // revision_default key that is always set.
+ $field_name = $entity_type->getRevisionMetadataKeys(FALSE)['revision_default'];
+ $base_field_definitions[$field_name] = BaseFieldDefinition::create('boolean')
+ ->setLabel($this->t('Default revision'))
+ ->setDescription($this->t('A flag indicating whether this was a default revision when it was saved.'))
+ ->setStorageRequired(TRUE)
+ ->setInternal(TRUE)
+ ->setTranslatable(FALSE)
+ ->setRevisionable(TRUE);
+ }
+
+ // Make sure that revisionable and translatable entity types are correctly
+ // defined.
+ if ($entity_type->isRevisionable() && $entity_type->isTranslatable()) {
+ // The 'revision_translation_affected' field should always be defined.
+ // This field has been added unconditionally in Drupal 8.4.0 and it is
+ // overriding any pre-existing definition on purpose so that any
+ // differences are immediately available in the status report.
+ $base_field_definitions[$keys['revision_translation_affected']] = BaseFieldDefinition::create('boolean')
+ ->setLabel($this->t('Revision translation affected'))
+ ->setDescription($this->t('Indicates if the last edit of a translation belongs to current revision.'))
+ ->setReadOnly(TRUE)
+ ->setRevisionable(TRUE)
+ ->setTranslatable(TRUE);
+ }
+