登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
针对多语言市场特别是包含 RTL(从右向左)语言(如阿拉伯语、波斯语、希伯来语)的国际化布局,需要通过系统化的架构设计和关键技术适配实现高兼容性方案。0 q: M* r2 S) N6 s+ {& k" |
以下是优化后的全链路解决方案:
- P" s( m8 Q1 v, f
" l) u; s) E8 |2 x. e( j% O' b3 x方法一:
! m5 D( W4 M4 `: V* w: D% D5 @6 Zhtml标签中添加 dir="rtl" 属性
+ g( D5 u6 M% N* ?9 Q- p1 ^: I' F- g<html DIR=RTL> 改变文档的书写顺序. W) x) p* `. q: U$ l1 U* D
* ?% J( f8 }# T0 ^- <!-- 动态语言标记(关键!) -->
# p/ R' p- A+ j; j: P1 M - <html lang="{lang}" dir="{dir}"> <!-- 如 lang="ar" dir="rtl" -->
1 J5 f' r/ E, `+ B& h4 d1 ]0 t& n
复制代码
! Q% [9 b1 n9 B9 R7 O, _+ t方法二(css):& f6 Q! @! n2 B0 `) D# E9 I; z& u$ p8 y M
html{direction:rtl;unicode-bidi:bidi-override;}: R4 e' c. m( E
给html添加如上样式就可以了。
& {6 A+ k1 `' q. g
/ ]/ `& I3 r2 S; ~# R1. direction:
/ ~$ p0 @9 l6 w4 m8 q 语法:8 K+ I! R! f* A1 ?& n" ~+ \
direction : ltr | rtl | inherit
8 Z5 \1 c- Q; E! Y: e% ~2 V+ t0 o 取值:) D" S) |# D- X4 O! |1 B( ]
ltr : 默认值。文本从左到右流入& X5 d. S$ `9 M; \" e* J- _/ u
rtl : 文本从右到左流入
4 G" a$ G1 B1 s inherit : 文本流入方向由继承获得; b0 H, D) Y% N- ]0 q5 ^
说明:
V+ L0 m: D( V$ G5 e 用于设置文本流入的方向。# x2 Y3 g( P* x7 ^5 v, Y
此属性不会影响拉丁文的字母数字字符,它们总是以 ltr 值被呈递。但是此属性会作用于拉丁文的标点符号。
6 ?6 B( F7 H2 n 假如您想应用此属性于内联文本,您必须设定 unicode-bidi 属性为 embed 或 bidi-override 。' h3 ?& e h; P. [9 G
2. unicode-bidi: R6 }' f" X# M3 v* M. A
语法:
% ^ ], q8 m7 e( q5 D4 ` unicode-bidi : normal | bidi-override | embed4 j( O& n( X4 ?# [- v$ D% `: j
取值:, a; Z4 H$ I+ D4 r
normal :默认值。对象不打开附加的嵌入层,对于内联要素,隐式重排序跨对象边界进行工作
$ r0 f9 H' y: j bidi-override :严格按照 direction 属性的值重排序。忽略隐式双向运算规则: L2 X$ g, P% B
embed :对象打开附加的嵌入层, direction 属性的值指定嵌入层,在对象内部进行隐式重排序2 f. r, Y& }5 q; `* t* `) p5 c% w
3 X! ^/ N& E% L. m6 M; U# l 说明:
6 t; ^" X; I2 W+ _- | 用于同一个页面里存在从不同方向读进的文本显示。与 direction 属性一起使用。
/ L* w; o6 V8 e2 K8 s3 e$ o 假如您想应用 direction 属性于内联文本,您必须设定此属性值为 embed 或 bidi-override 。
, f5 o7 a" @9 g# Y0 h Unicode 双向运算法则自动翻转嵌入字符顺序依照它们固有的流动方向。例如,英文文档的默认书写方向是左-右,假如其" ^0 ~ ~# ^( u+ S& B4 S- F
中包含的部分其他语种的字符其书写方向是右-左,双向运算法则就可以用来代理用户正确的反转其流动方向。
' Y2 C- f! z( @8 q( y2 t5 a- X( O3 F
: H. t7 c m1 q; I5 x方法三(JS):
+ F1 e( b9 o5 I+ L J设置 text-align:right;然后翻转所有字符串。
9 h @% T z0 n; {$ Q/ N不推荐使用此方法,一是容易出错,二是大量JS操作,损耗性能。
0 q/ R( j8 J; i) M; N+ P; r! b" [+ \. R
参考文章:
( v$ a* u( [: o; ?9 N/ fhttps://blog.csdn.net/weixin_34254823/article/details/91369585' ^! w, k7 G! O" [1 Q
https://blog.baiwand.com/?post=212
5 n( ]/ G* A! X |