ほとんどの単一画面のクライアントは、実行時に環境変数 (通常は $LANG または xnlLanguage リソース) の設定で決定される単一のロケールで動作します。環境を制御するには LC_ALL、LC_CTYPE、LANG などのロケール環境変数を使用できます。詳細は、第 5 章「Xt 依存性と Xlib 依存性」の 「Xt ロケール管理」を参照してください。
ロケールの LC_CTYPE カテゴリは、環境によって、実行時に使用されるロケール固有の機能を識別するのに使用されます。ツールキットにより読み込まれるフォントおよび入力メソッドは、LC_CTYPE カテゴリで決定されます。
国際化対応されたプログラムは、ユーザの希望するロケールを設定するために XtSetLanguageProc()関数 (デフォルトでは setlocale()) を呼び出すようになっています。ロケールを設定するために setlocale()関数を呼び出すライブラリはないので、特定のロケールまたは実行時に読み込まれた値で XtSetLanguageProc()を呼び出すのはアプリケーションの責任です。アプリケーションが国際化対応なのにXtSetLanguageProc()を使用しない場合は、次の優先順位のソースのいずれかから、setlocale()関数に渡すロケール名を獲得してください。
コマンド行オプション
リソース
空の文字列 ("")
空の文字列を指定すると、setlocale() 関数がロケールの設定を決定するのに環境変数 $LC_* と $LANG を使用します。特に、setlocale (LC_ALL,"") は、表 1-1 に示す順にさまざまなロケール・カテゴリの環境変数のためにロケールがチェックされ選択されます。
表 1-1 ロケール・カテゴリ
カテゴリ |
第 1 環境変数 |
第 2 環境変数 |
第 3 環境変数 |
---|---|---|---|
LC_CTYPE: |
LC_ALL |
LC_TYPE |
LANG |
LC_COLLATE: |
LC_ALL |
LC_COLLATE |
LANG |
LC_TIME: |
LC_ALL |
LC_TIME |
LANG |
LC_NUMERIC: |
LC_ALL |
LC_NUMERIC |
LANG |
LC_MONETARY: |
LC_ALL |
LC_MONETARY |
LANG |
LC_MESSAGES: |
LC_ALL |
LC_MESSAGES |
LANG |
ツールキットはすでに標準のコマンド行オプション (-xnllanguage) およびリソース (xnlLanguage) を定義しています。また、リソースの値は RESOURCE_MANAGER サーバでも設定できます。その場合、RESOURCE_MANAGER サーバに接続するすべてのクライアントに影響する可能性があります。