共通デスクトップ環境 プログラマーズ・ガイド (国際化対応編)

ロケール

ほとんどの単一画面のクライアントは、実行時に環境変数 (通常は $LANG または xnlLanguage リソース) の設定で決定される単一のロケールで動作します。環境を制御するには LC_ALLLC_CTYPELANG などのロケール環境変数を使用できます。詳細は、第 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 サーバに接続するすべてのクライアントに影響する可能性があります。