Provided by: manpages-es_1.55-10_all bug

NOMBRE

       setlocale - establece la localización en curso

SINOPSIS

       #include <locale.h>

       char *setlocale(int categoria, const char * localizacion);

DESCRIPCIÓN

       La  función  setlocale()  se  emplea  para establecer o saber la localización en curso del
       programa.

       Si localizacion no es NULL, la localización actual del  programa  se  modifica  según  los
       argumentos.   El  argumento  categoria  determina qué partes de la localización actual del
       programa se deben modificar.

       LC_ALL para todas las partes de la localización.

       LC_COLLATE
              para la concordancia en expresiones regulares  (determina  el  significado  de  las
              expresiones de rango y de las clases de equivalencia) y la ordenación de cadenas.

       LC_CTYPE
              para  la  concordancia en expresiones regulares, la clasificación de caracteres, la
              conversión, la comparación sensible  a  mayúsculas/minúsculas  y  la  funciones  de
              caracteres anchos.

       LC_MESSAGES
              para los mensajes del lenguaje natural que son localizables.

       LC_MONETARY
              para el formato monetario.

       LC_NUMERIC
              para  el  formato  de  números  (tal  como  el carácter separador de decimales o el
              separador de miles).

       LC_TIME
              para los formatos de tiempo y fecha.

       El argumento localización es un puntero  a  una  cadena  de  caracteres  que  contiene  la
       configuración necesaria de categoría.  Tal cadena es bien una constante bien conocida como
       "C" o "es_ES" (ver más abajo) o una cadena opaca devuelta por otra llamada a setlocale.

       Si localización es "", cada parte de la colalización que debe ser modificada se  configura
       según  las variables de entorno. Los detalles son dependientes de la implementación.  Para
       glibc, primero se inspecciona la variable de  entorno  LC_ALL  (sin  tener  en  cuenta  la
       categoría),  a  continuación  la  variable de entorno con el mismo nombre que la categoría
       (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME)  y,  finalmente,  la
       variable  de entorno LANG.  Se usa la primera variable de entorno que exista.  Si su valor
       no es una especificación de localización válida, no se cambia la localización y  setlocale
       devuelve NULL.

       La  localización "C" o "POSIX" es una localización portable. Su parte LC_CTYPE corresponde
       al conjunto de caracteres ASCII de 7 bits.

       Típicamente,     un     nombre     de      localización      es      de      la      forma
       lenguaje[_territorio][.conjuntocaract][@modificador],  donde  lenguaje  es  un  código  de
       lenguaje ISO 639, territorio es un código  de  país  ISO  3166,  y  conjuntocaract  es  un
       conjunto  de  caracteres o un identificador de codificación como ISO-8859-1 o UTF-8.  Para
       una lista de todas las localizaciones soportadas, pruebe "locale -a", cf. locale(1).

       Si localización es NULL, sólo se consulta la localización actual, no se modifica.

       Al  comienzo  del  programa  principal,  se  selecciona  por   omisión   la   localización
       transportable  "C".  Un programa puede hacerse transportable para todas las localizaciones
       llamando a setlocale(LC_ALL, "" ) tras el  inicio  del  programa,  empleando  los  valores
       devueltos   por  una  llamada  a  localeconv()  para  la  información  dependiente  de  la
       localización,  utilizando  las  funciones  de  caracteres  anchos  y  multibyte  para   el
       procesamiento  de  texto si MB_CUR_MAX > 1, y utilizando strcoll(), wcscoll() o strxfrm(),
       wcsxfrm() para comparar cadenas de caracteres.

VALOR DEVUELTO

       Una llamada  con  éxito  a  setlocale()  devuelve  una  cadena  de  caracteres  opaca  que
       corresponde a la localización establecida. Esta cadena puede ser alojada en almacenamiento
       estático.  La cadena devuelta es tal que una llamada subsiguiente con  esta  cadena  y  su
       categoría  asociada,  restaurará  esa  parte  de  la  localización del proceso. La función
       devuelve NULL si la petición no puede ser satisfecha.

CONFORME A

       C ANSI, POSIX.1

OBSERVACIONES

       Linux (esto es, GNU libc) admite las localizaciones transportables "C" y "POSIX".  En  los
       viejos  tiempos  solía  haber  soporte  para  el  código europeo ISO Latin-1, localización
       "ISO-8859-1" (e.g. en libc-4.5.21  y  libc-4.6.27),  y  la  localización  cirílica  (rusa)
       "KOI-8"  (más  precisamente,  "koi-8r")  (e.g.  en  libc-4.6.27),  de  forma que tener una
       variable de ambiente LC_CTYPE=ISO-8859-1 ya era suficiente para que  isprint()  devolviera
       la  respuesta  correcta.  Hoy día los europeos (y americanos) no angloparlantes tienen que
       trabajar un poquito más (N.T.: ¡qué raro! :-) y debe instalarse  los  ficheros  reales  de
       localizaciones para su idioma.

VÉASE TAMBIÉN

       locale(1),  localedef(1), strcoll(3), isalpha(3), localeconv(3), strftime(3), charsets(4),
       locale(7)