7

最初に、私が達成しようとしていることを述べましょう。

Android OS でアラビア語/ヘブライ語を正しく表示できるようにするためのパッチを作成します。これらの言語は両方とも右から左(RTL) であり、それらのスクリプトには接続された文字/グリフが含まれます(個別の文字を持つラテン アルファベットとは異なります)。

例:

「車」はアラビア語で次のようになります。

シリア

個別の文字は次のようになります。

シンガポール

ご覧のとおり、各文字は、その前にあるものとその後にあるものに応じて、さまざまな方法で互いに接続されています。わかりました、語学レッスンで十分です :) 私の質問は:

この機能を有効にするには、Android のどのバイナリ/クラスをハイジャックする必要がありますか?

それを置く別の方法は次のとおりです。すべてのインスタンス「x」をシステム全体で「y」として表示したい場合、どのバイナリ/クラスをいじる必要がありますか?

ソース コードは GitHub で参照できます: http://github.com/android/

C/C++ platform_system_core、またはカスタム JVM platfom_dalvikの下のどこかにあると思います。

明確にするために、アラビア語/ヘブライ語のフォントをフォールバック フォントとしてドロップすると、個別の形式ではありますが表示されるため、フォントは問題になりません。

あなたの助けに感謝します:)

4

3 に答える 3

1

チェックアウトされたソース ツリーで external/skia を参照してください。それが skia グラフィックス ライブラリであり、最終的にフォント レンダリングを担当します。

于 2010-01-17T20:43:46.083 に答える
1

この問題は、基盤となるグラフィック エンジンを変更するよりも複雑であることを忘れないでください。

Skia で再形成を適用する場合、線の幅が変更されると問題が発生する可能性があります (これは、 が を置き換え、その後に が続く場合に発生します)。これは、アラビア語を変形すると文字の順序も変わる可能性があり、スキアはテキストの内容に関して受動的に行動しようとするためです。文字をそのまま表示装置に出力するだけです。

さらに悪い問題は、実際には Android 自体にあります。アラビア語/ヘブライ語ではテキストの BiDi 再配置が必要ですが、これは Android では非常に愚かであり、非常に基本的な問題を処理できません。

さらに悪いニュース?Android のフォントである Droid には、アラビア語やヘブライ語のグリフは含まれていません。デバイスをルート化して別のフォントに置き換えない限り、アラビア文字の代わりに四角が表示されます:)

プラットフォーム全体が RTL 言語、特にアラビア語に対応するにはまだほど遠い状態です。

ご覧のとおり、RTL 言語の正しい修正は Skia だけではありません ....

于 2010-03-05T17:17:00.607 に答える
0

これが役立つかどうかを確認してください:

http://blog.amr-gawish.com/39/arab-language-in-android/

于 2010-01-16T00:11:52.497 に答える