YUI поддержка языков RTL - PullRequest
1 голос
/ 31 марта 2009

YUI поддерживает языки RTL? (RTL: справа налево, например, на иврите или арабском языке).

Если так, то как? Я хочу отобразить строку меню, где различные пункты меню начинаются около правого поля и идут влево.

1 Ответ

4 голосов
/ 31 марта 2009

В YUI 2.x нет поддержки языков RTL. Я подал ошибку об этом более года назад и получил ответ о том, что они могут добавить ее в более позднем выпуске. (Я больше не могу найти ошибку, так как они переключились на свой новый трекер, извините.) Надеюсь, они добавляют поддержку RTL для YUI 3.x, но я не проверял предварительные выпуски (и при этом я не могу найти, что они упоминают добавление Поддержка RTL).

Нельзя сказать, что меню YUI не может выполнять RTL, хотя это требует небольшой работы, поскольку нет встроенной поддержки. Я не утверждаю, что это работает на 100% во всех браузерах, особенно в IE.

Во-первых, вам нужно, чтобы пункты меню текли в противоположном направлении, и начинались с противоположной стороны страницы. Я полагаю, что это работает в большинстве браузеров (за исключением IE6, конечно, argh - для этого браузера вам нужно проделать дополнительную работу, ответ на которую я не помню):

.yuimenubaritem { float: right; }

Во-вторых, вам нужно подменю панели меню, чтобы двигаться в противоположном направлении. Вы можете сделать это, изменив атрибут 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"] });

Худшая часть - попытка заставить события клавиатуры работать правильно, так как в этот момент нажатие вправо заставляет курсор двигаться влево и наоборот. Чтобы сделать это, вам придется взломать _onKeyDown () MenuBar и изменить его так, чтобы, если для MenuBar установлен RTL (хранить эту информацию в переменной где-нибудь), он обрабатывает влево / вправо немного по-другому. (Извините, вам придется выяснить это самостоятельно, но переключение дел на нажатие клавиш должно быть простым).

...