(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 */
$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 */
$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.