Zum Hauptinhalt springen
Version: v11.10

Translation Queue

Die Translation Queue ist eine Symfony-Messenger-Queue, die für die Verarbeitung der Übersetzungseinträge zuständig ist.

Konfiguration

CronJob

*/5 * * * * php bin/console messenger:consume twocream_deepl_translation --time-limit 300

Aufbau Queue-Message

Klasse

Twocream\DeepLBundle\MessageQueue\Message\ElementTranslationMessage

Beschreibung

NameWert
Konstruktorpublic function __construct(int $elementId, string $elementType, string $pimcoreSourceLanguage, ?array $pimcoreTargetLanguages = null, ?TranslationContextInterface $translationContext = null, bool $skipExistingTranslation = false, bool $allowInheritedValues = false,bool $doPublishVersion = true)
$elementIdId von dem Element (Objekt, Asset, ...)
$elementTypeTyp vom Element (object, asset, ...)
$pimcoreSourceLanguageDie Quell-Sprache (de, en, ...)
Optional
$pimcoreTargetLanguagesEine Ansammelung von Ziel-Sprachen, im folgenden Aufbau: ['de', 'en', 'fr']
$translationContextDer Translation-Kontext enthält alle Informationen die je nach Element-Typ unterschiedlich sind (Metadaten-Felder, Relation-Felder, Glossare, ....).
$skipExistingTranslationEntscheidet darüber, ob der vorhandene Text im Feld überschrieben werden soll.
$allowInheritedValuesEs wird entschieden, ob die Fallbacks der Sprachen (z. B. im Localized-Field) sowie die Elementvererbung berücksichtigt werden sollen. Falls ja, werden diese lokal am Element gespeichert.
$doPublishVersionEntscheidet darüber, ob die erstelle Übersetze Version publiziert wird oder nur als Version abgespeichert wird.

Verwendung

Neuen Übersetzungseintrag erstellen

Ein Übersetzungseintrag ist erforderlich, wenn beispielsweise ein Element (In dem Fall ein Objekt) übersetzt werden soll. Solche Einträge können flexibel neu erstellt werden, wobei zahlreiche optionale Parameter angegeben werden können.

info

Die Zuweisung der Parameter erfolgt hier nur zur Veranschaulichung und ist nicht notwendig.

<?php

$glossaries = [
'de' => [
'en' => 'GLOSSAR_ID'
]
];

$objectTranslationContext = new ObjectTranslationContextDto(glossaries: $glossaries);

$elementTranslationMessage = new ElementTranslationMessage(
$element->getId(),
$element->getType(),
'de',
pimcoreTargetLanguages: ['en'],
translationContext: $objectTranslationContext,
skipExistingTranslation: true,
allowInheritedValues: true,
doPublishVersion: true
);