La variable d'environnement LANG sous Linux, contient la valeur liée aux paramètres locaux (langue, clavier, ...).
Elle vaut en général quelquechose comme ça:
fr_FR.utf8
es_EC.utf8
en_US.utf8
etc
Mais parfois, on voit cette variable LANG changer de valeur. En particulier, lors d'une compilation en langage C.
On voit alors:
LANG=C
Mais cela n'a (presque) rien a voir avec le fait que c'est le langage C qui est en jeu.
La "locale" C est une convention POSIX qui permet d'anticiper les sorties de certains outils tels que grep. Cette locale C permet en outre d'augmenter les performances de ces mêmes outils, en n'utilisant pas l'UTF8.
Enfin, la langue de cette locale est l'anglais. Eh oui.
Du coup au lieu de faire ça:
$ echo $LANG
$ fr_FR.utf8
$ LANG=C
$ echo oui | commande
On fait ça:
$ echo $LANG
$ fr_FR.utf8
$ LANG=C
$ echo yes | commande