Sprach-Workflows, Strukturreferenzen auf Hauptsprache, automatische Übersetzung
20. Jun 2024
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
- Automatisierter Sprach-Workflow
- Manuelle Übernahme der Struktur aus Hauptsprache
- Automatische Übersetzung im Editor
- Einrichtung zur Nutzung von Strukturreferenzen
- So können Sie die neuen Sprach-Funktionen nutzen
- Automatische Übersetzung über DeepL-Schnittstelle
- Webseite mit individuell gestaltbaren Sprachversionen
- Webseite mit strukturell identischen Sprachversionen
- Komplett automatisierte Sprachversionen mit identischer Struktur
- Individueller Sprach-Workflow für komplexe Sprach-/Länderseiten und eigenem Übersetzungsbüro
- Zusammenfassung
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.

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.

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.


Einrichtung zur Nutzung von Strukturreferenzen
So bereiten Sie die Nutzung von Strukturreferenzen vor:
- Legen Sie die Sprachprojekte an (Werkzeuge - Sprachprojekt erstellen).
- Definieren Sie in den Projekteinstellungen im jeweiligen Sprachprojekt die Übernahme der Strukturreferenz
- Richten Sie ggf. über das Ereignis onAfterSaveFile Ihren individuellen Sprach-Workflow ein.




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.