(PHP 4, PHP 5, PHP 7)
setlocale — Establecer la información del localismo
$category
, string $locale
[, string $...
] ) : string$category
, array $locale
) : stringEstablece la información del localismo.
category
category es una constante con nombre que especifica la
categoría de las funciones afectadas por el localismo:
LC_ALL para establecer todas las siguientes
LC_COLLATE para la comparación de cadenas; véase
strcoll()
LC_CTYPE para la clasificación y conversión de caracteres, por
ejemplo strtoupper()
LC_MONETARY para localeconv()
LC_NUMERIC para el separador decimal (véase también
localeconv())
LC_TIME para el formato de fecha y hora con
strftime()
LC_MESSAGES para las respuestas del sistema (disponible si PHP fue compilado con
libintl)
locale
Si locale es NULL o el string vacío
"", los nombres de los localismos se establecerán a partir de los
valores de las variables de entorno con los mismos nombres que las categorías
anteriores, o desde "LANG".
Si locale es "0",
el localismo no se ve afectado, solamente devuelve la configuración actual.
Si locale es un array o le siguen parámetros
adicionales, cada elemento del array o parámetro se intenta establecer como
nuevo localismo hasta que se tenga éxito. Esto es útil si un localismo se conoce
con diferentes nombres en diferentes sistemas, o para proporcionar un respaldo
para un localismo posiblemente no disponible.
...(String opcional o array de parámetros para probarlos como localismos hasta que se tenga éxito.)
Nota:
En Windows, setlocale(LC_ALL, '') establece los nombres del localismo desde la configuración regional o del lenguaje del sistema (accesible por medio del Panel de Control).
Devuelve el nuevo localismo actual o FALSE si la funcionalidad del localismo no
está implementada en la plataforma, el localismo especificado no existe, o
el nombre de la categoría no es válido.
Un nombre de categoría no válido también produce un mensaje de advertencia. Se pueden encontrar los nombres de las categorías/localismos en la » RFC 1766 y en la » ISO 639. Diferentes sistemas tienen diferentes nomenclaturas para los localismos.
Nota:
El valor de retorno de setlocale() depende del sistema donde se está ejecutando PHP. Devuelve exactamente lo que la función setlocale del sistema devuelve.
| Versión | Descripción |
|---|---|
| 7.0.0 |
Se ha eliminado el soporte para el parámetro category pasado
como string. En esta versión, solamente se pueden utilizar las constantes LC_*.
|
| 5.3.0 |
Está función ahora emite un aviso E_DEPRECATED si se pasa un string
al parámetro category en lugar de una de las
constantes LC_*.
|
Ejemplo #1 Ejemplos de setlocale()
<?php
/* Establecer el localismo al holandés */
setlocale(LC_ALL, 'nl_NL');
/* Muestra: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));
/* Probar diferentes nombres posibles de localismos para el alemán a partir de PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "El localismo preferido para el alemán en este sistema es '$loc_de'";
?>
Ejemplo #2 Ejemplos para Windows de setlocale()
<?php
/* Establecer el localismo al holandés */
setlocale(LC_ALL, 'nld_nld');
/* Muestra: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));
/* Probar diferentes nombres posibles de localismos para el alemán a partir de PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "El localismo preferido para el alemán en este sistema es '$loc_de'";
?>
La información del localismo se mantiene por proceso, no por hilo. Si se está ejecutanto PHP en una API de servidor multihilo como IIS, HHVM o Apache sobre Windows, se pueden experimentar cambios repentinos en la configuración local mientras se esté ejecutando un script, aunque el propio script nunca llame a setlocale(). Esto ocurre debido a que otros scripts ejecutándose en diferentes hilos de un mismo proceso, al mismo tiempo, cambian el localismo de todo el proceso con setlocale().
Los usuarios de Windows encontrarán información útil sobre
string de locale en el sitio web
MSDN de Microsoft. Los string de los idiomas soportados se pueden encontrar
en la
» documentación de string de idiomas
y los string de paises/regiones en la
» documentación de string de países/regiones.