(PHP 4, PHP 5)
setlocale — Setzt Locale Informationen
$category
, string $locale
[, string $...
] )$category
, array $locale
)Setzt Locale-Informationen.
category
category
ist eine benannte Konstante (oder
Zeichenkette), die die Kategorie der von den lokalen Einstellungen (Locales)
betroffenen Funktionen angibt:
LC_ALL
für alle folgenden Werte
LC_COLLATE
für String-Vergleiche, siehe
strcoll()
LC_CTYPE
für Klassifizierung und Umwandlung von
Zeichen, zum Beispiel strtoupper()
LC_MONETARY
für localeconv()
LC_NUMERIC
für das Dezimal-Trennzeichen (Siehe
auch localeconv())
LC_TIME
für Zeit- und Datums-Formatierungen
mittels strftime()
LC_MESSAGES
für Systemmeldungen (verfügbar, wenn
PHP mit liblintl kompiliert wurde)
locale
Ist locale
NULL
oder der leere String
"", werden die Namen der Locales von den Werten
der Umgebungsvariablen gleichen Namens wie die obigen
Kategorien oder von "LANG" bestimmt.
Ist locale
"0", sind keine
lokalen Einstellungen betroffen, und es wird die aktuelle Einstellung
zurückgegeben.
Ist locale
ein Array oder folgen weitere Parameter,
dann wird jedes Arrayelement bzw. jeder Parameter versucht als neuer
Locale-Wert zu setzen, bis es gelingt. Dies ist dann sinnvoll, wenn eine
Locale-Angabe auf unterschiedlichen Systemen unter verschiedenen Namen
bekannt ist oder auch als Fallback für eine eventuell nicht vorhandene
Locale-Angabe.
...
(Optionale string oder array Parameter die als Locale-Einstellungen bis zum Erfolg verwendet werden.)
Hinweis:
Unter Windows setzt setlocale(LC_ALL, '') die Locale Namen aus den Regional/Sprache Einstellungen des Systems; (erreichbar über die Systemsteuerung).
Gibt die neue Locale-Einstellung oder FALSE
zurück, wenn die
Locale-Funktionalität von Ihrer Plattform nicht unterstützt wird, die
angegebene Locale nicht existiert oder der Kategorie-Name ungültig ist.
Ein ungültiger Kategorie-Name erzeugt zusätzlich eine Warnmeldung. Kategorien- und Locale-Namen können sie unter » RFC 1766 und » ISO 639 nachlesen. Unterschiedliche Systeme verwenden differierende Namensräume für die Locales.
Hinweis:
Der Rückgabewert von setlocale() ist von dem System abhängig, auf dem PHP läuft. Es wird genau das zurückgegeben, was die Systemfunktion setlocale zurückgibt.
Version | Beschreibung |
---|---|
5.3.0 |
Die Funktion wirft nun eine E_DEPRECATED -Notice,
wenn ein String statt einer der LC_*-Konstanten an
den Parameter category übergeben wird.
|
4.3.0 | Die Übergabe mehrerer Locales wurde möglich. |
4.2.0 |
Die Übergabe von category als Zeichenkette wird
als deprecated gekennzeichnet, verwenden Sie daher immer
die obigen Konstanten. Das Übergeben der Konstanten als String (also in
Anführungszeichen eingeschlossen) führt zu einer Warnmeldung.
|
Beispiel #1 setlocale()-Beispiele
<?php
/* locale auf Holländisch setzen */
setlocale (LC_ALL, 'nl_NL');
/* Ausgabe: vrijdag 22 december 1978 */
echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978));
/* versuche verschiedene mögliche locale Namen für Deutsch ab PHP 4.3.0 */
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>
Beispiel #2 setlocale()-Beispiele for Windows
<?php
/* locale auf Holländisch setzen */
setlocale(LC_ALL, 'nld_nld');
/* Ausgabe: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));
/* versuche verschiedene mögliche locale Namen für Deutsch ab PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>
Die Locale-Informationen wirken auf den Prozess, nicht auf den Thread. Sofern Sie PHP mit einer Multithreaded Server API wie IIS oder Apache unter Windows einsetzen, rechnen Sie mit unerwarteten Änderungen der Locale-Einstellungen zur Laufzeit des Skripts, auch wenn das Skript selbst keinen setlocale()-Aufruf durchführt. Dies passiert, da andere Skripte in verschiedenen Threads des selben Prozesses zur selben Zeit prozessweit die Locale-Einstellungen mittels setlocale() ändern.
Windowsuser finden weitergehende Informationen über
locale
-Strings auf Microsofts
MSDN-Webseite. Unterstützte Language-Strings können Sie
unter » http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx,
Country/Region-Strings unter » http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.90%29.aspx
nachschlagen.