Sprach-Workflows, Strukturreferenzen auf Hauptsprache, automatische Übersetzung

15. Feb 2023

Mehrsprachige Webseiten profitieren in vielerlei Hinsicht von den umfangreichen Sprachfunktionen in Weblication®.

Neben der weitergehenden Integration von DeepL zur automatischen Übersetzung (Zusatzmodul) ganzer Seiten, steht auch eine umfangreiche Sammlung an Framework-Funktionen zur Verfügung, um den gewünschten Sprach-Workflow direkt in die Pflege der Seite zu integrieren und die Möglichkeit, die Elemente-Struktur der jeweils korrespondierenden Seiten der Hauptsprache automatisch zu übernehmen.

PHP-Framework im Sprach-Workflow einsetzen

Eine umfangreiche Sammlung an Framework-Funktionen steht in Weblication® zur Verfügung, um den gewünschten Sprach-Workflow direkt in die Pflege der Seite zu integrieren.

Beispiele solcher Framework-Funktionen in Weblication®:

  • createToReleaseTranslationUpdateStructureFromReference
  • createToReleaseTranslation
  • releaseToReleaseTranslation
  • exportToTranslate
  • importToTranslate
  • deleteToReleaseTranslation
  • translateToTranslateDeepL

Das folgende Schaubild zeigt, wie sich die verfügbaren PHP-Framework Funktionen für einen beispielhaften Sprach-Workflow einsetzen lassen.

Erweiterte Sprachverwaltung Version 15
Erweiterte Sprachverwaltung Version 15

Automatisierter Sprach-Workflow

In Weblication® können Sie eigene Sprach-Workflows über die PHP-Framework Funktionen umsetzen. Diese können eigene Kombinationen zur Übersetzung mit DeepL oder eigenen Übersetzungslösungen sein.

Quelltextbeispiele zum automatisierten Sprachworkflow über PHP-Framework Funktionen

//Erstellen der freizugebenden und zu übersetzenden Datei
wLanguages::createToReleaseTranslation($path, array('debug' => $debug));

//Exportieren der zu übersetzenden Texte
wLanguages::exportToTranslate($path, array('sourceToTranslate' => 'reference'));

//Übersetzen der exportierten Texte
wLanguages::translateToTranslateDeepL($path, array('deeplKey' => $deeplKey));

//Einspielen der übersetzten Texte
wLanguages::importFromTranslated($path);

//Freigeben der übersetzten Datei
wLanguages::releaseToReleaseTranslation($path);


Neben den individuell kombinierbaren und durch eigene Skripte ergänzbaren Funktionen, gibt es auch ein konfigurierbares Snippet (Struktur in Sprachprojekte überspielen und Inhalte automatisch übersetzen), welches sich im Ereignis onAfterSaveFile auswählen lässt.

Wird in der Hauptsprache eine Änderung vorgenommen (strukturell und/oder inhaltlich), werden nach dem Speichern (Ereignis onAfterSaveFile) automatisch alle korrespondierenden Sprachdateien in den anderen Sprachen mit der Struktur (Strukturelemente der eben gespeicherten Seite in der Hauptsprache - Strukturreferenz bezeichnet) ausgestattet und die Inhalte der Seite automatisch über die DeepL-Schnittstelle (Zusatzmodul) übersetzt.

In einer individualisierten Variante dieses Scripts könnten auch nur die Inhalte in inhaltlich veränderten Elementen übersetzt werden, um ggf. bereits manuell veränderte Übersetzungen nicht wieder zu überschreiben (translate if referenceChanged and currentReferenceNotChanged), und die manuellen Übersetzer informiert werden.

Konfigurierbares Code-Snippet (Struktur in Sprachprojekte überspielen und Inhalte automatisch übersetzen)

//Übernimmt die Struktur in die korrespondierenden Sprachdateien und übersetzt die Texte automatisch mit DeepL (falls Weblication Modul und DeepL-Api lizenziert sind)
if(wLanguages::isTranslatable($eventData['filePath'])){
$options = array();
$options['deeplKey'] = wVariables::getValue('deepl_key', wProject::getPathGlobal($eventData['projectPath']));
$options['translateIf'] = 'referenceChanged'; // [referenceChanged|referenceChangedAndCurrentNotChanged] Der Text wird neu übersetzt, wenn er sich in der Ursprungsdatei ändert oder nur wenn er sich in der Ursprungsdatei ändert und in der aktuellen Sprachdatei nicht geändert hat.
$options['release'] = true; // Falls die Datei auch gleich veröffentlicht werden soll.
wLanguages::translateCorrespondantDocumentsToTranslateWithDeepL($eventData['filePath'], $options);
}


Denkbar ist, zukünftig solche Funktionen auch alternativ über die Projektmaske auswählbar zu machen, um das Handling nochmals zu vereinfachen. Hierzu sind wir auf Ihre Hinweise als Kunde / Partner angewiesen, wie Sie das System nutzen bzw. konfigurieren, damit wir weitere etablierte Muster standardisieren können.

Manuelle Übernahme der Struktur aus Hauptsprache

Ist die entsprechende Einstellung im jeweiligen Sprachprojekt vorgenommen, kann im Editor die Struktur aus der korrespondierenden Seite der Hauptsprache in die aktuell bearbeitete Sprachversion der Seite übernommen werden.

