· Cambiar idioma (Actualmente: Español)

Sistema Guix: Abrir un programa en otro idioma

Abril 04, 2021 15:11 -0500
Pantallazo
Pantallazo. Ventana de preferencias de Inkscape abierta en tres idiomas diferentes en la misma sesión de escritorio. Atrás, ventana en español; medio, ventana en japonés; frente, ventana en polaco.

A veces me gusta usar aplicaciones en el idioma que esté estudiando en el momento para practicarlo o para encontrar cómo se dice cierto término informático. Ver las palabras en el idioma extranjero usadas dentro de un programa me permite entenderlas más fácilmente por el contexto en que se aplican.

Existen programas con opciones propias, fáciles de encontrar, accesibles desde la interfaz gráfica, para cambiar el idioma en el que se muestran al usuario, sin importar el idioma predeterminado del sistema o de la sesión de escritorio. Este apunte muestra cómo cambiar el idioma de los programas que no ofrecen esas opciones. El procedimiento debería funcionar en cualquier sistema operativo de la familia GNU, pero aquí me enfoco en el Sistema Guix. Además, funciona tanto para programas de terminal como para aplicaciones de escritorio.

Claro que hay programas que no están internacionalizados o que no están traducidos todavía al idioma en el que uno los quiere usar. En esos casos, naturalmente, este procedimiento no aplica.

Antes de proceder

Se necesita instalar locales, tipografías para diferentes idiomas y, por convenciencia, el programa locale. Una forma rápida de hacerlo es así:

$ guix install glibc-locales font-google-noto gcc-toolchain

El paquete glibc contiene los locales, que son colecciones de convenciones usadas por región e idioma para mostrar información. Por ejemplo, el local es_CO.utf8 describe las convenciones que debe usar el sistema y sus aplicaciones para mostrar información en español de Colombia. Estas convenciones incluyen, entre otras cosas, idioma, formato de calendario, fecha, hora y moneda.¹

El paquete font-google-noto contiene una familia de tipografías cuyo propósito es cubrir todos los sistemas de escritura del mundo.

El paquete gcc-toolchain contiene un conjunto de herramientas para programar en C/C++, que no interesan en este caso, pero también incluye el programa locale, que es útil para el propósito de este apunte porque permite mostrar los nombres de todos los locales disponibles en el sistema.

Procedimiento

En esencia, se hace lo siguiente para abrir un programa en un idioma diferente al actual del sistema:

  1. Abrir un terminal.
  2. Ejecutar el programa o aplicación deseada asignando un nombre de local apropiado a la variable de entorno LANG.

Por ejemplo, para ver Inkscape en japonés, se ejecuta la siguiente orden en un terminal:

$ LANG=ja_JP.utf8 inkscape

Si todo sale bien, debería abrirse una ventana nueva de Inkscape en ese idioma. Y solo esa ventana y nada más en el escritorio debería aparecer en ese idioma. De hecho, si se abre otra ventana más de Inkscape normalmente desde el lanzador de aplicaciones del escritorio, esta nueva ventana se abre en el idioma habitual del sistema (que en mi caso sería español).

Los valores que acepta la variable de entorno LANG pueden variar según cada sistema operativo. Por ejemplo, mientras que en el Sistema Guix se usan nombres como es_CO.utf8 (español de Colombia), en_CA.utf8 (inglés de Canadá), ja_JP.utf8 (japonés de Japón), en otro sistema operativo los valores podrían tener otro formato, como es-CO.UTF-8, o espanol-colombia, etc.

Para ver todos los locales reconocidos por el sistema, se puede usar el programa locale, así:

$ locale -a

Que, ya con el paquete glibc-locales previamente instalado, debería mostrar algo como esto:

C
ca_ES.utf8
cs_CZ.utf8
da_DK.utf8
de_DE.utf8
el_GR.utf8
en_AU.utf8
en_CA.utf8
en_GB.utf8
en_US.utf8
en_US.UTF-8
es_AR.utf8
es_CL.utf8
es_CO.utf8
es_ES.utf8
es_MX.utf8
fi_FI.utf8
fr_BE.utf8
fr_CA.utf8
fr_CH.utf8
fr_FR.utf8
ga_IE.utf8
it_IT.utf8
ja_JP.utf8
ko_KR.utf8
nb_NO.utf8
nl_NL.utf8
pl_PL.utf8
POSIX
pt_PT.utf8
ro_RO.utf8
ru_RU.utf8
sv_SE.utf8
tr_TR.utf8
uk_UA.utf8
vi_VN.utf8
zh_CN.utf8
    

Usando este mismo procedimiento se puede abrir un programa en su idioma original.

Problemas relacionados

Cuando se usa un valor para la variable LANG que el sistema no reconoce, se muestra una advertencia y el programa se abre en el idioma en el que fue escrito originalmente.

Por ejemplo, en el Sistema Guix,

$ LANG=ja.UTF-8 inkscape

muestra una advertencia como esta:

(process:27902): Gtk-WARNING **: 16:11:14.119: Locale not supported by C library.
        Using the fallback 'C' locale.
    

La solución es asegurarse de usar uno de los valores listados por el programa locale, como se indica previamente en este mismo apunte.

1. En The GNU C Library Reference Manual, Locales and Internationalization se define qué es un local (locale en inglés), pero no hay información sobre si hay algún tipo de archivo con formato específico para indicar las convenciones para cada local y si tienen alguna ubicación estándar en el sistema de archivos.

Temas relacionados: