public function ContentEntityStorageBase::createTranslation in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php \Drupal\Core\Entity\ContentEntityStorageBase::createTranslation()
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 135 - Contains \Drupal\Core\Entity\ContentEntityStorageBase.
Class
- ContentEntityStorageBase
- Base class for content entity storage handlers.
Namespace
Drupal\Core\EntityCode
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', $entity);
return $translation;
}