我在屏幕上逐字绘制文字。
在英语中它非常简单,因为文本是LTR,所以字母按照它们显示的顺序保存在字符串中。
绘制RTL文本时,我需要切换打印方向。但是当有字母和数字以及英语和一些RTL语言时......比乱七八糟的开始。
对于前。
ex.1:שלוםלכם
ש-是字符串中的第一个字母 - 但我们可以看到它显示了最后一个字母
ex.2:שלום给所有人 ש-是字符串中的第一个字母 - 但是我们可以看到它在英语开始之前显示在中间。
当数字和数学符号进入图片时会变得越来越复杂,需要翻转的特殊字符如'(',')'......
在线发现许多Bidi算法,将字符串中字母的逻辑顺序更改为可视字符。因此,当我在转换后的字符串上从左向右运行时,我确信该字符串将正确打印。
,但 它们永远不会完美。有些情况下它们无法正常工作。 他们都没有考虑文本的方向(意味着当我们按下键盘上的右Ctrl + Shift而不是再次更改可视化时)
我的问题是
答案 0 :(得分:1)
经过长时间的搜索,
我发现DOJO(幸运的是它是我正在使用的工具包), 有一个BIDI引擎用于绘制它自己的UI控件,它可以获得很少的布局参数来处理RTL,LRT和上下文方向的某些情况。
如果这有助于某人 - http://bill.dojotoolkit.org/api/1.9/dojox/string/BidiEngine
找到了另一个可能对无DOJO开发人员有帮助的链接 - https://github.com/ibm-js/dbidi,但我还没有检查