国際化対応の Xlib 関数は、ホスト環境により構成された現在のロケールで、XSetLocaleModifiers() 関数により設定された X ロケール・モディファイアにおいて機能するか、その関数に供給される何らかのオブジェクトの作成時に構成されたロケールとモディファイアにおいて機能します。表 5–1 では、それぞれのロケール依存の関数についてロケール依存性とモディファイア依存性を示しています。
表 5–1 ロケール依存性とモディファイア依存性
ロケール |
影響を受ける関数 |
対象 |
---|---|---|
|
ロケール照会 / 構成 |
|
setlocale |
XSupportsLocale XSetLocaleModifiers |
照会されたロケール 変更されたロケール |
|
リソース |
|
setlocale |
XrmGetFileDatabase XrmGetStringDatabase |
Xrm データベースのロケール |
XrmDatabase |
XrmPutFileDatabase XrmLocaleOfDatabase |
Xrm データベースのロケール |
|
標準属性の設定 |
|
setlocale |
XmbSetWMProperties |
供給されて返されたテキスト (環境ロケールの WM_property テキストのいずれか) のエンコーディング |
setlocale |
XmbTextPropertyToTextList XwcTextPropertyToTextList XmbTextListToTextProperty XwcTextListToTextProperty |
供給された / 返されたテキストのエンコーディング |
|
テキスト入力 |
|
setlocale |
XOpenIM |
XIM 入力メソッド. |
XIM |
XCreateIC XLocaleOfIM など |
XIC 入力メソッド構成 照会されたロケール |
XIC |
XmbLookupText XwcLookupText |
キーボード配置 返されたテキストのエンコーディング |
|
テキスト描画 |
|
setlocale |
XCreateFontSet |
XFontSet のフォントの Charset |
XFontSet |
XmbDrawText, XwcDrawText など XExtentsOfFontSet など XmbTextExtents, XwcTextExtents など Xlib エラー |
供給されたテキストのロケール 供給されたテキストのロケール ロケール依存メトリクス |
setlocale |
XGetErrorDatabaseText XGetErrorText |
エラー・メッセージのロケール |
クライアントは、X の関数と C ライブラリ関数の呼び出しのロケールが同じである場合は、X の関数に返されたロケール・エンコード・テキスト文字列が C ライブラリ関数に渡されることが可能である、または C ライブラリ関数の結果の文字列が X の関数に渡されることが可能であると想定しています。
ロケールのエンコーディングが状態に依存する場合は、国際化対応 Xlib の関数によって処理されるすべてのテキスト文字列は、ロケールのエンコーディングの初期状態で開始すると見なされます。Xlib の関数はすべて、現在のロケールや X モディファイアの設定を変更しないかのように動作します (これはつまり、Xlib またはアプリケーションのいずれかによってライブラリ内で提供され、ロケールを変更するか XSetLocaleModifiers() 関数をヌルでない引き数で呼び出す関数はすべて、入力時と終了時に現在のロケール状態を保存および復元しなければならないという意味です)。また、ANSI C ライブラリに準拠する実装の Xlib の関数は、ANSI C の関数 mblen()、mbtowc()、wctomb()、strtok() に関連付けられたグローバルな状態を変更しません。