Sometimes I write things, sometimes I don't.

To content | To menu | To search

Lancer un programme en anglais sans changer la langue

Il peut être intéressant, pour une raison ou une autre, de vouloir utiliser un programme en anglais sur un système configuré dans une autre langue. Dans mon cas, je voudrais pouvoir réaliser simplement quelques captures d'écran de GNOME Split en anglais.

Dans un tel cas, il serait forcément assez lourd de changer la langue de tout le système pour lancer un logiciel. C'est là qu'intervient la variable d'environnement LANG. C'est avec cette variable que nous allons jouer. Pour commencer, on peut entrer la commande suivante dans un terminal.
~$ echo $LANG

Si votre système est en français comme le mien, vous devriez probablement avoir comme résultat la chaîne de caractères suivante : fr_FR.UTF-8.

Pour lancer un logiciel en anglais, on va modifier cette variable seulement dans le "terminal" où l'on va lancer le programme. Pour cela, on crée un script qui va donner à la variable LANG la valeur C puis exécuter la ligne de commande passée en argument du script (ligne de commande identique à celle que l'on utiliserait pour lancer le logiciel normalement).

Pour faire le script, on crée puis édite un fichier nommé (comme on veut en fait) english.sh et on y met le code suivant :

#!/bin/bash
LANG=C "$@"


Ensuite, on enregistre puis on rend le script exécutable.
~$ chmod +x english.sh

Finalement, on lance le script et on passe en paramètre la ligne de commande à exécuter.
~$ ./english.sh transmission

En voilà ce que ça donne (un peu de pub ça fait pas de mal non roh).

Comments

1. On Saturday 30 January 2010, 19:11 by billy bob

yop,
un peu de pub oui, tout le temps non
je veux dire c’est bien tu fais ton petit soft et tout
mais on s’en tamponnes un peu les parties génitales sur le planet ubuntu-fr
donc merci de cesser ta pub continuelle sur le planet

le prend pas mal hein ça n’a rien de perso )

2. On Saturday 30 January 2010, 19:57 by Guillaume

C’est vrai que la pub “continuelle” que je fais est énorme hein. J’ai parlé de deux version de mon soft j’en suis à la 5 ème sans compter le faite que j’ai mis en ligne le site, le Trac, acheté le nom de domaine et tout. Ça peut intéresser du monde, je communique, j’appelle pas ça de la pub, devenir célèbre, conquérir le monde, toussa, c’est pas mon truc.

Ici j’ai simplement mis une capture d’écran (la note entre parenthèse était plus humoristique qu’autre chose, mais bon). Du coup je vais faire de la “pub” pour un autre logiciel (qui mérite d’être connu lui).

Bref j’ai édité voilà…

3. On Saturday 30 January 2010, 20:20 by BenP

Billy bob t’as vraiment rien compris à l’article et ta remarque est plus que déplacée. Va te les tamponner ailleurs que sur le planet stp.

Cet article est intéressant et traite simplement du système linux, plus précisément des variables d’environnement. Peu importe le logiciel qui sert à l’exemple.

4. On Sunday 31 January 2010, 09:18 by Naabster

Hello,

Article intéressant :)

Il y a cependant une petite chose que je ne comprend pas…
La valeur “C” correspond à la langue Anglaise, pu je n’ai vraiment rien compris ?

Je ne suis pas trop familier du bash, excusez moi d’avance si ma question vous parait complètement stupide.

Merci.

5. On Sunday 31 January 2010, 12:16 by Ned

je plussoie 2 fois :

- tout à fait d’accord avec BenP, le choix de l’exemple n’a que valeur d’exemple, et ta volonté de faire d’une pierre 2 coups relève de l’astuce et non pas du matraquage

- comme Naabster, je ne pige pas la valeur “C” : peux-tu nous éclairer stp ?

6. On Sunday 31 January 2010, 12:49 by Krs

Oui, bonne question, si on veut avoir de l’italien on met quoi?

7. On Sunday 31 January 2010, 14:40 by Guillaume

@Naabster, @Ned, @Krs : Alors en effet la valeur “C” ne correspond pas vraiment à la langue anglais. Normalement, on utilise la variable LANG de cette manière :

LANG = langue_territoire.codeset@modificateur

d’où pour le français fr_FR.UTF-8. Normalement pour mettre sa variable en anglais et vraiment anglais on devrait utiliser en_US.UTF-8 par exemple.
Cependant, il existe 2 cas particulier le cas de la valeur C et celui de la valeur POSIX. Ces 2 cas ici permettent de mettre le logiciel en anglais sans se casser la tête.

Pour plus d’informations (en anglais), il y a une bonne grosse lecture par là (voir la section “Internationalisation Variables”).
http://www.opengroup.org/onlinepubs…

8. On Sunday 31 January 2010, 16:15 by Naabster

Merci beaucoup pour l’explication.

C’est, de ce fait, plus clair et compréhensible :)

Merci aussi pour le complément d’information via le lien !

9. On Sunday 31 January 2010, 17:02 by tiky

Bonjour,

Il y a plus simple et plus propre; tu crées un alias comme ceci :
alias english=’LANG=en_US.UTF-8 $($@)’

Tu peux ensuite le placer dans ton bashrc ou zshrc.

10. On Monday 1 February 2010, 06:32 by Yannick

Ou un peu plus simple:

$ LC_ALL=C transmission

Cordialement

11. On Tuesday 2 February 2010, 01:07 by nouga67

c’est très interressant tout ça.
Mais pour moi ce serait plutot mettre une application en francais car mon system n’est pas en franacais

12. On Tuesday 2 February 2010, 11:14 by Matthias Hawran

Merci pour cette astuce intéressante.
Inconsciemment j’en cherchais une comme ça, car je teste aussi d’autres logiciels et je me galérais à lire les .po pour trouver les strings originales.

-1 pour billy bob (il est où le lien pour moinsser ?)

Franchement je n’aurais pas édité le post d’un iota (je n’ai pas vu l’original), c’est ton blog, tu écris ce que tu veux après tout.
Où est la liberté d’expression ?

Et longue vie à des projets comme le tien.

Cheers,
Matthias

13. On Wednesday 10 February 2010, 16:32 by Buzz

Comme nouga67, cette astuce m’intéresse pour mettre un logiciel ponctuellement en français sur mon Ubuntu en anglais.
J’ai modifié le contenu du fichier avec LANG=fr_FR.UTF-8 “$@”
Mais au lancement de transmission, le menu reste en anglais et je reçois:

(process:19935): Gtk-WARNING **: Locale not supported by C library. Using the fallback ‘C’ locale.

Une petite solution please ?

14. On Thursday 11 February 2010, 15:26 by Guillaume

@Buzz : Il faut bien entendu que la langue que tu veux utiliser soit disponible sur ton système (ce qui n’a pas l’air d’être le cas). Les fichiers de langue sont introuvables, donc la langue est considérée comme non-supportée, donc GTK utilise la valeur par défaut correspondant à “C”.

15. On Sunday 14 February 2010, 18:40 by Buzz

Merci pour la précision Respawner, ça marche désormais au poil pour presque tous les programmes. Mais pas pour kompozer malheureusement qui reste en anglais et qui me renvoie: (kompozer-bin:18466): GLib-WARNING **: g_set_prgname() called multiple times
Dommage car je travaille sur un tuto sur kompozer…

16. On Sunday 14 February 2010, 19:49 by Guillaume

@Buzz : L’erreur est due à une modification de glib qui nécessite que le programme soit modifié également. Il n’y a rien de méchant :)