Regina Schaukrug: (Deutsche) Monate ausgeben/ locales-all installieren oder locales generieren

Beitrag lesen

<?php
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Gewählte Locale-Einstellung: '$loc_de'";
?>

Wenn das scheinbar nichts (genauer: false) zurück gibt, dann fehlen schlicht und einfach Sprachbibliotheken auf dem System. PHP nutzt dafür keine eigenen. (Zitat aus dem Handbuch: "Es ist durchaus möglich, dass Ihre C-Bibliothek nicht alle angegebenen Formatierungszeichen erkennt.")

Um das zu beheben sollte durch einen Administrator auf dem Server das Paket locales-all installiert werden. (eg. ~> sudo apt install locales-all).

Das sind allerdings rund 127MB. Wie auf einem Server einzelne Locales generiert werden können beschreibt Thomas Krenn. Dort finden sich auch weitere Informationen.

Danach ergibt:

<?php
echo setlocale (LC_ALL, 'de_DE.UTF-8') . "\n";
echo strftime ('%B', time() ) . "\n";

wie folgt:

de_DE
März

Falls Du den Monat in ISO-8859-15 oder Windows-1252-Kodierung ausgeben möchtest:

setlocale (LC_ALL, 'de_DE@euro');