2

我想支持根据其一般方向而不是默认的从左到右方向以 Unicode 显示用户输入的文本。例如,在下面的阿拉伯语文本中,英文单词 (4th) 似乎是分开的:

اُردو کا بعض اوقات ہندی کے ساتھ موازنہ کیا جاتا ہے。اُ找ہہہsthim,ُہییییققہےہےکہکہکہکہ排下 جبکہ ہندی دیوناگری رسم الخط میں لکھی جاتی ہے اور سنسکرت الفاظ زیادہ استعمال کرتی ہے。最重要的事情是什么?تاہم، دوسرے اِن کو معاش اللسانی تفرّقات کی بنیاد پر الگ سمجھتے ہیں۔ کہیہہےکہہہی,,,,کککےےے招募ییےےےیییstript

是否有自动考虑文本流自然方向的 CSS 或 HTML 方法?我从 W3C 阅读了这篇文章,其中讨论了设置文本方向的方法,但没有找到任何自动执行此操作的解决方案。

4

3 回答 3

3

有一种方法可以自动检测文本流的自然方向这一事实给您带来了麻烦:双向算法并不完美。有时您需要给它一些额外的提示,如Unicode 控件与双向支持标记中所述。

Unicode 双向算法根据每个字符的方向属性确定文本的方向性。有时,算法需要一点帮助来确定文本中将阿拉伯或希伯来字符与其他脚本混合的对象流。在其他情况下,您可能希望完全覆盖双向算法的效果。

您可以通过添加u+202aʟᴇғᴛ-ᴛᴏ-ʀɪɢʜᴛ</a>和u+ 202cᴘᴏᴘғᴏʀᴍᴀᴛᴛɪɴɢғᴏʀᴍᴀᴛᴛɪɴɢғᴏʀᴍᴀᴛᴛɪɴɢғᴏʀᴍᴀᴛᴛɪɴɢғᴏʀᴍᴀᴛᴛɪɴɢғᴏʀᴍᴀᴛᴛɪɴɢᴇᴍʙᴇᴅᴅɪɴɢ</a>来手动修复此此操作,就像我在下面所做的那样:

اُردو کا بعض اوقات ہندی کے ساتھ موازنہ کیا جاتا ہے。اُ找ہہہsthim,ُہییییققہےہےکہکہکہکہ排下 جبکہ ہندی دیوناگری رسم الخط میں لکھی جاتی ہے اور سنسکرت الفاظ زیادہ استعمال کرتی ہے。最重要的事情是什么?تاہم، دوسرے اِن کو معاش اللسانی تفرّقات کی بنیاد پر الگ سمجھتے ہیں۔ کہیہہےکہہہی,,,,کککےےے招募ییےےےیییstript

...&#x202A;(4th)&#x202C;...

您还可以使用<bdi>HTML5 中的元素,或<span>HTML4 中的 a。

...<bdi dir="ltr">(4th)</bdi>...

...<span dir="ltr">(4th)</span>...

有关双向算法的更多信息,请参阅您需要了解的双向算法和内联标记

如果此文本来自用户,我想您对此无能为力。我只会将其视为任何其他类型的错误用户输入;像一个错字。

于 2013-05-28T12:00:43.560 回答
1

浏览器不会根据访问者的偏好自动决定使用 ltr 的 rtl 吗?我不太确定,但我认为确实如此。

这不是一个真正的答案,但这对您来说可能很有趣:在 CSS3 中,该text-align属性有一个新值,即start. 根据 W3C 标准,这将“与行框的起始边缘对齐”。因此,如果访问者的偏好是 rtl,它将正确对齐,反之亦然。

于 2013-05-28T11:50:39.013 回答
1

首先是棘手的问题,但有据可查并且对此表示赞成。

我尝试了同样的方法并面临同样的问题。我在一篇文章中读到,您可以使用 dojo 执行此操作。我想我要给你的链接是基于移动的。希望这会给你一个开始。

https://dojotoolkit.org/reference-guide/1.9/dojox/mobile/bidi.html

于 2013-05-28T11:39:14.303 回答