Come modificare la lingua in un software di row di command su debian

Sto usando 'exif' su un server (Debian GNU / Linux 6.0.6 (squeeze)) e diverso dal mio computer dev (Mac OS X tramite MacPort) viene eseguito in francese:

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 

Ho controllato il mio / etc / default / locale ed è stato

 LANG=fr_FR LANGUAGE=fr_FR:fr 

che ho cambiato

 LANG=en_EN LANGUAGE=en_EN:en 

senza alcuna conseguenza. Qualche suggerimento su come forzare questa macchina per eseguire questo software in inglese? Perché ho bisogno di avere etichette exif-data in inglese 🙂

Grazie !

Il /etc/default/locale imposta i valori predefiniti uhm … "global". Ciò significa che questi valori predefiniti vengono letti da qualsiasi shell "superiore" quando viene avviato e viene successivamente ereditato dai processi in esecuzione.

Storia lunga breve, questo significa che tali impostazioni predefinite sono applicate a:

  • Tutti i demoni (programmi in esecuzione in background) quando vengono avviati utilizzando script di shell situati in /etc/init.d .
  • Le connessioni interattive eseguite nella session di accesso.

Così solo cambiare il file richiede un riavvio.

Ma poiché il contenuto di questo file è solo uno script di shell che definisce un gruppo di cosiddetti "variables di ambiente" , per eseguire un determinato programma è sufficiente fare in modo che il programma veda contenuti diversi di queste variables.

Il modo più semplice per raggiungere questo objective è quello di mettere il proprio incarico prima di eseguire il programma, vale a dire, al prompt della shell che puoi fare:

 $ LANG=en exif -h 

e vedere exif parla con te in inglese (il carattere $ qui indica un prompt di shell – non digitarlo).

Il secondo modo è quello di rendere tutti i programmi nella shell corrente vedere il nuovo contenuto delle variables; questo viene fatto tramite la loro "esportzione", come @clarkw ha mostrato: una variabile esportta e il suo contenuto sono ereditati dall'ambiente di tutti i processi eseguiti dalla shell, quindi funziona anche quanto segue:

 $ export LANG=en $ exif -h 

o

 $ LANG=en $ export LANG $ exif -h 

Queste variables di ambiente sono descritte nella pagina manuale locale(1) .

E l'ultimo suggerimento: non modificare manualmente il contenuto di /etc/default/locale – utilizzare il modo Debian per gestirlo: eseguire

 # dpkg-reconfigure locales 

che prima ti chiede quali localizzazioni compilare e installare (puoi saltare questo passaggio) e poi quale scegliere come predefinito.

Aggiornamento: ecco una pagina del Debian wiki dedicata a locales che spiega abbastanza tutto quanto necessario, incluse le variables di ambiente.