.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified Sat Jul 24 17:28:34 1993 by Rik Faith .\" Modified Sun Jun 01 17:16:34 1997 by Jochen Hein .\" .\" Modified Thu Apr 25 00:43:19 2002 by Bruno Haible .\" Translated by Jun 17 1996 Diego Novillo .\" Translation revised on Thu May 7 15:49:23 CEST 1998 by Gerardo .\" Aburruzaga García .\" Traducción revisada por Miguel Pérez Ibars el 20-marzo-2005 .\" .TH LOCALE 7 "24 abril 1993" "Linux" "Manual del Programador de Linux" .SH NOMBRE locale \- Descripción del soporte para múltiples idiomas .SH SINOPSIS .nf .B #include .fi .SH DESCRIPCIÓN Una localización (locale) es un conjunto de reglas culturales e idiomáticas que abarcan aspectos tales como el idioma usado para mensajes, diferentes juegos de caracteres, convenios lexicográficos, etc. Un programa debe poder determinar su localización y actuar apropiadamente para poder ser transportado a diferentes culturas. .PP El fichero de cabecera .B declara los tipos de datos, funciones y macros utilizados en esta tarea. .PP Las funciones que se declaran son .B setlocale() para establecer la localización actual, y .B localeconv() para obtener información acerca de formatos numéricos. .PP Un programa puede necesitar varias categorías de información local, las cuales se determinan utilizando macros. Usando una de estas categorías como primer argumento para la función .B setlocale() es posible modificar uno de los siguientes atributos para que usen la localización adecuada: .TP .B LC_COLLATE Usado para cambiar el comportamiento de las funciones .B strcoll() y .BR strxfrm() , que comparan cadenas de caracteres usando el alfabeto local. Por ejemplo, el carácter Alemán ß (`ese aguda alemana') se alfabetiza como "ss". .TP .B LC_TYPE Modifica el comportamiento de las funciones que manipulan y clasifican caracteres, tales como .B isupper() y .BR toupper() , y las funciones de caracteres multi\-byte como .B mblen() o .BR wctomb() . .TP .B LC_MONETARY Modifica la información devuelta por .B localeconv() que describe el formato en que los números deben ser impresos, incluyendo detalles tales como el uso del punto o la coma decimal. Esta información es usada internamente por la función .BR strfmon() . .TP .B LC_MESSAGES Cambia el idioma en el que se muestran los mensajes, y cómo debe ser una respuesta afirmativa o negativa. La biblioteca de C de GNU contiene las funciones .BR gettext() , .BR ngettext() , y .B rpmatch() para facilitar el uso de esta información. La familia GNU de funciones gettext también obedecen a la variable de entorno .BR LANGUAGE . .TP .B LC_NUMERIC cambia la información empleada por las familias de funciones .B printf() y .B scanf() cuando se les informa de que utilicen las características locales. Esta información también puede obtenerse con la función .BR localeconv() . .TP .B LC_TIME Modifica el comportamiento de la función .B strftime() para mostrar la hora actual usando el formato local apropiado; por ejemplo, en casi toda Europa se utiliza el formato de 24 horas mientras que en Estados Unidos se emplea el de 12 horas. .TP .B LC_ALL Todas las categorías anteriores. .PP Si el segundo argumento de la función .B setlocale() es una cadena vacía, .BR """""" , se usa la localización predeterminada. Esta localización se determina de la siguiente forma: .IP 1. Si la variable de entorno .BR LC_ALL existe y tiene un valor no nulo, se usa este valor. .IP 2. Si existe una variable de entorno con el mismo nombre que una de las categorías, y su valor es no nulo, se usa ese valor para dicha categoría. .IP 3. Si la variable de entorno .BR LANG , existe y su valor no es vacío, se usa dicho valor. .PP Se puede obtener información sobre el formato numérico local usando la estructura .B struct lconv devuelta por la función .BR localeconv() . Dicha estructura tiene la siguiente declaración: .PP .nf struct lconv { /* Información numérica no monetaria. */ char *decimal_point; /* Caracter usado como punto decimal. */ char *thousands_sep; /* Separador de miles. */ /* Cada elemento indica el número de dígitos en cada grupo; los elementos con índices altos están hacia la izquierda. Un elemento con valor CHAR_MAX indica que a partir de esa posición no se deben agrupar mas dígitos. Un elemento con valor 0 indica que se debe usar el elemento anterior para todos los grupos hacia la izquierda. */ char *grouping; /* Información monetaria. */ /* Los primeros tres caracteres son el símbolo monetario según ISO 4217. El cuarto caracter es el separador. El quinto caracter es '\0'. */ char *int_curr_symbol; char *currency_symbol; /* Símbolo monetario local. */ char *mon_decimal_point; /* Caracter usado como punto decimal. */ char *mon_thousands_sep; /* Separador de miles. */ char *mon_grouping; /* Igual que el campo `grouping'(arriba) */ char *positive_sign; /* Signo para valores positivos. */ char *negative_sign; /* Signo para valores negativos. */ char int_frac_digits; /* Dígitos fraccionales internacionales. */ char frac_digits; /* Dígitos fraccionales locales. */ char p_cs_precedes; /* 1 si el símbolo monetario precede a un valor positivo, 0 si lo sucede. */ char p_sep_by_space; /* 1 si un espacio separa el símbolo monetario de un valor positivo. */ char n_cs_precedes; /* 1 si el símbolo monetario precede a un valor negativo, 0 si lo sucede. */ char n_sep_by_space; /* 1 si un espacio separa el símbolo monetario de un valor negativo. */ /* Posiciones de los signos positivo y negativo: 0 Paréntesis rodean a la cantidad y al símbolo monetario. 1 El signo precede a la cantidad y al símbolo monetario. 2 El signo sucede a la cantidad y al símbolo monetario. 3 El signo precede en forma inmediata al símbolo monetario. 4 El signo sucede en forma inmediata al símbolo monetario. */ char p_sign_posn; char n_sign_posn; }; .fi .SH "CONFORME A" .nf POSIX.1 .fi Las funciones gettext de GNU están especificadas en LI18NUX2000. .\".PP .\"Por el momento, las únicas localizaciones admitidas por Linux son .\".B """C""" .\", .\".B """POSIX""" .\"(idéntica a la localidad "C"), .\".B """ISO-8859-1""" .\"(europea latin-1) y .\".B """KOI-8""" .\"(rusa). .SH "VÉASE TAMBIÉN" .BR setlocale (3), .BR localeconv (3), .BR locale (1), .BR localedef (1), .BR nl_langinfo (3), .BR gettext (3), .BR ngettext (3), .BR rpmatch (3), .BR strfmon (3), .BR strcoll (3), .BR strxfrm (3), .BR strftime (3)