Translation Kontext
Das Translations Kontext ist dafür verantwortlich, dem ElementTranslationService einen Kontext mizugeben, welche Felder übersetzt werden sollen, welche Glossare Verwendung finden sollen und so weiter.
Falls so ein Translation Kontext Werte nicht gesetzt hat, werden standardmäßig die Standard-Werte aus der jeweiligen Translation-Konfiguration bezogen.
Verschiedene Typen
Objekt
Das ObjectTranslationContextDto wird als Übersetzungskontext für Objekte verwendet, in dem beispielsweise Localized-Fields, Brick-Felder und weitere übersetzbare Inhalte mitgegeben werden können.
| Name | Wert |
|---|---|
| Klasse | Twocream\DeepLBundle\Dto\ObjectTranslationContextDto |
| Konstruktor | public function __construct(?array $localizedFields = null, ?array $blockFields = null, ?array $bricks = null, ?array $fieldCollections = null, ?array $objectRelations = null, ?array $glossaries = null) |
| Optional | |
$localizedFields | Enthält das Format für die zu übersetzenden Localized-Felder. |
$blockFields | Enthält das Format für die zu übersetzenden Block-Felder. |
$bricks | Enthält das Format für die zu übersetzenden Brick-Felder. |
$fieldCollections | Enthält das Format für die zu übersetzenden Field-Collection-Felder. |
$objectRelations | Enthält das Format für die zu übersetzenden Objekt-Relationen. |
$glossaries | Enthält die Glossare. |
Asset
Das AssetTranslationContextDto wird als Übersetzungskontext für Assets verwendet, in dem beispielsweise die Meta-Daten-Felder übergeben werden.
| Name | Wert |
|---|---|
| Klasse | Twocream\DeepLBundle\Dto\AssetTranslationContextDto |
| Konstruktor | public function __construct(?array $metadataFields = null, ?array $glossaries = null) |
| Optional | |
$metadataFields | Enthält die Namen der "Vordefinierten-Asset-Metadaten" aus Pimcore, die übersetzt werden sollen. |
$glossaries | Enthält die Glossare. |
Erstellung
In dem Beispiel werden die Felder aus der Konfiguration entnommen. Sind keine Werte gesetzt, werden normalerweise immer die Felder aus der Konfiguration verwendet. Dies stellt ein Beispiel dar.
$config = TranslationConfigurationLoader::getConfiguration($object->getClassName());
$translationContext = new ObjectTranslationContextDto();
$translationContext->setLocalizedFields($config['fields'] ?? []);
$translationContext->setFieldCollections($config['fieldCollections'] ?? []);
$translationContext->setBricks($config['bricks'] ?? []);
$translationContext->setObjectRelations($config['relations'] ?? []);
$translationContext->setBlockFields($config['blocks'] ?? []);
$translationContext->setGlossaries($config['glossaries'] ?? []);