DeepL Übersetzungen in TYPO3


Mit seinem Dienst "Google Translate" hat Google bei Übersetzungen oft für kleine Lacher gesorgt. DeepL hingegen begeistert durch saubere, klar lesbare Übersetzungen. Legt man viel wert darauf, lohnt sich der Dienst.

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

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

DeepL tag_handling=xml

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

  • Die Ursprungssprache muss festgelegt werden. (z.B. default -> sys_language_uid = 0)
  • Ziel Übersetzungen müssen freigegeben werden. (z.B. explizite Auswahl der Sprache Finnisch, Schwedisch und/oder Dänisch)
  • Meta hreflang kann für die freigegebenen Übersetzungen mit ausgegeben werden.
  • HTML Elemente können per CSS Selektor von der Übersetzung ausgeschlossen werden.
  • Das Attribut "title" wird ebenfalls übersetzt.
  • Alle Links werden in der Übersetzung mit einem Parameter ergänzt, um weiterhin auf der Übersetzung zu bleiben.
  • 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.
  • 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!)

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

Hat dir der Artikel gefallen?

Werkraum News:

Titelbild zur Teamevent-News: Im Hintergrund sieht man Entwickler am Notebook, darüber ist ein Code multipliziert und das Bild ist orange eingefärbt.

Neues Jahr, neuer Code

Mit Spaß an der Arbeit und Geselligkeit, so funktionierte das Teamevent #27 bei werkraum