SUSE LINUX presenta un alto nivel de internacionalización y puede adaptarse a las necesidades locales de forma muy flexible. En otras palabras, la internacionalización (I18N) permite implementar extensiones locales (L10N). Las abreviaturas I18N y L10N sustituyen a los términos internationalization y localization y están formadas por la letra inicial y final de cada término así como por el número de caracteres entre ambas.
La configuración se realiza mediante las variables
LC_ que se definen en el fichero
/etc/sysconfig/language. Aparte del idioma para la
interfaz gráfica de los programas y sus mensajes (native language
support), se configuran también las
categorías moneda, cifras,
fecha y hora, el tipo de
caracteres, el tipo de mensajes y
el criterio de ordenar. Todas estas categorías se pueden
definir dentro del archivo language mediante una
variable individual o de forma indirecta mediante una variable de un nivel
más alto (véase la página del manual man locale).
RC_LC_MESSAGES,
RC_LC_CTYPE,
RC_LC_COLLATE,
RC_LC_TIME,
RC_LC_NUMERIC,
RC_LC_MONETARY
Estas variables se pasan a la shell sin el
prefijo RC_ y determinan las categorías arriba
mencionadas. A continuación se detalla el significado de las distintas
variables.
RC_LANGEn caso de estar definida, esta variable sobreescribe los valores de las variables mencionadas arriba.
RC_LANG
Si no se define ninguna de las variables arriba mencionadas, esta sirve de
definición de reserva (fallback). SUSE LINUX sólo define por defecto
RC_LANG. De esta forma es más fácil para el usuario
introducir valores propios.
ROOT_USES_LANG
Una variable booleana de valor yes o
no. Si tiene el valor no, root siempre trabaja en el entorno POSIX.
Las demás variables se determinan mediante el editor
sysconfig de YaST. El valor de estas variables
contiene la identificación del idioma (language code),
la del país o territorio (country code), el
conjunto de caracteres (encoding) y la
opción (modifier). Todas estas indicaciones se
unen mediante caracteres especiales:
LANG=<language>[[_<COUNTRY>].<Encoding>[@<Modifier>]]
Idioma y país se deben definir juntos. La indicación del idioma sigue la
norma ISO 639
(http://www.evertype.com/egt/standards/iso639/iso639-1-en.html
y http://www.loc.gov/standards/iso639-2/) y los códigos de
país están definidos en la norma ISO 3166
(http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html).
Sólo se puede seleccionar valores que encuentran su homólogo en un archivo de
descripción dentro del directorio /var/lib/locale. Es
posible crear archivos de descripción a partir de los archivos
/usr/share/i18n usando localedef; los
archivos de descripción forman parte del paquete
glibc-i18ndata. Por ejemplo, un archivo de
descripción para es_ES@euro.UTF-8 se crea mediante el
comando:
localedef -i es_ES@euro -f UTF-8 es_ES@euro.UTF-8
LANG=es_ES.UTF-8
Esta es la opción predeterminada cuando se instala en castellano. Si la instalación se realiza en otro idioma, UTF-8 sigue siendo el juego de caracteres seleccionado y el otro idioma se adopta para el sistema.
LANG=es_ES.ISO-8859-1
De este modo se configura el idioma español para España con el juego de
caracteres ISO-8859-1. Este aún no incorpora el símbolo del
Euro pero sigue siendo necesario para los programas que aún no han sido
adaptados a UTF-8. Por ejemplo, el programa Emacs es uno de
los que lee la opción de configuración del juego de caracteres (aquí
ISO-8859-1).
LANG=es_ES@euro
El ejemplo superior incluye explícitamente el signo del euro en un juego de caracteres. En sentido estricto, esta opción resulta obsoleta ya que UTF-8 comprende también el signo del euro. No obstante, puede serle de utilidad si una aplicación no soporta UTF-8 sino, por ejemplo, ISO-8859-15.
SuSEconfig lee las variables de
/etc/sysconfig/language y escribe los valores en los
archivos /etc/SuSEconfig/profile y
/etc/SuSEconfig/csh.cshrc.
/etc/profile lee el archivo
/etc/SuSEconfig/profile (lo usa como fuente) y
/etc/csh.cshrc lee
/etc/SuSEconfig/csh.cshrc. De esta forma la
configuración está disponible para todo el sistema.
La configuración del sistema puede ser modificada por los usuarios con el
archivo de configuración individual de usuario
~/.bashrc. Por ejemplo, cuando la configuración del
sistema es es_ES y el usuario prefiere los mensajes en
inglés, es posible modificarlo mediante:
LC_MESSAGES=en_US
Los archivos de la categoría mensajes normalmente sólo
se encuentran dentro del directorio de idioma (por ejemplo en)
para tener una solución de reserva. Por ejemplo cuando el valor de
LANG sea en_US y el archivo de
mensajes en /usr/share/locale/en_US/LC_MESSAGES no exista, se recurrirá al
archivo /usr/share/locale/en/LC_MESSAGES para los
mensajes.
Una cadena de soluciones de reserva puede definirse, por ejemplo, para bretón → francés o para gallego → español → portugués:
LANGUAGE="br_FR:fr_FR"
LANGUAGE="gl_ES:es_ES:pt_PT"
O para – dependiendo de las preferencias – cambiar a las
variantes noruegas nyorsk o bien
bokmål (con no como
alternativa):
LANG="nn_NO"
LANGUAGE="nn_NO:nb_NO:no"
o bien
LANG="nb_NO"
LANGUAGE="nb_NO:nn_NO:no"
En el caso del noruego también hay que tener en cuenta que
LC_TIME se trata de forma diferente.
En cadenas de números no se reconoce el punto como separador de miles.
Probablemente el valor de LANG sea
es. Como la descripción que usa la glibc se encuentra
en /usr/share/lib/es_ES/LC_NUMERIC,
LC_NUMERIC debe tener por ejemplo el valor
es_ES.
The GNU C Library Reference Manual, capítulo
Locales and Internationalization, está incluido
en glibc-info.
Jochen Hein, bajo la palabra clave NLS.
Spanish-HOWTO de Gonzalo García-Agulló file:/usr/share/doc/howto/en/html/Spanish-HOWTO.html
Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux, actualizado en http://www.cl.cam.ac.uk/~mgk25/unicode.html.
Unicode-Howto de Bruno Haible file:/usr/share/doc/howto/en/html/Unicode-HOWTO.html.