Tabla de contenidos
$LANG
»
El Multilenguaje (M17N) o Soporte del Lenguaje Propio para el software de aplicaciones se realiza en dos pasos.
Internacionalización (I18N): para hacer que el software sea capaz de gestionar múltiples configuraciones dependiendo de la configuración regional.
Localización (L10N): para hacer que el software sea capaz de gestionar la configuración regional.
Sugerencia | |
---|---|
Hay 17, 18, o 10 letras entre «m« y «n«, «i« y «n«, o «l« and «n« en multilenguaje, internacionalización y la localización que se corresponden M17N, I18N, y L10N. |
El software moderno como GNOME y KDE son multilenguaje. Están internacionalizados haciendo que gestionen los datos en UTF-8 y localizados aportando la traducción de sus mensajes a través de la infraestructura gettext(1). Los mensajes traducidos pueden ser aportados por paquetes especificos de localización. Estos pueden ser seleccionados dandole el valor correcto a las variables de entorno correspondientes con la configuración regional apropiada.
La representación más sencilla de información en formato texto es en ASCII la cual es suficiente para el inglés y utiliza menos de 127 caracteres (códificados por 7 bits). Para poder representar muchos más caracteres para la funcionalidad de internacionalización, se crearon muchos sistemas de codificación de caracteres. El sistema de codificación moderno y razonable es UTF-8 el cual puede gestionar practicamente cualquier carácter conocido por los humanos (consulte Sección 8.4.1, “Fundamentos de codificación”).
Para más detalles consulte Introducción a i18n.
El soporte hardware a la internacionalización se realiza mediante la información de configuración del hardware de localización.
Aviso | |
---|---|
Este capítulo esta desactualizado ya que esta fundamentado en Debian 7.0
( |
El sistema Debian peude ser configurado para trabajar con muchas
disposiciones internacionales del teclado utilizando los paquetes
keyboard-configuration
y
console-setup
.
# dpkg-reconfigure keyboard-configuration # dpkg-reconfigure console-setup
Esto configura el teclado para la consola de Linux y la ventana X actualiza
los parámetros de configuración en
«/etc/default/keyboard
» y
«/etc/default/console-setup
». Esto también configura el
tipo de letra de la consola Linux.
Muchos caracteres no ASCII incluyen caracteres acentuados utilizados en muchos lenguajes europeos los cuales se pueden conseguir con la tecla inerte, la tecla AltGr y la tecla de composición.
Para los lenguajes asiáticos, necesitará utilizar métodos de entrada más complicados que aportan lo que discutiremos a continuación como IBus.
La entrada multilenguaje a una aplicación se procesa como:
Keyboard Application | ^ | | +-> núcleo Linux -> Método de entrada -> Gtk, Qt, o X
Configurar la entrada multilenguaje en el sistema Debian se simplifica por
la utilización de la familia de paquetes IBus
con el paquete im-config
. La relación de paquetes IBus es
la siguiente.
Tabla 8.1. Relación de soporte de métodos de entrada con lBus
paquete | popularidad | tamaño | soporte de la configuración regional |
---|---|---|---|
ibus | V:8, I:12 | 45417 | infraestructura de método de entrada utilizando dbus |
ibus-mozc | V:1, I:2 | 897 | Japonés |
ibus-anthy | V:0, I:1 | 8500 | , , |
ibus-kkc | V:0, I:0 | 214 | , , |
ibus-skk | V:0, I:0 | 244 | , , |
ibus-pinyin | V:0, I:2 | 1425 | Chino (para zh_CN) |
ibus-chewing | V:0, I:0 | 415 | , , (para zh_TW) |
ibus-hangul | V:0, I:1 | 218 | Coreano |
ibus-table | V:0, I:1 | 979 | tabla del motor de lBus |
ibus-table-thai | I:0 | 46 | Tailandés |
ibus-unikey | V:0, I:0 | 256 | Vitnamita |
ibus-m17n | V:0, I:0 | 154 | Multilenguaje: Indo, Árabe y otros |
El método kinput2 y otras configuración regional clásicas asiáticas para los métodos de entrada todavía existen pero no son recomendables en un entorno X moderno UTF-8. Las cadenas de herramientas SCIM y uim son una aproximación un poco antiguas para la internacionalización de los métodos de entrada para un entorno X moderno UTF-8 .
Para el método de entrada japonés un punto de comienzo muy útil es el
entorno en inglés («en_US.UTF-8
»). Aquí esta como lo hoce
con IBus para GNOME3:
Instale el paquete de herramientas de entrada para el japonés
ibus-anthy
con sus paquetes recomendados como
im-config
.
Ejecute «im-config
» desde el intérprete de órdenes y
seleccioné «ibus
» como método de entrada.
Seleccioné «Configuración« → «Teclado« → «Método de entrada« → pulsé
«+
» en «Métodos de entrada« → «Japonés« → «Japonés
(anthy)« y pulsé «Añadir«.
Seleccioné «japonés« y pulse «Añadir« para el soporte de teclado japonés sin conversión de caracteres. (Usted puede elegir tantas formas de entrada como desee.)
Vuelvase a acreditar con su cuenta de usuario.
Compruebe la configuración con «im-config
».
Configure la fuente de entrada pulsado el botón derecho en el icono de la barra de herramientas del interfaz gráfico de usuario.
Cambie entre fuentes de entrada con el SUPER-ESPACIO (habitualmente la tecla de Windows).
Tenga en cuenta:
im-config(8) se comporta de forma diferente si la orden se ejecuta como superusuario o no.
im-config(8) activa el mejor método de entrada en el sistema por defecto sin la intervención del usuario.
La entrada del menú del interfaz gráfico de usuario de im-config(8) está desactivada por defecto para evitar desastres.
Si quiere utilizar la entrada sin XIM (mécanismo utilizado por las X),
asigne a «$XMODIFIERS
» el valor de cuando inicie un
programa. Este es el caso de utilizar el japonés con el método de entrada
egg
en
emacs(1)
ya que desactiva ibus
. Desde el intérprete de órdenes
ejecute lo siguiente.
$ XMODIFIERS=none emacs
Para que se ejecute la orden por el menú de Debian, debe introducir la
configuración adecuada en «/etc/menu/
» siguiendo el
método que se describe en «/usr/share/doc/menu/html
».
La consola de Linux solo puede mostrar un número limitado de caracteres. (Necesitará un programa de terminal especial como ifbterm(1) para visualizar lenguajes no europeos en una consola que no sea X).
Las Ventanas X pueden mostrar cualquier carácter UTF-8 como necesitan los datos de los tipos de letra que existen (el Sistema de Ventanas X se encarga de la codificación de los datos de tipos de letra originales, siendo transparente para el usuario).
En las configuraciones regionales de Asia oriental, el área de dibujo de los caracteres griegos y cirílicos puede ser ampliada más allá de lo deseado causando que no se muestren alineados en la salida (consulte Anexo Estándar de Unicode #11).
Puede solucionar este problema:
gnome-terminal
: Editar → Preferencias → Perfiles → Editar
→ Compatibilidad → Caracters de ancho ambiguo → Estrechar
ncurses
: asigne en el entorno export
NCURSES_NO_UTF8_ACS=0
.
La configuración regional de las aplicaciones que se ejecutan en un entorno de ventanas X comienza en gdm3(1).
La variable de entorno «LANG=xx_YY.ZZZZ
» asigna a la
configuración regional el código del lenguaje «xx
»,
código del país «yy
», y la codificación
«ZZZZ
» (consulte Sección 1.5.2, “La variable «$LANG
»”).
La última versión estable del sistemas Debian asigna habitualmente la
configuración regional como LANG=xx_YY.UTF-8
». Así se
usa la codificación UTF-8 con el juego de
caracteres Unicode. Este sistema de
codificación UTF-8 es un sistema que utiliza un
sistema de codificación de varios bytes y utiliza los puntos del código de
forma inteligente. Los datos ASCII, que
consisten unicamente en 7 bits por código, son siempre datos UTF-8 correctos
y consisten únicamente en un byte por carácter.
El sistema Debian anterior usaba la asignación de la configuración regional
como «LANG=C
» o «LANG=xx_YY
» (sin
«.UTF-8
»).
El juego de caracteres ASCII es utilizado en
«LANG=C
» o «LANG=POSIX
».
El sistema de codificación tradicional en Unix es
«LANG=xx_YY
».
Los sistemas de codificación tradicionales reales que se utilizan ahora como
«LANG=xx_YY
» pueden ser identificados comprobando
«/usr/share/i18n/SUPPORTED
». Por ejemplo,
«en_US
» utiliza la codificación
«ISO-8859-1
» y «fr_FR@euro
» utiliza la
codificación «ISO-8859-15
».
Sugerencia | |
---|---|
Para el significado de los valores de los códigos, consulte Tabla 11.2, “Relación de valores de codificación y su uso”. |
EL conjunto de caracteres Unicode puede representar virtualmente todos los caracteres conocidos por el hombre con códigos que tienen el rango en notación hexadecimal desde 0 hasta 10FFFF. Su almacenamiento necesita al menos 21 bits.
El sistema de codificación de texto UTF-8 encaja en el código Unicode con una representación adecuada de flujos de 8 bits que la hace compatible con los sistemas de procesamiento de datos ASCII. UTF significa Formato de Transformación Unicode (Unicode Transformation Format).
Recomendaría la utilización de la configuración regional UTF-8 para el escritorio,
p. ej. «LANG=en_US.UTF-8
». La primera parte de la
configuración regional determina el lenguaje en que las aplicaciones
presentan los mensajes. Por ejemplo,
gedit(1)
(editor de texto del escritorio GNOME) con
«LANG=fr_FR.UTF-8
» la configuración regional puede
mostrar y editar información en formato texto con caracteres chinos mientras
visualiza los mensajes en francés, como lo determinan los métodos de entrada
y tipos de letra instalados.
También recomendaria configurar la localización configurando unicamente la
variable de entorno «$LANG
». La configuración de la
combinación de las variables «LC_*
» (consulte
locale(1))
en la configuración regional UTF-8 no aporta demasiadas ventajas.
Incluso texto plano en inglés puede contener caracteres que no perteneces a ASCII, p. ej. las comillas ligeramente inclinadas a izquierda y derecha no están incluidas en ASCII.
“comillas dobles de este texto” no son las «comillas dobles ASCII« ‘comillas simples de este texto’ no son las 'comillas simples ASCII'
Cuando la información en formato de texto plano ASCII se convierte a UTF-8, tiene exactamente el mismo contenido y tamaño que el original ASCII. Así que no se pierde nada por configurar la configuración regional con UTF-8.
Algunos programas utilizan más memoria después de configurarlos con l18N. Esto es debido que han sido escritos para utilizar UTF-32(UCS4) internamente para utilizar Unicode con el fin de optimizar la velocidad y utilizan 4 bytes por cada carácter ASCII con independencia de la configuración regional seleccionada. Nuevamente, no se pierde nada por utilizar como configuración regional UTF-8.
Los sistemas de codificación no UTF-8 especificos de un producto tienden a tener menores pero molestas diferencias en algunos caracteres como los caracteres gráficos para muchos paises. La implantación del sistema UTF-8 de los modernos sistemas operativos generalmente solucionan estos conflictos de codificación.
Para que el sistema tenga acceso a una configuración regional particular,
los datos de la configuración regional deben ser compilades desde la base de
datos de las configuraciónes regionales. (El sistema Debian no ofrece todas las localizaciones precompiladas a
menos que instale el paquete locales-all
package.) La
relación completa de configuraciónes regionales disponibles para la
compilación está en «/usr/share/i18n/SUPPORTED
». Esto
enumera todos los nombres correctos de las configuraciónes regionales . La
relación siguiente enumera las configuraciónes regionales UTF-8 compiladas
en forma de binario.
$ locale -a | grep utf8
La ejecución de la orden siguiente reconfigura el paquete
locales
.
# dpkg-reconfigure locales
Este proceso consta de 3 pasos.
Actualiza la relación de las configuraciones regionales disponibles
Compilar estos para obtener el formato binario
Configure el valor de la configuración regional por defecto en
«/etc/default/locale
» que será utilizado por PAM
(consulte Sección 4.5, “PAM y NSS”).
La relación de configuraciónes regionales disponibles debería incluir
«en_US.UTF-8
» y todos los lenguajes que encuentre
interesantes con «UTF-8
».
La preferencia para la configuración regional por defecto es
«en_US.UTF-8
» para el inglés US. Para otras lenguas, por
favor, aseguresé de elegir una configuración regional con
«UTF-8
». Cualquiera de estas configuraciones puede
gestionar cualquier carácter internacional.
Nota | |
---|---|
Aunque la configuración regional a « |
Muchas aplicaciones modifican el valor de la variable de entorno
«$LANG
».
Para los programas de consola locales de Linux se inicializa mediante el mecanismo de PAM login(1)
Para los programas X se inicializa por el mecanismo PAM de visualización
Para los programas de consola remotos se inicializa por el mecanismo PAM ssh(1)
Para todos los programas X puede ser cambiado por algunos gestores de sesión como gdm3(1)
Para todos los programas X se modifica por el código de inicio de sesión X
en «~/.xsessionrc
»
Para todos los programas de consola se mdifica por el código de inicio del
intérprete de órdenes «~/.bashrc
»
Sugerencia | |
---|---|
Es una buena práctica, para obtener la máximo compatibilidad, configurar la
configuración regional como « |
Puede elegir una configuración regional especifica solo para entornos X independientemente de la configuración completa de su sistema de la configuración regional utiizando la personalización mediante PAM (consulte Sección 4.5, “PAM y NSS”) de la forma que se describe a continuación.
Este entorno puede ofrecerle la mejor estabilidad y experiencia de usuario. Tiene acceso a las características de caracteres en el terminal con mensajes comprensible incluso cuando el Sistema de Ventanas X no funcione. Esto es fundamental para los lenguajes que utilizan caracteres no romanos como el japonés, el chino y el coreano.
Nota | |
---|---|
Puede existir otra manera de configurar la configuración regional como una mejora del paquete de gestión de sesiones X pero lea lo siguiente como el método genérico y básico. Para gdm3(1), se que puede seleccionar la configuración regional de la sesión X por medio de su menú. |
La siguiente línea define la ubicación del archivo del entorno del lenguaje
en el archivo de configuración PAM, como
«/etc/pam.d/gdm3
».
auth required pam_env.so read_env=1 envfile=/etc/default/locale
Cambie esto por lo siguiente.
auth required pam_env.so read_env=1 envfile=/etc/default/locale-x
Para el japonés cree un archivo «/etc/default/locale-x
»
con los permisos «-rw-r--r-- 1 root root
» que contiene lo
siguiente.
LANG=«ja_JP.UTF-8«
Mantenga el archivo por defecto «/etc/default/locale
»
para otros programas como sigue.
LANG=«en_US.UTF-8«
Esta es la técnica más genérica para personalizar la configuración regional y hacer del diálogo de selección de menú de gdm3(1) ser configurado regionalmente el mismo.
Para este caso de forma alternativa puede simplemente cambiar la
configuración regional en el archivo «~/.xsessionrc
».
Para el intercambio de datos entre plataformas (consulte Sección 10.1.7, “Dispositivos de almacenamiento extraibles”), puede necesitar montar un sistema de archivos con una codificación adecuada. Por ejemplo, mount(8) para el sistemas de archivos vfat da por sentado CP437 si se utiliza sin opciones. Necesitará proporcionar al montar una opción explícita para utilizar UTF-8 o CP932 para los nombres de archivos.
Nota | |
---|---|
Cuanto el automontaje o la conexión en caliente de de llaveros de memoria USB en los entornos de escritorio modernos como GNOME, puede introducir ese opción de montaje pulsando el botón derecho del ratón en el icono del escritorio, pulse en la pestaña «Unidad«, pulse para expandir «Configurar« e introduzca «utf8« en las «Opciones de montaje:«. La proxima vez que el llavero de memory se monte, UTF-8 estará activado. |
Nota | |
---|---|
Si esta actualizando su sistema o modificando los discos duros desde un sistema antiguo que no soporta UTF-8, los nombres de los archivos con caracteres que no son ASCII pueden ser códificados con la histórica y obsoleta ISO-8859-1 o eucJP. Por favor busque ayuda entre las herramientas de conversión de texto para convertirlas a UTF-8. Consulte Sección 11.1, “Herramientas para la conversión de información en formato texto”. |
Samba, por defecto, utiliza Unicode para los
clientes nuevos (Windows NT, 200x, XP) pero utiliza CP850 para los viejos (DOS and Windows 9x/Me). El
valor por defecto de los clientes viejos se puede cambiar modificando la
entrada«dos charset
» en el archivo
«/etc/samba/smb.conf
», p. ej. a CP932 para el japonés.
Existen traducciones para muchos de los mensajes de texto y documentos que el sistema Debian muestra, como los mensajes de error, salida estándar de los programas, menús y páginas de manual. El conjunto de herramientas de la orden GNU gettext(1) se utiliza como motor para la mayoría de las actividades relacionadas con las traducciones.
En «Tareas« → «Configuración regional« aptitude(8) tiene una relación muy completa de paquetes binarios útiles los cuales proporcionan mensajes según la configuración regional de las aplicaciones y documentación traducida.
Por ejemplo, puede tener los mensajes según su configuración regional
instalando el paquete manpages-<LANG>
. Para leer la
página de man en italiano de <nombre_del_programa>desde
«/usr/share/man/it/
», ejecute lo siguiente.
LANG=it_IT.UTF-8 man <nombre_del_programa>
La órdenación lexicográfica de sort(1) depende de la elección de la configuración regional. La configuración regional en español y el inglés realizan la ordenación de forma diferente.
El formato de la fecha de
ls(1)
cambia de acuerdo a la configuración regional. El formato de la fecha
parav«LANG=C ls -l
» y
«LANG=en_US.UTF-8
» son diferentes (consulte Sección 9.2.5, “Personalización de la visualización de la fecha y hora”).
La puntuación de los números es diferente según la configuración
regional. Por ejemplo, en la configuración regional en inglés, mil uno es
1,000.1
» mientras que con la configuración regional
alemán, se visualizaría como «1.000,1
». Puede comprobar
esta diferencia en una hoja de cálculo.