ããã§ãããªãã¯ããªãã®ãŠã§ããµã€ãã®RTLããŒãžã§ã³ãäœæããããšã«æ±ºããŸãããäœãããªããé§ãç«ãŠããã¯é¢ä¿ãããŸããïŒçŸåšã®ããžãã¹èŠä»¶ããŸãã¯å°æ¥ãã®ãããªå¿ èŠæ§ãäºæž¬ããŠæºåãããããŸãã¯UIéçºã®ãã®é åã«çªå ¥ããããšã«èå³ãããã ãã§ããéèŠãªããšã¯ãããããããã®ãããã¯ã«é¢ããããã€ãã®èšäºã«ãã§ã«äŒããã¹ã¿ã€ã«ãæ¡åŒµããããã®CSSãã©ã°ã€ã³ãèŠã€ããRTLèšèªã§ã®æåã®å ¥åãšmagicdirå±æ§ã«ç²ŸéããŠããããšã§ãã
ããã§ãªãå Žåã¯ãåé¡ãšè§£æ±ºçãç解ããããã®åœ¹ç«ã€ãªã³ã¯ã次ã«ç€ºããŸãã
- å³ããå·Šãžãdir = rtlãšã¯äœã§ãããã¢ã©ãã¢èªã飌ããªããæ¹æ³
- å³ããå·ŠãžãRTLã®ãµã€ãã€ã³ã¿ãŒãã§ã€ã¹ãå転ããæ¹æ³
- RTLã¹ã¿ã€ãªã³ã°101-CSSã§ã®RTLã¹ã¿ã€ãªã³ã°ã®ç©¶æ¥µã®ã¬ã€ã
- åœéåææ³ïŒHTMLãšCSSã®äœæ
- ææèšèšã«ãããåæ¹åæ§
- ã¢ã³ãã¬å°å±±ã·ã£ããã®åœéåã«é¢ããããã°
ããã¯ãéçã€ã³ã¿ãŒãã§ã€ã¹ãRTLã«é©åãããã®ã«ååã§ãããããããéåžžã«æºè¶³ããã§ãããããã ãããµã€ãã«ãŠãŒã¶ãŒãšã®ããåãã®èŠçŽ ãå«ãŸãããŸã§ã¯ãããšãã°ãã€ã³ã¿ãŒãã§ã€ã¹èšèªã«é¢ä¿ãªãä»»æã®ã³ã³ãã³ããåãå ¥ããããšãã§ãããã©ãŒã ãªã©ã§ãã
ãã®åé¡ã«ã¯ãã³ã³ãã³ãã®å ¥åãšåºåã®2ã€ã®èŠçŽ ããããã©ã¡ããç¬èªã®æ¹æ³ã§èå³æ·±ããã®ã§ããåæã«ã2çªç®ã¯äžèšããã³ä»ã®èšäºã§åºãã«ããŒãããŠããŸãããæåã¯ããã§ã¯ãããŸãããããã解決ããããã«ãHabrã®èªè ãšå ±æãã䟡å€ããããšæãããããã€ãã®ããªãã¯ããããŸãã
ãŸããRTLãªãŒãã£ãšã³ã¹ã倧ããåé¡ã§ã¯ãªãããã€ãã®RTLã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ãæ¯èŒããããã¹ãå ¥åã®ã¿ã¹ã¯ã«ã©ã®ããã«å¯ŸåŠããããèŠãŠã¿ãŸãããã
äŸ1.1ã€ã®ãœãŒã·ã£ã«ãããã¯ãŒã¯
1.1ãã°ã€ã³ãã©ãŒã
ã¡ã€ã³ããŒãžã®ãã°ã€ã³ãã©ãŒã ã§ã¯ããE-mailããã£ãŒã«ãã¯ããã©ã«ãã§LTRã®ããã«åäœããŸããã»ãšãã©ã®é»åã¡ãŒã«ã¢ãã¬ã¹ã«ã¯ã©ãã³æåããå«ãŸããŠããªããããããã¯ããªãåççã§ãã
ããããæ®éçã§ã¯ãããŸãããçŸåšã®æšæºã§ã¯ãã»ãšãã©ãã¹ãŠã®æåãé»åã¡ãŒã«ã¢ãã¬ã¹ã§äœ¿çšã§ããŸãããã®çµæãããã©ã€èªã§æžãããäœæã¯æ¬¡ã®ããã«ãªããŸãã
- å·Šæãã
- ãã¥ãŒãã©ã«ã¿ã€ãã³ã°ã®èšå·ã@ããšããããæžãéçšã§ãæ§é å šäœãäœçœ®ãå€ããŠããŸãã®ã§ãããŸã䟿å©ã§ã¯ãããŸããã
ããã©ã«ãã®ãã¹ã¯ãŒãã¯RTLã§ãã«ãŒãœã«ã¯å³åŽã«ãããŸãã
ããããã©ãã³æåãŸãã¯æ°åãããã¹ã¯ãŒããå ¥åããããšãããšã©ããªããŸããïŒå ¥åãããšãå ¥åããããã¹ãã®å·ŠåŽã«ã«ãŒãœã«ãé 眮ãããŸããïŒ[ãã¹ã¯ãŒãã衚瀺]ãã¿ã³ããªãéãïŒãŸã ãã¹ã¯ãŒãã衚瀺ãããªããããããã¯éèŠã§ã¯ãããŸãããããŠãŒã¶ãŒããã¹ã¯ãŒããå ¥åããã¬ã€ã¢ãŠãã衚瀺ããããšã§ããã£ãŒã«ãã®åäœãæ¹åã§ããŸããRTLã€ã³ã¿ãŒãã§ã€ã¹ã®ç¹æ®æ§ã¯ãã»ãšãã©ã®ããã¹ããå³å©ãã§ããã«ããããããããŠãŒã¶ãŒãé»åã¡ãŒã«ããã°ã€ã³ããã¹ã¯ãŒããå ¥åããããã«ããŒããŒãã¬ã€ã¢ãŠããåãæ¿ããå¿ èŠãããããšã§ãããããã¯éåžžãLTRã§èšè¿°ãããŸããããã§ã®ã¡ãã£ãšãããã³ãã圹ã«ç«ã¡ãŸãã
1.2ç»é²ãã©ãŒã
ããã§ã¯ãåããã¡ã€ã³ããŒãžã«ããç»é²ãã©ãŒã ãèŠãŠã¿ãŸãããã
ããã§ã¯ããã¹ãŠã®ãã£ãŒã«ããæ確ã«RTLãšèŠãªãããå³æãã«ãªã£ãŠããããšãããããŸããããã¯ãLTRããã¹ããåŠçãããšãã«ããŸã䟿å©ã§ã¯ãããŸãããé»åã¡ãŒã«ãå ¥åãããšããããã¯ç¹ã«äžå¿«ã«ãªããŸã-èšå·ã@ããšããããå ¥åäžã«ã¢ãã¬ã¹ã®äžéšã匷å¶çã«ã¹ã¯ããããŸããåã®äŸã§ãŸããªRTLã¢ãã¬ã¹ã«ãšã£ãŠããã»ã©éèŠã§ã¯ãªãã£ãããšããLTRã«ãšã£ãŠéèŠã«ãªããŸãã
1.3ã¡ãã»ã³ãžã£ãŒ-ã³ã³ãã¯ã
ã¡ãã»ã³ãžã£ãŒã¯ããã®ã¢ããªã±ãŒã·ã§ã³ã®äž»èŠãªããŒã«ã®1ã€ã§ãããã¹ãŠã確å®ã«å®ç§ã§ãªããã°ãªããŸãããã³ã³ãã¯ãããŒãžã§ã³ãèŠãŠã¿ãŸãããïŒ
確ãã«ããã®ãã£ãŒã«ãã¯ããã©ã«ãã§RTLãšèŠãªãããŸãããLTRããã¹ãã®å ¥åãéå§ãããšããã«ããã®æ¹åã䟿å©ãªå ¥åã«å€ãããŸããäœããžã£ã³ãããŸãããæ¡åŒµããŒãžã§ã³ã§ããã¹ãŠãæ£åžžã§ããããšã確èªããŸãããã
1.4ã¡ãã»ã³ãžã£ãŒ-æ¡åŒµ
ãã£ãšïŒRTLãã£ãŒã«ãã®ã©ãã³èªããã¹ãã¯æ£ããåäœããŸãããå³æãã«ãªã£ãŠããŸããéèŠã§ã¯ãããŸããããè«çã¯æ確ã§ã¯ãããŸãããã€ããªãã®ãŒçã«åãã³ã³ããŒãã³ãã®åäœãç°ãªãã®ã¯ãªãã§ããã
ã©ããããèæ ®ããã4ã€ã®ã³ã³ããŒãã³ãã¯ãåœéçãªã€ã³ã¿ãŒãã§ã€ã¹ã®èŠä»¶ãç°ãªããšãã«ãç°ãªãããŒã ã«ãã£ãŠããŸãã¯ç°ãªãæéã«éçºãããŸããã
ããã§æ¹åã§ããããšã¯ãããŸããïŒããæããŸããããã«ãéåžžã«ç°¡åãªæ¹æ³ã§ããããã«ã€ããŠ-以äžã
äŸ2.ããªãããç¥ãããŠããéµäŸ¿ãµãŒãã¹
2.1ãã°ã€ã³ãã©ãŒã
ããã§ã¯ãéçºè ã¯å¿ èŠãªé 眮ã®ååããå³ã«é²ã¿ãŸãããLTRãšããŠå ¥åã³ã³ãã³ãã«å¯Ÿããæ 床ãä¿æããŸããããã¯ãåã®äŸã§ç€ºãããã®ãšåæ§ã«ãããã€ãã®äžäŸ¿ãªç¹ã«ã€ãªãããŸãã
ããšãã°ãé»åã¡ãŒã«å ¥åãã£ãŒã«ãã§ã¯ãå³åŽã«å ¥åããã¹ããå¿ èŠã§ãã
ãã ããå ¥åãããLTRããã¹ãã¯ããžã£ã³ãããããšãªãæåŸ ã©ããã«åäœããŸãïŒãŸãããã®ã¡ãŒã«ãµãŒãã¹ã§éã©ãã³æåã䜿çšããããšã¯çŠæ¢ãããŠããŸãïŒã
, , RTL- , . , : - , - â , , , . Badoo, , .
ãã¹ã¯ãŒããã£ãŒã«ãã®ããèå³æ·±ãåäœããŸããå³æãã«ããå¿ èŠããããLTRãšèŠãªãããŸããããã«ãããRTLèšèªã§å ¥åãããšãã«ãããŒããŒãã¬ã€ã¢ãŠãã«é¢ããæçšãªæ å ±ã倱ããããšèããããŸãã
ãŸããåã®äŸã®é»åã¡ãŒã«ã®å Žåã®ããã«ããã¥ãŒãã©ã«ãªæåã«ãã£ãŠãã¹ã¯ãŒãããžã£ã³ãããããããã¹ã¯ãŒã衚瀺ããªã³ã«ãããšãç¶æ³ãéåžžã«æªããªããŸãããããã£ãŠã次ã®ã¹ã¯ãªãŒã³ã·ã§ããã®äŸã§ã¯ãæå笊ãæåã«æ¥ãŠãã«ãŒãœã«ãå·ŠåŽã«ããã¯ãã§ãã
2.2ç»é²
ãã©ãŒã ç»é²ãã©ãŒã ã¯çªç¶ã¯ããã«ãŠãŒã¶ãŒãã¬ã³ããªãŒã«ãªããŸãããããããããã¯è«ççã§ã-ããã«å ¥åãããæ å ±ã¯ããå€æ§ã§ããããã«ã¯ãå°ãªããšãå§åã衚瀺ãããŸãã
ããã§ã®é 眮ãåžžã«å³æãã§ãããããã¹ããæ確ã«å·ŠåŽã«ãããšã¯èŠãªãããªããªããå ¥åããæåã«å¿ããŠãã£ãŒã«ãã®æ¹åãå€ãããŸãã
å¯äžã®äŸå€ã¯ã¢ãã¬ã¹ãã£ãŒã«ãã§ããããã«é 眮ãæ®ã£ãŠããŸããå°ãå¥åŠã«èŠããŸãã
ãããããã¹ã¯ãŒããã£ãŒã«ãã¯åã³ã€ã©ã€ã©ããŸãããã®ããŒãžã«ã¯ãã£ãŒã«ãå ã®ããã¹ãã®æ¹åãåçã«å€æŽããæ©èœããããŸãããäœããã®çç±ã§ãã¹ã¯ãŒããã£ãŒã«ãã«è¿œå ãããŸããã§ããã
ã芧ã®ãšããããã®ãããªåçŽãªã³ã³ããŒãã³ãã§ãçåãçããŸããã«ã¬ã³ããŒã®ãããªè€éãªã³ã³ãããŒã«ã«ã€ããŠäœãèšããŸããïŒ
Badooäœéš
ãã®çãæŠèŠã®çµæã«åºã¥ããŠãååŸãããããã¹ããã£ãŒã«ãã®åäœã®èŠä»¶ãå®åŒåããŸãã
- ãã¬ãŒã¹ãã«ããŒã¯ãã€ã³ã¿ãŒãã§ã€ã¹èšèªã®æ¹åã«å¿ããŠé 眮ããå¿ èŠããããŸãã
- å ¥åãããããã¹ãã¯ããã®æ¹åã«å¿ããŠããã£ãŒã«ãã®å·ŠåŽãŸãã¯å³åŽãèªåçã«å ããå¿ èŠããããŸãã
- 空ã®ãã£ãŒã«ãã®ã«ãŒãœã«ã¯ãã€ã³ã¿ãŒãã§ã€ã¹èšèªã®æ¹åã«å¿ããŠæŽåããå¿ èŠããããŸãã
- é»è©±ãå ¥åããããã®ãã£ãŒã«ãã«ããã¹ããå ¥åããå ŽåãURLã¯åžžã«å·ŠåŽã«ããå¿ èŠããããŸãã
- é»åã¡ãŒã«ãã£ãŒã«ãã¯å·Šå©ãã®ããã¹ããæ³å®ããŠããŸãããå³å©ãã®ããã¹ããçšæãããŠããŸãã
- é»åã¡ãŒã«ãé»è©±ãURLã®ç©ºã®ãã£ãŒã«ãã®ã«ãŒãœã«ã¯å·ŠåŽã«é 眮ãããŸãã
ãããŠããããéæããããšããŸãããã
ãŸããããªãã¯ã®ãªãååã®ãããªãã¬ãŒã³ããã¹ãã®ãã£ãŒã«ããèŠãŠã¿ãŸãããã
<html lang=âheâ dir=ârtlâ>
...
<input type="text">
...
</html>
INPUTã¿ã°ã¯HTMLããããã¹ãã®æ¹åãç¶æ¿ãããããã«ãŒãœã«ã¯æåŸ ã©ããã«å³ã«é 眮ãããŸããå³å©ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã®å Žåãå ¥åãããããã¹ãã¯å³å©ãã§ããå¯èœæ§ãé«ããšäºæ³ãããŸãã
ããããLTRæåã®å ¥åãéå§ãããšã©ããªããŸããïŒå·ŠåŽã«ç°åžžãªã«ãŒãœã«ãããããã§ã«ããªãã¿ã®ç¶æ³ã
äžèšã®äŸã§ã¯ãéçºè ã¯åé¡ã®è§£æ±ºçã«å³ããåãçµãã§ããŸããJavaScriptã䜿çšããŠå ¥åæåãç£èŠãããã®å Žã§dirå±æ§ãå€æŽããŸããããã¯æè¿ãŸã§çã«ããªã£ãŠããŸãããæè¿ã®ãã¹ãŠã®ãã©ãŠã¶ã¯dir = "auto"å±æ§ãéåžžã«ããç解ããããã¹ãã®ã¢ã³ã©ãããåŠçããŸããè¿œå ããŸãããã
<input type="text" dir=âautoâ>
ããã¯ç§ãã¡ãå¿ èŠãªãã®ã§ããããšãããããŸããã
ãã£ãŒã«ãã«ãã¬ãŒã¹ãã«ããŒãè¿œå ããŠã¿ãŸãããã
äžè¬ã«ããã¬ãŒã¹ãã«ããŒã®äœ¿çšã¯ãç¿çãå¿ èŠãªå¥ã®ãããã¯ã§ããäžéšã®éçºè ã«ãããšããã®å±æ§ãç¡æèã«äœ¿çšãããšãå ¥åãã£ãŒã«ãã®äœ¿ãããããæãªãããŸãã決å®ã¯ããªãã«ä»»ããŸããããããã®å®éšã§ã¯ããã¬ãŒã¹ãã«ããŒãå¿ èŠã§ãããšæ³å®ããŠããŸãã
<input type="text" dir=âautoâ placeholder=â×©× ×€×š××â>
ããïŒäœããã®çç±ã§ããã¬ãŒã¹ãã«ããŒãå«ãããã¹ãŠãå·Šæãã«ãªã£ãŠããŸãã
ãã€ã³ãã¯ãå±æ§dir = "auto"ã«ãããŸããã³ã³ãã³ãããªãå Žåããã©ãŠã¶ã¯ããã¹ãã®æ¹åãå·Šå©ãã§ãããšæ³å®ããå ŽåããããŸãããã¬ãŒã¹ãã«ããŒãå³ããŒãžã³ã«é 眮ããŠã¿ãŸããããããã¯éåžžãã€ã³ã¿ãŒãã§ã€ã¹èšèªã®ããã¹ãã§ãããããèªåã¬ã€ã¢ãŠãã¯å®éã«ã¯å¿ èŠãããŸããã
input::placeholder {
direction: rtl;
}
ãã£ãšãããã«ãŒãœã«ã®äœçœ®ã ããçŽããããã§ã-ããã¯ãŸã å·ŠåŽã«ãããŸãã空ã®INPUTãlovelyïŒplaceholder-showpseudo-classã§ã¹ã¿ã€ãªã³ã°ããŠã¿ãŸãããã
input:placeholder-shown {
direction: rtl;
}
æ®å¿µãªããããã¬ãŒã¹ãã«ããŒã®ãªãå ¥åã§ã¯ãïŒplaceholder-shownããããã£ã¯æ©èœããŸããããã®ãããªãã¹ãŠã®ãã£ãŒã«ãã«ç©ºã®ãã¬ãŒã¹ãã«ããŒãè¿œå ããããšã§ããããä¿®æ£ã§ããŸãã
<input type="text" dir=âautoâ placeholder=â â>
ããã§ããã¹ãŠãæ¬æ¥ããã¹ãç¶æ ã«ãªããŸãããå³åŽã«ãã¬ãŒã¹ãã«ããŒãå³åŽã«ã«ãŒãœã«ïŒãŸããRTLããã¹ããå¿ èŠãªããïŒãããã¹ã-å°å·ããèšèªã«å¿ããŠãå³åŽãŸãã¯å·ŠåŽã«ãããŸãã
ããããããã ãã§ã¯ååã§ã¯ãããŸããã
é»åã¡ãŒã«ã¢ãã¬ã¹ã«ã¯ä»»æã®æåãå«ããããšãã§ããããšãèŠããŠããŸãããããã£ãŠããã®ãããªINPUTã®ã³ãŒãã¯åã®ã³ãŒããšåæ§ã«ãªããŸãã
<input type="email" dir=âautoâ placeholder=â×ת××ת ×××××× ×× ×ס׀ך × ×××â>
ïŒBadooã§ã¯ããŸãé»åã¡ãŒã«ãå ¥åããå¿ èŠããããŸãããé»è©±çªå·ãå ¥åã§ããããããã¬ãŒã¹ãã«ããŒã¯ããã«ã€ããŠèª¬æããŸããïŒ
ãã ããæåã¯äœã§ãããŸããŸãããããŸããäœæïŒãã®å Žåã¯çªå·ïŒãå ¥åããå¿ èŠããããŸããé»è©±çªå·ïŒãã€ãŸãã空ã®ãã£ãŒã«ãã®ã«ãŒãœã«ã¯å·ŠåŽã«ããå¿ èŠããããŸããCSSã§äŸå€ãäœããŸãããã
input[type='email']:placeholder-shown {
direction: ltr;
}
ããã¯ã詳ãã説æãã䟡å€ã¯ãããŸãããtelãnumberãurlã¿ã€ãã®ãã£ãŒã«ãããŸã ãããŸãããããã¯åžžã«å·Šå©ããªã®ã§ã次ã®ã³ãŒããèšè¿°ããŸãã
<input type="tel" dir=âltrâ placeholder=â×ס׀ך ×××€××â>
ãããŠã空ã®ãã£ãŒã«ãã®äŸå€ãè¿œå ããŸãã
input[type='tel']:placeholder-shown,
input[type='number']:placeholder-shown,
input[type='url']:placeholder-shown {
direction: ltr;
}
ä»ã§ã¯èšç»éãã«ãªããŸããã
IE11ãæ°ã«ãã人ã®ããã®ã»ãã®å°ãã®ã¿ããããã®ãã©ãŠã¶ã¯dir = "auto"å±æ§ãç解ããªããããJavaScriptããªããšããã¹ãã®æ¹åãèªåçã«å€æŽã§ããŸããã
ãã ãããŠãŒã¶ãŒã¯ã¡ãŒã«ã¢ãã¬ã¹ãšé»è©±çªå·ãç°¡åã«å ¥åã§ããŸãã
.ie11 input[type="email"],
.ie11 input[type="tel"] {
direction: ltr;
}
.ie11 input[type="email"]:-ms-input-placeholder,
.ie11 input[type="tel"]:-ms-input-placeholder {
direction: rtl;
}
ãã¹ãŠã®CSSãåéãããã¬ãã£ãã¯ã¹ãšSCSSããªããã»ããµãè¿œå ãããšã次ã®ããã«ãªããŸãïŒããšãã°ãINPUTãã£ãŒã«ãã¯ãã§ãã¯ããã¯ã¹ã¿ã€ãã«ããããšãã§ããŸãããç°¡åã«ããããã«ããã®ç¹ã¯ç¡èŠããŸãïŒã
[dir=ârtlâ] input {
&::-webkit-input-placeholder {
direction: rtl;
}
&::-moz-placeholder {
direction: rtl;
}
&:-ms-input-placeholder {
direction: rtl;
}
&::placeholder {
direction: rtl;
}
&:placeholder-shown[type='email'],
&:placeholder-shown[type='tel'],
&:placeholder-shown[type='number'],
&:placeholder-shown[type='url'] {
direction: ltr;
}
}
.ie11 [dir=ârtlâ] input {
&[type="email"],
&[type="tel"] {
direction: ltr;
&:-ms-input-placeholder {
direction: rtl;
}
}
}
Badooã§ã¯ã¹ã¿ã€ã«ãLTRãšRTLã«åå²ããŠããããã[dir =â rtlâ]ããã®ã«ã¹ã±ãŒãã¯ãªããLTRã®ããããã£ãèšè¿°ããŠRTLã«å€æããŸããããããååã¯æããã ãšæããŸãã
TEXTAREAã®å Žåãã¹ããŒã ã¯1ã€ã®äŸå€ãé€ããŠåãã§ãããã£ãŒã«ãã¿ã€ããèæ ®ããŠã巊端ã«ã«ãŒãœã«ãŸãã¯ããã¹ããé 眮ããå¿ èŠã¯ãããŸãããdir= "auto"å±æ§ã«ãããã³ã³ãã³ãã¯åžžã«èªåçã«å±éãããŸãã
èŠããŠããã¹ãéèŠãªãã€ã³ãïŒãã¹ãŠã®ãã£ãŒã«ãèŠä»¶ã¯LTRã€ã³ã¿ãŒãã§ã€ã¹ã«ãé©çšãããŸããå ¥åããååã¯ããã©ã€èªãŸãã¯ã¢ã©ãã¢èªã§å³åŽã«è¡šç€ºãããã«ãŒãœã«ã¯å·ŠåŽã«è¡šç€ºãããŸããå³åŽã®æåãå«ãŸãããšããŸããã¯ãªã¡ãŒã«ã¢ãã¬ã¹ã®ãŸããªãã¡ã³ã¯ãå³ããå·Šã«å ¥åãããšã¡ãŒã«ã衚瀺ãããã¯ãã§ãã
çµè«ïŒå ¥åãã£ãŒã«ããšæ°è¡ã®CSSã«æ£ããå±æ§ãè¿œå ããããšã§ããã©ãŒã ãå³å©ãã®èšèªã«å®å šã«é©åãããªããŠããæé ãªäŸ¡æ Œã§ããŠãŒã¶ãŒã«ãšã£ãŠããè«ççã§ç解ãããããã®ã«ããããšã§ãå°ãªããšãå€§å¹ ã«äœ¿ãããããåäžãããããšãã§ããŸãã