Re: Passage en langue anglaise
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
Reply to: