Comment changer de langue dans un logiciel en ligne de commande sous debian

2

J'utilise 'exif' sur un serveur (Debian GNU / Linux 6.0.6 (squeeze)) et contrairement à mon ordinateur de développement (Mac OS X via MacPort), il fonctionne en français:

exif -h
Utilisation: exif [OPTION...] fichier
  -v, --version                      Display software version
  -i, --ids                          Montre les ID plutôt que les noms des marqueurs
  -t, --tag=marqueur                 Sélection du marqueur
      --ifd=IFD                      Sélection de l'IFD
  -l, --list-tags                    Liste tous les marqueurs EXIF
  -|, --show-mnote                   Show contents of tag MakerNote
      --remove                       Supprime le marqueur ou l'ifd
  -s, --show-description             Montre la description du marqueur
  -e, --extract-thumbnail            Extrait la vignette
  -r, --remove-thumbnail             Supprime la vignette
  -n, --insert-thumbnail=FICHIER     Insère le FICHIER comme vignette
      --no-fixup                     Do not fix existing tags in files
  -o, --output=FICHIER               Write data to FILE
      --set-value=STRING             Value of tag
  -c, --create-exif                  Create EXIF data if not existing
  -m, --machine-readable             Output in a machine-readable (tab delimited) format
  -w, --width=WIDTH                  Width of output
  -x, --xml-output                   Output in a XML format
  -d, --debug                        Show debugging messages

Je vérifie mon / etc / default / locale et c’est

LANG=fr_FR
LANGUAGE=fr_FR:fr

que j'ai changé en

LANG=en_EN
LANGUAGE=en_EN:en

sans aucune conséquence. Des astuces sur la façon de forcer ce machin à exécuter ce logiciel en anglais? Parce que j'ai besoin d'avoir des étiquettes exif-data en anglais :)

Merci !

Amo__
la source

Réponses:

4

Le /etc/default/localefichier définit les uhm ... "global" par défaut. Cela signifie que ces valeurs par défaut sont lues par tout shell "de niveau supérieur" lors du démarrage, puis sont héritées par les processus exécutés.

En résumé, cela signifie que ces valeurs par défaut sont appliquées à:

  • Tous les démons (programmes exécutés en arrière-plan) sont démarrés à l’aide de scripts shell situés dans /etc/init.d.
  • Coques interactifs que vous exécutez dans votre session de connexion.

Donc, changer simplement ce fichier nécessite un redémarrage.

Mais, comme le contenu de ce fichier est juste un script shell qui définit un ensemble de soi-disant "variables d'environnement" , pour effectuer un programme particulier, vous devez simplement lui faire voir le contenu différent de ces variables.

Le moyen le plus simple pour y parvenir consiste simplement à placer leur affectation avant l'exécution du programme, c'est-à-dire qu'à l'invite de votre shell, vous pouvez effectuer les opérations suivantes:

$ LANG=en exif -h

et voyez vous exifparler en anglais (le $caractère ici désigne une invite du shell - ne le tapez pas).

La seconde consiste à faire en sorte que tous les programmes du shell actuel voient le nouveau contenu des variables; ceci se fait via "exportation", comme l'a montré @clarkw: une variable exportée et son contenu sont hérités par l'environnement de tous les processus exécutés à partir du shell. Les opérations suivantes fonctionnent donc également:

$ export LANG=en
$ exif -h

ou

$ LANG=en
$ export LANG
$ exif -h

Ces variables d'environnement sont décrites dans la locale(1)page de manuel .

Et dernier conseil: ne modifiez pas le contenu de /etc/default/localemanuellement - utilisez la méthode Debian pour le gérer: exécutez

# dpkg-reconfigure locales

qui vous demandera d’abord quelles régions compiler et installer (vous pouvez ignorer cette étape), puis laquelle choisir par défaut.

Mise à jour: voici une page du wiki Debian dédiée aux locales qui explique à peu près tout ce qui est nécessaire, y compris les variables d’environnement.

Kostix
la source
C'est le moyen de changer de langue sur une distribution basée sur Debian.
Jérémie
Merci beaucoup. Maintenant, mon exif est en anglais :) J'ai créé dpkg-reconfigure, au cas où il y aurait vars de type incorrect dans / etc / default / locale hier.
Amo__