Übersetzungen, die im Alltag halten
Die zweite Sprache ist in einer Stunde eingerichtet. Ob sie in zwei Jahren noch pflegbar ist, entscheidet eine Einstellung, die beim Anlegen wie eine Nebensache aussieht.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Der Übersetzungsmodus entscheidet über die nächsten Jahre
TYPO3 kennt zwei Wege, ein Inhaltselement in eine zweite Sprache zu bringen. Im verbundenen Modus bleibt die Übersetzung an den Ausgangsdatensatz gekoppelt: Wird dort umsortiert, sortiert sich die Übersetzung mit, und im Seitenmodul stehen beide Fassungen paarweise nebeneinander. Im freien Modus entsteht ein eigenständiger Datensatz in der Zielsprache, der eine eigene Reihenfolge und eigene Elemente haben darf und dafür die Verbindung verliert.
Beide Wege sind vertretbar, nur nicht gleichzeitig auf derselben Seite. Genau das passiert aber, weil beim Übersetzen zwei Schaltflächen nebeneinanderstehen und niemand erklärt hat, was der Unterschied ist. Danach verhält sich dieselbe Website je nach Seite anders, und niemand kann vorhersagen, welche Änderung in der Ausgangssprache in der Übersetzung ankommt.
Das kostet nicht sofort Geld, sondern schleichend Vertrauen. Neue Elemente in der Ausgangssprache tauchen in der Übersetzung nicht auf, wenn sie im freien Modus arbeitet. Gelöschte Ausgangselemente hinterlassen Übersetzungen ohne Gegenstück. Und wenn eine Übersetzung fehlt, erscheint je nach Einstellung entweder der Text der Ausgangssprache oder gar nichts, beides überrascht regelmäßig.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Der Weg zur zweiten Sprache, Schritt für Schritt
Die Reihenfolge ist wichtig, weil jeder Schritt eine Entscheidung des vorherigen voraussetzt. Wer bei den Inhalten anfängt, korrigiert später Adressen und Fallbacks an vielen Stellen gleichzeitig.
- 1
Sprache in der Site-Konfiguration anlegen
Im Backend unter Site Management, dort im Punkt Sites die betroffene Website öffnen und im Reiter für die Sprachen eine neue anlegen, oder direkt in der Datei config/sites/<identifier>/config.yaml. Nötig sind eine Kennung, ein Titel, die Locale und der Basis-Pfad oder die Domain, unter der die Sprache erreichbar sein soll. Aus der Locale leitet TYPO3 unter anderem die Sprachauszeichnung im Quelltext ab, deshalb lohnt hier eine Minute Sorgfalt.
Geschafft, wenn: Die neue Sprache erscheint in der Auswahl des Seitenmoduls, und die Adresse unter dem gewählten Pfad ist erreichbar.
- 2
Das Verhalten bei fehlender Übersetzung festlegen
Die Einstellung fallbackType kennt drei Werte. Mit fallback erscheinen nicht übersetzte Datensätze in der Sprache aus der Fallback-Kette, mit strict verschwinden sie stattdessen, und mit free werden ausschließlich Datensätze der jeweiligen Sprache geholt. Dazu gehört die Liste fallbacks, die angibt, in welcher Reihenfolge nachgesehen wird.
Geschafft, wenn: Eine bewusst unübersetzt gelassene Testseite verhält sich genau so, wie ihr es vorher besprochen habt.
- 3
Die Seiten übersetzen
Erst die Seite, dann die Inhalte. Ohne übersetzten Seitendatensatz gibt es die Seite in dieser Sprache nicht, und je nach Fallback endet der Aufruf bei der Ausgangssprache oder bei der Fehlerseite. Übersetzt werden dabei auch die Felder, die niemand sieht und die trotzdem zählen: Navigationstitel, Meta-Beschreibung und der Anteil der Adresse, der aus dem Titel gebildet wird.
Geschafft, wenn: Die Seite ist unter dem Sprachpfad erreichbar und trägt im Menü den übersetzten Titel.
- 4
Den Modus für die Inhalte wählen
Der Assistent im Seitenmodul bietet zwei Wege an. Übersetzen erzeugt gekoppelte Datensätze, die dem Original folgen, Kopieren erzeugt eigenständige. Diese Entscheidung fällt einmal pro Website und wird aufgeschrieben, nicht pro Seite neu getroffen.
Geschafft, wenn: In der Sprachansicht stehen die Elemente entweder paarweise nebeneinander oder eigenständig untereinander, und zwar überall gleich.
- 5
Die Inhalte übersetzen
Der Assistent legt für die gewählte Spalte die Gegenstücke an, danach wird Feld für Feld gearbeitet. Bilder brauchen eigene Bildunterschriften und alternative Texte, Verweise zeigen in der Zielsprache oft auf andere Ziele, und Beschriftungen, die aus dem Template kommen, werden hier gar nicht erfasst, sondern liegen in den Sprachdateien der Extension.
Geschafft, wenn: In der Sprachansicht bleibt keine Spalte übrig, in der Elemente ohne Gegenstück stehen.
- 6
Änderungen in der Ausgangssprache nachziehen
Im verbundenen Modus wandert eine Umsortierung mit, ein neues Element aber nicht: Es muss ausdrücklich übersetzt werden. Wird ein Ausgangselement gelöscht, bleibt die Übersetzung ohne Bezug zurück. Beides erkennt man in der Sprachansicht, wenn jemand regelmäßig hinsieht, und niemand erkennt es, wenn nur die Startseite kontrolliert wird.
Geschafft, wenn: Neue Inhalte erscheinen in beiden Sprachen an derselben Stelle, und es bleiben keine Elemente ohne Gegenstück stehen.
Fünf Festlegungen, ohne die die zweite Sprache nicht trägt
- 01 Die Sprache entsteht in der Site-Konfiguration mit Kennung, Locale und Basis-Pfad.
- 02 Der Fallback legt fest, was passiert, wenn eine Übersetzung fehlt.
- 03 Jede Seite braucht eine Übersetzung, sonst existiert sie in dieser Sprache nicht.
- 04 Die Elemente werden übersetzt oder kopiert, das ist verbunden gegenüber frei.
- 05 Die Sprachansicht im Seitenmodul zeigt beide Fassungen nebeneinander.
Was du danach über deine Sprachen sicher weißt
Der Aufwand liegt nicht im Anlegen der Sprache, sondern in drei Festlegungen: wie die Adressen aussehen, was bei fehlender Übersetzung passiert und ob die Fassungen gekoppelt bleiben. Sind die getroffen und dokumentiert, ist der Rest Routine.
Sprachen liegen als Datei vor
Kennung, Titel, Locale und Basis-Pfad stehen in der Site-Konfiguration und damit im Repository. Wer eine Sprache ergänzt, ergänzt eine Datei, die jemand vor dem Ausrollen lesen kann.
Verbunden oder frei bewusst wählen
Verbunden lohnt sich, wenn die Sprachen dieselbe Seite in einer anderen Sprache zeigen sollen. Frei lohnt sich, wenn die Zielsprache eigene Inhalte und eine eigene Reihenfolge braucht. Gemischt lohnt sich nie.
Die Fallback-Kette lesen können
Die Einstellung entscheidet, ob nicht übersetzte Inhalte in der Ausgangssprache erscheinen, ganz verschwinden oder nur die Datensätze der eigenen Sprache geholt werden. Wer sie kennt, muss über fehlende Texte nicht mehr rätseln.
Übersetzen und Kopieren unterscheiden
Übersetzen erzeugt einen Datensatz, der am Original hängt, Kopieren einen eigenständigen. Beide Schaltflächen liegen im Assistenten nebeneinander und heißen ähnlich, deshalb entscheidet in der Praxis oft der Zufall darüber, welchen Modus eine Website bekommt.
Verwaiste Übersetzungen erkennen
Wird ein Element in der Ausgangssprache gelöscht, bleibt die Übersetzung im verbundenen Modus ohne Bezugspunkt zurück. In der Sprachansicht des Seitenmoduls fällt so etwas auf, wenn jemand hinsieht.
Die Zusammenarbeit von außen regeln
Der Core bringt keinen Export der Inhalte für ein Übersetzungsbüro mit. Realistisch sind ein Backend-Zugang, der auf die Zielsprache beschränkt ist, oder eine geprüfte Erweiterung. Beides gehört vor dem ersten Auftrag entschieden.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Sprachen gehören in die Site-Konfiguration
Die Konfiguration liegt bei Composer-Installationen unter config/sites/<identifier>/config.yaml. Pro Sprache stehen dort unter anderem die Kennung, der Titel, die Locale, der Basis-Pfad und die Fallback-Einstellungen. Weil das eine Datei ist, wandert sie mit der Versionsverwaltung und lässt sich vor dem Ausrollen lesen, statt in der Datenbank der Live-Umgebung zu leben.
Wie die Adressen aussehen, entscheidet der Basis-Pfad. Üblich sind ein Präfix auf derselben Domain oder eine eigene Domain je Sprache. Beides funktioniert, aber die Entscheidung fällt am Anfang, weil sie später jede bereits geteilte Adresse betrifft und Weiterleitungen nach sich zieht.
Die Locale ist mehr als Kosmetik. Daraus leiten sich unter anderem die Sprachauszeichnung im Quelltext und die Formatierung von Datumsangaben ab. Der Bearbeitungsdialog im Backend bietet die gängigen Werte zur Auswahl an, was die Fehlerquelle von Hand geschriebener Kürzel deutlich verkleinert.
Verbunden oder frei, die Entscheidung dahinter
Im verbundenen Modus trägt die Übersetzung einen Verweis auf ihren Ausgangsdatensatz. Das hat zwei Folgen: Die Reihenfolge kommt aus der Ausgangssprache, und im Seitenmodul lassen sich beide Fassungen nebeneinander stellen, was die Arbeit deutlich erleichtert. Der Preis ist Unbeweglichkeit. Ein Element, das es nur in der Zielsprache geben soll, passt nicht in dieses Modell.
Im freien Modus entsteht ein eigenständiger Datensatz. Die Zielsprache darf eine andere Reihenfolge haben, Elemente weglassen und eigene ergänzen. Der Preis ist, dass niemand mehr automatisch sieht, was in der Ausgangssprache dazugekommen ist. Wer diesen Modus wählt, braucht einen organisatorischen Ersatz dafür, etwa eine feste Durchsicht bei jeder größeren Änderung.
Die Empfehlung fällt in den meisten Projekten auf den verbundenen Modus, weil die Zielsprache dieselbe Website in einer anderen Sprache sein soll. Der freie Modus lohnt dort, wo eine Landesgesellschaft eigene Inhalte pflegt und die Ausgangssprache nur der Startpunkt war. Was sich nicht lohnt, ist die Mischung, weil dann keine Regel mehr für die gesamte Website gilt.
Was der Fallback tatsächlich tut
Die drei Werte unterscheiden sich in genau einer Frage, nämlich was mit einem Datensatz passiert, den es in der angeforderten Sprache nicht gibt. Bei fallback wird auf eine andere Sprache aus der Kette zurückgegriffen, nicht übersetzte Datensätze bleiben also sichtbar. Bei strict greift dieselbe Kette, die nicht übersetzten Datensätze werden aber entfernt. Bei free werden ausschließlich Datensätze der jeweiligen Sprache geholt, es gibt also gar keine Überlagerung. Für Seiten gilt das zusätzlich eine Ebene höher: Existiert der Seitendatensatz in der Sprache nicht, hilft auch der beste Fallback für die Inhalte nichts mehr.
Für die Redaktion hat das sehr konkrete Folgen. Mit fallback sieht ein Besucher auf der englischen Seite deutsche Absätze, ohne dass irgendwo ein Hinweis erscheint. Mit strict fehlen sie ersatzlos, was bei einer Seite mit nur einem Element bedeutet, dass die Seite leer wirkt. Beides sollte eine bewusste Entscheidung sein und keine Überraschung im Betrieb.
Dazu kommt die Liste fallbacks, die die Reihenfolge der Ersatzsprachen angibt. Sie ist besonders dann relevant, wenn es mehr als zwei Sprachen gibt, etwa wenn österreichisches Deutsch mit dem Locale de-AT zuerst auf de-DE und erst danach auf Englisch zurückfallen soll. Findet sich in keiner der aufgeführten Sprachen etwas, endet der Aufruf bei der Fehlerbehandlung.
Der Ablauf im Seitenmodul
Die Sprachansicht des Seitenmoduls ist das Werkzeug für die tägliche Arbeit. Sie zeigt die Sprachen nebeneinander, macht sichtbar, welche Elemente ein Gegenstück haben, und bietet den Assistenten an, der fehlende Gegenstücke anlegt. Wer stattdessen einzeln über die Listenansicht arbeitet, verliert genau diesen Überblick.
Beim Anlegen bietet der Assistent zwei Wege an, und das ist der Moment, in dem die Entscheidung zwischen verbunden und frei tatsächlich fällt. Weil die Schaltflächen nebeneinanderliegen und beide plausibel klingen, lohnt es sich, die getroffene Wahl an einer Stelle festzuhalten, die neue Kollegen auch finden.
Nicht vergessen: Auch die Seiteneigenschaften haben eine Sprachfassung. Navigationstitel, Meta-Beschreibung und der aus dem Titel gebildete Adressbestandteil hängen dort, und sie sind der Teil, der in Suchergebnissen sichtbar wird. Elemente ohne Gegenstück fallen im Seitenmodul auf, eine unübersetzte Meta-Beschreibung nicht.
Die wiederkehrenden Ärgernisse
Ganz oben steht das Element, das nur in einer Sprache auftaucht. Im freien Modus ist das normal und beabsichtigt, im verbundenen Modus deutet es darauf hin, dass jemand ein Element direkt in der Zielsprache angelegt hat, statt zu übersetzen. Solche Datensätze verhalten sich danach anders als ihre Nachbarn, und die Ursache ist Wochen später kaum noch zu rekonstruieren.
Direkt danach kommen verwaiste Übersetzungen. Wird das Ausgangselement gelöscht, verliert die Übersetzung ihren Bezugspunkt. In der Ausgabe fällt das je nach Fallback gar nicht auf, im Backend hängt der Datensatz aber weiter herum und taucht bei jeder Durchsicht als Ungereimtheit auf.
Für die Zusammenarbeit mit einem Übersetzungsbüro gilt eine unbequeme Wahrheit: Der Core bringt keinen Export der Inhaltselemente mit. Was er mitbringt, sind Sprachdateien für die Beschriftungen aus Templates und Extensions. Für die redaktionellen Inhalte bleiben realistisch zwei Wege, nämlich ein Backend-Zugang, der über Benutzergruppen auf die Zielsprache und den passenden Zweig begrenzt ist, oder eine Erweiterung, die vor dem Einsatz im offiziellen Verzeichnis geprüft wurde.
Dazu passende Kurse
Weil Redaktion und Konfiguration hier ineinandergreifen, behandeln TYPO3-Kurse für mehrsprachige Websites beide Seiten gemeinsam.
Wie sicher bist du beim Thema wirklich?
Lesen fühlt sich schnell nach Können an. Ein kurzer Test zeigt dir, was davon schon sitzt und wo sich ein Kurs lohnt. Kostenlos, ohne Anmeldung, mit einer Erklärung zu jeder Antwort.
Wo du genau das übst
Sehr kompetente und freundliche Trainerin. Die Inhalte wurden gut strukturiert und anhand von anschaulichen Beispielen vermittelt.
Häufige Fragen
Kann ich den Übersetzungsmodus später wechseln?
Warum sieht ein Besucher deutschen Text auf der englischen Seite?
Muss ich wirklich jede Seite übersetzen?
Wie arbeite ich mit einem Übersetzungsbüro zusammen?
Deine Ansprechpartner
Du bist dir nicht sicher, welcher Kurs oder welches Level zu dir passt? Wir beraten dich persönlich und kostenlos.
Yves Hoppe
Weiterbildung & Beratung
Hilft dir, aus dem TYPO3-Programm den passenden Kurs für deinen Stand zu finden.
Norbert Jansen
Beratung & Inhouse
Plant mit dir Inhouse-Trainings, die auf eure Abläufe und euren Datenbestand zugeschnitten sind.
Zwei Sprachen, ein verlässlicher Ablauf
Bei cmt richtest du eine zweite Sprache von der Site-Konfiguration bis zum übersetzten Inhaltselement selbst ein und siehst dabei, welche Entscheidung du später nicht mehr zurücknehmen kannst.