Lanzar una aplicación en otro idioma

Hola gente,

Por motivos de estudios tengo que tomar muchísimos apuntes en inglés, y he decidido hacerlo en Tomboy. Quiero que el sistema esté en castellano pero esa aplicación concreta esté en inglés, y acabo de descubrir cómo se hace: lanzando este comando en una terminal.

LANG=en_GB tomboy


El caso es que sólo funciona desde la terminal: el menú Alt+F2 no lo acepta, y si pongo que se ejecute al inicio de sesión (en gnome-session-properties) tampoco pasa nada. Para empeorar las cosas, si lo lanzo desde una terminal y luego la cierro el programa también se cierra, y no me apetece tener la terminal rondando por el escritorio constantemente.

¿Se os ocurre qué solución puedo darle? Gracias.
Haz un script, por ejemplo, tbe con el contenido:

#!/bin/bash
LANG=en_GB
tomboy


Le das permisos de ejecución y lo copias a /usr/bin o cualquier otra ruta de $PATH. Así podrás ejecutarlo desde alt+F2, ponerlo en un lanzador, etc.
¡Gracias, funciona!

Ya por curiosidad, ¿podrías explicarme por qué no puedo ejecutar en Alt+F2 ni poner en un lanzador el código que he copiado en el primer mensaje?
Porque ni alt+f2 ni los lanzadores tienen capacidad de ejecutar varias instrucciones, sólo 1, y eso que necesitas son 2 aunque las pongas seguidas.
OK, me queda claro.

Mil gracias amuchamu :)
amuchamu escribió:Porque ni alt+f2 ni los lanzadores tienen capacidad de ejecutar varias instrucciones, sólo 1, y eso que necesitas son 2 aunque las pongas seguidas.


El código del primer mensaje no son dos instrucciones: es una sola a la que se antepone el valor de una variable de entorno (LC_ALL en este caso). Supongo que no funcionará porque esto es sintaxis de bash y el lanzador ese (que no sé cuál es) se limitará a ejecutar programas.

También es posible lanzar la aplicación desde una consola y cerrar la consola, como intentó Bou:

$ LC_ALL=en_GB nohup tomboy & exit


Esto debería valer.

EDITO ahora que vuelvo a meterme en el hilo:

Si la solución deseada pasa por crear una entrada en el menú o lanzarlo quizás funcione esto:

bash -c "LC_ALL=en_GB tomboy"


Prueba a ver. Yo no uso gnome.
auxiliar escribió:El código del primer mensaje no son dos instrucciones: es una sola a la que se antepone el valor de una variable de entorno (LC_ALL en este caso). Supongo que no funcionará porque esto es sintaxis de bash y el lanzador ese (que no sé cuál es) se limitará a ejecutar programas.


Pensaba que eran 2 instrucciones por la variable, no sabía que fuera algo propio de bash. Entiendo, gracias.
auxiliar escribió:EDITO ahora que vuelvo a meterme en el hilo:

Si la solución deseada pasa por crear una entrada en el menú o lanzarlo quizás funcione esto:

Código: Seleccionar todo
bash -c "LC_ALL=en_GB tomboy"

Prueba a ver. Yo no uso gnome.


Lo he probado con alt+F2 y funciona. Me imagino que funcionará igual con lanzadores, mañana lo pruebo, me ahorraré scripts muy sencillos que tengo sólo para algunos lanzadores, del tipo "sleep X && programa". Gracias de nuevo.
amuchamu escribió:Lo he probado con alt+F2 y funciona. Me imagino que funcionará igual con lanzadores, mañana lo pruebo


Ya te digo yo que funciona XD

PD. he notado que poniendo lo que Auxiliar ha recetado,

bash -c "LC_ALL=en_GB tomboy"


la aplicación está en inglés pero sigue usando el diccionario español. Sin embargo, si lo modificamos,

bash -c "LANG=en_GB tomboy"


ya usa el diccionario inglés correctamente. ¿Sabéis el por qué de ese detalle?
Puede que sea porque cambias las locales, y eso solo le afecta a si mismo, pero como tienes la posibilidad de usar diccios de otro idioma, sea cual sea el idioma del programa, al usar LANG cambiaras cierto detalle que afecte al diccio. O algo asi xD

doc de gentoo: http://www.gentoo.org/doc/es/guide-loca ... =printable > ahi lo entenderas
Bou escribió:
amuchamu escribió:Lo he probado con alt+F2 y funciona. Me imagino que funcionará igual con lanzadores, mañana lo pruebo


Ya te digo yo que funciona XD

PD. he notado que poniendo lo que Auxiliar ha recetado,

bash -c "LC_ALL=en_GB tomboy"


la aplicación está en inglés pero sigue usando el diccionario español. Sin embargo, si lo modificamos,

bash -c "LANG=en_GB tomboy"


ya usa el diccionario inglés correctamente. ¿Sabéis el por qué de ese detalle?


Ni idea. Yo siempre he tenido entendido que:

a) La variable LANG es la de menor precedencia.
b) Cualquier LC_* tiene mayor prioridad que LANG; y
c) LC_ALL sobreescribe a todas.

Por ejemplo, yo tengo definido para el usuario normal LANG=es_ES@euro. Así que:

[usuario@cubolleta:~]$ locale
LANG=es_ES@euro
LC_CTYPE="es_ES@euro"
LC_NUMERIC="es_ES@euro"
LC_TIME="es_ES@euro"
LC_COLLATE="es_ES@euro"
LC_MONETARY="es_ES@euro"
LC_MESSAGES=es_ES@euro
LC_PAPER="es_ES@euro"
LC_NAME="es_ES@euro"
LC_ADDRESS="es_ES@euro"
LC_TELEPHONE="es_ES@euro"
LC_MEASUREMENT="es_ES@euro"
LC_IDENTIFICATION="es_ES@euro"
LC_ALL=


Si defino un LC_* partiticular:

[usuario@cubolleta:~]$ LC_NUMERIC=C locale
LANG=es_ES@euro
LC_CTYPE="es_ES@euro"
LC_NUMERIC=C
LC_TIME="es_ES@euro"
LC_COLLATE="es_ES@euro"
LC_MONETARY="es_ES@euro"
LC_MESSAGES=es_ES@euro
LC_PAPER="es_ES@euro"
LC_NAME="es_ES@euro"
LC_ADDRESS="es_ES@euro"
LC_TELEPHONE="es_ES@euro"
LC_MEASUREMENT="es_ES@euro"
LC_IDENTIFICATION="es_ES@euro"
LC_ALL=


Pero si me da por definir LC_ALL sobrescribe el resto:

[usuario@cubolleta:~]$ LC_NUMERIC=C LC_ALL=es_ES.UTF-8 locale
LANG=es_ES@euro
LC_CTYPE="es_ES.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=es_ES.UTF-8


El por qué actúe así tomboy con el diccionario, lo ignoro. Como ha dicho pho, simplemente, lo habrán programado así. Aunque yo creo que sería más correcto hacer caso a cuál es la variable LC_ALL que tiene preferencia sobre LANG. Eso sin saber cuál es la variable particular que define el idioma de un diccionario. Pero digo yo que será alguna de las listadas y LC_ALL sobrescribe todas.

No sé, cuando menos, y a menos que alguien tenga más argumentos que nosotros, tocaría dar un aviso de bug a los de tomboy.
9 respuestas