登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
针对多语言市场特别是包含 RTL(从右向左)语言(如阿拉伯语、波斯语、希伯来语)的国际化布局,需要通过系统化的架构设计和关键技术适配实现高兼容性方案。. T+ N) u" U1 D, m/ g! P0 s
以下是优化后的全链路解决方案:
! X ^7 B. h' }3 o5 C/ ]1 `; N& P: g
5 I6 w) j+ V0 m" _/ ]/ h3 V! @& w方法一:
$ t8 r* Y; n3 t8 Y( m6 ]' @* Yhtml标签中添加 dir="rtl" 属性5 I' I+ x4 W9 _# y7 l4 \' G* G
<html DIR=RTL> 改变文档的书写顺序8 r/ f& \( X- ^
1 @8 ~9 F* P5 F# ^$ g( R
- <!-- 动态语言标记(关键!) -->5 A. z$ q. J- X. s* B: ~
- <html lang="{lang}" dir="{dir}"> <!-- 如 lang="ar" dir="rtl" -->, p7 ?* D9 W1 O0 h4 U7 b$ j: t
复制代码 / E) V+ c8 c R' `) }
方法二(css):* E: s% s+ c& X8 z) N# X! Y
html{direction:rtl;unicode-bidi:bidi-override;}
; Q; g% C1 m% C5 ~# H给html添加如上样式就可以了。* E! p) e/ C# e6 n }1 w8 s8 w
' m0 K# X5 ?0 A: e& I( a0 K
1. direction:$ H& z6 a7 g# n1 t4 {& n& D
语法:
7 t1 s+ V0 _$ W) }( o6 q6 f9 ] direction : ltr | rtl | inherit
) j+ n9 Q) Q9 R- Q% w: _1 X0 S1 r% p 取值:3 P$ K8 L& I" r# c- s1 C
ltr : 默认值。文本从左到右流入5 |% m4 q9 |* I* b* m6 h
rtl : 文本从右到左流入
* f5 J5 x+ t; q& h! V inherit : 文本流入方向由继承获得0 B+ w/ n! x* X1 {- C' @
说明:
H* B$ W5 a' F0 O 用于设置文本流入的方向。5 o; N& T" v5 r. L" \
此属性不会影响拉丁文的字母数字字符,它们总是以 ltr 值被呈递。但是此属性会作用于拉丁文的标点符号。- Y; m/ B! t7 z4 ]9 O
假如您想应用此属性于内联文本,您必须设定 unicode-bidi 属性为 embed 或 bidi-override 。
! V5 s$ g0 X6 }1 `. h2. unicode-bidi:' M! \0 o' f) K2 P6 a- Y* g
语法:
; M% V6 F1 r, `* @5 I unicode-bidi : normal | bidi-override | embed9 M/ b T, S c- a& ?/ q
取值:
: y8 D0 C/ s: ?, d normal :默认值。对象不打开附加的嵌入层,对于内联要素,隐式重排序跨对象边界进行工作
1 R: G* ~+ `# P9 ]- Q bidi-override :严格按照 direction 属性的值重排序。忽略隐式双向运算规则0 s* C% z+ ~4 L! d/ _
embed :对象打开附加的嵌入层, direction 属性的值指定嵌入层,在对象内部进行隐式重排序
, a. z& r" w. i; ]4 T
( k: Q6 ]: ~, V& h9 h 说明:
2 S. j" T1 X2 L9 q; A" w9 ~ 用于同一个页面里存在从不同方向读进的文本显示。与 direction 属性一起使用。5 P0 z! y, \: e0 R7 y
假如您想应用 direction 属性于内联文本,您必须设定此属性值为 embed 或 bidi-override 。- ]7 U! v! [! |8 Q
Unicode 双向运算法则自动翻转嵌入字符顺序依照它们固有的流动方向。例如,英文文档的默认书写方向是左-右,假如其
# k# H" W0 I! J/ y6 A" A6 c# t 中包含的部分其他语种的字符其书写方向是右-左,双向运算法则就可以用来代理用户正确的反转其流动方向。
' _' [1 _! y' O6 m: {" t
0 B2 a4 ~$ ^$ g& ^4 X3 |: d& f
3 Y- w' @' s: S5 I c4 A4 f2 t9 O. v4 y |方法三(JS):8 h0 y+ R6 p7 |8 b$ l8 |4 h' C% V
设置 text-align:right;然后翻转所有字符串。
- k- B4 D9 G+ t+ c" \不推荐使用此方法,一是容易出错,二是大量JS操作,损耗性能。
# `$ K% F4 H" ~' m& q. y
4 E( `3 d# U2 C, Q* o参考文章:# ?6 H. R* |6 L! Q
https://blog.csdn.net/weixin_34254823/article/details/91369585% S2 A4 r" [& N" l- h% ~: M+ i
https://blog.baiwand.com/?post=2129 i# U# W& S. i2 L3 s
|