国際化対応言語環境の利用ガイド

文字の向き決定の追加動作

Layout Services 変換の OutToInp および Property バッファ(入れ子のレベル用) を使用して、文字の向きを決定します。したがって、ウィジェットの動作は各ロケール固有の変換に依存します。OutToInpProperty バッファの情報が正しくないと、ウィジェットが予想外の動作を行うことがあります。特に、Property バッファの情報は大きく影響します。ロケール固有のモジュールがこの仕様の適用範囲から外れている場合、同じテキスト、アプリケーション、リソース値、および LayoutObject 構成に対して行われる双方向の編集動作が、プラットフォームによって異なる場合があります。

ビジュアルモードの動作はセルベースの動作を表示します。論理モードの動作は論理的な文字ベースの動作を生じます。たとえば、delete-right-character() 操作では、ディスプレイセルに対応した入力バッファの文字が削除されます。つまり、LayoutObject 変換の「プロパティ」バイトの「新しいセルのインジケータ」が 1 に設定されている入力バッファの文字 1 個、および「新しいセルのインジケータ」が 0 である後続のすべての文字が消去されます。

Property バッファの詳細については、『CAE Specification 』の m_transform_layout() の仕様を参照してください。

同様に、backward-character() では入力バッファ内で挿入点が 1 つ前に移動します。これに伴い、カーソルは出力バッファ内で関連付けられた文字に対応する表示上の位置に再描画されます。したがって、複合表示セル上を移動するにはキーストロークを繰り返す必要があります。区別的発音符または合字など、「新しいセルのインジケータ」が 0 の入力バッファ文字を横切って挿入点が移動するため、カーソルの表示位置は実際には変化しません。

この動作は、削除動作が論理/入力バッファ側から実行されるか、物理的/出力側の表示セルレベルから実行されることを意味します。入力バッファと出力バッファの間には 1 対 1 の対応関係が存在しないため、綿密な意味での 1 文字単位の削除モードは存在しません。たとえば、1 つの物理文字が論理文字の一部分だけを表しているような場合が考えられます。