setlocale

(PHP 4, PHP 5, PHP 7)

setlocaleEstablecer la información del localismo

Descripción

setlocale ( int $category , string $locale [, string $... ] ) : string
setlocale ( int $category , array $locale ) : string

Establece la información del localismo.

Parámetros

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).

Valores devueltos

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.

Historial de cambios

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_*.

Ejemplos

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(00012221978));

/* 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(00012221978));

/* 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'";
?>

Notas

Advertencia

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().

Sugerencia

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.