比迪文字显示

时间:2012-06-12 19:26:08

标签: css jsp struts2 bidi

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

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

此致 罗希特夏尔

1 个答案:

答案 0 :(得分: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>