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