DeepL Übersetzungen in TYPO3

Google hat mit seinem Dienst "Google Translate" schon oft für Lacher gesorgt, wenn es um Übersetzungen ging. DeepL hingegen begeistert durch saubere, klar lesbare Übersetzungen. Wenn man darauf Wert legt, lohnt sich der Dienst.

Eine automatische Übersetzung in TYPO3 über einen Übersetzungsdienst ist möglich und wird von einigen Extensions angeboten: DeepL Google Translate.

Unser Kunde wollte jedoch keine weiteren Sprachen im Backend und damit in der Datenbank haben. Deshalb haben wir eine Lösung gebaut, die ähnlich wie der Google Übersetzer funktioniert, den man bereits von einigen Webseiten kennt.

DeepL tag_handling=xml

DeepL kann nicht nur "rohe" Texte übersetzen, sondern auch XML. Da sich HTML kaum von XML unterscheidet, war eine Lösung schnell gefunden: Wir bauen eine TYPO3-Middleware und lassen DeepL den Inhalt (alles zwischen dem <body>) übersetzen. Die Lösung wird durch folgende Features unterstützt

  • Die Ursprungssprache muss festgelegt werden. (z.B. default -> sys_language_uid = 0 aber auch eine abweichende Sprache möglich)
  • Ziel Übersetzungen müssen freigegeben werden. (z.B. Auswahl der Sprache Finnisch, Schwedisch und/oder Dänisch vom DeepL Service)
    • die Liste der Verfügbaren Sprachen wird per API abgerufen, so stellen wir sicher, dass auch neue Sprachen sofort genutzt werden können
    • lässt sich pro Site Konfiguration (domain) anpassen
      • zusätzlich lassen sich die Sprachen pro interne TYPO3 Übersetzung nochmal neu definieren
  • Meta hreflang kann für die freigegebenen Übersetzungen mit ausgegeben werden. (SEO)
  • HTML Elemente können per CSS Selektor von der Übersetzung ausgeschlossen werden.
  • Das Attribut "title" wird ebenfalls übersetzt.
    • über ein Interface lässt sich aber auch ein eigener Processort implementieren, der weitere Attribute übersetzt
  • Alle Links werden in der Übersetzung mit einem Parameter ergänzt, um weiterhin auf der Übersetzung zu bleiben. (?deepl=PT)
  • Alle Parameter der /translate Schnittstelle von DeepL sind im Backend konfigurierbar.
  • Die gesetzten Ziel Sprachen werden mit Hilfe eines eigenen DataProcessors ähnlich wie der TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor bereitgestellt. So ist es für Integratoren einfach das Menü in der Webseite einzubauen
  • Die Einstellungen werden über die Site-Konfiguration von TYPO3 gemacht. (Pro Site/Domain unterschiedliche Einstellungen)
  • Übersetzungen werden in den Cache der Seite gelegt. (Wird die Seite geändert, wird auch die Übersetzung entfernt; separate "Blitze" für den Redakteur gibt es auch!)
    • der Cache kann auch "permanent" erhalten bleiben, so spart man sich Kosten beim DeepL Service. Man muss aber bedenken, dass man so den Cache selbst im Blick erhalten muss. Dafür gibt es eine eigene Ansicht im "Info" Modul.
  • Übersetzungsanfragen über das Frontend können zusätzlich vor Suchmaschinen "bots" ausgeschlossen werden. Auch das Google reCaptcha kann "davor" aktiviert werden um Übersetzungen nur echten Menschen zur Verfügung zu stellen.
    • ist die Seite einmal übersetzt wird keine Sicherheitsmaßnahme getroffen und die Übersetzung direkt aus dem Cache ausgespielt
  • Um den Benutzer darauf hinzuweisen, dass der Text von einer Maschine übersetzt wird kann auch ein Hinweis Text eingebaut werden

Um die Integration von DeepL abzuschließen, gab es noch die Glossar-Funktion als eigenes Backend Modul obendrauf. 

* aktualisiert am 25.07.2023

Hat Dir der Artikel gefallen?