Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Mi 20.06.2007 12:47
Titel [php]setlocale() |
|
|
Tach. Also, über setlocale() lässt sich php über die entsprechende locale funktion des Betriebssystems - lokalsieren - . Jetzt gibts aber ein wirrwar an language codes, einmal die nach ISO 639 (bspw. "ger") und nach RFC 1766 ("de-DE")-
Die PHP-Doku selbst probiert verschiedene Codes, um alle Plattformen zu befriedigen, bspw. 'de_DE@euro', 'de_DE', 'de', 'ge' ( man beachte den Unterstrich ) .
Gibts irgendwo ne Übersicht, welches OS welche Namensräume unterstützt?
// ich hab noch rausgefunden, dass windows kürzel nach ISO 3166 unterstützt.
Zuletzt bearbeitet von am Mi 20.06.2007 13:02, insgesamt 1-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Mi 20.06.2007 15:09
Titel
|
|
|
Zitat: | einmal die nach ISO 639 (bspw. "ger") |
Die sind aber obsolete.
ISO 639 Language Codes
RFC 1766
Zitat: | // ich hab noch rausgefunden, dass windows kürzel nach ISO 3166 unterstützt. |
M$ Language Strings
M$ Country- and Region-Strings
setlocale() ist von dem System abhängig auf dem PHP läuft. Es wird die Systemfunktion setlocale aufgerufen.
Manpage (GNU) http://www.die.net/doc/linux/man/man3/setlocale.3.html
Manpage (BSD) http://www.hmug.org/man/3/setlocale.php
UNIX Specification http://www.opengroup.org/onlinepubs/007908799/xbd/locale.html
Wo du jetzt eine Liste mit allen möglichen Locale-Angaben findest, weiß ich auch nicht. Auf einem POSIX-System ist das abhängig von der C-Library. Unter Windows hab ich keine Ahnung, wie das läuft...
Dazu fällt mir noch ein, daß Solaris manchmal scheinbar aus der Reihe tanzt. Bei LC_TIME ist mir das aufgefallen. Obwohl der C Standard eindeutig festlegt, daß die Woche mit Montag beginnt, ist es bei Solaris meist ein Sonntag.
Aber wie auch immer: Wo genau ist das Problem?
Wenn ich setlocale() einsetze, dann übergebe ich immer mehrere Möglichkeiten:
$loc = setlocale( LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu', 'de', 'ge' );
So funktioniert das dann eigentlich immer ganz gut.
Aber man könnte natürlich vorher auch einfach das System nach der korrekten locale fragen.
Zumindest auf einem POSIX-System (also Linux/Unix/OS X/...) sollte dir folgendes die verfügbaren Locales ausgeben:
Code: | <?php system( 'locale -a' ); ?> |
Was man da allerdings auf Windows machen kann, weiß ich nicht.
Mit Windows und dessen Systemfunktionen weiß ich nicht viel...
Schätzungsweise wäre die msvcrt.dll für solche Spielchen nötig.
|
|
|
|
|
Anzeige
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Mi 20.06.2007 17:26
Titel
|
|
|
Danke! Ich schreib nen Wrapper um die Date und Time-Funktionen mit ner OOP-Api ähnlich Date() in Javascript. Daher brauch ich ein Universalkürzel, das plattformabhängig die korrekten Parameter setzt.
Da das international funktionieren soll, brauch ich nicht nur die Beispiele aus der PHP-Doku, sondern eben alle möglichen Kürzel für alle möglichen Länder. Deshalb
|
|
|
|
|
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|