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

ロケール依存性とモディファイア依存性

国際化対応の 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() に関連付けられたグローバルな状態を変更しません。