Pacemaker Import Translations

Über das Zusatzmodul Pacemaker Import Translations ist es möglich mehrere Übersetzungsdateien hochzuladen und zu importieren. Es verbindet die Funktionsweise des Translation-Generators mit der Import Gui sowie den Process Pipelines von Pacemaker Enterprise.

Installation mit Composer

Um im TechDivision Context ein Modul mit Composer zu installieren, folgenden Befehl benutzen um das Repository entsprechend einbinden:

composer config repositories.repo.met.tdintern.de composer https://repo.met.tdintern.de/

Nach Einbindung des MET-Composer-Repository folgende Befehle zur Installation ausführen:

# add to composer require
composer require techdivision/pacemaker-import-translations ^1.0.0

# run magento setup to activate the module
bin/magento set:up

Konfiguration

Navigieren Sie zu TechDivision >> Util >> Translation Generator

Section Option Value Default Beschreibung

Import

File Name Patter

Text / Regular Expression

/translation-import_(?P<locale>([a-z]{2}-[A-Z]{2}))([_0-9]*?).(csv)/

Dateinamen-Muster für Übersetzungsdateien, welche über Pacemaker verarbeitet werden sollen. Die sog. "Locale" muss mit einem Bindestrich bereitgestellt werden z.B. "en-US.

Regular Expression und Beispiel

Das Standardmuster prüft folgende Bestandteile des Dateinamens

  • Prefix: translation-import

  • Locale: en-US

  • Laufende Nummer (optional): 1

  • Suffix: .csv

  • Zusammengesetzt mit je einem Unterstrich _.

Beispiel: translation-import_en-US_1.csv

Bis auf die laufende Nummer müssen alle Bestandteile gegeben sein und mit einem Unterstrich aufgeschlüsselt sein.

Import-Konfiguration

Import über Pacemaker Pipelines

Im folgenden Fall wird die Vorgehensweise eines Übersetzungsimports per Pacemaker beschrieben:

  1. Navigieren Sie zu Pacemaker >> Import >> Upload.

  2. Klicken Sie auf den Aktions-Button Upload new files.

  3. Wählen Sie im Selectmenü Pipeline den Eintrag Import Translations.

    Import-Upload
  4. Wählen Sie anschließend eine oder mehrere Dateien für den Import aus und klicken Sie auf Save.

  5. Bitte stellen Sie sicher, dass die Dateien dem konfiguriertem File Name Pattern entsprechen.

    1. Wenn eine Datei ungültig ist, so wird diese nicht hochgeladen und somit nicht importiert bzw. weiterverarbeitet. Die gültigen Dateien werden verarbeitet.

    2. Wenn alle Dateien ungültig sind, so wird der Upload abgebrochen und eine Fehlermeldung ausgegeben.

  6. Klicken Sie nach dem Hochladen der Dateien auf OK in dem generierten Tabellen-Eintrag in Pacemaker Import Upload.

    Import-OK
  7. Navigieren Sie zu Pacemaker >> System >> Process Pipelines.

    1. Eine neue Pipeline pacemaker_import_translations wurde angelegt.

      Import-Pipeline
    2. Bitte stellen Sie sicher, dass der Pacemaker Heartbeat ausgeführt wird.

    3. Bitte stellen Sie sicher, dass ein Pacemaker Pipeline Runner Consumer läuft.

  8. Mit der Ausführung des ersten Pipeline-Steps pacemaker_import_translations werden weitere Steps zur Pipeline hinzugefügt, basierend auf der Anzahl der hochgeladenen Übersetzungsdateien.

    Import-Pipeline-Success
    Import-Init-Step
  9. Mit der Ausführung der hinzugefügten Steps wird jede "Locale" in einem Step verarbeitet. Die Verarbeitung nutzt die Standard-Import-Funktionalität des Translation Generator.

    Import-Import-Step

Validierung beim Upload

Für den Multi-Datei-Upload wurde eine mehrstufige Validierungsfunktion implementiert, um den Import-Prozess an sich abzusichern.

Wird eine ungültige Datei beim Upload erkannt, so wird diese nicht hochgeladen und somit auch nicht im Import weiter verarbeitet. Alle übrigen und gültigen Dateien werden verarbeitet.

Import-Validation

File Name Validation

Es wird geprüft, ob der Name der hochgeladenen Datei dem Muster der konfigurierten "Regular Expression" entspricht.

File Content Validation

Es wird geprüft, ob der Inhalt der hochgeladenen Datei einen validen Label_key besitzt und die "Locale" auch der "Locale" im Dateinamen entspricht.

Locale Validation

Es wird geprüft, ob die "Locale" der hochgeladenen Datei in einem Store/Store-View genutzt wird.

Funktionsweise "Hybrid-Pipeline"

Eine "hybride" Pipeline nutzt im Pacemaker-Kontext zum einen eine XML-Definition und zum anderen Code-Implementierungen um Steps oder andere Eigenschaften der Pipeline zu erweitern.

Die Generierung der Pipeline wurde per XML-Definition genutzt, um diese einfach mit der Pacemaker Import GUI zu verbinden. Per Implementierung wurden "dynamische" Steps generiert um jede "Locale" in einem separaten Step zu importieren.

Pipeline Definition und Init-Step

Die Pipeline pacemaker_import_translations wurde per XML-Definition erzeugt. Bei der Initialisierung besitzt die Pipeline den Step init_translation_import. Somit kann die Pipeline und auch der Step in der Pacemaker Import GUI genutzt werden. Der "Init-Step" erweitert die Pipeline mit weiteren "Import-Steps" basierend auf der Anzahl der hochgeladenen Übersetzungsdateien.

Import Translation Step

Der/Die Import-Step(s) werden dynamisch mit dem Step init_translation_import wie beschrieben erzeugt. Jede der hochgeladenen Übersetzungsdateien wird in einem eigenen Import-Step importiert und verarbeitet. Es wird somit in jedem Step eine "Locale" importiert und auch der sog. Translation-Cache nach dem Import bereinigt.