Tech 10. Sep. 2007

TYPO3: Locale Konfiguration (config.locale_all)

Häufig besteht das Problem, dass lokalisierte Ausgaben auf dem Entwicklungssystem anders erscheinen als auf dem Live-System. Aus vielen Foreneinträgen bekannt ist das Problem insbesondere im Zusammenhang mit tt_news, weil diese Wochentage und Monatsnamen per PHP in das Frontend rausschreibt.

In PHP wird dafür die Funktion “setlocale” verwendet, welche die TYPO3 Konstante “config.locale_all” übergeben bekommt. Hier ist es wichtig den Hintergrund zu wissen. Die Konstante wird einfach an die PHP Funktion weitergegeben und diese gibt anhand des Strings eine Locale Einstellung zurück bzw. setzt diese global. Die Locales kommen dabei aber nicht aus PHP selbst, sondern direkt vom Betriebssystem. Ist dort keine Locale Einstellung mit dem gleichen Namen (Identifier String) vorhanden, wird von PHP eine andere verwendet. Gewöhnlich wird das dann eine englische sein.

Somit muss die Konstante “config.locale_all” einen Wert enthalten, welche auf dem Betriebssystem als Locale verfügbar ist. Man kann sich alle verfügbaren Locale Einstellungen über das Linux Kommando “locale” anzeigen lassen. Fazit: Die Einstellung “config.locale_all” ist Betriebssystemabhängig und kann sich dehalb auch bei gleiche TYPO3 und PHP Konfiguration auf verschiedenen Systeme unterscheiden.

Häufig besteht das Problem, dass lokalisierte Ausgaben auf dem Entwicklungssystem anders erscheinen als auf dem Live-System. Aus vielen Foreneinträgen bekannt ist das Problem insbesondere im Zusammenhang mit tt_news, weil diese Wochentage und Monatsnamen per PHP in das Frontend rausschreibt.

In PHP wird dafür die Funktion “setlocale” verwendet, welche die TYPO3 Konstante “config.locale_all” übergeben bekommt. Hier ist es wichtig den Hintergrund zu wissen. Die Konstante wird einfach an die PHP Funktion weitergegeben und diese gibt anhand des Strings eine Locale Einstellung zurück bzw. setzt diese global. Die Locales kommen dabei aber nicht aus PHP selbst, sondern direkt vom Betriebssystem. Ist dort keine Locale Einstellung mit dem gleichen Namen (Identifier String) vorhanden, wird von PHP eine andere verwendet. Gewöhnlich wird das dann eine englische sein.

Somit muss die Konstante “config.locale_all” einen Wert enthalten, welche auf dem Betriebssystem als Locale verfügbar ist. Man kann sich alle verfügbaren Locale Einstellungen über das Linux Kommando “locale” anzeigen lassen. Fazit: Die Einstellung “config.locale_all” ist Betriebssystemabhängig und kann sich dehalb auch bei gleiche TYPO3 und PHP Konfiguration auf verschiedenen Systeme unterscheiden.