首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bidi文本显示

Bidi文本显示
EN

Stack Overflow用户
提问于 2012-06-13 03:26:08
回答 1查看 400关注 0票数 0

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

当同一句子同时包含英语和阿拉伯语文本时,就会出现问题,在这种情况下,我的语言检测会检测到阿拉伯语(从主要语言开始),并且选择了dir=rtl。如何显示这些混合句子?

问候你,罗希特

EN

回答 1

Stack Overflow用户

发布于 2012-06-13 04:06:10

dir属性设置方向中性文本的方向性。它不影响拉丁语或阿拉伯语字母中的普通文本;它们遵循其固有的强方向性。好吧,至少他们应该这么做。浏览器有bug,如果您知道应该设置哪个方向,那么设置dir可能会有所帮助。此外,设置dir将设置整体布局方向;例如,如果您有阿拉伯文本,其中包含一些英文文本(在最简单的情况下,原理上是Ar1后跟En,然后是Ar2 ),您应该设置dir=rtl以使布局正确(在本例中,首先是Ar1,在右边,然后是En,最后是Ar2,即最左边)。

但是当涉及像括号这样的方向不明确的字符时,例如当阿拉伯文本中的英文文本具有“Hello world (42).”时,问题就出现了。在带有dir=rtl的块中,这将呈现为“(Hello world (42 .

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

代码语言:javascript
复制
<style>
.ltr { unicode-bidi: embed; direction: ltr; }
</style>
[...]
<p dir=rtl>
مرحبا العالم. <span class=ltr>Hello world (42).</span> وكان هذا الاختبار.</p>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11003460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档