translateToLangcode)->save(); $this->rebuildContainer(); } /** * Enables translations where it needed. */ protected function enableTranslation() { // Enable translation for the current entity type and ensure the change is // picked up. \Drupal::service('content_translation.manager')->setEnabled('node', 'article', TRUE); \Drupal::service('content_translation.manager')->setEnabled('taxonomy_term', $this->vocabulary->id(), TRUE); drupal_static_reset(); \Drupal::entityManager()->clearCachedDefinitions(); \Drupal::service('router.builder')->rebuild(); \Drupal::service('entity.definition_update_manager')->applyUpdates(); } /** * Adds term reference field for the article content type. * * @param bool $translatable * (optional) If TRUE, create a translatable term reference field. Defaults * to FALSE. */ protected function setUpTermReferenceField() { $handler_settings = [ 'target_bundles' => [ $this->vocabulary->id() => $this->vocabulary->id(), ], 'auto_create' => TRUE, ]; $this->createEntityReferenceField('node', 'article', $this->termFieldName, NULL, 'taxonomy_term', 'default', $handler_settings, FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED); $field_storage = FieldStorageConfig::loadByName('node', $this->termFieldName); $field_storage->setTranslatable(FALSE); $field_storage->save(); entity_get_form_display('node', 'article', 'default') ->setComponent($this->termFieldName, [ 'type' => 'entity_reference_autocomplete_tags', ]) ->save(); entity_get_display('node', 'article', 'default') ->setComponent($this->termFieldName, [ 'type' => 'entity_reference_label', ]) ->save(); } }