setlocale
En esta página
setlocale
Establece la información de configuración local
Descripción#
setlocale(int $category, string $locales, string ...$rest): string
```php
Firma alternativa (no soportada con argumentos nombrados):
```php
setlocale(int $category, array $locale_array): string
Establece la información de configuración local.
[!WARNING] 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 usandosetlocale. 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_ALLpara todas las categorías siguientes -
LC_COLLATEpara comparación de strings, verstrcoll -
LC_CTYPEpara clasificación y conversión de caracteres, por ejemploctype_alpha -
LC_MONETARYparalocaleconv -
LC_NUMERICpara el separador decimal (Ver tambiénlocaleconv) -
LC_TIMEpara el formato de fecha y hora constrftime -
LC_MESSAGESpara respuestas del sistema (disponible si PHP fue compilado conlibintl)
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.
[!NOTE] 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.
[!NOTE] El valor de retorno de
setlocaledepende del sistema en el que se está ejecutando PHP. Devuelve exactamente lo que devuelve la funciónsetlocaledel 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#
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'";
?>
Recuperar la configuración actual de setlocale
<?php
/* Recuperar la configuración actual */
$current = setlocale(LC_ALL, null);
echo "Configuración local actual '$current'";
?>
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#
[!TIP] Los usuarios de Windows encontrarán información útil sobre las cadenas
localesen 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.