网页与前端 · 综合
希伯来语与从右到左:什么会坏,怎么修
一句话: 大多数从右到左的bug,来自用了left和right而不是start和end——以及混排文本在一行里打架。
基础
在文档层级声明语言和方向。从那里开始,在外边距、边框和定位上使用逻辑属性——用start和end代替left和right。每一个还留着显式left的地方,都是站点第二版里的未来bug。
有方向性的图标,比如箭头,应该镜像。没有方向性的,比如播放符号,不该镜像。
混排文本
一行里同时有希伯来语、英语和数字,就是方向会乱的地方。句尾的标点会跳位、版本号会翻转、网址会断开。
解法是隔离:把外语或代码片段包在一个声明了自身方向的元素里。这能在不用技巧的情况下解决大多数情况。
电话号码、标识符和技术字符串,即便在希伯来语句子中,也最好显式按从左到右显示。
还要检查什么
横向滚动和滑块、带编号列的表格、坐标轴应当翻转的图表,以及导出为文件——尤其是PDF,那里希伯来语支持常常是在字体层面失败,而不是代码层面。
深入一层
每次发布都用两种语言测试系统,而不只是希伯来语。从右到左的问题往往通过只在单一方向上测过的外部组件进来——所以值得选择声明支持的库,并把其余的包在自己的一层里,在一个地方修正行为。