Zum Inhalt springen
Marketing Factory Digital GmbH
Kontakt
Logo Marketing Factory Digital GmbH
  • Agentur
    • Aktuelles
    • Über uns
    • Geschichte
  • Leistungen
    • Beratung, Analyse und Strategie
    • Programmierung und Entwicklung
      • Schnittstellen
      • PIM-/ERP-Anbindungen
      • Individualentwicklungen
      • Seamless CMS Integration
    • Hosting und Betreuung
      • Cloud-Strategien
      • Hosting Partner der Marketing Factory
    • Leistungen mit Dritten
  • Technologie
    • TYPO3
      • TYPO3 LTS Versionen im Überblick: v12, v13
    • Shopware
    • IT-Sicherheit
      • DDoS-Protection
      • Continuous Upgrading
      • Privacy First
    • Tech Stack
      • Bekenntnis zu Open Source
      • Technologieauswahl
      • PHP-Ökosystem
      • Containerisierung & Clustering
      • Content Delivery Networks
      • Suchtechnologien
  • Referenzen
    • Projekte
    • Kunden
      • Kundenliste
    • Screenshot der Homepage der neuen Maxion Wheels WebsiteNEU: Relaunch der Corporate Website von Maxion Wheels
  • Community
    • Community-Initiativen
  • Blog
  • Kontakt
  • Deutsch
  • English

Sie sind here:

  1. Blog
  2. Planung und Durchführung automatischer Übersetzungen in TYPO3 mit DeepL
Das Bild stellt zwei Inhaltsspalten in TYPO3 in stilisierter Form dar. In der linken Spalte stehen die englischen Inhalte. Die rechte Spalte ist Blau hervorgehoben und zeigt das Icon, das in TYPO3 für Übersetzungs-Buttons verwendet wird, in großer Darstellung.
  • Extensions
  • TYPO3
  • Tutorial
13.11.2025

Planung und Durchführung automatischer Übersetzungen in TYPO3 mit DeepL


Einleitung

Wir haben die DeepL-Extensions in einem TYPO3-Projekt eingerichtet, um darin Übersetzungen automatisch generieren zu lassen. Heute erzähle ich euch von unseren Erfahrungen mit DeepL. Ich nehme das auch zum Anlass, den gesamten organisatorischen Ablauf zu beschreiben.

In der TYPO3-Installation lagen alle Inhalte in der englischen Sprache vor und wurden jetzt erstmals auf Deutsch übersetzt. Weitere Sprachen werden im Projekt folgen.

Übersicht

  • Was ist vorab zu klären?
  • Die Zielsprache (ja, ernsthaft)
  • Ein Glossar
  • Der Ablauf im Projekt
  • DeepL Pro API
  • Automatisierte Synchronisierung bei späteren Änderungen?
  • Was muss alles übersetzt werden?
  • Der technische Part
  • DeepL-Extensions
  • Installation und Konfiguration
  • Notwendige TCA-Konfiguration
  • Sprachmenü
  • "hreflang"-Tags
  • Die redaktionelle Übersetzung mittels DeepL
  • Anlegen eines Glossars
  • Wie funktioniert die automatische Übersetzung im TYPO3-Backend?
  • Was sollte man zuerst übersetzen?
  • Häufige Fallstricke und Einschränkungen
  • Die Zielsprache hat andere Textlängen
  • Kurzer Text bietet weniger Kontext
  • Synchronisierung des Glossars
  • Kurzfristige Überarbeitung bestehender Inhalte
  • Fazit: How Deep(L) Is Your Love?

Was ist vorab zu klären?

Die Zielsprache (ja, ernsthaft)

Bevor eine neue Sprache technisch eingerichtet wird, müssen wir diese einmal konkret definieren. Portugiesisch etwa ist auch die Amtssprache in Brasilien. Allerdings gibt es im Brasilianischen viele Unterschiede sowohl in der Umgangssprache als auch bei Fachbegriffen.

Daher ist es durchaus relevant, ob als Ländercode pt_PT (Portugiesisch) oder pt_BR (Brasilianisches Portugiesisch) konfiguriert wird.

