lokalisiertes time_ago_in_words für symfony

Eine Funktion für sog. -Pretty Dates- ist im symfony Date Helper ja enthalten. Diese ist aber standardmäßig auf Englisch lokalisiert. Will man die Ausgabe:
2 minutes ago
aber lieber zB auf Deutsch haben:
vor 2 Minuten
muss man das symfony erstmal beibringen.

Zunächst einmal muss man in der settings.yml die culture einstellen:

...
all:
.settings:
i18n:                   on 
default_culture:        de_DE        # Default user culture
...

Dann im apps/frontend/i18n Ordner ein Wörterbuch anlegen: messages.de_DE.xml.
In diesem file stehen die Übersetzungen.
Hier ist mal der für time_ago_in_words

<?xml version="1.0" ?>
<xliff version="1.0">
<file orginal="global" source-language="en_US" datatype="plaintext">
<body>
<trans-unit id="3">
<source>1 minute</source>
<target>1 Minute</target>
</trans-unit>
<trans-unit id="4">
<source>%minutes% minutes</source>
<target>%minutes% Minuten</target>
</trans-unit>
<trans-unit id="5">
<source>less than a minute</source>
<target>weniger als eine Minute</target>
</trans-unit>
<trans-unit id="6">
<source>less than 5 seconds</source>
<target>weniger als 5 Sekunden</target>
</trans-unit>
<trans-unit id="7">
<source>less than 10 seconds</source>
<target>weniger als 10 Sekunden</target>
</trans-unit>
<trans-unit id="8">
<source>less than 20 seconds</source>
<target>weniger als 20 Sekunden</target>
</trans-unit>
<trans-unit id="9">
<source>half a minute</source>
<target>eine halbe Minute</target>
</trans-unit>
<trans-unit id="10">
<source>%minutes% minutes</source>
<target>%minutes% Minuten</target>
</trans-unit>
<trans-unit id="11">
<source>%minutes% minutes</source>
<target>%minutes% Minuten</target>
</trans-unit>
<trans-unit id="12">
<source>about 1 hour</source>
<target>ca. 1 Stunde</target>
</trans-unit>
<trans-unit id="13">
<source>about %hours% hours</source>
<target>ca. %hours% Stunden</target>
</trans-unit>
<trans-unit id="14">
<source>1 day</source>
<target>1 Tag</target>
</trans-unit>
<trans-unit id="15">
<source>%days% days</source>
<target>%days% Tage</target>
</trans-unit>
<trans-unit id="16">
<source>about 1 month</source>
<target>ca. 1 Monat</target>
</trans-unit>
<trans-unit id="17">
<source>%months% months</source>
<target>%months% Monate</target>
</trans-unit>
<trans-unit id="18">
<source>about 1 year</source>
<target>ca. 1 Jahr</target>
</trans-unit>
<trans-unit id="19">
<source>over %years% years</source>
<target>über %years% Jahre</target>
</trans-unit>
</body>
</file>
</xliff>

Dann den Cache leeren und fertig.

Ach so, ganz wichtig:

If you want to see the application with the new default culture, you need to clear the domain cookies or restart your browser.

One Reply to “lokalisiertes time_ago_in_words für symfony”

Leave a Reply

Your email address will not be published. Required fields are marked *