Legt regionale (locale) Einstellungen fest

# setlocale

(PHP 4, PHP 5, PHP 7, PHP 8)

setlocale — Legt regionale (locale) Einstellungen fest

### Beschreibung

function setlocale(int `$category`, ?string `$locales`, string `...$rest`): string|false

Alternative Signatur (benannte Parameter werden nicht unterstützt):

function setlocale(int `$category`, array `$locale_array`): string|false

Legt regionale (locale) Einstellungen fest.

Warnung

Die Locale-Informationen wirken auf den Prozess, nicht auf den Thread. Sofern Sie PHP auf einer Multithreading-Server-API ausführen, kann es zur Laufzeit des Skripts zu plötzlichen Änderungen der Locale-Einstellungen kommen, auch wenn das Skript selbst keinen setlocale()-Aufruf durchführt. Dies passiert, da andere Skripte in verschiedenen Threads desselben Prozesses zur selben Zeit prozessweit die Locale-Einstellungen mittels setlocale() ändern. Unter Windows wird die Locale-Einstellung von PHP 7.0.5 an per Thread verwaltet.

### Parameter-Liste

`category`

  `category` ist eine benannte Konstante (oder Zeichenkette), die die Kategorie der von den regionalen 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 ctype_alpha()
  - `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)
`locales`

  Ist `locales` der leere String `""` oder `null`, dann werden die Namen der Locales von den Werten der Umgebungsvariablen gleichen Namens wie die obigen Kategorien oder von "LANG" bestimmt.

  Ist `locales` `"0"`, sind keine regionalen Einstellungen betroffen, und es wird die aktuelle Einstellung zurückgegeben.

  Folgen auf `locales` weitere Parameter, dann wird für jeden Parameter versucht, ihn als neuen 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.

`rest`

  Optionale String-Parameter, die als Locale-Einstellung durchprobiert werden, bis zum Erfolg.

`locale_array`

  Für jedes Array-Element wird versucht, es als neue Locale zu setzen, bis zum Erfolg. Dies ist nützlich, wenn eine Locale unter verschiedenen Namen auf verschiedenen Systemen bekannt ist oder als Fallback für eine möglicherweise nicht verfügbare Locale.

> Hinweis:

> Unter Windows setzt setlocale(LC_ALL, '') die Locale-Namen aus den Regional/Sprache Einstellungen des Systems; (erreichbar über die Systemsteuerung).

### Rückgabewerte

Gibt die neue Locale-Einstellung zurück oder `false`, 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.

### Changelog

Version | Beschreibung
--- | ---
8.5.0 | Die Übergabe des Integerwertes `0` als `locales`-Argument wird nicht mehr unterstützt und löst nun eine TypeError-Ausnahme aus.

### Beispiele

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 */
    $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(): aktuellen Wert auslesen

    <?php
    /* Aktuellen Wert auslesen */
    $current = setlocale(LC_ALL, null);

    echo "Aktuelle Locale '$current'";
    ?>

Beispiel #3 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 */
    $loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
    echo "Preferred locale for german on this system is '$loc_de'";
    ?>

### Anmerkungen

Tipp

Windowsuser finden weitergehende Informationen über `locales`-Strings auf Microsofts MSDN-Webseite. Unterstützte Language-Strings können Sie in der » Language Strings Dokumentation, Country/Region-Strings in der » Country/Region Strings Dokumentation nachschlagen.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open