4

私は Android デバイスで表示するための Web サイトを持っています。グジャラート語を使用していますが、グジャラート語のフォントを適切にレンダリングするのに大きな問題があります。少なくとも、グジャラート語のフォントを正常に動作させるための回避策が必要です。デフォルトでは、どの Android バージョンでもサポートされていません。 . そして、私はそうしました、

回避策: - 電話をルート化する - グジャラート語の正しい Unicode フォントを見つける - System/fonts にある既存の DroidSansFallback.ttf をグジャラート語フォントに置き換えます (ICS の system/etc フォルダーにある fontsfallback.xml にいくつかの追加変更を加えます)

これは、グジャラート語のテキストを表示するのに役立ちましたが、正しいレンダリングではありませんでした。

問題:

1) 半角形の問題。半角文字が結合すると想定されているため、適切にレンダリングされませんが、結合されません。

unicode.orgでこの FAQ を参照すると、レンダリング方法が明確に定義されています。[unicodeLookup][7] を使用してすべての文字に html コードを使用することで、前述の「Zero Width Joiner」も使用しましたが、効果はありません。

とにかく、この問題は不適切ですが、まだ正しくないため、主要ではありません。

2) このレンダリングの問題により、テキストが正しく印刷されません。下の 2 つの画像を参照してください。1 つ目は PC で表示されるように正しくレンダリングされ、2 つ目は Android ネイティブ ブラウザのスクリーンショットです。

画像

1 としてマークされた問題は最初の問題であり、2 としてマークされた問題は 2 番目の問題です。「デーバナーガリー - Unicode コンソーシアム ch09」をグーグルで検索すると、この問題を参照する pdf が得られます (「図 9-8. デーバナーガリーでのレンダリング順序」に移動してください)。 ") スクリプトを正しくレンダリングする方法を明確に説明しています。Android がスクリプトをレンダリングするために使用するものは、そのような言語ではサポートされていないようです。フォントを正しい順序でレンダリングするために Android OS に変更を加えることができる場合は、助けてください。

Windows OS で使用されている Shruti フォントを使用してみたので、これは間違いなくフォントの問題ではありません。これらの複雑なスクリプトをレンダリングする際の問題です。

考えられる解決策: (望ましくない)

1) ビットマップ フォントで Opera mini を使用する (私の解決策ではありません)

2)テキストの代わりに画像を使用します(私のサイトには300行のリストがあり、モバイルでもページサイズを大きくしたくないため、これも私の解決策ではありません)

この問題の適切な解決策を教えてください。よろしくお願いします!!

4

2 に答える 2

2

グジャラート語 (およびその他の「複雑な」スクリプト、つまり半形式、文脈上の形式、再配置などを使用するスクリプト) のレンダリングには、単なるフォント以上のものが必要です。テキストレイアウトも必要です。テキスト レイアウト機能は、通常、ホスト オペレーティング システムによって提供されるか、場合によってはアプリケーションによって提供されます。Android はテキスト レイアウトのサポートを改善してきましたが、最新バージョンでもまだすべてのスクリプトが完全ではありません。つまり、最近のバージョンの Android であっても、フォントだけでこれを簡単に修正することはできません。

考えられる回避策:

  • グジャラート語のレイアウトを修正し、ユーザーがサイトを使用するためにプラグインをダウンロード/インストールする必要があるプラグインまたは拡張機能を開発します。これはおそらく非常に高インピーダンスのパスであり、フォント、ソフトウェア開発、およびターゲットの書記体系に関する知識に関する多大な専門知識が必要です。ユーザーの不便は言うまでもありません。

  • グジャラート フォントのカスタム バージョンを開発し、テキスト レイアウトを必要としない対応するカスタム テキストをサイトで使用する。@font-face (webfont) でフォントを提供します。フォント開発の経験がない場合、これもかなり難しいでしょうが、おそらく最良の方法です。

  • テキストを画像にレンダリングします。クライアントが複雑なスクリプトをサポートしていないことがわかっている場合に備えて、ブラウザ スニッフィングを行い、画像を提供します。これはほとんどの場合失敗する可能性があります (ブラウザの機能を追跡するのは困難であり、最初からブラウザを確実に検出するという問題は言うまでもありません)。しかし、正しい結果が得られることは保証されています。

于 2012-09-28T03:15:10.343 に答える