Next: The LANGUAGE variable, Previous: Locale Names, Up: Setting the POSIX Locale [Contents][Index]
localeは複数のlocaleカテゴリー(locale categories)から構成されています(Aspectsを参照してください)。プログラムがlocaleに依存する値を参照する場合は、以下の環境変数を優先度順に参照します:
LANGUAGE
LC_ALL
LC_xxx
は、xxxに対応するlocaleカテゴリーです:
LC_CTYPE
, LC_NUMERIC
, LC_TIME
, LC_COLLATE
,
LC_MONETARY
, LC_MESSAGES
, ...
LANG
変数に空の値がセットされている場合は、無視されます。
LANG
はlocaleを指定するときに通常使われる環境変数で、通常はユーザーもこの変数にlocaleを設定します(他の変数がシステムにより設定されていなければ、/etc/profileまたはそれに類する初期化ファイルで設定します)。
LC_CTYPE
、LC_NUMERIC
、LC_TIME
、LC_COLLATE
、LC_MONETARY
、LC_MESSAGES
等は、対応するlocaleのカテゴリーでLANG
の設定をオーバーライドするときに使用されます。たとえば、あなたがSpainに住むSwedishのユーザーで、プログラムに数値や日付についてはSpanishの規則で表示し、メッセージだけをSwedishで表示させたいと仮定します。その場合にはlocaledef
プログラムで、‘sv_ES’または‘sv_ES.UTF-8’という名前のlocaleを作成する必要があります。しかし、単にLANG
変数にes_ES.UTF-8
を設定し、LC_MESSAGES
変数にsv_SE.UTF-8
という、オペレーティングシステムに事前にインストールされている2つのlocaleを設定することで、同じ効果を得ることができます。
LC_ALL
は、これらのすべてをオーバーライドするための変数です。これは通常、特定のプログラムを実行するスクリプトで使用されます。たとえばGNU
autoconfにより生成されたLC_ALL
スクリプトは、configurationのテストがlocaleに依存した方法で行われないように、LC_ALL
を使用します。
残念ながらいくつかのシステムでは、/etc/profile等の初期化ファイルでLC_ALL
が設定されています。したがってLANG
を設定する場合、ユーザーはまずこの設定を解除し、必要なら他のLC_xxx
も解除しなければなりません。
LANGUAGE
変数については、つぎのセクションで説明します。