RTL 언어의 Yui 지원
-
22-08-2019 - |
문제
Yui는 RTL 언어를 지원합니까? (RTL : 히브리어 또는 아랍어와 같은 오른쪽에서 왼쪽).
그렇다면 어떻게? 다른 메뉴 항목이 오른쪽 여백 근처에서 시작하여 왼쪽으로 이동하는 메뉴 바를 표시하고 싶습니다.
해결책
Yui 2.X에는 RTL 언어에 대한 지원이 없습니다. 나는 1 년 전에 그것에 대한 버그를 제출했고 나중에 릴리스에 추가 할 수 있다는 응답을 받았습니다. (새로운 추적기로 전환 한 이후로 더 이상 버그를 찾을 수 없습니다. 죄송합니다.) YUI 3.X에 대한 RTL 지원을 추가하고 있지만 미리보기 릴리스를 확인하지 않았기를 바랍니다 (추가를 언급 할 수도 없습니다. RTL 지원).
Yui 메뉴는 RTL을 수행 할 수 없다고 말하는 것은 아닙니다. 비록 내장 지원이 없으므로 약간의 작업이 필요합니다. 나는 이것이 모든 브라우저에서 100%, 특히 IE가 아닌 100% 작동한다고 주장하지 않습니다.
먼저 반대 방향으로 흐르고 페이지의 반대쪽에서 시작하려면 메뉴 항목이 필요합니다. 나는 이것이 대부분의 브라우저에서 작동한다고 생각합니다 (IE6 제외, Argh- 해당 브라우저에는 답을 기억하지 못하는 추가 작업을해야합니다).
.yuimenubaritem { float: right; }
둘째, 반대 방향으로 흐르려면 메뉴 바의 하위 메뉴가 필요합니다. 당신은 이것을 변경하여 이것을 할 수 있습니다 하위 메일 디자인 메뉴 구성의 속성 :
// 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을 설정하면 (이 정보를 VAR 어딘가에 저장) 약간 다르게 처리하도록 변경해야합니다. (죄송합니다, 당신은 이것을 스스로 파악해야하지만, 주요 프레스에서 케이스를 전환하는 것이 간단해야합니다).