Page 1 sur 1

[locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 19:11
par OlaffGrossBaff
Bonjour à tous,

Je tente de lancer un programme dans un langue différente de celle configurée pour le système, sans succès.
J'ai le système réglé globalement en anglais, je veux lancer un programme en français ou autre langue, pontcuellement.

J'ai bien les locales décommentées dans /etc/locale.gen

Code : Tout sélectionner

en_US.UTF-8
fr_FR.UTF-8
ja_JP.UTF-8
zn_CN.UTF.8
Puis j'ai bien lancé en root locale-gen.

Code : Tout sélectionner

$ locale -a
C
en_US.utf8
fr_FR.utf8
ja_JP.utf8
zn_CN.utf8
POSIX
Puis, comme suggéré dans le wiki, je lance, mettons Gimp en français :

Code : Tout sélectionner

$ env LANG=fr_FR.UTF-8 gimp 
GEGL-geglmodule.c-Message: Module '/usr/lib/gegl-0.2/ff-load.so' load error: /usr/lib/gegl-0.2/ff-load.so: undefined symbol: av_read_packet
Skipping duplicate plug-in: '/usr/lib/gimp/2.0/plug-ins/dbp'
Le programme se lance irrémédiablement en anglais. Une idée de où cela peut venir ?

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 19:24
par benjarobin
Quelle est la sortie de :

Code : Tout sélectionner

echo $LANG
env | grep LC_

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 19:39
par OlaffGrossBaff
Voici les sorties :

Code : Tout sélectionner

$ echo $LANG
en_US.utf8
et

Code : Tout sélectionner

$ env | grep LC_
LC_MESSAGES=en_US.utf8

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 19:49
par benjarobin
Étrange... Pourquoi LC_MESSAGES est défini ? Tu as plusieurs solutions:

Code : Tout sélectionner

unset LC_MESSAGES
export LANG=fr_FR.UTF-8
ou

Code : Tout sélectionner

export LC_ALL=fr_FR.UTF-8
Puis tu lances : gimp

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 20:33
par OlaffGrossBaff
J'ai testé les deux solutions, aucune ne marchent (Gimp lancé selon le wiki. J'ai aussi essayé avec "gimp" tout seul, pour faire bonne mesure).

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 21:16
par benjarobin
Si tu fait ceci, Gimp est obligé de se lancer en français :

Code : Tout sélectionner

export LC_ALL=fr_FR.UTF-8
gimp
Sauf bien sur si tu as modifié les préférences par défaut de Gimp...
Quelle est la sortie de :

Code : Tout sélectionner

grep -i lang ~/.gimp-2.8/gimprc

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 22:02
par OlaffGrossBaff

Code : Tout sélectionner

grep -i lang ~/.gimp-2.8/gimprc
Il n'y a rien dans gimprc.
J'ai essayé de lancer plusieurs applications : gnucash, mousepad, vlc... même résultat : tous sortent en anglais.
J'ai aussi essayé avec le japonais à la place du français : même résultat.

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 22:08
par benjarobin
Quelle est la sortie de :

Code : Tout sélectionner

ls -l /usr/share/locale/fr/LC_MESSAGES/
Sinon tu lances bien tout depuis la même console ?
Et essaye de forcer la langue française dans l'interface de Gimp pour tester si ce n'est pas un souci avec Gimp lui même...

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 22:38
par OlaffGrossBaff
Forcer la langue dans les préférences de Gimp marche.

Code : Tout sélectionner

$ cat ~/.gimp-2.8/gimprc
(language "fr")
(monitor-xresolution 97.000000)
(monitor-yresolution 97.000000)
Bien sûr, Gimp n'était qu'un exemple.

Oui, je lance bien Gimp (et les autres programmes) par la même console.

Code : Tout sélectionner

$ ls -l /usr/share/locale/fr/LC_MESSAGES/
résultat ici

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mar. 25 nov. 2014, 23:36
par benjarobin
Je comprends de moins en moins...
Quelle est la sortie de

Code : Tout sélectionner

LC_ALL=en_US.UTF-8 ls 123456
LC_ALL=fr_FR.UTF-8 ls 123456
Personnellement j'ai respectivement ceci

Code : Tout sélectionner

ls: cannot access 123456: No such file or directory
ls: impossible d'accéder à 123456: Aucun fichier ou dossier de ce type
Peux tu donner la sortie complète via pastebin de : env
Et finalement peux tu donner aussi la sortie de :

Code : Tout sélectionner

export LC_ALL=fr_FR.UTF-8
export LANG=fr_FR.UTF-8
locale

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 00:13
par OlaffGrossBaff
Alors :
- sortie de env ici.

- ensuite,

Code : Tout sélectionner

LC_ALL=en_US.UTF-8 ls 123456
LC_ALL=fr_FR.UTF-8 ls 123456
=> respectivement :

Code : Tout sélectionner

ls: cannot access 123456: No such file or directory
ls: cannot access 123456: No such file or directory
(oui, la même chose, les deux en anglais)

- enfin,

Code : Tout sélectionner

export LC_ALL=fr_FR.UTF-8
export LANG=fr_FR.UTF-8
locale
donne :

