首页 文章

比迪文字显示

提问于
浏览
0

我们想在我们的应用程序中显示文本,有时包含rtl和ltr的混合 . 我能够确定文本的语言,并可以根据语言切换dir = ltr或dir = rtl .

当同一个句子有英语和阿拉伯语文本时出现问题,在这种情况下我的语言检测检测到阿拉伯语(因为主要语言)并且选择了dir = rtl . 我怎样才能显示这些混合句子

此致,罗希特

1 回答

  • 0

    dir 属性设置方向中性文本的方向性 . 它不会影响拉丁文或阿拉伯文字母的正常文本;他们遵循固有的强大方向性 . 好吧,至少他们应该 . 浏览器有错误,如果你知道应该设置哪个方向性,设置 dir 可能会有所帮助 . 此外,设置 dir 设置整体布局方向;例如,如果你有阿拉伯语文本里面有一些英文文本(示意图,Ar1后跟En后跟Ar2,在最简单的情况下),你应该设置 dir=rtl 以使事情正确(在例子中,Ar1首先在右边,那么En在它的左边,然后Ar2最后,即最左边) .

    但是当涉及诸如括号的方向模糊字符时会出现问题,例如,当阿拉伯语文本中的英文文本具有“Hello world(42) . ”时 . 在一个带有 dir=rtl 的块中,它被呈现为“(Hello world(42 . ”) .

    要处理这个问题,您还需要识别英语语言片段,并将其包装在您为其设置嵌入方向性的元素中:

    <style>
    .ltr { unicode-bidi: embed; direction: ltr; }
    </style>
    [...]
    <p dir=rtl>
    مرحبا العالم. <span class=ltr>Hello world (42).</span> وكان هذا الاختبار.</p>
    

相关问题