In mehrsprachigen Websites ist es wichtig, Inhalte kontextgerecht in der jeweiligen Sprache darzustellen – insbesondere, wenn es um lokalisierten Content für internationale Zielgruppen geht. Ein oft übersehener Punkt dabei: das Datum. Wird z. B. der Wochentag ausgegeben, erscheint dieser in PHP standardmäßig auf Englisch – unabhängig von der Sprache der Seite. Das wirkt sich nicht nur auf die User Experience aus, sondern kann auch SEO-relevant sein.
In diesem Beitrag zeigen wir, wie man in Neos CMS (ab Version 8.3) mithilfe eines EEL-Helpers das Datum abhängig von der Sprachdimension korrekt lokalisiert ausgeben kann – ein wichtiger Baustein für technisch saubere, mehrsprachige Websites, wie sie auch bei datengetriebenen Performance-Marketing-Kampagnen erforderlich sind.
Problem: Falsche Sprache beim Datum
Selbst wenn eine Seite in deutscher Sprache geladen wird, liefert PHPs format() beim Formatstring 'l d.m.Y' (z. B. „Friday 02.08.2025“) englische Wochentage zurück. Eine Lokalisierung über Neos muss also bewusst erfolgen – das gilt besonders, wenn Inhalte für Paid Search, Retargeting oder organische Sichtbarkeit in verschiedenen Sprachräumen optimiert werden.
Lösung: Sprachabhängige Formatierung mit einem EEL-Helper
Folgender PHP-Helper prüft die aktuelle Sprache und formatiert das Datum entsprechend. Die Sprache wird direkt über einen Parameter übergeben – ideal für technische SEO und Custom Tracking-Setups in mehrsprachigen Umgebungen:
<?php
namespace Vendor\Package\Eel;
use Neos\Eel\ProtectedContextAwareInterface;
class DateHelper implements ProtectedContextAwareInterface
{
public function format(
$date,
string $format = 'd.m.Y',
string $timeZone = 'Europe/Berlin',
string $language = 'de' // Standardsprache
): string {
if (!$date instanceof \DateTimeInterface) {
return '';
}
$dateInUtc = new \DateTimeImmutable($date->format('Y-m-d H:i:s'), new \DateTimeZone('UTC'));
$converted = $dateInUtc->setTimezone(new \DateTimeZone($timeZone));
// Lokalisierung über locale
$formatter = new \IntlDateFormatter(
$language,
\IntlDateFormatter::FULL,
\IntlDateFormatter::NONE,
$timeZone,
\IntlDateFormatter::GREGORIAN,
$format
);
return $formatter->format($converted);
}
public function allowsCallOfMethod($methodName): bool
{
return true;
}
public function allowsProperty($propertyName): bool
{
return true;
}
}
Fusion-Integration: Aktuelle Sprache übergeben
Im Fusion-Template übergeben wir die Sprachdimension, die aktuell aktiv ist – z. B. so:
{DateHelper.format(eventDate.properties.startDateTime, 'EEEE dd.MM.yyyy', 'Europe/Berlin', props.languageCode)}
Wichtig: Damit props.languageCode verfügbar ist, muss es im Fusion-Context gesetzt werden:
languageCode = ${Array.first(q(site).get(0).context.dimensions.language)}
Damit greift Neos auf die aktuelle Content-Dimension „Sprache“ zu – z. B. de oder en.
Ergebnis
Bei deutscher Sprache: Freitag 02.08.2025
Bei englischer Sprache: Friday 02.08.2025
Fazit
Die richtige Spracheinstellung beim Datum ist ein kleines, aber wichtiges Detail in mehrsprachigen Webprojekten. Mit dem gezeigten Helper und einer dynamischen Sprachübergabe gelingt eine elegante und robuste Lösung – ganz ohne manuelle Umwege.
Solche Details sind essenziell, wenn eine Content-Strategie skalierbar auf mehrere Märkte ausgeweitet werden soll – etwa für Landingpages im Paid Advertising, lokalisierte Eventseiten oder Conversion-orientierte Microsites.
Du hast Fragen zur technischen Umsetzung in Neos CMS, zur Lokalisierung oder zur Integration in performance-orientierte Webprojekte? Schreib uns – wir helfen dir gern weiter.