Code : Tout sélectionner

LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=fr_FR.UTF-8

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 09:24
par FoolEcho
OlaffGrossBaff a écrit :LANGUAGE=en_US.utf8
Dans tes variables d'environnement, tu as ce réglage qui supplante LANG (par défaut, il ne me semble pas que LANGUAGE soit défini par quoi que ce soit donc vérifie dans ton .bash_profile ou .bashrc ou fichiers du même ordre selon ton shell ; pour ta session en cours il te suffit de faire export LANGUAGE= puis de réitérer les essais avec LANG :chinois: ).

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 09:31
par benjarobin
LC_ALL surplante normalement LANG, comme LC_MESSAGES... Mais pas LANGUAGE
Je viens d'apprendre un truc... Fait un unset de LANGUAGE comme de LC_MESSAGES et cela ira mieux

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 09:56
par FoolEcho
benjarobin a écrit :LC_ALL surplante normalement LANG, comme LC_MESSAGES... Mais pas LANGUAGE
Je viens d'apprendre un truc...
Pour info: :wink:
https://www.gnu.org/software/gettext/ma ... ables.html
https://www.gnu.org/software/gettext/ma ... E-variable.
:chinois:

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 12:12
par OlaffGrossBaff
Sur ces révélations, j'ai bien regardé dans tous les fichiers concernant bash (et zsh, que j'utilise) : aucun réglage de la variable LANGUAGE, ni LANG.

Code : Tout sélectionner

$ cat .bash* | grep -i LANG
$ cat .zsh* | grep -i LANG
J'ai appliqué le unset à LC_MESSAGES ainsi qu'à LANGUAGE, puis export

Code : Tout sélectionner

$ unset LC_MESSAGES
$ unset LANGUAGE
$ export LANGUAGE=fr_FR.UTF-8 
Puis fait ces tests,

Code : Tout sélectionner

$ env LANGUAGE=fr_FR.UTF-8 gimp (après avoir remis le réglage système)
$ env LANGUAGE=fr_FR.UTF-8 gnucash
$ env LANGUAGE=fr_FR.UTF-8 mousepad
Tous se lancent toujours en anglais.

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 12:55
par benjarobin
Sinon LANGUAGE comme LC_MESSAGES sont forcément définies par quelque chose, car par défaut ces variables ne sont pas positionnées
Donne nous la sortie de ceci, et dit nous la langue de gimp

Code : Tout sélectionner

unset LC_MESSAGES
unset LANGUAGE
export LC_ALL=fr_FR.UTF-8
export LANG=fr_FR.UTF-8
env
gimp
Peux tu nous donner aussi la sortie depuis ton utilisateur de :

Code : Tout sélectionner

grep -RE "(LANG|LC_MESSAGES)" /etc ~/.[^.]* 2>/dev/null

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 13:19
par FoolEcho
OlaffGrossBaff a écrit : J'ai appliqué le unset à LC_MESSAGES ainsi qu'à LANGUAGE, puis export

Code : Tout sélectionner

$ unset LC_MESSAGES
$ unset LANGUAGE
$ export LANGUAGE=fr_FR.UTF-8 
Attention, tu n'as pas à positionner LANGUAGE du tout, ni à la définir au moment d'un lancement de programme (mieux vaut utiliser LANG, précisément si tu veux changer l'interface à la volée) !

... même si je ne m'explique pas le comportement que tu observes ensuite... :?

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 13:34
par OlaffGrossBaff

Code : Tout sélectionner

unset LC_MESSAGES
unset LANGUAGE
export LC_ALL=fr_FR.UTF-8
export LANG=fr_FR.UTF-8
env
gimp
Gimp sort en français, ainsi que Mousepad. Hourra !
Il y a ici l'indice de ce qui coince, je suppose.
C'est en tout cas une base pour faire un petit script.

Euh..., pour la sortie de

Code : Tout sélectionner

grep -RE "(LANG|LC_MESSAGES)" /etc ~/.[^.]* 2>/dev/null
c'est juste *énorme*... (il continue à mouliner même, maintenant...)
Il n'y a pas possibilité d'appliquer un filtre quelconque ?
Je doute que tout rentre même dans pastebin.
Et puis passer le tout en revue, c'est inconsidérable.

@FoolEcho, il faudra que je relise de la doc sur les variables des langues (notamment les liens que tu as laissé plus haut). En effet, je m'y perd un peu.

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 13:54
par benjarobin
Normalement la sortie devrait être très très limité... Testé sur mon PC, cela se limite à moins de 100 lignes... Sauf si tu un wine d'installé et de configuré ou teamviewer...
Et non le filtre est déjà appliqué...
Essaye avec

Code : Tout sélectionner

grep -rE "(LANG|LC_MESSAGES)" /etc ~/.[^.]* 2>/dev/null
J'ai appris encore une chose, la différence entre -r et -R de grep.

Re: [locales] impossible de changer la langue pour un seul programme

Publié : mer. 26 nov. 2014, 14:16
par OlaffGrossBaff
J'ai bien wine d'installé.
La deuxième commande donne un résultat tout aussi gigantesque.
Edit: pour ma part, j'apprend les variables des langues, hum hum