Sistema Guix: Abrir un programa en otro idioma
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:
- Abrir un terminal.
-
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: