CSS は双方向性がありますか、それともスタイルシートは本質的にスクリプトの方向 (RTL と LTR) に関連付けられていますか?
つまり、1 つのスタイルシートで、左から右 (英語) と右から左 (ヘブライ語) の両方の言語に対応できますか?
もしそうなら、考慮すべきガイドラインは何ですか?
いいえの場合、ltr スタイルシートを rtl に変換するにはどうすればよいですか?
CSS は双方向性がありますか、それともスタイルシートは本質的にスクリプトの方向 (RTL と LTR) に関連付けられていますか?
つまり、1 つのスタイルシートで、左から右 (英語) と右から左 (ヘブライ語) の両方の言語に対応できますか?
もしそうなら、考慮すべきガイドラインは何ですか?
いいえの場合、ltr スタイルシートを rtl に変換するにはどうすればよいですか?
以前、CSSJanusを使用して、ltr スタイルシートを rtl に変換しました。これはコマンド ライン ツールとして提供されるため、アプリケーションをビルドするたびに実行でき、ファイルの 1 つのバージョンを維持するだけで済みます。変換は、すべての float: left を float: right に切り替えます (および background-position などの他のいくつかの推測しにくいプロパティ)。方向を設定することを忘れないでください: ltr; デフォルトのスタイルシートに!
うまくいくことを願っています!
RTL スタイルと LTR スタイルの両方をサポートするために単一のスタイルシートを使用することはお勧めしません。大きな CSS ファイルをダウンロードして、その半分だけをページで使用します。
これを行いたい場合は、たとえば('rtl' と 'ltr') などのクラスを html タグに追加し、以下のようにスタイルシートで使用できます。
.ltr .class {padding-left:10px;}
.rtl .class {padding-right:10px;}
このチュートリアルをチェックして、LTR ページを「RTL」する方法を知ることができます。
特殊な変数のセット を持つ iGoogle で使用されているアプローチを検討することもできます__BIDI_START_EDGE__, __BIDI_END_EDGE__, __BIDI_DIR__, and __BIDI_REVERSE_DIR__
。margin-left のようなものを書く代わりに、 CSS ルールを通常どおりに記述しますmargin-__BIDI_START_EDGE__
。次に、スタイル シートと方向 (ltr または rtl) を受け取り、必要に応じて変数に "left"、"right"、"ltr"、および "rtl" の値を入力するサーバー側コードを少し記述します。
これにより、単一のファイルを提供することはできませんが、非常に堅牢であり、反転させたくないものは文字通り「左」または「右」で記述できるという利点があります。
( OpenAjaxIDE メーリング リストからのこのメールを参照してください。このメールには、「IBM のローカリゼーション エキスパートが OpenSocial の BIDI 機能を高く評価しています」とあり、OpenAjax プロジェクトに BIDI 機能を採用することが提案されています。)