Letzte Änderung:
TYPO3 bringt die Mehrsprachigkeit sowohl für das Backend als auch für das Frontend schon im Kernsystem mit.
Die Übersetzungen beschränken sich nicht nur auf die Textinhalte sondern umfassen auch Meta-Angaben wie Seitentitel und -beschreibung, Alternativtexte für Bilder oder spezielle Keywords für PDF-Dokumente. Es können auch unterschiedliche Ressourcen wie Bilder und Videos in Abhängigkeit der Sprache hinterlegt werden. TYPO3 verlinkt die Seiten immer automatisch so, dass Webseitenbesucher über ein Sprachsymbol (oder Navigationstext) auf die jeweils korrespondierende Seite der Alternativsprache kommt.
Aufgrund des ausgereiften TYPO3 Berechtigungssystems ist es möglich, Redakteuren - wie z.B. einem Übersetzungsbüro - nur Änderungsrechte auf die Inhalte einer bestimmten Sprache zu geben.
Die Installation zusätzlicher Extensions ist nicht erforderlich. Die Einrichtung ist generell recht einfach. Die Benutzung für Redakteure ebenfalls.
Im Folgenden erhalten Sie eine Anleitung dafür, wie man Inhalte von TYPO3 Wesbites in eine andere Sprache übersetzt. Die Sprache muss dafür im Backend unter Sites angelegt werden (s.u.). Für die Darstellung im Frontend (Sprachauswahl) muss in diesem Fall diese Sprache ggf. im Template berücksichtigt werden. Davon unabhängig können Sie aber auf jeden Fall schon Übersetzungen im Backend anlegen.
TYPO3 füllt bei einer Übersetzung jedes Feld mit den Werten der Defaultsprache und setzt ein "[Translate-to-XY]:" davor. So erkennt man als Redakteur schnell, was noch überstezt werden muss.
Unter dem Feld wird immer der Inhalt in der Defaultsprache angezeigt und bei Änderungen entsprechend markiert (nur im connected mode), damit der Übersetzer sofort erkennt, was zu ändern ist.
Legen Sie eine Übersetzung für die Seite an, in dem Sie die Seite im Seitenbaum auswählen, in der Ansicht "Languages" auswählen und dann unter "Create a new translation of this page" die gewünschte Sprache anklicken.
Als erstes müssen die Seiteneigenschaften (Titel, Beschriebung, URL-Seitenname usw.).
Denken Sie daran, das URL Segemnt zu aktualisieren (Doppelpfeil-Button), damit die URL einen vernünftigen Titel (ohne "translate-to-english") enthält.
Im Backend wird für die Seite nun eine eigen Spalte angezeigt. Klicken Sie hier nun auf "Translate" um den Übersetzungsvorgang zu starten.
HINWEIS: Auf diesen Button klicken Sie auch immer dann, wenn Sie in der Defaultsprache ein neues Inhaltselement angelegt haben und im "connected-mode" arbeiten. Für dieses Element wird dann eine Überstezung angelegt.
Es gibt zwei Arten, in TYPO3 Inhalte zu übersetzen:
Jetzt können Sie auswählen, welche Elemente übersetzt werden sollen. In der Regel sind dies alle.
Beginnen Sie nun, mit der Übersetzung der einzelnen Contentelemente, die standardmäßig deaktiviert sind.
Wenn Sie wissen wollen, welche Seiten auf Ihrer Website noch nicht in einer bestimmten Sprache übersetzt wurden, gehen Sie auf das Info-Modul, wählen im Seitenbaum einen Startpunkt, gehen dann auf Localization Overview, wählen "Infinite" und dann die gewünschte Sprache:
In eher seltenen Fällen möchte man eine Seite nicht in der Default- sondern nur in einer anderen Sprache veröffentlichen. In dem Fall muss trotzdem eine Default-Seite angelegt und diese dann in den Seiteneigenschaften versteckt werden:
TYPO3 bietet für das Backend eine Reihe von Sprachen, die über Maintenance -> Manage Language Packs aktiviert und dann in den User Settings unter Language ausgewählt werden können.
Wem die Auswahl von weit über 40 Sprachen nicht ausreicht, der kann eigene Sprachdateien installieren. Dies kann auch als Ableitung einer Haupsprache geschehen. So kann man z.B. Schwyzerdütsch als eine von Deutsch abgeleitete Sprache verwenden und muss dann nur die anderslautenden Wörter übersetzen. Alle anderen Wörter werden aus der deutschen Übersetzung geholt. Gibt es auch hier keine Übersetzung für eine bestimmte ID wird - wie bei allen Sprachen - auf die Defaultsprache englisch zurückgegriffen.
Für die Übersetzung in die jeweiligen Sprachen nutzt der TYPO3 Core das cloudbasierte Übersetzungplattform "Crowdin". Diese kann auch von Extensionentwickler verwendet werden, was u.a. den Vorteil hat, dass für TYPO3 verwendete Spezial-Begriffe bereits Übersetzungen vorliegen ("Translation memory").
Im folgenden Video erfahren Sie, wie Sie die Sprache Ihres TYPO3-Backends ändern können:
Die Frontsend-Sprachen (also für Webseitenbesucher) werden im Backend über das Site-Modul von TYPO3 definiert.
Dabei werden folgende Parameter festgelegt:
Das hört sich alles kompliziert an. In den meisten Fällen sind diese Felder intuitiv ausfüllbar bzw. durch Auswahl-Optionen einfach einstellbar.
Eine Fallbackstrategie definiert das Verhalten bei nicht übersetzten Seiten UND Contentelementen. Dabei gibt es drei mögliche Einstellungen:
strict
Es werden nur die übersetzten Inhalte angezeigt. Ist eine Seite gar nicht übersetzt, wird ein 404-Fehler ausgegeben. Nicht übersetzte Contentelemente werden ignoriert. Eine übersetzte Seite OHNE übersetzte Inhaltselemente führt zu einer leeren Seite.
fallback
Die Inhalte einer definierten Fallback- bzw. der Default-Sprache werden ausgegeben. Existiert die Sprachseite nicht, wird der komplette Inhalt dieser Seite ausgegeben. Im "connected mode" werden außerdem alle nicht übersetzten Inhaltselemente in der Fallback-Sprache ausgegeben. So kann man z.B. Sprachseiten für die Schweiz oder Österreich anlegen und nur bestimmte, regional abhängige Inhalte auf das Land zugeschnitten anbieten. Alle anderen Inhalte beliben gleich und müssen nicht extra "übersetzt" werden.
free
In diesem Modus werden nur die übersetzten Contentelemente angezeigt. Nur wenn eine Seite gar nícht existiert oder keine Inhalte hat, werden die Inhalte der Fallbacksprache angezeigt. In der Praxis wird meistens englisch als Fallbacksprache verwendet. Wenn man dann für andere Seiten (noch) keine übersetzten Inhalte hat, bekommt der User zumindest Inhalte auf englisch zu sehen. Da man für den Fall der "connexted mode"-Übersetzung kein Sprachwirrwarr (unterschiedliche Sprachen, wenn nicht alle Contentelemente übersetzt) haben möchte, kommt die Option "fallback" hier nicht infrage.
Die Standardsprache in TYPO3 ist englisch. Nur in dieser Sprache wird das Core-System standardmäßig ausgeliefert. Weitere Sprachen lassen sich dann relativ einfach installieren.
Technisch wird die Mehrsprachigkeit in Form von Konfigurationsdateien im XLIFF-Format(XML Localisation Interchange File Format) umgesetzt. Hierfür stellt jede Extension in seinem Unterverzeichnis Resources/Private/Language entsprechende Dateien für jede Sprache zur Verfügung.
Besipielsweise beinhaltet die Datei locallang.xlf unserer WCM-Extension u.a. folgende Einträge:
<trans-unit id="cookiefreigabe.intro">
<source>We are using cookies on this web page. Some of them are required to run this page, some are useful to provide you the best web experience.</source>
</trans-unit>
<trans-unit id="cookiefreigabe.header2">
<source>Privacy settings</source>
</trans-unit>
<trans-unit id="cookiefreigabe.intro2">
<source>Here is an overview of all cookies use</source>
</trans-unit>
Der korrespondierende Code-Ausschnitt für die deutsche Version in der Datei de_locallang.xlf sieht so aus:
<trans-unit id="cookiefreigabe.header">
<source>We are using cookies.</source>
<target>Wir verwenden Cookies</target>
</trans-unit>
<trans-unit id="cookiefreigabe.intro">
<source>We are using cookies on this web page. Some of them are required to run this page, some are useful to provide you the best web experience.</source>
<target>Wir nutzen Cookies auf unserer Website. Einige sind notwendig, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.</target>
</trans-unit>
<trans-unit id="cookiefreigabe.header2">
<source>Privacy settings</source>
<target>Datenschutzeinstellungen</target>
</trans-unit>
Über das Tag <trans-unit id ="..."> wird eine eindeutige Zuordnung zu dem zu übersetzenden Element hergestellt.
Das in der deutschen Datei verwendete Tag <source> ist redundant und technisch nicht erforderlich. Es wird aber trotzdem meistens mitkopiert, damit die Übersetzung einfacher ist.
Die übersetzen Seiten werden als eigene Datensätze in der Tabelle pages gespeichert.
Mit Hilfe der Tabellenfelder sys_language_uid (Sprache), l10n_parent (Page-ID), l10n_source, l10n_state wird ein Bezug zur Defaultsprache hergestellt.
Analog gibt es für Content Elemente (Tabelle tt_content) die Felder sys_language_uid, l18n_parent (Content-ID des zugehörigen Default-Elementes, die "18" ist hier kein Fehler), l10n_source, l10n_state.