レイアウト変換および属性

双方向スクリプトを使用可能にするには、次のような特別な注意が必要です。

テキスト・レイアウト

双方向テキストではレイアウトが異なる場合があります。レイアウトは、テキストで使用するセグメントに応じて異なります。また、アラビア語スクリプトの場合は、使用する文字の整形および数字の形状も異なります。異なるレイアウト間で 変換を行うには、変換機能 (レイアウト機能やレイアウト・サービス機能とも呼びます) が 必要です。

レイアウト属性

双方向テキスト・レイアウトの特性を定義するには、一連の属性が必要です。双方向属性は、テキストの実際のレイアウトおよび変換方法を確定するために 必要です。これらの属性は、通常テキストの外部に存在し、外部リソース・ファイルに格納されます。双方向属性には次の 5 つの属性があります。

方向
方向は、双方向テキストの書き込みを開始する表示領域 (ウィンドウ、フレーム、ページ) の境界を指定します。この指定は、テキストの先頭文字の方向に基づきます。方向は、右から左、左から右、またはコンテキスト依存にすることができます。)

テキスト・タイプ
テキスト・タイプは、テキスト・レイアウトの変換時に使用する アルゴリズムの種類を指定します。使用できるアルゴリズムには、ビジュアル、暗黙、明示の 3 種類があります。ビジュアル・アルゴリズムでは、埋め込まれている既存の方向セグメントに無関係に、テキストの行全体を出現するとおりにコピーします。暗黙アルゴリズムでは、文字の自然な方向 (例えばアラビア語では右から左、英語では左から右) に基づいて 方向セグメントを認識し、それに応じてセグメントを 反転します。明示アルゴリズムでは、方向セグメントを認識し、テキストに埋め込まれたビジュアル、明示、および方向制御に基づいて 反転します。

テキスト整形
アラビア語スクリプトでは、単語中の位置や前後の文字の接続特性に応じて文字の形状が変わるため、テキスト整形が重要になります。

対称整形
対称整形は、いつ (、>、[、{ などの特定の文字を )、<、]、} と交換し、表示するテキストの論理的な意味を保存する 必要があるかを指定します。

数表示形状
数表示形状は、アラビア語スクリプトに埋め込まれた数字を表示するときに、ヨーロッパ数字の形状を使用するかアラブ・インド数字の形状を使用するかを 指定します。

双方向レイアウト属性に指定可能な値として一般的な 組み合わせというものはありません。既存のアプリケーションは、これらの値のさまざまな組み合わせでデータを処理します。したがって、双方向データ・ストリームをアプリケーションに渡す場合は、アプリケーションが関連したテキスト属性を認識できることが重要です。

レイアウト変換

双方向テキストは、さまざまな環境 (プラットフォーム) やさまざまなレイアウトで 格納および処理されます。レイアウト間の変換を作成するには、レイアウト変換機能が必要です。WebSphere Business Integration 製品は、Unicode BiDi アルゴリズムに基づくレイアウト変換機能を使用します。このアルゴリズムについては下記を参照してください。

http://www.unicode.org/reports/tr9/)
 

また、下記の IBM Java SDK 1.4.1 で実装されています。

http://www-106.ibm.com/developmentworks/java/jdk/bidirectional/JAVABIDI.htm
 

Copyright IBM Corp. 1997, 2004