- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难按照我的预期让 BiDi 字符串在 HTML 文本区域内工作。
这个测试字符串包含阿拉伯语和英语,加上由中性方向字符(<、>、/、数字)组成的伪标签序列(<1/>、<2/>),应该继承他们的方向是由他们面前的强方向角色决定的。
鉴于这些伪标签位于 RTL 和 LTR 文本之后,我需要强制文本的方向放置一个 LRM (U+200E, )
char before 每个伪标签。
请注意,文本区域的方向属性设置如下:dir='rtl'
同时使用 Chrome 和 FF 进行了测试,它们似乎都无法按预期工作。我错过了什么吗?
Jsfiddle 上的结果甚至不同:https://jsfiddle.net/o7d2ymdc/1/
最佳答案
不幸的是,如果可能的话,在文本区域内显示这些内容将非常困难。
这里有几个问题在起作用,其中一个是方括号和圆括号在 Unicode 双向算法中是镜像的:这 <span dir="ltr"><</span>
呈现为“<”,而此 <span dir="rtl"><</span>
呈现为“>”。所有这些都是在我们对 RTL 和 LTR 字符串中的“字符串结尾”有不同定义这一事实之上添加的。
您最好的选择可能是使用 ContentEditable。您可以显示可编辑的富文本——实际上是 html 节点——并且基本上将您的 RTL 片段与带有跨度的 HTML 标记隔离开来,就好像您会静态显示它一样。但是,如果此文本框允许自定义用户生成的文本,您可能需要想出一个好的算法,在用户键入时自动换行双向文本,这可能是一个相当大的挑战。
如果这有帮助,那么您不是唯一一个处理这个问题的人。例如,如果您在阿拉伯语维基百科中编辑 HTML block ,您将看到完全相同的问题(这使得编辑 HTML 和 wikitext 成为一个相当大的挑战)
这个问题也是人们更喜欢所见即所得编辑器的原因之一——它在标记/样式和文本本身之间有适当的上下文和概念分离。
关于html - HTML 文本区域内的双向 (BiDi) 文本不遵守 LRM 控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35179012/
如何使用 friend 和 bidi 来包装资源处理程序? 我已成功让 oAuth 验证路由: (defn auth-handler [request] (friend/authorize #{::u
我有一些使用 PIL 的 Python 代码,可以将 UTF-8 字符打印到图像中。 我注意到,为了连接像阿拉伯语这样的 Bidi 脚本,相同的代码无法正确连接字符(仅选择初始形式,未使用中间形式和最
如您所知,有些语言是从右到左书写/阅读的,我们正在努力支持某些 RTL 语言。由于浏览器拥有的算法,在 html 中使用 dir="rtl"的 Web UI 完成了大部分工作。但是我在文本中遇到了这个
我在实现 BiDi 字符时遇到了挑战,因为在构建对象键期间阿拉伯字符被移动到不同的位置。 有人可以帮我理解行为和解决方案吗 因为我使用类似的东西来修改字符串,所以我得到了不良影响 最佳答案 您观察到的
我下载这个here ,运行它: python setup.py test 在我的 cmd 中,我有 python 2.7,但出现此错误: Traceback (most recent call las
我有一个用波斯语显示多行文本的标签 kv文件: : font_name: 'tabassom' FarsiLabel: text: set_text('
我正在使用 ckeditor 4 并希望允许我的客户使用 rtl 或 ltr 方向 - 但由于我要将输出作为电子邮件消息发送,我希望始终使用方向属性。 出于某种原因,如果我使用的是希伯来语或阿拉伯语版
我最近收到了我的应用程序的阿拉伯语翻译,但我想做的不仅仅是简单地替换字符串。我可以使用 Interface builder 重新布局大多数 NIB,但有一些事情我需要以编程方式完成。 Cocoa 中是
我正在使用 tkinter 开发一个 python GUI 应用程序,它以希伯来语显示文本。 在 Windows(10、python 3.6、tkinter 8.6)上,希伯来语字符串显示正常。 在
我在 gwt 中使用动态字符串 i18n。为了支持 BIDI,我需要知道语言环境是否为 RTL。 我无法使用 LocaleInfo.getCurrentLocale() 因为在我的情况下它不会返回区域
我正在尝试在复杂的 BiDi 应用程序中使用 paper-input 元素,我需要输入框在中具有特定的不同 unicode-bidi CSS 设置不同的设置。 我试图在包含 paper-input 元
Unicode Bidirectional override fails for Input Placeholders. 输入占位符的 Unicode 双向失败,下面是带有 html 和 CSS 的标
我想将一个元素放在另一个元素的左下角。我将 position:relative 给父级,position: absolute;底部:0; left: 0 给 child 。 问题是页面可以在ltr 或
我正在尝试使用 reportlab 生成报告,报告语言是阿拉伯语。但问题是 reportlab 不支持 BIDI(双向)显示,因为缺少 BIDI Algorithm Python 中的支持。经过大量谷
我正在使用 django 1.4 运行 python2.7。 我的 views.py 页面中有以下代码,它返回选择列表中的语言名称: python 代码:(views.py) available_la
我很难按照我的预期让 BiDi 字符串在 HTML 文本区域内工作。 这个测试字符串包含阿拉伯语和英语,加上由中性方向字符(、/、数字)组成的伪标签序列(、),应该继承他们的方向是由他们面前的强方向角
我正在使用飞碟 xhtmlrenderer 构建 pdf 文档。到目前为止一切正常——现在我们应该在 pdf 中生成阿拉伯语文本。Xhtmlrenderer 正在以相反的顺序呈现阿拉伯文本。 我在互联
我正在学习网络版 Clojure。我正在尝试在 Lein 应用程序中实现 Bidi 和 Ring。当我打开该网站时,出现 500 错误: HTTP ERROR: 500 Problem accessi
我正在学习网络版 Clojure。我正在尝试在 Lein 应用程序中实现 Bidi 和 Ring。当我打开该网站时,出现 500 错误: HTTP ERROR: 500 Problem accessi
任何人都可以帮助我开始使用 css-flip . 我已经阅读了他们的文档,但它似乎是针对专家用户的。我没有任何使用 Node.js 的经验。 我将如何运行下面的 CLI。 css-flip path/
我是一名优秀的程序员,十分优秀!