Idioma de las aplicaciones
EterTICs para poder ofrecer estabilidad y al mismo tiempo versiones relativamente nuevas tiene que combinar varios repositorios, entre ellos Debian Multimedia, Backports (Debian o Devuan según la versión) y todo esto tratando de afinar con APT-Pinning, por ejemplo LibreOffice en la versión estable es de la rama 4.x mientras que el instalado es de la 5.x que viene de los repos backports.
Los archivos .deb no son otra cosa que archivos comprimidos (compresor ar estandar en Unix) con una estructura determinada para que pueda ser interpretada por dpkg y todos sos derivados.
La internacionalización y localización de los programas se establece básicamente con la configuración de las variables del sistema LANG, LANGUAGE que podemos conocer ejecutando el comando:
locale
y podemos “reconfigurar” ya que está configurado desde el momento de instalar la distribución, ejecutando como root el comando:
dpkg-reconfigure locales
Teniendo las variables LANG y LANGUAGE debidamente configurados, por ejemplo, en mi caso, Español Argentina así:
LANG=es_AR.utf8
LANGUAGE=es_AR:es:es_ES
Los archivos de idioma (casi siempre .mo) se guardan en el directorio:
/usr/share/locale/ii_PP/
donde ii corresponde a las dos primeras letras del idioma y PP a las del país ejemplo es_AR = Español Argentina entonces en mi sistema tendría el directorio:
/usr/share/locale/es_AR/
y dentro el directorio LC_MESSAGES que es donde los programas copian al momento de instalarse las traducciones de sus interfaces.
Conociendo esta estructura veamos el problema y la solución:
Problema
¿Qué pasa cuando instalo un nuevo programa y la interface aparece en ingles que es el idioma predeterminado?
Si tenemos las variables LANG y LANGUAGE bien configuradas, este problema puede deberse a que al momento de instalar el nuevo paquete, por algún motivo (que desconozco) no se copio el archivo .mo (de idioma) en el directorio del idioma del sistema, en mi caso sería:
/usr/share/locale/es_AR/LC_MESSAGES/
Solución
La solución es bastante simple, si recordamos lo que se explico al principio los archivos .deb son archivos comprimidos así que solo debemos extraer el archivo de idioma (generalmente .mo para el ejemplo lo llamaremos archivo.mo) y lo movemos a la ubicación que el sistema necesita.
Para ello podemos valernos de emgrampa o cualquier archivador y buscamos dentro del archivo deb en cuestión la estructura usr/share/locale/ii/LC_MESSAGES/archivo.mo (recuerden que ii es el idioma) una vez que tenemos el archivo.mo lo extraemos, un buen lugar sería el home de nuestro usuario luego cerramos emgrampa (o el archivador que sea), abrimos una consola y como usuario root movemos el archivo.mo al lugar que corresponde, en mi sistema sería asi:
mv /home/mi_usuario/archivo.mo /usr/share/locale/es_AR/LC_MESSAGES/
con eso ya tendría el programa “archivo” en idioma español 🙂
Ejemplo:
Inkscape 0.48.5 en EterTICs 7.1 esta en español pero si actualizamos a la versión 0.91 del respositorio backports este aparece en ingles, se soluciona como lo explicamos antes:
Inkscape 0.48.5 en español..
Se actualiza el sistema…
Inkscape 0.91 en ingles…
Se busca el archivo .deb del inkscape recién instalado se extrae el archivo inkscape.mo con el programa Engrampa (o el archivador que prefieran)…
Extraemos el archivo inkscape.mo en el home de nuestro usuario para poder ubicarlo luego fácilmente
Abrimos una terminal y como usuario root movemos el archivo inkscape.mo al directorio que corresponde
Listo, ya tenemos Inkscape 0.91 en español!!!
NOTA:
También podría ser válido mover el archivo .mo al directorio del idioma ejemplo:
/usr/share/locale/es/LC_MESSAGES/
Espero que esto ayude a comprender el funcionamiento y estructura de directorio del sistema.
Happy Hacking!!