FieldTranslationSynchronizer
class FieldTranslationSynchronizer implements FieldTranslationSynchronizerInterface (View source)
Provides field translation synchronization capabilities.
Properties
| protected EntityTypeManagerInterface | $entityTypeManager | The entity type manager. |
|
| protected FieldTypePluginManagerInterface | $fieldTypeManager | The field type plugin manager. |
Methods
Constructs a FieldTranslationSynchronizer object.
Returns the synchronized properties for the specified field definition.
Returns the synchronization settings for the specified field.
Performs field column synchronization on the given entity.
Returns the original unchanged entity to be used to detect changes.
Synchronize the items of a single field.
Creates a merged item.
Computes a hash code for the specified item.
Details
__construct(EntityTypeManagerInterface $entity_type_manager, FieldTypePluginManagerInterface $field_type_manager)
Constructs a FieldTranslationSynchronizer object.
string[]
getFieldSynchronizedProperties(FieldDefinitionInterface $field_definition)
Returns the synchronized properties for the specified field definition.
protected string[]
getFieldSynchronizationSettings(FieldDefinitionInterface $field_definition)
Returns the synchronization settings for the specified field.
synchronizeFields(ContentEntityInterface $entity, string $sync_langcode, string $original_langcode = NULL)
Performs field column synchronization on the given entity.
Field column synchronization takes care of propagating any change in the field items order and in the column values themselves to all the available translations. This functionality is provided by defining a 'translation_sync' key for the 'content_translation' module's portion of the field definition's 'third_party_settings', holding an array of column names to be synchronized. The synchronized column values are shared across translations, while the rest varies per-language. This is useful for instance to translate the "alt" and "title" textual elements of an image field, while keeping the same image on every translation.
protected ContentEntityInterface
getOriginalEntity(ContentEntityInterface $entity)
Returns the original unchanged entity to be used to detect changes.
synchronizeItems(array $values, array $unchanged_items, string $sync_langcode, array $translations, array $properties)
Synchronize the items of a single field.
All the column values of the "active" language are compared to the unchanged values to detect any addition, removal or change in the items order. Subsequently the detected changes are performed on the field items in other available languages.
protected array
createMergedItem(array $source_item, array $target_item, array $properties)
Creates a merged item.
protected
itemHash(array $items, int $delta, array $properties)
Computes a hash code for the specified item.