Capítulo 8. I18N y L10N

Tabla de contenidos

8.1. Configuración regional
8.1.1. Razón de ser de la configuración regional UTF-8
8.1.2. Reconfiguración de la configuración regional
8.1.3. Códificación del nombre del archivo
8.1.4. Configuración regional de los mensajes y documentación traducida
8.1.5. Efectos de la configuración regional
8.2. La entrada por teclado
8.2.1. The keyboard input for Linux console and X Window
8.2.2. La entrada por teclado para Wayland
8.2.3. El soporte al método de entrada con lBus
8.2.4. Ejemplo para el japonés
8.3. La salida por pantalla
8.4. Ancho de los caracteres ambiguos de Asia oriental

El Multilenguaje (M17N) o Soporte del Lenguaje Propio para el software de aplicaciones se realiza en dos pasos.

[Sugerencia] Sugerencia

There are 17, 18, or 10 letters between "m" and "n", "i" and "n", or "l" and "n" in multilingualization, internationalization, and localization which correspond to M17N, I18N, and L10N. See Introduction to i18n for details.

The behavior of programs supporting internationalization are configured by the environment variable "$LANG" to support localization. Actual support of locale dependent features by the libc library requires to install locales or locales-all packages. The locales package requires to be initialized properly.

If neither locales or locales-all package are installed, support of locale features are lost and system uses US English messages and handles data as ASCII. This behavior is the same way as "$LANG" is set by "LANG=", "LANG=C", or "LANG=POSIX".

The modern software such as GNOME and KDE are multilingualized. They are internationalized by making them handle UTF-8 data and localized by providing their translated messages through the gettext(1) infrastructure. Translated messages may be provided as separate localization packages.

El sistema GUI de escritorio Debian actual normalmente establece la configuración local en el entorno GUI como "LANG=xx_YY.UTF-8". Aquí, "xx" es Códigos de idioma ISO 639 y "YY" es Códigos de idioma ISO 3166. Estos valores se establecen mediante el diálogo de la GUI de configuración del escritorio y cambian el comportamiento del programa. Ver Sección 1.5.2, “La variable «$LANG»”

La representación más simple de los datos de texto es ASCII que es suficiente para el inglés y usa menos de 127 caracteres (representable con 7 bits).

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.

“double quoted text” is not "double quoted ASCII"
‘single quoted text’ is not 'single quoted ASCII'

Para admitir más caracteres, se han utilizado muchos conjuntos de caracteres y sistemas de codificación para admitir muchos idiomas (consulte Tabla 11.2, “Relación de valores de codificación y su uso”).

EL conjunto de caracteres Unicode puede representar prácticamente todos los caracteres conocidos por humanos con un rango de punto de código de 21 bits (es decir, 0 a 10FFFF en notación hexadecimal).

El sistema de codificación de texto UTF-8 ajusta los puntos de código Unicode en un flujo de datos sensible de 8 bits, en su mayoría compatible con el sistema de procesamiento de datos ASCII. Esto hace que UTF-8 sea la opción preferida moderna. UTF representa el Formato de Transformación Unicode. Cuando los datos de texto sin formato ASCII se convierten en uno UTF-8, tienen exactamente el mismo contenido y tamaño que el original ASCII. Así que no pierde nada utilizando la configuración regional UTF-8.

En la local UTF-8 con el programa de aplicación compatible, puede mostrar y editar cualquier dato de texto en un idioma extranjero siempre que las fuentes y los métodos de entrada requeridos estén instalados y habilitados. Por ejemplo, en la configuración local "LANG=fr_FR.UTF-8", gedit(1) (editor de texto para el escritorio GNOME) puede mostrar y editar datos de texto de caracteres chinos mientras presenta menús en francés.

[Sugerencia] Sugerencia

Tanto la nueva configuración "en_US.UTF-8" como la antigua configuración local estándar "C"/"POSIX" utilizan el menasje inglés estadounidense estándar, tienen diferencias sutiles en el orden de clasificación, etc. Si desea manejar no solo los caracteres ASCII, sino también todos los caracteres codificados en UTF-8 con elegancia mientras mantiene el antiguo funcionamiento local "C", use la configuración local no estándar "C.UTF-8" en Debian.

[Nota] Nota

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.

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] Nota

Cuanto el automontaje o la conexión en caliente de dispositivos de memoria USB en los entornos de escritorio modernos como GNOME, puede introducir esa 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 próxima vez que el dispositivo de memoria se monte UTF-8 estará activado.

[Nota] 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_programadesde «/usr/share/man/it/», ejecute lo siguiente.

LANG=it_IT.UTF-8 man programname

