Establece la información de configuración local

# setlocale

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

setlocale — Establece la información de configuración local

### Descripción

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

Firma alternativa (no soportada con argumentos nombrados):

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

Establece la información de configuración local.

Advertencia

La información de configuración local se mantiene por proceso, no por hilo. Si está ejecutando PHP en una API de servidor multihilo, puede experimentar cambios repentinos en la configuración local mientras se ejecuta un script, aunque el script nunca haya llamado a setlocale(). Esto ocurre debido a otros scripts que se ejecutan en diferentes hilos del mismo proceso al mismo tiempo, cambiando la configuración local del proceso usando setlocale(). En Windows, la información de configuración local se mantiene por hilo a partir de PHP 7.0.5.

### Parámetros

`category`

  `category` es una constante nombrada que especifica la categoría de las funciones afectadas por la configuración local:

  - `LC_ALL` para todas las categorías siguientes
  - `LC_COLLATE` para comparación de strings, ver strcoll()
  - `LC_CTYPE` para clasificación y conversión de caracteres, por ejemplo ctype_alpha()
  - `LC_MONETARY` para localeconv()
  - `LC_NUMERIC` para el separador decimal (Ver también localeconv())
  - `LC_TIME` para el formato de fecha y hora con strftime()
  - `LC_MESSAGES` para respuestas del sistema (disponible si PHP fue compilado con `libintl`)
`locales`

  Si `locales` es la cadena vacía `""` o es `null`, los nombres de configuración local se establecerán a partir de los valores de las variables de entorno con los mismos nombres que las categorías anteriores, o de "LANG".

  Si `locales` es `"0"`, la configuración local no se ve afectada, solo se devuelve la configuración actual.

  Si `locales` va seguido de parámetros adicionales, entonces cada parámetro se intenta establecer como nueva configuración local hasta que tenga éxito. Esto es útil si una configuración local es conocida bajo diferentes nombres en diferentes sistemas o para proporcionar una alternativa para una configuración local posiblemente no disponible.

`rest`

  Parámetros opcionales de string para intentar como configuraciones locales hasta que tenga éxito.

`locale_array`

  Cada elemento del array se intenta establecer como nueva configuración local hasta que tenga éxito. Esto es útil si una configuración local es conocida bajo diferentes nombres en diferentes sistemas o para proporcionar una alternativa para una configuración local posiblemente no disponible.

> Nota:

> En Windows, setlocale(LC_ALL, '') establece los nombres de configuración local a partir de la configuración regional/idioma del sistema (accesible a través del Panel de Control).

### Valores devueltos

Devuelve la nueva configuración local actual, o `false` si la funcionalidad de configuración local no está implementada en su plataforma, la configuración local especificada no existe o el nombre de la categoría no es válido.

Un nombre de categoría no válido también causa un mensaje de advertencia. Los nombres de categoría/configuración local se pueden encontrar en » RFC 1766 y » ISO 639. Diferentes sistemas tienen diferentes esquemas de nombres para configuraciones locales.

> Nota:

> El valor de retorno de setlocale() depende del sistema en el que se está ejecutando PHP. Devuelve exactamente lo que devuelve la función `setlocale` del sistema.

### Historial de cambios

Versión | Descripción
--- | ---
8.5.0 | Pasar un entero `0` como argumento `locales` ya no está soportado y ahora lanza un TypeError.

### Ejemplos

Ejemplo #1 Ejemplos de setlocale()

    <?php
    /* Establecer configuración local a holandés */
    setlocale(LC_ALL, 'nl_NL');

    /* Salida: vrijdag 22 december 1978 */
    echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

    /* probar diferentes nombres posibles de configuración local para alemán */
    $loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
    echo "Configuración local preferida para alemán en este sistema es '$loc_de'";
    ?>

Ejemplo #2 Recuperar la configuración actual de setlocale()

    <?php
    /* Recuperar la configuración actual */
    $current = setlocale(LC_ALL, null);

    echo "Configuración local actual '$current'";
    ?>

Ejemplo #3 Ejemplos de setlocale() para Windows

    <?php
    /* Establecer configuración local a holandés */
    setlocale(LC_ALL, 'nld_nld');

    /* Salida: vrijdag 22 december 1978 */
    echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

    /* probar diferentes nombres posibles de configuración local para alemán */
    $loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
    echo "Configuración local preferida para alemán en este sistema es '$loc_de'";
    ?>

### Notas

Sugerencia

Los usuarios de Windows encontrarán información útil sobre las cadenas `locales` en el sitio web de MSDN de Microsoft. Las cadenas de idioma soportadas se pueden encontrar en la » documentación de cadenas de idioma y las cadenas de país/región soportadas en la » documentación de cadenas de país/región.

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