Ein Glossar

Fachbegriffe müssen stets einheitlich übersetzt werden. Produktnamen hingegen sollten möglicherweise nicht in die Zielsprache übersetzt werden. In allen Fällen hilft die Glossarfunktion von DeepL dabei, die korrekte Terminologie zu erhalten.

Für TYPO3 gibt es das kostenlose Add-On "deepltranslate-glossary", dessen Verwendung wir dringend empfehlen. Damit können Glossar-Einträge als Datensatz in TYPO3 angelegt und mit DeepL synchronisiert werden. Bei allen Übersetzungen wird der Glossar dann von DeepL herangezogen.

Euer Kunde sollte daher im Vorfeld einen Glossar mit den wichtigsten Fachbegriffen und anderen bevorzugten Übersetzungen erstellen. Diese werden dann zu Beginn von ihm selbst oder von euch in TYPO3 eingepflegt. Weitere Glossar-Einträge können jederzeit ergänzt werden, wenn sie sich im Laufe der Arbeiten als notwendig herausstellen.

Der Ablauf im Projekt

Auch das konkrete Vorgehen bei der Übersetzung sowie Zuständigkeiten werden eingangs mit dem Kunden besprochen: Welche Seiten sollen zuerst übersetzt werden? Wer ist verantwortlich für rechtlich relevante Texte wie die Datenschutzerklärung?

DeepL Pro API

Mit der kostenlosen Version der DeepL API steht euch nur ein Glossar zur Verfügung. Das mag ausreichend klingen, wenn ihr nur mit einer neuen Zielsprache plant – ist es aber nicht:

  • Jede TYPO3-Instanz erhält eine abweichende Glossar-ID (Production, Staging, Entwicklungs- oder Abnahme­umgebungen, …)
  • Jede Sprache in TYPO3 sorgt für weitere Glossare bei DeepL. Bei Englisch, Deutsch und Spanisch erhaltet ihr bereits vier Glossare (en => es, en => de, de => es, es => de), weil übersetzte Inhalte auch als Ausgangssprache für weitere Übersetzungen gewählt werden können

Je nach Textumfang eurer Website könnt ihr im kostenlosen Plan zudem das monatliche Zeichenlimit erreichen. Vor allem beim erstmaligen Aufbau der neuen Sprachversion mit einigen Testläufen.

Ihr benötigt also einen Pro-Account für die API. Die anfallenden Kosten müsst ihr mit dem Kunden klären: www.deepl.com/en/pro-api#api-pricing

Automatisierte Synchronisierung bei späteren Änderungen?

Diese Frage muss nicht schon zu Beginn beantwortet werden, aber euer Kunde sollte um diese Möglichkeit wissen: Was soll mit den Übersetzungen passieren, wenn die Inhalte in der Originalsprache aktualisiert werden?

Mit dem kostenpflichtigen Add-On "deepltranslate-auto-renew" können bestehende Übersetzungen in dem Fall automatisch mit DeepL aktualisiert werden.
Zu beachten ist allerdings: Alle vom Redakteur vorgenommenen Korrekturen und Verbesserungen in der Übersetzung werden dann natürlich überschrieben.

Daher ist im Projekt abzuwägen, ob ein Auto-Renew der richtige Weg ist. Es ist technisch möglich, die Option je Zielsprache ein- oder auszuschalten.

Was muss alles übersetzt werden?

Übersetzungen beschränken sich nicht auf redaktionell pflegbare Seiten und Inhalte. Auch das Website-Template muss (in TYPO3 primär mit XLIFF-Sprachdateien) mehrsprachig eingerichtet sein: Buttons und Texte der Suchfunktion sind dort ebenso hinterlegt wie Hinweistexte für die Barriere­freiheit.
Dazu kommen weitere Komponenten, die berücksichtigt werden müssen.

