DebianベースのシステムのLANGおよびLANGUAGE環境変数


22

一部のプログラムでは、LANGとLANGUAGE環境変数の両方がユーザーインターフェイス言語を決定するために使用されているようです。

これらの変数の正確なセマンティクスは何ですか?また、正しい使用法についてはどこで読むことができますか?locale(1)のマンページには、環境変数のLC_ *ファミリのみが記載されています。さらに、一般的にはLC_ALL変数もありますが、これも説明されていません。

回答:


23

LANGLC_*変数によって直接設定されないすべてのカテゴリの設定が含まれます。

LC_ALLすべてのオーバーライドするために使用されているLC_*LANGしてをLANGUAGE。通常のユーザー環境では設定しないでくださいが、国際化されたコマンドの正確な出力に依存するスクリプトを作成する場合に役立ちます。

LANGUAGEメッセージ言語(as LC_MESSAGES)を複数の値に設定するためfr:de:enに使用されます。たとえば、フランス語のメッセージが存在する場合はそれを使用するように設定します。そうでない場合は、ドイツ語のメッセージを使用し、ドイツ語もフランス語も利用できない場合は英語にフォールバックします。


LANGUAGEに関するドキュメントはどこで入手できますか?LC_MESSAGESと相互に排他的ですか?
aef

1
@Rémiは、なぜLC_ALL使用すべきでないのかを詳しく説明できますか?
エドゥアールロペス

1
言うまでもありません。LC_ALLを設定した場合よりもLANGを設定した場合の方が柔軟性があります。LANGを何かに、LC_COLLATEを他の何かに設定できます。LC_ALLを設定すると、他のすべての構成が非表示になります。
レミ

2
LC_ALLオーバーライドとは思わないLANGUAGE:1.意味が異なる(順序[eg:fr:de:en]と特性[eg:fr_FR])
Murmel

6
2. GNU getTextドキュメントの章言語の優先リストの指定の状態:gettext gives preference to LANGUAGE over LC_ALL and LANG。さらに、ロケール環境変数の章には次のように記載されています1. LANGUAGE 2. LC_ALL [...]
。– Murmel

10

マンページをご覧くださいlocale(7)。これLANGはフォールバック設定であり、LC_ALL個別のLC_*設定をすべて上書きすることを説明しています。


3
man 7ロケールはコマンドです
-Smile4ever

2

参照用に、ロケールシステムはGNU GetTextであり、その完全なドキュメントはgettext-docパッケージ(Debian / Ubuntu)で入手できます。

または、LANGおよびLANGUAGE環境変数の信頼できる詳細なドキュメントを含むオンラインマニュアルがあり ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.