diff --git a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php
index c25fd48..5eff762 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php
@@ -465,7 +465,7 @@ protected function invokeFieldMethod($method, ContentEntityInterface $entity) {
         $translation = $entity->original->getTranslation($removed_langcode);
         $fields = $translation->getTranslatableFields();
         foreach ($fields as $name => $items) {
-          $items->delete();
+          $items->delete(FALSE);
         }
       }
     }
diff --git a/core/lib/Drupal/Core/Field/FieldItemBase.php b/core/lib/Drupal/Core/Field/FieldItemBase.php
index d489c8e..61fffa7 100644
--- a/core/lib/Drupal/Core/Field/FieldItemBase.php
+++ b/core/lib/Drupal/Core/Field/FieldItemBase.php
@@ -201,7 +201,7 @@ public function postSave($update) { }
   /**
    * {@inheritdoc}
    */
-  public function delete() { }
+  public function delete($parent_delete = TRUE) { }
 
   /**
    * {@inheritdoc}
diff --git a/core/lib/Drupal/Core/Field/FieldItemInterface.php b/core/lib/Drupal/Core/Field/FieldItemInterface.php
index a257dd0..22a40a8 100644
--- a/core/lib/Drupal/Core/Field/FieldItemInterface.php
+++ b/core/lib/Drupal/Core/Field/FieldItemInterface.php
@@ -217,8 +217,13 @@ public function postSave($update);
    *
    * This method is called during the process of deleting an entity, just before
    * values are deleted from storage.
+   *
+   * @param bool $parent_delete
+   *   Specifies whether the whole parent is being deleted or only a
+   *   translation of it. TRUE if the whole parent is being deleted, FALSE if
+   *   only a translation is being deleted. Defaults to TRUE.
    */
-  public function delete();
+  public function delete($parent_delete = TRUE);
 
   /**
    * Defines custom revision delete behavior for field values.
diff --git a/core/lib/Drupal/Core/Field/FieldItemList.php b/core/lib/Drupal/Core/Field/FieldItemList.php
index 97dd493..8ade48b 100644
--- a/core/lib/Drupal/Core/Field/FieldItemList.php
+++ b/core/lib/Drupal/Core/Field/FieldItemList.php
@@ -213,8 +213,8 @@ public function postSave($update) {
   /**
    * {@inheritdoc}
    */
-  public function delete() {
-    $this->delegateMethod('delete');
+  public function delete($parent_delete = TRUE) {
+    $this->delegateMethod('delete', $parent_delete);
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Field/FieldItemListInterface.php b/core/lib/Drupal/Core/Field/FieldItemListInterface.php
index 4e77202..700cbdc 100644
--- a/core/lib/Drupal/Core/Field/FieldItemListInterface.php
+++ b/core/lib/Drupal/Core/Field/FieldItemListInterface.php
@@ -156,8 +156,13 @@ public function postSave($update);
    *
    * This method is called during the process of deleting an entity, just before
    * values are deleted from storage.
+   *
+   * @param bool $parent_delete
+   *   Specifies whether the whole parent is being deleted or only a
+   *   translation of it. TRUE if the whole parent is being deleted, FALSE if
+   *   only a translation is being deleted. Defaults to TRUE.
    */
-  public function delete();
+  public function delete($parent_delete = TRUE);
 
   /**
    * Defines custom revision delete behavior for field values.
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php
index 1b8822f..2a7ccc4 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php
@@ -103,7 +103,7 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
   /**
    * {@inheritdoc}
    */
-  public function delete() {
+  public function delete($parent_delete = TRUE) {
     // Reports that delete() method is executed for testing purposes.
     field_test_memorize('field_test_field_delete', array($this->getEntity()));
   }
diff --git a/core/modules/file/src/Plugin/Field/FieldType/FileFieldItemList.php b/core/modules/file/src/Plugin/Field/FieldType/FileFieldItemList.php
index 20f4797..b0e8922 100644
--- a/core/modules/file/src/Plugin/Field/FieldType/FileFieldItemList.php
+++ b/core/modules/file/src/Plugin/Field/FieldType/FileFieldItemList.php
@@ -77,8 +77,8 @@ public function postSave($update) {
   /**
    * {@inheritdoc}
    */
-  public function delete() {
-    parent::delete();
+  public function delete($parent_delete = TRUE) {
+    parent::delete($parent_delete);
     $entity = $this->getEntity();
 
     // If a translation is deleted only decrement the file usage by one. If the
diff --git a/core/modules/path/src/Plugin/Field/FieldType/PathFieldItemList.php b/core/modules/path/src/Plugin/Field/FieldType/PathFieldItemList.php
index ee03361..6acbaa3 100644
--- a/core/modules/path/src/Plugin/Field/FieldType/PathFieldItemList.php
+++ b/core/modules/path/src/Plugin/Field/FieldType/PathFieldItemList.php
@@ -24,7 +24,7 @@ public function defaultAccess($operation = 'view', AccountInterface $account = N
   /**
    * {@inheritdoc}
    */
-  public function delete() {
+  public function delete($parent_delete = TRUE) {
     // Delete all aliases associated with this entity in the current language.
     $entity = $this->getEntity();
     $conditions = [
diff --git a/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/FieldTestItem.php b/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/FieldTestItem.php
index 2310ffd..1521bca 100644
--- a/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/FieldTestItem.php
+++ b/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/FieldTestItem.php
@@ -113,7 +113,7 @@ protected function mustResave() {
   /**
    * {@inheritdoc}
    */
-  public function delete() {
+  public function delete($parent_delete = TRUE) {
     parent::delete();
     $deleted_languages = \Drupal::state()->get('entity_test.delete.' . $this->getFieldDefinition()->getName()) ?: [];
     $deleted_languages[] = $this->getLangcode();