Wir haben eine Checkliste für neue Sprachen erstellt, die in etwa diese Punkte umfasst:

  • Konfiguration der Sprache in der Site Configuration
  • Solr Core für den Suchindex der neuen Sprache
  • Übersetzung der Frontend-Labels in der locallang.xlf
  • ggf. weitere Übersetzungen in TypoScript (_LOCAL_LANG)
  • Übersetzungen der Kontaktformulare und der damit versandten E-Mails
  • Übersetzung des Cookie Consents
  • Anlegen der gewünschten Begriffe im DeepL-Glossar

Besonders zu beachten sind rechtlich relevante Inhalte, vom Cookie Consent bis zur Datenschutz­erklärung. Im besten Fall kann die Rechts­abteilung des Kunden oder eine beauftragte Fachkraft eine vollständige, rechtssichere Übersetzung liefern. Oder sie nimmt eine eingehende Prüfung einer automatisiert übersetzten Fassung vor.

Der technische Part

Dieser Abschnitt richtet sich an TYPO3-Integratoren und Entwickler. Die Projektleiter unter euch dürfen ohne schlechtes Gewissen zum nächsten Abschnitt springen.

DeepL-Extensions

Zur Installation bereit stehen die folgenden TYPO3-Extensions:

ExtensionVerfügbarkeitFunktion
deepltranslate-corekostenlosÜbersetzung mit DeepL im TYPO3 Backend
deepltranslate-glossarykostenlosPflege von Glossareinträgen für einheitliche Terminologie
deepltranslate-assetskostenpflichtigErweiterung für Datei-Metadaten in der Dateiliste
deepltranslate-masskostenpflichtigMassenübersetzung ganzer Seitenbäume oder Teilbereiche
deepltranslate-auto-renewkostenpflichtigAutomatische erneute Übersetzung von Inhalten, wenn der Inhalt in der Originalsprache geändert wird

Installation und Konfiguration

Die Dokumentation beschreibt die notwendigen Schritte: https://docs.typo3.org/p/web-vision/deepltranslate-core/5.1/en-us/Administration/Configuration/Index.html

Notwendige TCA-Konfiguration

Wie in der Dokumentation beschrieben, unterstützt die DeepL-Extension Backend-Felder vom Typ "Input" und "Text" (inkl. Richtext). Voraussetzung ist, dass die Felder mit 'l10n_mode' => 'prefixLangTitle' konfiguriert sind. Unter Umständen müsst ihr dies mittels TCA Overrides anpassen. Andernfalls werden die Inhalte des Feldes nicht übersetzt.

$GLOBALS['TCA']['tx_news_domain_model_news']['columns']['teaser']['l10n_mode'] = 'prefixLangTitle';
$GLOBALS['TCA']['tx_news_domain_model_news']['columns']['bodytext']['l10n_mode'] = 'prefixLangTitle';
$GLOBALS['TCA']['tx_news_domain_model_news']['columns']['description']['l10n_mode'] = 'prefixLangTitle';
$GLOBALS['TCA']['tx_news_domain_model_news']['columns']['alternative_title']['l10n_mode'] = 'prefixLangTitle';

Sprachmenü

Eigentlich logisch: Solange die übersetzte Version der Website noch im Aufbau ist, möchten wir sie wahrscheinlich nicht schon Besuchern zeigen. Wie immer ihr eure Navigation in TYPO3 also erstellt – sorgt dafür, dass die neue Sprache dort nicht schon auswählbar wird.

"hreflang"-Tags

Das kann übersehen werden: TYPO3 ergänzt automatisch Tags im Quelltext, wenn es für eine Seite Versionen in anderer Sprache gibt.

<link rel="alternate" hreflang="en-US" href="https://www.example.org/about-us/">
<link rel="alternate" hreflang="de-de" href="https://www.example.org/de/ueber-uns/">
<link rel="alternate" hreflang="x-default" href="https://www.example.org/about-us/">

Mit diesen Tags merkt Google, wenn ihr Übersetzungen anlegt. Und dann tauchen die übersetzten Seiten schneller in Suchergebnissen auf, als ihr "noindex" sagen könnt.

