阿拉伯语
在 HTML 中,文档的排版方向通常继承自其父元素的显式设置(dir 属性)。若未设置 dir 属性,则文档的默认排版方向是 ltr(从左到右)。然而,阿拉伯语遵循 rtl(从右到左)的阅读习惯,这与默认的排版方向相反。
提示
ltr(left to right):文本从左向右排列,适用于从左向右书写的语言(比如英语)。rtl(right to left):文本从右向左排列,适用于从右向左书写的语言(比如阿拉伯语)。
支持阿拉伯语的文档排版方向
假设页面上显示了一条文案为 这是一段正常顺序的文本,当客户用阿拉伯语访问页面时,期望看到的文案语序应该是 本文的序顺常正段一是这。为实现遵循阿拉伯语的文字排版方向,需完成如下步骤。
步骤一:添加全局 dir 属性
在 <html> 标签中添加 dir 属性,将其值指定为 request.document_direction。
这样,页面渲染时会根据当前语种自动下发排版方向。例如,当前语种为英语时,下发的排版方向是 ltr;当前语种为阿拉伯语时,下发的排版方向则为 rtl。代码示例如下。
<html dir="{{request.document_direction}}">
...
</html>
步骤二:生成 rtl 排版 CSS 文件
在构建主题代码时,可借助 RTLCSS 工具自动转换 CSS 文件中相应的属性,以适配 rtl 排版方向。该工具会生成两份 CSS 文件,一份用于 ltr 排版方向,另一份用于 rtl 排版方向。文件示例如下。
ltr 排版 CSS 文件内容
.example {
display: inline-block;
padding: 5px 10px 15px 20px;
margin: 5px 5px 15px 8px;
border-width: 1px 2px 3px 4px;
}
rtl 排版 CSS 文件内容
.example {
display: inline-block;
padding: 5px 20px 15px 10px;
margin: 5px 8px 15px 5px;
border-width: 1px 4px 3px 2px;
}
总结
对比两个文件可以发现,在 rtl 排版方向 CSS 文件里部分属性中涉及水平方向(左右)的数值进行了互换,从而实现了从右向左的排版方向。
步骤三:在主题代码中引入 CSS 文件
你可以根据 request.document_direction 的值来决定引入 ltr 排版方向 CSS 文件还是 rtl 排版方向 CSS 文件。
{{#if request.document_direction == "rtl"}}
<link rel="stylesheet" href="{{"example.rtl.css" | asset_url()}}" /> // 从右到左
{{#else /}}
<link rel="stylesheet" href="{{"example.css" | asset_url()}}" /> // 从左到右
{{/if}}