public ContentEntityStorageBase::createTranslation(ContentEntityInterface $entity, $langcode, array $values = [])
Constructs a new entity translation object, without permanently saving it.
Parameters
\Drupal\Core\Entity\ContentEntityInterface $entity: The entity object being translated.
string $langcode: The translation language code.
array $values: (optional) An associative array of initial field values keyed by field name. If none is provided default values will be applied.
Return value
\Drupal\Core\Entity\ContentEntityInterface A new entity translation object.
Overrides ContentEntityStorageInterface::createTranslation
File
- core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php, line 130
Class
- ContentEntityStorageBase
- Base class for content entity storage handlers.
Namespace
Drupal\Core\Entity
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public function createTranslation(ContentEntityInterface $entity , $langcode , array $values = []) { $translation = $entity ->getTranslation( $langcode ); $definitions = array_filter ( $translation ->getFieldDefinitions(), function (FieldDefinitionInterface $definition ) { return $definition ->isTranslatable(); }); $field_names = array_map ( function (FieldDefinitionInterface $definition ) { return $definition ->getName(); }, $definitions ); $values [ $this ->langcodeKey] = $langcode ; $values [ $this ->getEntityType()->getKey( 'default_langcode' )] = FALSE; $this ->initFieldValues( $translation , $values , $field_names ); $this ->invokeHook( 'translation_create' , $translation ); return $translation ; } |
Please login to continue.