Wir haben daher einen kleinen Event Listener im Sitepackage ergänzt, mit dem die gewünschten Sprachen aus der Generierung der hreflang-Tags herausgenommen werden.

<?php

declare(strict_types=1);

namespace Mfd\MySitepackage\EventListener;

use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Frontend\Event\ModifyHrefLangTagsEvent;

/**
 * Filter/remove certain languages from the generated hreflang tags.
 * Used to prevent publishing page translations while a new frontend language is still set up.
 */
#[AsEventListener(
    identifier: 'my-sitepackage/hreflang-tag-filter',
    after: 'typo3-seo/hreflangGenerator',
)]
final readonly class HrefLangTagFilter
{
    public function __invoke(ModifyHrefLangTagsEvent $event): void
    {
        $defaultLanguages = [
            'en-US',
            'x-default'
        ];
        $disabledLanguages = [
            'de-DE',
            'fr-FR'
        ];

        $hrefLangs = $event->getHrefLangs();

        // Remove unwanted language codes from array:
        $filteredHrefLangs = array_diff_key($hrefLangs, array_flip($disabledLanguages));

        // Check if the remaining languages are only the default.
        // In that case, no hreflang tags should be rendered.
        $remainingKeys = array_keys($filteredHrefLangs);
        sort($remainingKeys);
        sort($defaultLanguages);
        if ($remainingKeys === $defaultLanguages) {
            $filteredHrefLangs = [];
        }

        $event->setHrefLangs($filteredHrefLangs);
    }
}

Sobald die neue Sprachversion der Website vorbereitet ist, wird die Sprache wieder aus dem Event Listener entfernt. Macht dies also zu einem Teil eurer Checkliste.

Die redaktionelle Übersetzung mittels DeepL

Zeige größere Version von: DeepL-Glossar in TYPO3 mit Einträgen in Deutsch, Portugiesisch und Chinesisch. Die Seite zeigt Übersetzungen für Begriffe in mehreren Sprachen an, inklusive Bearbeitungs- und Synchronisationsoptionen.
Im Header hervorgehoben ist der neue Button "Glossare synchronisieren". Unten ist zu sehen, wie Glossareinträge gepflegt werden: Wie bei allen anderen Datensätzen in TYPO3 werden einfach die gewünschten Übersetzungen für den Begriff angelegt.

Anlegen eines Glossars

Legt im TYPO3-Seitenbaum eine Seite vom Typ "Ordner" an. Im Reiter "Verhalten" der Seiten­eigenschaften stellt ihr "Enthält Plug-In" auf "DeepL Glossary".

Ihr erhaltet dadurch einen neuen Reiter, in dem ihr den Stand der Synchronisierung mit DeepL einsehen könnt.

Der Ordner zeigt nun in der Page- und Listenansicht den neuen Button "Glossare synchronisieren". Damit könnt ihr eure Glossar-Einträge aus TYPO3 nach DeepL exportieren. Die Synchronisation muss nach jeder Änderung oder Erweiterung der Glossar­einträge erneut angestoßen werden.

Lesson learned: Verwendet einen einzelnen Ordner für die Glossareinträge einer Website (teilt eure Terminologie also nicht in Unterordner wie "Technische Begriffe" und "Produktnamen" auf). Die DeepL API unterstützt aktuell keine multiplen Glossare für die gleiche Quell- und Zielsprache.

Zeige größere Version von: Page-Modul im TYPO3 Backend: Im oberen Bereich ist das neue "Mit DeepL übersetzen"-Auswahlfeld hervorgehoben. Darunter sieht man die Inhaltsspalten der aktuellen Seite sowie die darauf befindlichen Inhaltselemente.
Das "Mit DeepL übersetzen"-Auswahlfeld ermöglicht die schnelle, automatische Übersetzung des Seitentitels und weiterer Seiteneigenschaften. Es muss nur die gewünschte Zielsprache ausgewählt werden.

Wie funktioniert die automatische Übersetzung im TYPO3-Backend?

