Dado el nivel de internacionalización de SUSE LINUX, es muy flexible para la adaptación a necesidades locales. En términos técnicos: La internacionalización (I18N) permite implementar extensiones locales (L10N). Las abreviaciones I18N y L10N reemplazan los términos internationalization y localization, mencionando siempre la letra inicial y final así como el número de caracteres que faltan entremedio.
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, 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.
Mediante el comando locale es posible consultar la configuración actual.
RC_LC_ALL: En caso de estar definido, esta variable sobreescribe los valores de las variables mencionadas en 1..
RC_LANG: Al no definir ninguna de las variables arriba mencionadas, esta sirve de definición por defecto Fallback. SUSE LINUX por defecto solo define RC_LANG para que el usuario tenga más facilidad de introducir valores propios.
ROOT_USES_LANG: Una variable booleana de valor yes/no. Si tiene no root siempre trabaja en el entorno POSIX.
Las demás variables se determinan mediante el editor sysconfig. El valor de estas variables se compone de la identificación para el idioma (language code), del país o territorio (country code), del conjunto de caracteres (encoding) y de 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.
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.
Esta el la forma de configurar el idioma español en 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).
Este es un ejemplo para la definición de una opción (euro).
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 de) para tener una solución de reserva. Por ejemplo cuando el valor de LANG sea de_AT y el archivo de mensajes no se encuentre en /usr/share/locale/de_AT/LC_MESSAGES, se recurrirá al archivo /usr/share/locale/de/LC_MESSAGES para los mensajes.
Otra posibilidad es la de definir una cadena de soluciones de reserva, 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/locale/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.
Soporte CJK en SuSE Linux en inglés por Mike Fabian http://www.suse.de/~mfabian/suse-cjk/suse-cjk.html.