2011-12-27 14 views
0

いくつかの文字列を読み込んでUILabelsに表示するアプリケーションがありますが、これらの文字列は1つの言語のものではありませんので、配置を設定する必要があります文字列がRTL言語の場合はラベルの右側に、そうでない場合は左に移動します。文字列の言語の方向を指定して右に表示する

それを達成するための直接的な方法があります。そうでない場合は、文字列から言語の方向を取得する最善の方法はありません。 私は、文字列の最初のX文字をチェックし、LTRとRTL文字のうち、ラベルの配置を設定する割合が大きいことを確認します。これは良い解決策ですか、もしそうなら、LTR文字に属するユニコードとRTL用のユニコードが何であるかを示す表をどこで見つけることができますか?

答えて

0

適切なRTLをサポートしているプログラムでは、単語やスペースのような単純なテキストの方向を設定する必要はありません。プログラムは、文字コード標準で定義されているように、文字自体のプロパティを適用することが期待されます。

単位としてレンダリングされるテキストに句読点やLTRとRTLの文字が混在している場合、その方向は制御文字またはより高いプロトコルレベルで設定する必要があります。私はあなたがこれについてヒューリスティックを行うべきではないと思う。むしろ、全体の方向は、情報提供者(例えば、著者、翻訳者)によって決定され、テキストとともに格納されるテキスト項目の特性でなければならない。ソフトウェアのローカリゼーションでは、通常、テキストのローカライズされた値のセットには1つの言語があり、全体的な方向はデータセットの一部として格納するか、言語から推測する必要があります。

書き込み方向は、レイアウトの全体的な方向(RTL言語では表の列は右から左に移動するなど)とテキストの配置にも影響することに注意してください。

+0

実際には、テキスト自体の方向性については心配していませんが、出力テキストに問題はありませんが、問題があるのはLTR言語のアラインメントの原因ですしかし、RTLの場合、それは正しいです。これは、ココアタッチフレームワークのUILabelsとUITextViewのために手動で指定する必要があります。しかし、実際のテキストについては、LTRでもRTLでも左揃えのラベルで正しいです。私はデザインをより良くする必要があります。そのために、言語の方向性を知る必要があります。お返事をありがとうございます。 – Mousa

関連する問題