Das ist der einfache Teil: Seiten und Inhalte können per Knopfdruck übersetzt werden. Und das ganze geht auch noch sehr schnell. Sowohl die neuen TYPO3-Datensätze als auch die übersetzten Texte stehen in wenigen Sekunden zur Verfügung.

Im ersten Schritt übersetzt ihr die eigentliche Seite mit DeepL. Das betrifft natürlich den Seitentitel, aber auch das URL-Segment sowie die verschiedenen Metadaten (Beschreibung, Social Media) werden automatisch übersetzt.

Zeige größere Version von: Page-Modul im TYPO3 Backend: Gezeigt wird das zweispaltige Modul zum Sprachvergleich (Grundsprache + Übersetzung). Es gibt in der rechten Inhaltsspalte noch keine Übersetzungen. Der Button zum Start des Übersetzungsprozesses ist hervorgehoben.
Die Seite selbst ist übersetzt, nun können die Inhalte folgen. Der markierte Button öffnet ein Modal, mit dem der Übersetzungsprozess gestartet werden kann.
Zeige größere Version von: Page-Modul im TYPO3 Backend: Das Modal für den Übersetzungsprozess ist geöffnet, der Rest des Backends mit einem dunklen Overlay ausgeblendet.
Im ersten Schritt können wir im Modal den gewünschten Übersetzungsmodus auswählen: manuell (es werden Datensätze in der Zielsprache angelegt, die Inhalte müssen anschließend vom Redakteur übersetzt werden) sowie zwei DeepL-Modi, bei denen die Inhalte automatisch übersetzt werden.

Im zweiten Schritt könnt ihr die Inhalte der Seite übersetzen. Als Übersetzungsmodus kann zwischen zwei DeepL-Varianten gewählt werden, die aktuell allerdings identisch in Handhabung und Ergebnis sind. Die Entwickler der DeepL-Extensions werden dies entweder korrigieren oder die überflüssige Option entfernen.

Was sollte man zuerst übersetzen?

Wir empfehlen, mit einigen ausgewählten Seiten zu starten, die für den Kunden besonders wichtig sind. Sie sollten möglichst auch einige Glossarbegriffe enthalten. Lasst die erstellten Übersetzungen anschließend durch eure Redakteure prüfen. Wenn notwendig, erweitert den Glossar. Dann folgt der nächste Seitenbereich.

Durch das schrittweise Übersetzen von Inhalten können Probleme frühzeitig erkannt und auf den weiteren Seiten vermieden werden.

News (und andere Plugin-Datensätze) werden zentral in einem Ordner gespeichert und dann auf verschiedenen Seiten referenziert. Es ist sinnvoll, diese Inhalte recht frühzeitig in ihren Ordnern zu übersetzen. Dann sind die Übersetzungen bereits vorhanden, wenn ihr die dazugehörigen Seiten übersetzt. Sonst zeigt das ins Deutsche übersetzte News-Plugin im Frontend noch die englischen Originale an.

Häufige Fallstricke und Einschränkungen

Die Zielsprache hat andere Textlängen

Deutsch ist eine Sprache, in der Begriffe schnell eine gewisse Länge erreichen. Dabei meine ich nicht die kuriosen Extremfälle wie die ehemalige "Grundstücks­verkehrs­genehmigungs­zuständigkeits­übertragungs­verordnung".
Schon die Übersetzung von "product portfolio" (7 + 9 Zeichen) zu "Produktportfolio" (16 Zeichen ohne Leerzeichen) kann zu anderen Zeilen­umbrüchen führen. Oder zu Layout­problemen in schmalen Teaser-Boxen.

Dann ist es gut, wenn man im Textfeld die Möglichkeit hat, Soft-Hyphens für bedingte Umbrüche zu setzen. Das ist allerdings ein redaktioneller Eingriff, der bei der abschließenden Prüfung manuell erfolgt.

Kurzer Text bietet weniger Kontext

