ContentEntityBase::initializeTranslation

protected ContentEntityBase::initializeTranslation($langcode)

Instantiates a translation object for an existing translation.

The translated entity will be a clone of the current entity with the specified $langcode. All translations share the same field data structures to ensure that all of them deal with fresh data.

Parameters

string $langcode: The language code for the requested translation.

Return value

\Drupal\Core\Entity\EntityInterface The translation object. The content properties of the translation object are stored as references to the main entity.

File

core/lib/Drupal/Core/Entity/ContentEntityBase.php, line 772

Class

ContentEntityBase
Implements Entity Field API specific enhancements to the Entity class.

Namespace

Drupal\Core\Entity

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
protected function initializeTranslation($langcode) {
  // If the requested translation is valid, clone it with the current language
  // as the active language. The $translationInitialize flag triggers a
  // shallow (non-recursive) clone.
  $this->translationInitialize = TRUE;
  $translation = clone $this;
  $this->translationInitialize = FALSE;
 
  $translation->activeLangcode = $langcode;
 
  // Ensure that changes to fields, values and translations are propagated
  // to all the translation objects.
  // @todo Consider converting these to ArrayObject.
  $translation->values = &$this->values;
  $translation->fields = &$this->fields;
  $translation->translations = &$this->translations;
  $translation->enforceIsNew = &$this->enforceIsNew;
  $translation->newRevision = &$this->newRevision;
  $translation->entityKeys = &$this->entityKeys;
  $translation->translatableEntityKeys = &$this->translatableEntityKeys;
  $translation->translationInitialize = FALSE;
  $translation->typedData = NULL;
 
  return $translation;
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.