Sprachdateien aendern
Translations :: Contao Developer Documentation
Übersetzungsdateien können entweder in XLIFF (.xlf) oder PHP arrays (.php) implementiert werden.
Alle Übersetzungen müssen im Verzeichnis /contao/languages abgelegt werden.
Sprachdateien
Section titled “Sprachdateien”Die Sprachdateien liegen - je nach Domain (s.u.) - unter
Directoryvendor
Directorycontao
Directorycore-bundle
Directorycontao
Directorylanguages
Directoryde
- default.php
- default.xlf
- modules.php
- exception.php
- …
Directorynews-bundle
Directorycontao
Directorylanguages
Directoryde
- default.php
- modules.php
Directorycalendar-bundle
Directorycontao
Directorylanguages
Directoryde
- default.php
- modules.php
Struktur
Section titled “Struktur”Contao-Übersetzungen sind wie folgt strukturiert:
Language - Domain - Category + Key - Label + Description
- language: für jede Sprache wird ein Verzeichnis angelegt (
/de,/en,/fr, …) - domain: für jede Domain muss eine individuelle Datei angelegt werden (z.B.
default,modules,exception…)
- domains enthalten die Übersetzungsdefinitionen
- Jede translation ID besteht aus einer category (z.B.
MSC,ERR, …) und einem key - Übersetzungen werden in Contao im
$GLOBALS['TL_LANG']Array gespeichert
Bezeichnungen ändern:
Section titled “Bezeichnungen ändern:”z.B. Weiterlesen-Link
Das kann auf zwei Arten gemacht werden: entweder in einer .php-Datei oder in einer .xlf-Datei
<?php
$GLOBALS['TL_LANG']['MSC']['more'] = 'Details ansehen';<?xml version="1.0" ?><xliff version="1.1"> <file> <body> <trans-unit id="MSC.more"> <source>Read more …</source> <target>Details ansehen</target> </trans-unit> </body> </file></xliff>Aus irgendeinem Grund ist es best practice, maximal die default.xlf als .xlf-Datei anzulegen. Das lohnt sich dann, wenn man sehr viele Sprachdateien anpassen muss (per Transifex). Ansonsten ist das etwas diffiziler, weil die Codestruktur passen muss. Besser also bei .php-Dateien bleiben.
z.B. im Newsteaser:
<?php
$GLOBALS['TL_LANG']['tl_news']['teaser_legend'] = 'Veranstaltungsdatum und Teaser';$GLOBALS['TL_LANG']['tl_news']['subheadline'] = ['Veranstaltungsdatum', 'Hier können Sie das Datum bzw. den Zeitraum der Veranstaltung eingeben'];Für die Subheadline werden Label und Description benötigt!
Backend-Module umbenennen:
Section titled “Backend-Module umbenennen:”modules ist die Domain für die Labels und Descriptions der Backend-Module, die Datei, in der die Übersetzungen angelegt werden, muss daher modules.php heißen.
<?php/* Termine statt Nachrichten */$GLOBALS['TL_LANG']['MOD']['news'] = array('Termine', '');