Datumsformatierung mit f:format.date ViewHelper in unterschiedlichen Sprachen

Wenn du ein Datum mit dem f:format ViewHelper für verschiedene Sprachen formatieren möchtest sind einig Dinge zu beachten. Wörter wie Monate und Wochentage müssen in der richtigen Sprache ausgegeben werden aber auch das Datumsformat kann sich ändern.

Monate und Wochentage in der richtigen Sprache

Der f:format.date ViewHelper kann verschiedene Regeln für das Datumsformat verwenden. Standardmäßig werden die Regeln der php date() Funktion eingesetzt. Diese Funktion sollte nicht für Datumsangabe in verschiedenen Sprachen benutzt werden. Dazu eignet sich die strftime() Funktion besser.

Wie bringe ich f:format.date dazu strftime() zu verwenden?

Sobald man im f:format.date Viewhelper in der Eigenschaft format das % Zeichen eingibt wird die strftime() Funktion verwendet und das Datum kann in einer anderen Sprache verwendet werden.

So stellst du die richtige Sprache ein

Wichtig ist noch, dass im TypoScript bei config.locale_all der richtige Wert eingestellt ist. Dieser Wert kann je nach Server abweichend sein. Um herauszufinden welche Werte dein Server unterstützt gibst du einfach locale -a in der Konsole ein. Es wird eine Liste mit allen auf diesem Server verfügbaren Sprachen angezeigt.

Unterschiedliches Datumsformat für Fremdsprachen

In den verschiedenen Sprachen wird das Datum auch anders dargestellt. So wird zum Beispiel aus 18.2.2017 im US-amerikanischen Raum 2/18/2017. Für diese unterschiedlichen Formatierungen lagert man einfach den Wert der format Eigenschaft in die Sprachdatei aus.

Fluid Template

locallang.xlf

de.locallang.xlf

„ordinal suffix“ st, nd, rd oder th

Noch ein kleiner Tipp am Ende. Leider unterstützt strftime() keinen Anhang bei englischen Aufzählungen. Wenn man also auf der englischen Website das Datum im Format „February 18th 2017″ schreiben will muss man date() verwenden.

das könnte in der Sprachdatei dann so aussehen:

Ich habe hier gleich noch einen <sup> Tag eingebaut damit der Anhang hochgestellt wird.

Getestet mit
TYPO3 7.6.15

4 Kommentare

Füge deinen hinzu →

  1. Nur schade das man nicht us.locallang.xlf machen kann – wenn man USA, UK usw. trennen möchte / muss … So bleibt leider nur im Fluid mit ner condition v:page auf formatUS und formatUK usw. in der locallang zu zielen. Außer ihr habt n Tipp für mich 😉

  2. Uuups, wo bin ich denn da gelandet? 🙂

  3. Vielen Dank, der Beitrag hat mir sehr geholfen . Ich musste unseren RSS Feed auf der Webseite mit einem mehrsprachigen Datumsformat versehen. Das konnte ich Dank dieser Anleitung sehr schnell umsetzen.

Schreibe einen Kommentar zu Mark Watney Antworten abbrechen