ベース・テキスト方向: サポートされる値

以下の値は、ベース・テキスト方向を説明しています。
LTR
「左から右」のベース・テキスト方向です。これは、ヨーロッパ、アジア、およびインド半島の言語を含む、ほとんどの言語の本来のベース・テキスト方向で、反対方向の文字列を組み込むことが可能です。 次に例を示します。
this ia an english sentence using SDROW IDIB EMOS
RTL
「右から左」のベース・テキスト方向です。これは、アラビア語、ヘブライ語、ウルドゥー語、およびペルシア語などの言語の本来のベース・テキスト方向で、反対方向の文字列を組み込むことが可能です。 次に例を示します。
some english words GNISU ECNETNES IDIB A SI SIHT
Contextual-RTL または Contextual-LTR
ベース・テキスト方向は、最初の強いタイプの文字に応じて設定されます。 ベース方向の設定時点に、ストリングの主な言語が不明である場合に適した選択肢です。
GUI コンポーネントが常にヘブライ語またはアラビア語のテキストを表示することがあらかじめ分かっている場合は、そのコンテンツのベース・テキスト方向を RTL に設定しても問題ありません。 GUI コンポーネントが常に英語またはイタリア語のテキストを表示することが分かっている場合は、ベース・テキスト方向を LTR に設定しても問題ありません。
そうした認識が事前にない場合があります。例えば、データベースからデータを取得したり、あるいは、 ユーザーがリストから選択したりキーボード入力して、その場でデータを作成するなど、実行時にコンテンツが動的に生成されて初めて、そうした情報が利用できる場合があります。 コンテキストによる指定は、そのようなケースを意図したものです。すなわち、その時点で発生するテキストの実際の方向は、特定のアルゴリズムによるデータ分析に従って設定する場合を想定しています。 このアルゴリズムは、ユニコード組織により記述されています。「http://www.unicode.org/reports/tr9/#The_Paragraph_Level」を参照してください。
このユニコードの資料では、概して、データに RTL スクリプトの文字が含まれていて、LTR スクリプトの文字が含まれていない場合の方向は RTL になることを示しています。 データに LTR スクリプトの文字が含まれていて、RTL スクリプトの文字が含まれていない場合は、方向は LTR になります。データに両方のタイプ (RTL および LTR) の文字が含まれている場合は、論理的な順序の最初の強いタイプの方向付き文字が、その方向を決定します。
データのテキスト内に LTR タイプと RTL タイプのいずれの文字も含まれていない場合 (例えば、純粋に数字のみのコンテンツの場合などに起こり得る)、デフォルトを設定する必要があります。 このデフォルトは、コードの作成者によって設定されるのが望ましく、だからこそ、コンテキストによる値 (Contextual-LTRContextual-RTL) が 2 つ存在しているのです。
この 2 つの値は、データに LTR もしくは RTL 文字が 1 つでも含まれている場合は、正に同じ結果になります。すなわち、強いタイプの LTR もしくは強いタイプの RTL の文字が 1 文字以上、テキストに含まれている場合は、その結果の表示は Contextual-LTR あるいは Contextual-RTL のいずれの場合でも同じになります。
そのような文字が 1 つもない場合にのみ、結果が異なります。Contextual-LTR は、LTR に解決されて、 Contextual-RTLRTL に解決されます。以下の例は、 Contextual-LTRContextual-RTL で表示が異なる場合のテキストを示しています。
論理的な順序では、以下のようになります。
123 < 456
Contextual-LTR の表示の順序は以下のようになります。
123 < 456
Contextual-RTL の表示の順序は以下のようになります。
456 > 123
「より小さい」(<) 記号が、Contextual-RTL の表示順序ではミラーリングされています。
GUI コンポーネントに対してコンテキストによる方向付けを選択すると、Contextual-LTR が LTR 指向の (ミラーリングが解除された) GUI のデフォルトになり、Contextual-RTL が RTL 指向の (ミラーリングされた) GUI のデフォルトになります。
JViews には、ベース・テキスト方向をサポートする以下の定数があります。
INHERITED_DIRECTION
暗黙的値。テキストを表示するすべての Java フレームワーク・オブジェクトに割り当てられるデフォルト値です。 実際の値は、JViews オブジェクト階層の上位レベル (ルート・オブジェクトまで) をルックアップして見つけます。 明示的な値が見つからない場合、値 COMPONENT_DIRECTION が使用されます。この値が親のないオブジェクトに割り当てられている場合は、値 COMPONENT_DIRECTION が使用されます。
COMPONENT_DIRECTION
明示的な値。テキスト方向は、GUI 方向 (Java の世界では「コンポーネントの向き」と呼ばれる) に従います。 ミラーリングされた GUI の場合は RTL になり、ミラーリングが解除された GUI の場合は LTR になります。Java コントロールの静的コンテキストでのコンテキストによるベース・テキスト方向のデフォルトは、無効になります。
LEFT_TO_RIGHT
明示的な値。ベース・テキスト方向は、「左から右」です。
RIGHT_TO_LEFT
明示的な値。ベース・テキスト方向は、「右から左」です。
CONTEXTUAL_DIRECTION
明示的な値。コンテキストによるベース・テキスト方向。 「左から右」の強いタイプの文字で始まるストリングの場合、LTR ベース・テキスト方向に解決されて、一方、 「右から左」の強いタイプの文字で始まるストリングの場合、RTL ベース・テキスト方向に解決されます。
強いタイプの文字がストリングに含まれていない場合、その動作は COMPONENT_DIRECTION に設定されるテキスト方向の動作と同じになります。
すなわち、以下のようになります。
  • GUI に「左から右」の方向性があり、強いタイプの文字がコントロールで示すテキストに含まれない場合に、 CONTEXTUAL_DIRECTION をサポートすることは、ベース・テキスト方向: サポートされる値Contextual-LTR についての説明と同じ結果になります。すなわち、サポートされる値の LEFT_TO_RIGHT と同じ結果になります。
  • GUI に「右から左」の方向性があり、強いタイプの文字がコントロールで示すテキストに含まれない場合に、 CONTEXTUAL_DIRECTION をサポートすることは、ベース・テキスト方向: サポートされる値Contextual-RTL についての説明と同じ結果になります。すなわち、サポートされる値の RIGHT_TO_LEFT と同じ結果になります。