登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
针对多语言市场特别是包含 RTL(从右向左)语言(如阿拉伯语、波斯语、希伯来语)的国际化布局,需要通过系统化的架构设计和关键技术适配实现高兼容性方案。. _$ ^7 w. k) d( T, T
以下是优化后的全链路解决方案:
! B% {1 t6 J) V2 x5 M
# q- f( O5 K! O+ ~
方法一:& l K# v; r$ J5 X4 E" a- b
html标签中添加 dir="rtl" 属性
$ C' i( b$ L. I) j<html DIR=RTL> 改变文档的书写顺序
8 f- y/ A) ]( @$ \$ Y! f: m3 ^1 r4 C$ L
- <!-- 动态语言标记(关键!) -->
4 U9 p+ x3 N6 A7 ~# r - <html lang="{lang}" dir="{dir}"> <!-- 如 lang="ar" dir="rtl" -->
# k: h3 w- y) i8 z* Q$ _3 ]5 Z: ]
复制代码
6 m; W/ T: Z# [& s; M方法二(css):% H3 d# b/ s/ E: Z4 P
html{direction:rtl;unicode-bidi:bidi-override;}
* v# ^$ k4 d b1 X. c! K- j8 \2 K给html添加如上样式就可以了。1 O- ^' j$ b! a" h x
& c' Y9 w% ]/ k+ e' w" w1. direction:
* m1 y1 q+ K: U. {( R 语法:
& P% M, \! B. f& W- W direction : ltr | rtl | inherit% Y% D; D; g0 T9 r
取值:; d7 r' a& |9 |4 U1 t
ltr : 默认值。文本从左到右流入$ C" z- t- k- V) o, W
rtl : 文本从右到左流入 q4 }9 h. ^+ b. K$ {2 c
inherit : 文本流入方向由继承获得
; ^: K1 @5 v6 `$ u8 c 说明:! ?7 H. l- Q. J0 f
用于设置文本流入的方向。
0 \7 H$ m$ U$ N+ @ 此属性不会影响拉丁文的字母数字字符,它们总是以 ltr 值被呈递。但是此属性会作用于拉丁文的标点符号。
) D/ P& O0 W5 n) x' O* k6 Y( K) C 假如您想应用此属性于内联文本,您必须设定 unicode-bidi 属性为 embed 或 bidi-override 。# f1 b# G6 |+ l8 F
2. unicode-bidi:
) O3 t: Y8 P- V 语法:
) e. U3 \0 r& p6 v$ z% E* n0 S( h unicode-bidi : normal | bidi-override | embed
4 l7 u* `2 q4 E; t* A$ B 取值:$ i! r! l8 Y7 e( y3 k" O
normal :默认值。对象不打开附加的嵌入层,对于内联要素,隐式重排序跨对象边界进行工作# o. L* ^ y9 t% v! K- I' n( {6 K0 ~
bidi-override :严格按照 direction 属性的值重排序。忽略隐式双向运算规则
6 f1 }7 ]) |$ F, f embed :对象打开附加的嵌入层, direction 属性的值指定嵌入层,在对象内部进行隐式重排序. v3 z8 \6 I& d2 N
5 E/ H/ r4 U( j" b
说明:
! _, n* y5 B' l! E" C; o. Y0 I9 l 用于同一个页面里存在从不同方向读进的文本显示。与 direction 属性一起使用。- i8 H" `) b$ B; w5 l
假如您想应用 direction 属性于内联文本,您必须设定此属性值为 embed 或 bidi-override 。8 B; M/ H0 F3 T9 b* G$ L7 ~
Unicode 双向运算法则自动翻转嵌入字符顺序依照它们固有的流动方向。例如,英文文档的默认书写方向是左-右,假如其* X4 t" Y" Z' E( {; N0 r6 H
中包含的部分其他语种的字符其书写方向是右-左,双向运算法则就可以用来代理用户正确的反转其流动方向。
! \$ W3 Y- E; n: J- ^0 A; Q
7 z1 h, \; c8 n2 r& v* A8 e2 w; {/ G: z" L$ k! A
方法三(JS):
" J* F2 L5 D8 j0 }3 _7 R' k7 H. w设置 text-align:right;然后翻转所有字符串。( i& v. ~! \) N* v6 p
不推荐使用此方法,一是容易出错,二是大量JS操作,损耗性能。$ x7 [7 v, K! Z9 z3 _7 [
) E- Z3 v; c; s, m
参考文章:
/ H5 V# E+ Y; o3 C" h: j8 Ehttps://blog.csdn.net/weixin_34254823/article/details/91369585* G0 G. P" _# e/ {$ ~- S
https://blog.baiwand.com/?post=212 e0 F+ l* W$ W
|