OVH Cloud OVH Cloud

Passage en langue anglaise

13 réponses
Avatar
Vincent Lefevre
Bonjour,

Sur une des machines en Debian/stable, toutes mes locales sont en
anglais, mais pourtant, les commandes renvoient du français:

titine:~> locale
LANG=en_US.iso88591
LC_CTYPE="en_US.iso88591"
LC_NUMERIC="en_US.iso88591"
LC_TIME="en_US.iso88591"
LC_COLLATE="en_US.iso88591"
LC_MONETARY="en_US.iso88591"
LC_MESSAGES="en_US.iso88591"
LC_PAPER="en_US.iso88591"
LC_NAME="en_US.iso88591"
LC_ADDRESS="en_US.iso88591"
LC_TELEPHONE="en_US.iso88591"
LC_MEASUREMENT="en_US.iso88591"
LC_IDENTIFICATION="en_US.iso88591"
LC_ALL=en_US.iso88591
titine:~> cp
cp: argument fichier manquant
Pour en savoir davantage, faites: cp --help .

Comment ça se fait?

Note: en_US.iso88591 est bien listé par "locale -a".

--
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

3 réponses

1 2
Avatar
Denis Barbier
On Tue, Aug 08, 2006 at 11:09:52PM +0200, Sylvain Sauvage wrote:
Mardi 8 août 2006, 22:33:02 CEST, Denis Barbier a écrit :
>[...]
> Si LANG=C (ou est une locale qui n'existe pas, ce qui est équivalent),
> le contenu de LANGUAGE est ignoré, les messages originaux sont écrits.
> Je ne connais pas la raison exacte, mais c'est fait exprès d'après les
> commentaires dans les sources.

C'est pour pouvoir parser la sortie d'un programme indépendamment de la
locale.

Exemples :
- 'ifconfig | grep adresse' ne fonctionne pas en anglais, donc à éviter ;
- de même, 'ifconfig | grep address' peut ne pas fonctionner : si la
locale de celui qui exécute le script est le français (même s'il s'agit
de root), c'est « adresse » qu'il faut chercher.

La solution est donc de fixer la locale dans le script/programme pour que
la sortie soit conforme à ce que l'on attend en entrée.

Et la seule « locale » qui soit sur tous les postes, c'est l'absence de
locale. Avec LANG=C, on est assuré de ne pas être perturbé par la locale.



Effectivement, cette explication est très logique, mais il faut utiliser
LC_ALL=C qui a une priorité supérieure à LANG ;)
Merci.

Denis


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Vincent Lefevre
On 2006-08-08 22:33:02 +0200, Denis Barbier wrote:
On Tue, Aug 08, 2006 at 10:01:00AM +0200, Vincent Lefevre wrote:
[...]
> Mais le fait que en* soit ignoré bien que l'exécutable contienne
> les messages en anglais, est-ce que cela te paraît normal, du point
> de vue de l'utilisateur? Y aurait-il une raison pour laquelle un
> utilisateur aurait besoin d'utiliser LANGUAGE=en:fr?

Hmmm, je ne comprends pas ta question.



Je veux dire: si l'utilisateur veut l'anglais de préférence, sinon
le français, devrait-il définir LANGUAGE=en:fr? (Auquel cas le
problème avec "en" inexistant doit être corrigé.) Ou alors laisser
LANGUAGE non défini et sélectionner l'anglais avec les LC_*?

> Obtient-on quelque chose de différent en définissant LANGUAGE=en (par
> exemple) et en ne définissant pas de langue (e.g. LANG=C), notamment
> si les fichiers contiennent des caractères non-ASCII?

Si LANG=C (ou est une locale qui n'existe pas, ce qui est équivalent),
le contenu de LANGUAGE est ignoré, les messages originaux sont écrits.
Je ne connais pas la raison exacte, mais c'est fait exprès d'après les
commentaires dans les sources.



Je repose ma question. Est-ce qu'on obtient quelque chose de différent
entre (1) et (2)?
1. On définit LANGUAGE=en.
2. On laisse LANGUAGE et LC_ALL non définis et on utilise LANG=C.

En particulier, que se passe-t-il dans ces deux cas s'il y a un fichier
/usr/share/locale/en/LC_MESSAGES/<domaine>.mo?

PS: je n'aurai peut-être pas accès à Internet ces prochains jours,
auquel cas je lirai tout à mon retour chez moi...

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Vincent Lefevre
On 2006-08-08 23:52:24 +0200, Denis Barbier wrote:
On Tue, Aug 08, 2006 at 11:09:52PM +0200, Sylvain Sauvage wrote:


[...]
> Exemples :
> - 'ifconfig | grep adresse' ne fonctionne pas en anglais, donc à éviter ;
> - de même, 'ifconfig | grep address' peut ne pas fonctionner : si la
> locale de celui qui exécute le script est le français (même s'il s'agit
> de root), c'est « adresse » qu'il faut chercher.
>
> La solution est donc de fixer la locale dans le script/programme pour que
> la sortie soit conforme à ce que l'on attend en entrée.
>
> Et la seule « locale » qui soit sur tous les postes, c'est l'absence de
> locale. Avec LANG=C, on est assuré de ne pas être perturbé par la locale.

Effectivement, cette explication est très logique, mais il faut utiliser
LC_ALL=C qui a une priorité supérieure à LANG ;)



Oui. Et LANGUAGE est ignoré, surtout parce que c'est une extension,
de façon à ce que les scripts POSIX génériques (qui ne connaissent
pas LANGUAGE) continuent de fonctionner avec juste un LC_ALL=C.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2