GNU gettext can accommodate priority list of translation languages with $LANGUAGE environment variable. For example:

 $ export LANGUAGE="pt:pt_BR:es:it:fr"

For more, see info gettext and read the section "The LANGUAGE variable".

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.3.4, “Personalización de la visualización de la fecha y hora”).

Number punctuation are different for locales. For example, in English locale, one thousand point one is displayed as "1,000.1" while in German locale, it is displayed as "1.000,1". You may see this difference in spreadsheet program.

Each detail feature of "$LANG" environment variable may be overridden by setting "$LC_*" variables. These environment variables can be overridden again by setting "$LC_ALL" variable. See locale(7) manpage for the details. Unless you have strong reason to create complicated configuration, please stay away from them and use only "$LANG" variable set to one of the UTF-8 locales.

Para GNOME en el sistema de escritorio Wayland, Sección 8.2.1, “The keyboard input for Linux console and X Window” no admite idiomas europeos distintos del inglés. IBus se creó para admitir no solo idiomas asiáticos sino también idiomas europeos. La dependencia del paquete del entorno de escritorio GNOME recomienda "ibus" a través de "gnome-shell". El código de "ibus" se ha actualizado para integrar las funcionalidades de las opciones setxkbmap y XKB. Debe configurar ibus desde "Configuración de GNOME" o "Ajustes de GNOME" para la entrada de teclado multilingüe.

[Nota] Nota

Si ibus está activo, la configuración de su teclado X clásico por setxkbmap se puede anular por ibus incluso en un entorno de escritorio clásico basado en X. Puede deshabilitar ibus instalado usando im-config para establecer el método de entrada en "None". Para más información, ver Wiki de Debian en el teclado.

Ya que el entorno de escritorio GNOME recomienda "ibus" a través de "gnome-shell", "ibus" es la mejor opción para el método de entrada.

La entrada multilenguaje a una aplicación se procesa como:

Keyboard                                       Application
   |                                                 ^
   |                                                 |
   +-> Linux kernel ->  Input method (ibus)  -> Gtk, Qt, X, Wayland
                          +-- Engine--+

La lista de IBus y sus paquetes son los siguientes.


[Nota] Nota

Para chino, "fcitx5" puede ser un marco de método de entrada alternativo. Para los aficionados a Emacs, "uim" puede ser una alternativa. En cualquier caso, es posible que deba realizar una configuración manual adicional con im-config. Algunos viejos métodos de entrada clásicos, como "kinput2", aún pueden existir en el repositorio de Debian, pero no se recomiendan para el entorno moderno.

Encuentro que es muy útil el método de entrada en japonés iniciado en el entorno en inglés ("en_US.UTF-8"). Así es como hice esto con IBus para GNOME en Wayland:

  1. Instale el paquete de herramientas de entrada para el japonés ibus-mozc (o ibus-anthy) con sus paquetes recomendados como im-config.

  2. Seleccioné «Configuración« → «Teclado« → «Método de entrada« → pulsé «+» en «Métodos de entrada« → «Japonés« → "Mozc japonés (o anthy)" y haga clic en "Agregar" si no se ha activado.

  3. Puede elegir tantas fuentes de entrada como desee.

  4. Vuelvase a acreditar con su cuenta de usuario.

  5. Configure la fuente de entrada pulsado el botón derecho en el icono de la barra de herramientas del interfaz gráfico de usuario.

  6. Cambie entre fuentes de entrada con el SUPER-ESPACIO (habitualmente la tecla de Windows).

[Sugerencia] Sugerencia

Si desea tener acceso al entorno de teclado solo alfabético con el teclado japonés físico en el que shift-2 tiene grabado " (comillas dobles), seleccione "Japonés" en el procedimiento anterior. Puede ingresar japonés usando "Mozc japonés (o anthy)" con un teclado físico "EE. UU." en el que shift-2 tiene @ (marca de arroba) grabado.

  • La entrada del menú del interfaz gráfico de usuario de im-config(8) es "método de entrada".

  • Alternativamente, ejecute "im-config" desde el shell del usuario.

  • 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 consola de Linux solo puede mostrar un número limitado de caracteres. (Necesita un programa de terminal especial como ifbterm(1) para visualizar lenguajes no europeos en una consola que no sea X).

GUI environment (Capítulo 7, GUI System) can display any characters in the UTF-8 as long as required fonts are installed and enabled. (The encoding of the original font data is taken care and transparent to the user.)

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: Preferences → Profiles → Profile name → Compatibility → Ambiguous-wide characters → Narrow

  • ncurses: asigne en el entorno export NCURSES_NO_UTF8_ACS=0.