Dabei ist einstellbar, ob bereits eine Strukturreferenz bestehen muss und ob diese ggf. nach der Übernahme erstellt wird. Außerdem ist einstellbar, ob im Fall einer Strukturreferenz der Struktureditor nutzbar sein soll. Eine Strukturreferenz dient dazu, dass die Stuktur über die Referenzsprache (Hauptsprache) vorgegeben wird und macht so die vollständig automatische Übersetzung erst möglich. Einzelne Seiten, die individuell gepflegt werden, verzichten in dem Fall auf eine Strukturreferenz.

Editor: Struktur aus Hauptsprache übernehmen
Editor: Struktur aus Hauptsprache übernehmen

Automatische Übersetzung im Editor

Bei Klick auf "Diese Seite automatisch übersetzen" wird über die DeepL-Schnittstelle (Zusatzmodul) die gesamte Seite automatisch übersetzt. Danach kann die Übersetzung manuell verändert werden.

Editor: Seite automatisch übersetzen
Editor: Seite automatisch übersetzen
Editor: Laufende automatische Übersetzung
Editor: Laufende automatische Übersetzung

Einrichtung zur Nutzung von Strukturreferenzen

So bereiten Sie die Nutzung von Strukturreferenzen vor:

  1. Legen Sie die Sprachprojekte an (Werkzeuge - Sprachprojekt erstellen).
  2. Definieren Sie in den Projekteinstellungen im jeweiligen Sprachprojekt die Übernahme der Strukturreferenz
  3. Richten Sie ggf. über das Ereignis onAfterSaveFile Ihren individuellen Sprach-Workflow ein.
Sprachprojekt erstellen
Sprachprojekt erstellen
Projekteinstellungen Sprache
Projekteinstellungen Sprache
Projekteinstellungen Sprache - Möglichkeiten der Einstellung
Projekteinstellungen Sprache - Möglichkeiten der Einstellung
Explorer: Anzeige der Strukturreferenz auf die Hauptsprache
Explorer: Anzeige der Strukturreferenz auf die Hauptsprache

So können Sie die neuen Sprach-Funktionen nutzen

Die neuen Sprach-Funktionen sind in unterschiedlichen Szenarien nutzbar. Folgende Auflistung gibt einen Überblick:

Automatische Übersetzung über DeepL-Schnittstelle

Sie können komplette Seiten übersetzen über die DeepL-Schnittstelle (Zusatzmodul):

  • Manuell per Mausklick
    • pro Element
    • komplette Seite
  • Per Sprach-Workflow z.B. nach dem Speichern der Seite in der Hauptsprache

Webseite mit individuell gestaltbaren Sprachversionen

Wie bisher auch, können Sprachversionen individuell mit beliebigen Elementen strukturiert werden - unabhängig von der Elementestruktur der Hauptsprache. Der Redakteur selbst hat die volle Kontrolle über die Inhalte und die Inhaltsstruktur. Es gibt die Möglichkeit der automatisierten Übersetzung einer kompletten Seite, ohne dass die Elemente einzeln zu übersetzen sind (Zusatzmodule DeepL-Schnittstelle).

Webseite mit strukturell identischen Sprachversionen

Falls die Seite über eine Hauptsprache mit strukturell identischen Sprachversionen gepflegt werden soll, sind Strukturreferenzen nutzbar, die dazu führen, dass in der Sprachversion kein Struktureditor zur Verfügung steht. Ändert sich die Struktur in der Hauptsprache, wird diese auch in der Sprachversion angepasst. Außer dass der Redakteur keinen Struktureditor sieht, kann er die Seite in gewohnter Weise pflegen und die Übersetzungswerkzeuge nutzen.

Komplett automatisierte Sprachversionen mit identischer Struktur

Auch völlig automatisierte Sprachversionen sind möglich. Dazu werden die Sprachversionen nach dem Speichern der Hauptversion über ein Ereignis mit Hilfe des PHP-Frameworks angepasst und automatisch mit DeepL übersetzt. Bei dieser Variante ist keine Pflege mehr innerhalb der Sprachversionen selbst notwendig.

Individueller Sprach-Workflow für komplexe Sprach-/Länderseiten und eigenem Übersetzungsbüro

Neben der komplett automatisierten 1:1 Übersetzung, sind auch eigene, individuelle Arbeitsabläufe abbildbar. Das erweiterte Sprach-Framework stellt Funktionen zur Verfügung, um auch asynchrone Übersetzungs- und Freigabeprozesse den unternehmensspezifischen Erfordernissen entsprechend umzusetzen.

Beispielhafte Funktionen sind:

  • Inhaltsstruktur aus der Master-Sprache übernehmen
  • Auswahl, welche Strukturelemente in welcher Sprachversion berücksichtigt werden sollen
  • Auswahl, welche Texte übersetzt werden sollen.
  • Texte für Übersetzungsbüro exportieren
  • Texte über DeepL automatisiert übersetzen
  • Übersetzte Texte einspielen
  • Übersetzte Dateien in verschiedene Länderseiten einspielen

Zusammenfassung

Die Auflistung der unterschiedlichen Möglichkeiten zeigt, dass jede mehrsprachige Seite von den neuen Sprachfunktionen profitieren kann. Während bei umfangreicheren Projekten bestimmte Funktionen jetzt überhaupt erst ohne Eigenentwicklungen möglich sind, profitieren Seiten mit standardisierten Sprachkonstrukten im Optimalfall von der automatisierten Komplettübersetzung, was in vielen Fällen nicht weniger als eine Halbierung des Pflegeaufwandes bedeuten wird.