Je kürzer der Originaltext, desto mehr Interpretations­spielraum hat DeepL für seine Übersetzung. Viele Begriffe lassen sich auf verschiedene Weise übersetzen und können dann ganz unterschiedliche Bedeutungen haben. Hier kommt es schnell zu fehlerhaften bis komischen Ergebnissen.

  • Aus "Quality policy", also einer Richtlinie, wird "Qualitätspolitik"
  • Aus "Light is the new green", einem Hinweis auf umweltfreundliche Leichtfahrzeug­räder, wird "Licht ist das neue Grün"
  • Aus "[Client name] on the road" (gemeint: "unterwegs"/"auf Achse"/"auf Reisen") wird "[Kundenname] auf der Straße"

DeepL neigt also dazu, Begriffe eher wortwörtlich als sinngemäß zu übersetzen.

Synchronisierung des Glossars

Hin und wieder kommt es vor, dass die Verwendung des DeepL-Buttons keine Übersetzungen zurückliefert. Die Datensätze der Zielsprache enthalten dann den unveränderten Originaltext.

In dem Fall half es bislang immer, den "Glossare synchronisieren"-Button zu betätigen und die Übersetzung danach erneut anzustoßen.

Kurzfristige Überarbeitung bestehender Inhalte

Die Praxis zeigt: Egal, wie aktiv euer Kunde an seiner Website arbeitet – bei der Arbeit an Übersetzungen wird er immer Inhalte finden, die veraltet sind oder überarbeitet werden sollten. Dies kann den weiteren Übersetzungsvorgang zumindest verzögern.

Fazit: How Deep(L) Is Your Love?

Ich selbst nutze DeepL seit Jahren beruflich wie privat, vor allem für Übersetzungen von Deutsch zu Englisch. Und doch verwende ich nie das erste zurück­gelieferte Ergebnis. Ich passe Sätze und Formulierungen nach meinem Empfinden an, korrigiere vereinzelt auch Grammatik. Teilweise lasse ich Übersetzungen von Grammarly erneut prüfen.
Fun Fact: Genau so ist auch die englische Version dieses Artikels entstanden.

Sind automatisierte Übersetzungen in TYPO3 also empfehlenswert? Ja, ganz klar. Es ist eine deutliche Arbeits­erleichterung und Zeitersparnis.
Muss es dabei die vollautomatische Lösung sein oder sollten Redakteure jede Übersetzung abschließend prüfen? Diese Frage müsst ihr im Projekt gemeinsam mit eurem Kunden beantworten.

Sebastian Klein

Steht irgendwo zwischen Front- und Backend. Mit einem Faible für Usability und Dokumentation. Immer auf der Suche nach Good Practices.

Weitere Beiträge dieses Autors

Blog als RSS-Feed abonnieren

Verwandte Beiträge

  • Nutzung unserer Extension ai_filemetadata mit dem AI-Hosting von Mittwald
  • Wir schicken beuser_iprange in die Rente
  • Relaunch der Website unseres Kunden Maxion Wheels auf Basis von TYPO3 12.4 LTS
  • EXT:oauth2 für TYPO3 v11 und PHP 8 verfügbar

Wir freuen uns, wenn Ihr diesen Beitrag teilt.


Kommentare

Keine Kommentare gefunden.

Kommentar verfassen.

Ich bin darauf hingewiesen worden, dass die Verarbeitung meiner Daten auf freiwilliger Basis erfolgt und dass ich mein Einverständnis ohne für mich nachteilige Folgen verweigern bzw. jederzeit gegenüber der Marketing Factory Digital GmbH per Post (Erkrather Straße 401, D-40231 Düsseldorf) oder E-Mail (info@marketing-factory.de) widerrufen kann.

Mir ist bekannt, dass die oben angegebenen Daten so lange gespeichert werden, wie ich die Kontaktaufnahme durch Marketing Factory wünsche. Nach meinem Widerruf werden meine Daten gelöscht. Eine weitergehende Speicherung kann im Einzelfall erfolgen, wenn dies gesetzlich vorgeschrieben ist.

  • Datenschutzerklärung
  • Impressum

© Marketing Factory Digital GmbH

Bildnachweise