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

クライアント間通信規約 (ICCC)

クライアント間通信規約 (ICCC) は、クライアント間でテキストを渡すのに使用する機構を定義します。システムは複数のコード・セットをサポートできるので、異なるコードセットを使用している 2 つのアプリケーションが互いに通信し合うことも可能です。ICCC は、2 つのクライアント間のデータの渡し方に関して、これらのクライアントがどのように同意するかを定義します。2 つのクライアントの持つ文字セットに互換性がない場合 (たとえばラテン 1 と日本語 (JIS) のように)、文字を転送するときにデータの一部が失われる可能性があります。

しかし、2 つのクライアントが、コード・セットは異なるが文字セットに互換性がある場合は、ICCC はこれらのクライアントがデータを失わずに情報を渡せるようにします。2 つのクライアントのコード・セットが等しくない場合は、COMPOUND_TEXT アトムを使用して、コンパウンド・テキストのエンコーディングが使用されます。通信中のデータにポータブルな文字 (7 ビット、ASCII、その他) または ISO8859-1 コード・セットしか含まれない場合は、データは XA_STRING アトムにより、変換なしでそのまま通信されます。

タイトル名とアイコン名は、ポータブルでない文字を使用する場合、COMPOUND_TEXT アトムを使用してウィンドウ・マネージャへ通信される必要があります。そうでない場合は、XA_STRING アトムを使用できます。その他のエンコーディングは、ウィンドウ・マネージャのロケールへ変換する程度に制限されています。ウィンドウ・マネージャは単一のロケールで実行され、実行中のロケールのコード・セットに変換できるタイトルとアイコン名しかサポートしません。

libXm ライブラリとすべてのデスクトップ・クライアントは、これらの規約に従う必要があります。