В 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 (хранить эту информацию в переменной где-нибудь), он обрабатывает влево / вправо немного по-другому. (Извините, вам придется выяснить это самостоятельно, но переключение дел на нажатие клавиш должно быть простым).