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
| Name | Wert |
|---|---|
| Konstruktor | public function __construct(int $elementId, string $elementType, string $pimcoreSourceLanguage, ?array $pimcoreTargetLanguages = null, ?TranslationContextInterface $translationContext = null, bool $skipExistingTranslation = false, bool $allowInheritedValues = false,bool $doPublishVersion = true) |
$elementId | Id von dem Element (Objekt, Asset, ...) |
$elementType | Typ vom Element (object, asset, ...) |
$pimcoreSourceLanguage | Die Quell-Sprache (de, en, ...) |
| Optional | |
$pimcoreTargetLanguages | Eine Ansammelung von Ziel-Sprachen, im folgenden Aufbau: ['de', 'en', 'fr'] |
$translationContext | Der Translation-Kontext enthält alle Informationen die je nach Element-Typ unterschiedlich sind (Metadaten-Felder, Relation-Felder, Glossare, ....). |
$skipExistingTranslation | Entscheidet darüber, ob der vorhandene Text im Feld überschrieben werden soll. |
$allowInheritedValues | Es 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. |
$doPublishVersion | Entscheidet 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
);