1<?php
2
3/**
4 * @file
5 * Defines an entity type.
6 */
7
8/**
9 * Implements hook_entity_type_alter().
10 */
11function field_test_entity_type_alter(array &$entity_types) {
12  /** @var \Drupal\Core\Entity\EntityTypeInterface[] $entity_types */
13  foreach (field_test_entity_info_translatable() as $entity_type => $translatable) {
14    $entity_types[$entity_type]->set('translatable', $translatable);
15  }
16}
17
18/**
19 * Helper function to enable entity translations.
20 */
21function field_test_entity_info_translatable($entity_type_id = NULL, $translatable = NULL) {
22  static $stored_value = [];
23  if (isset($entity_type_id)) {
24    $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
25    $entity_type = $entity_definition_update_manager->getEntityType($entity_type_id);
26    $stored_value[$entity_type_id] = $translatable;
27    if ($translatable != $entity_type->isTranslatable()) {
28      $entity_definition_update_manager->uninstallEntityType($entity_type);
29      $entity_type->set('translatable', $translatable);
30      $entity_definition_update_manager->installEntityType($entity_type);
31    }
32  }
33  return $stored_value;
34}
35