私はpangoを使用するテキストボックスの実装を持っています。私が右から左へのスクリプトで単語で始まり、スペースの後に左から右へのベースのスクリプトで単語が続くと、パンゴが使用する単語のラッピングは(PANGO_WRAP_WORD_CHAR
を使って)うんざりしてしまいます。文字列العربيةENGLISHのために私は、次を得る:pangoで混在スクリプトを使用したワードラップ
私はスペースの後にUnicode文字U+200F
を追加する場合は、私が期待されるワードラップを得る:
、私は(左から右横に英語など)ヒンディー語とアラビア語の上にスクリプトを交換する場合、厳密に左から右ではないようですので、私はまだ、問題を取得し、右左からヒンディー語の場合、私は問題を解決するスペースの後に0x200E
を挿入するハックを入れました。
これはパンゴのバグですか?問題を解決するのに十分な汎用性があるが、他のケースを破ることはできない回避策がありますか?現在の私の周りの仕事は、文字列内の以前の強く指向された文字の方向に基づいてすべてのスペースの後に0x200E
または0x200F
のいずれかを挿入して使用していますが、これが問題を引き起こす特定の文字列があるかどうかはわかりません。
アップデート:私はgeditのでUbuntuの12.04でこの問題を再現することができました(テキストラッピング有効とし、有効になって二行設定よりスプリットワードを行いません)。何回か折り返されるまでHello world
と繰り返しタイプし、world
のすべてのインスタンスをपहुंचगया
に置き換え、すべてを1行にまとめました。
RTLの後にLTRの単語(またはその逆)が1つの単語として扱われるため、ワードで折り返しを選択すると2つの単語に分割されません。 –
質問を更新して、LTRスクリプトのみを交互に使用している場合(英語とヒンディー語など)にも問題が発生することをお伝えします。 – pauld