(PHP 4, PHP 5)
setlocale — Establecer la información de la configuración regional
$category
   , string $locale
   [, string $...
  ] )$category
   , array $locale
   )Establece la información de la configuración regional.
category
       category es una constante con nombre que especifica la
       categoría de las funciones afectadas por la configuración regional:
       
LC_ALL para todos los siguientes
         
        LC_COLLATE para la comparación de strings, ver
          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 (ver 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 configuración regional 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",
       la configuración regional no se ve afectada, sólo la configuración actual se devuelve.
      
       Si locale es un array o es seguido por parámetros
       adicionales, entonces cada elemento del array o parámetro se intenta establecer como
       nueva configuración regional hasta que sea exitosa. Esto es útil si una configuración regional es conocida
       con diferentes nombres en diferentes sistemas o para proporcionar una recuperación
       para una configuración regional posiblemente no disponible. 
      
...(String opcional o array de parámetros para probarlas como configuración regional hasta el éxito.)
Nota:
En Windows, setlocale(LC_ALL, '') establece los nombres de la configuración regional desde lo fijado en las opciones regionales o de idioma (accesibles por medio del Panel de Control).
   Devuelve la nueva configuración regional actual o FALSE si la funcionalidad de configuración regional no
   está implementada en la plataforma, la configuración regional especificada 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. Nombres de categorías o de configuraciones regionales se pueden encontrar en » RFC 1766 y » ISO 639. Diferentes sistemas tienen diferentes nomenclaturas para las configuraciones regionales.
Nota:
El valor de retorno de setlocale() depende del sistema en que PHP se está ejecutando. Se devuelve exactamente lo que la función setlocale del sistema devuelve.
| Versión | Descripción | 
|---|---|
| 5.3.0 | Está función ahora lanza un aviso E_DEPRECATEDsi un string es pasado
        al parámetrocategoryen lugar de una de las
        constantes LC_*. | 
| 4.3.0 | Pasar múltiples configuraciones regionales se hizo posible. | 
| 4.2.0 | Pasar el categorycomo un string ahora es obsoleto,
        en su lugar, utilizar las constantes anteriores. Pasarlas como un string (dentro de
        comillas) resultará en un mensaje de advertencia. | 
Ejemplo #1 Ejemplos de setlocale()
<?php
/* Establecer configuración regional al holandés */
setlocale(LC_ALL, 'nl_NL');
/* Produce: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));
/* probar diferentes nombres posibles de configuración regional para el alemán a partir de PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>
Ejemplo #2 Ejemplos para Windows de setlocale()
<?php
/* Establecer configuración regional al 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 regional para el alemán a partir de PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>
La información de configuración regional se mantiene por proceso, no por hilo. Si se está corriendo PHP en un servidor de la API multihilo como IIS o Apache sobre Windows, se pueden experimentar cambios repentinos en la configuración regional mientras que un script se está ejecutando, 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 la configuración regional de todo el proceso con setlocale().
    Los usuarios de Windows encontrarán información útil sobre
    strings de locale en el sitio web 
    MSDN de Microsoft. Los strings de los idiomas soportados se pueden encontrar
    en la
    » documentoación de strings de idiomas
    y los strings de paises/regiones en la
    » documentación de strings de países/regiones.