实现bidi的Inalater逻辑使我再次陷入困境。给定以下测试案例。
@Levels: 1 0 1
@Reorder: 0 1 2
R RLI R ; 2 # LTR flag
____/ _/ (my run sequences)
这是我目前的理解:
处理后规则x1-x8 您最终会得到级别0 0 1
,它将转换为两个孤立的运行序列。
据我所知,规则W1-W7 不应适用于任何字符。
规则N1 将提高RLI
至1的水平,因为它是两种强类型之间的NI
,即R
和第一个序列的eos
。
规则I1/2 然后将第一个R
推到1级。
规则L1 可以降低RLI的水平,但在此不适用。
如何,RLI应最终达到0级。
与类似测试的同样问题,只有相反的方向。
@Levels: 2 1 2
@Reorder: 2 1 0
L LRI L; 4
可悲的是http://unicode.org/cldr/utility/bidi.jsp不会实现包括rli/lri的最新算法。
欢迎任何建议:)谢谢。
好吧,问题是规则N1 不应应用,因为eos
是类型L
而不是R
。
我错过了x10的注释,说:...如果没有,则该序列的最后一个字符是孤立启动器(缺少匹配的PDI),段落嵌入了级别。"
。