WebSphere Business Integration 製品は、双方向スクリプトの言語に対する 双方向言語サポートを提供します。双方向スクリプトには、右から左に書かれるテキストと、左から右に書かれるセグメントの両方が含まれます (左から右に書かれるテキストには、文中に埋め込まれる数字や、英語、フランス語、キリル文字の諸言語、ギリシャ語などのローマ字ベースの スクリプトのテキストがあります)。
アラビア語およびヘブライ語は、双方向スクリプトを使用する 主要な 2 つの言語グループです。アラビア語スクリプト・グループには、アラビア語、ペルシア語、ウルドゥー語などの言語が含まれます。ヘブライ語スクリプト・グループには、ヘブライ語だけでなく、イディッシュ語やラディノ語も含まれます。いずれの言語にも アルファベット (27 文字のみ) があるため、単一バイト・エンコード・スキームに 合わせることができます。
双方向スクリプトと西洋諸言語のスクリプト (英語、フランス語、ドイツ語、ギリシャ語など) の間には、主に 2 つの特性の違いが あります。これらの 2 つの特性は 双方向性 と整形 です。
双方向性は、次の 7 つの主要な概念から構成されます。
FRED DOES NOT BELIEVE taht yas syawla i.
この文では、左から右に読んだときの意味 (Fred does not believe I always say that) と、右から左に読んだときの意味 (I always say that Fred does not believe) が 異なります。グローバル方向は文脈から常に明らかとは限らないため、アプリケーション開発者は、テキストがどのように読まれるか (左から右か右から左か) を 意識する必要があります。
双方向スクリプトでテキスト順序を使用する場合は、物理順序と論理順序も重要です。物理順序はテキスト・セグメントの物理的な表現方法を指し、論理順序はテキスト・スクリプト・セグメントの入力方法 (声に出して読む場合の発音方法) を 指します。状況によっては、一部のセグメントを論理順序または物理順序のいずれかで 再配列する必要もあります。例として次の文を示します。
my wife's name is ILIN
全体として、この文の方向は左から右です。読み手は、最初の文字が m で次に y が続く (以下同様) テキストを 読みます。物理順序では、文字 i および s の 後には ILIN を含むセグメントの文字 I が続きますが、ヘブライ語では ILIN を NILI と発音するため、論理順序では名前セグメントの最初の文字は I ではなく N になります。
ビジュアル・テキスト・タイプは最も古い記録形式であり、単なる画面全体のコピーです。この形式のテキスト・タイプでは、プログラマーが埋め込みセグメントの位置とその処理について 知っている必要があります。ほとんどのレガシー・アプリケーション およびそのファイルでは、このタイプのテキストを使用します。
暗黙のテキスト・タイプによる記録では、ローマ字アルファベットの文字には固有の左から右への方向があり、アラビア語、ウルドゥー語、およびヘブライ語のアルファベットには 固有の右から左への方向があると想定します。双方向性に適合させるために、暗黙テキスト処理のアルゴリズムを使用して固有の方向特性に基づいてセグメントを認識し、自動的にセグメントを反転できるようにします。暗黙テキスト・タイプの主な制限は、部品番号のように数字と文字 (左から右と右から左) が混在するストリングを 処理できないことです。
明示テキスト・タイプによる記録では、テキスト・ストリングに 追加の制御文字が埋め込まれていることを前提とします。これにより、明示アルゴリズムに対してセグメント反転、整形、数表示の選択などの変換を 指示します。明示テキスト・タイプの制限は、埋め込み制御を処理するための自動処理が必要になることです。暗黙テキスト・タイプと 明示テキスト・タイプの橋渡しをする特定の技法があります。この技法は、基本表示アルゴリズム として Unicode 標準 BIDI アルゴリズムで 定義されています。
翻訳後の GUI のウィジェット・ミラーリングでは、GUI を
言語の方向に合わせてミラーリングします。例えば、ウィジェット・ミラーリングでは、メニュー・ボタンおよびナビゲーション・ツリーを左ではなく、右に移動できます。それ以外の場合は、フレームおよびウィンドウはミラーリングされません。図 44
に、ドロップダウン・メニューのウィジェット・ミラーリングを示します。
整形は、多くの複雑な言語、特にアラビア語やヘブライ語などの筆写体の 言語に見られる特性です。相互につながった単語中で隣接する文字がある場合、書記システムは筆写体となります。筆写体は、印刷よりも手書きに 適しています。例えば、アラビア語では、一部の文字のみを右側の文字につなぐことができます。さらに、単語中の位置および隣接する文字との連結特性に応じて 文字の形が異なる場合があります。これらの点から、整形は 双方向テキストを分かりやすくするために重要です。整形処理では、文字の抽象表現を適切な形状で置換することにより、文字を適切な表示形式にレンダリングします。これを行うには、文字の基本型を使用し、形状を指定せずに 特定の筆写体文字を選択できるようにします。
次に、形状決定ルーチンで文字の適切な形状を選択します。このルーチンでは、ソフトウェアかユーザーのいずれかによって指示された文脈に応じて 適切な形状を自動的に (アルゴリズムによって) 選択できます。ほとんどの場合、筆写体言語のテキストの基本形状が格納されます。整形を構成する特性は、ほかにも 2 つあります。これらは文字の合成と固有の数字です。
文字の合成は、格納されているテキスト文字の番号と 表示されるテキスト文字の番号の対応関係として 定義されます。対応関係を管理するために、合字や発音符などの方法を 使用します。 合字は、複数の文字を、1 つの表示セルを占有する単一の文字で表現できる場合に 使用します。 双方向スクリプトでの 発音符は、子音字の特定の方向 (上、中、下、近くのいずれか) に置いて 母音を表すマークです。これらのマークを格納するときには、物理的な位置を占有しますが、表示に使用する場合には 関連する子音字と同じセルを占有します。アラビア語では、現在スペーシング発音符が別個の文字として実装されており、発音符が属する文字の後に置くことになっています。
固有の数字も他の言語と使用方法が異なるため、特別な処理が必要です。例えば、ヘブライ語では、数字はアラビア数字 (1、2、3、...0) を使用して表記します。しかし、アラビア語、ペルシア語、ウルドゥー語などの筆写体言語では、固有の記号で数字を表記します。筆写体言語で使用する数字のラベルは、ヒンディ数字かアラブ・インド数字のいずれかです。アラビア数字、ヒンディ数字、アラブ・インド数字のいずれであっても、単純な数値は左から右に表記されますが、数式の表記は言語ごとに異なります。例えば、アラビア語では数式を左から右に書きますが、ペルシア語では右から左に書きます。このため、通常、数字はアラビア数字でエンコードし、ユーザーまたは開発者の意図に応じて 各国語固有の記号またはアラビア数字で表示します。