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

X ロケール管理

X ロケールは、ホスト環境に定義された 1 つ以上のロケールをサポートします。Xlib は ANSI (米国規格協会) C ライブラリに準拠しており、ロケール通知は setlocale() 関数で行います。setlocale() 関数は、ホスト C ライブラリと Xlib の両方のロケール・オペレーションを構成します。Xlib のオペレーションは LC_CTYPE カテゴリに管理されます。これを現在のロケールと言います。

XSupportsLocale() 関数は、現在のロケールが X によってサポートされているかどうかを判別するのに使用します。

クライアントは、ロケールと X モディファイアを選択する責任があります。クライアントは、ユーザがクライアントの起動時のロケール選択を無効にできる手段を提供すべきです。ほとんどのシングル・ディスプレイ X クライアントは、X とホストの処理環境の両方で、単一のロケールでオペレーションを行います。単一ディスプレイ X クライアントは、setlocale()XSupportsLocale()XSetLocaleModifiers() の 3 つの関数を呼び出すことによりロケールを構成します。

X 国際化対応機能の特定のカテゴリのセマンティクスは、モディファイアを設定することで構成できます。モディファイアは実装に依存するロケール固有の文字列で命名されます。この機能の現在の唯一の標準使用方法は、キーボード入力メソッドのいくつかのスタイルの中から 1 つを選択することです。

XSetLocaleModifiers() 関数は、現在のロケールの Xlib ロケール・モディファイアを構成するために使用されます。

ロケールとモディファイアを初期化するクライアントの推薦するプロシージャが、ロケールとモディファイアを通知する方法を、以下のソースのうちの 1 つから別々に取得します (数字は優先順位を示します)。

  1. コマンド行オプション

  2. リソース

  3. 空の文字列 (" ")

定義された最初のものが使用されます。


注 -

ロケール・コマンド行オプション、またはロケール・リソースが定義された場合、その影響として、ローカル・ホスト環境のカテゴリ固有の設定をすべて無効にして、指定したロケールにすべてのカテゴリを設定するべきです。