ursus contionabundo: PJP, Linux und locale

Beitrag lesen

Hallo ursus,

number_format geht auch ohne locale.

Mit dem default (bei mir wohl "en_US.UTF-8").

Auf meinem PC muss ich als locale de-DE, nicht de_DE angeben, das ist unter Windows und Linux scheinbar unterschiedlich oder Du hast Dich vertippt.

Nein:

In der PHP Sandbox klappt setlocale weder mit de_DE noch de-DE, da scheint dieses locale gar nicht installiert.

Ja. Wenn man Internationalisierung zu nutzen wünscht, dann sollte man im Betriebssystem dafür auch Unterstützung haben. Folgende Linuxbefehle sind also wichtig:

locale -a;

… gibt unter Linux Auskunft was alles installiert und also verfügbar ist. Achte darauf diese auch mit dem Zusatz für die Kodierung zu verwenden, sonst wird das nichts. Also z.B. "de_DE.UTF-8", "de_DE.utf8" tut es in PHP dann auch, "de_de.utf8" aber nicht...

apt install locales-all;

… installiert alle locale.

locale -a | grep -iP '^de'

… zeigt die verfügbaren deutschen Versionen an. Bei mir (ohne Paket locales-all) sind das:

de_AT.utf8
de_BE.utf8
de_CH.utf8
de_DE.utf8
de_IT.utf8
de_LI.utf8
de_LU.utf8

auf dem Webserver:

de_AT
de_AT@euro
de_AT.utf8
de_BE
de_BE@euro
de_BE.utf8
de_CH
de_CH.utf8
de_DE
de_DE@euro
de_DE.utf8
de_IT
de_IT.utf8
de_LI.utf8
de_LU
de_LU@euro
de_LU.utf8

Auf einem professionell betriebenen Webserver sollten aus obigem Grund alle locale vorhanden sein. Falls nicht: Den Support terrorisieren.