web-dev-qa-db-ja.com

Debianのコマンドラインソフトウェアで言語を変更する方法

サーバー(Debian GNU/Linux 6.0.6(squeeze))で「exif」を使用していますが、開発用コンピューター(Mac OS XからMacPort)とは異なり、フランス語で実行されます。

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

/ etc/default/localeを確認しましたが、

LANG=fr_FR
LANGUAGE=fr_FR:fr

私が変更した

LANG=en_EN
LANGUAGE=en_EN:en

何の影響もなく。この機械にこのソフトウェアを英語で実行させる方法についてのヒントはありますか?英語のexif-dataラベルが必要だからです:)

ありがとう!

2
Amo__

_/etc/default/locale_ファイルはuhm ...「グローバル」デフォルトを設定します。つまり、これらのデフォルトは、起動時に「トップレベル」のシェルによって読み取られ、実行されるプロセスによって継承されます。

簡単に言えば、これはそのようなデフォルトが以下に適用されることを意味します:

  • _/etc/init.d_にあるシェルスクリプトを使用して開始されたすべてのデーモン(バックグラウンドで実行されているプログラム)。
  • ログインセッションで実行するインタラクティブシェル。

したがって、そのファイルを変更するだけで再起動が必要になります。

ただし、そのファイルの内容は、いわゆる "環境変数" の束を設定するシェルスクリプトにすぎないため、特定のプログラムを実行するには、そのプログラムにさまざまな内容を表示させる必要があります。これらの変数。

これを実現する最も簡単な方法は、プログラムを実行する前に割り当てを配置することです。つまり、シェルプロンプトで次のことができます。

_$ LANG=en exif -h
_

exifが英語で話しているのを参照してください(ここでの_$_文字はシェルプロンプトを示します。入力しないでください)。

2番目の方法は、現在のシェル内のすべてのプログラムに変数の新しい内容を表示させることです。これは、@ clarkwが示したように、それらを「エクスポート」することで実行されます。エクスポートされた変数とその内容は、シェルから実行されるすべてのプロセスの環境に継承されるため、以下も機能します。

_$ export LANG=en
$ exif -h
_

または

_$ LANG=en
$ export LANG
$ exif -h
_

これらの環境変数については、 locale(1)マニュアルページ で説明されています。

そして最後のヒント:_/etc/default/locale_の内容を手動で変更しないでください—それを管理するためにDebianの方法を使用してください:run

_# dpkg-reconfigure locales
_

これにより、最初にコンパイルしてインストールするロケール(この手順はスキップできます)を尋ねられ、次にどのロケールをデフォルトとして選択するかを尋ねられます。

更新:ここに ロケール専用のDebian wikiのページ これは環境変数を含む必要なすべてをほぼ説明しています。

4
kostix