1

YUI は rtl 言語をサポートしていますか? (rtl: ヘブライ語やアラビア語など、右から左へ)。

もしそうなら、どのように?さまざまなメニュー項目が右マージン近くから始まり、左に移動する MenuBar を表示したいと考えています。

4

1 に答える 1

4

YUI2.xではRTL言語はサポートされていません。1年以上前にバグを報告したところ、後のリリースで追加される可能性があるという回答がありました。(新しいトラッカーに切り替えたため、バグを見つけることができなくなりました。申し訳ありません。)YUI 3.xのRTLサポートが追加されていることを願っていますが、プレビューリリースをチェックしていません(追加について言及していることもわかりません)。 RTLサポート)。

組み込みのサポートがないため、少し手間がかかりますが、YUIメニューがRTLを実行できないと言っているわけではありません。私は、これがすべてのブラウザ、特にIEでは100%機能することを主張しません。

まず、メニュー項目が反対方向に流れ、ページの反対側から開始する必要があります。私はこれがほとんどのブラウザで機能すると信じています(もちろん、IE6を除いて、argh-そのブラウザでは、答えを覚えていない追加の作業を行う必要があります):

.yuimenubaritem { float: right; }

次に、反対方向に流れるようにMenuBarのサブメニューが必要です。これを行うには、メニューの構成のsubmenualignment属性を変更します。

// For the main submenu
new YAHOO.widget.MenuBar("id", { submenualignment: ["tr","br"] });

// You have to manually add all the Menus,
// so that you can set the submenualignment on each.
new YAHOO.widget.Menu("id", { submenualignment: ["tl","tr"] });

最悪の部分は、キーボードイベントを正しく機能させようとすることです。この時点で右を押すとカーソルが左に移動し、その逆も同様です。これを行うには、MenuBarの_onKeyDown()をハイジャックして変更し、MenuBarがRTLに設定されている場合(この情報を変数のどこかに格納する場合)、左右の処理が少し異なるようにする必要があります。(申し訳ありませんが、これは自分で理解する必要がありますが、キーを押すとケースを切り替えるだけの簡単な問題です)。

于 2009-03-31T15:32:29.553 に答える