Keyman developer 10 不会匹配 Odia 脚本中的规则

Keyman developer 10 won't match rules in Odia script

我正在使用 Keyman developer 10 为 Oriya/Odia 脚本制作自定义键盘,但当所有输入都在 Odia 脚本中时,它不会进行上下文替换。例如

+ [K_K] > U+0B15
+ [K_T] > U+0B24
U+0B15 + U+0B24 > U+0B15 U+0B4D U+0B24
"a" + "b" > U+0B15 U+0B4D U+0B24
U+0B15 + [K_C] > U+0B15 U+0B4D U+0B24

当我测试他时,我在输入 'ab' 或 'kc' 时得到了所需的输出,但在输入 'kt' 时却没有。任何帮助解释为什么第 3 行不起作用但第 4 行起作用的帮助将不胜感激。

当目标设置为 'any' 而不是 'windows'

时,我有时会收到此错误
warning 209A: The rule will never be matched because its key code is never fired.

这不起作用的原因是您试图匹配 Unicode 值而不是第 3 行的击键:

U+0B15 + U+0B24 > U+0B15 U+0B4D U+0B24

而不是U+0B24,这是一个Unicode字符,你需要match on the keystroke,例如:

+ [K_K] > U+0B15
+ [K_T] > U+0B24
U+0B15 + [K_T] > U+0B15 U+0B4D U+0B24

由于第三条规则的上下文较长 (U+0B15),因此需要 precedence over the second rule.

解决此问题的另一种方法是使用 post-processing group。在这个模型中,第一组的输出被馈送到第二组的上下文中。请注意,第二组不包含 using keys 子句。

group(main) using keys

+ [K_K] > U+0B15
+ [K_T] > U+0B24
match > use(post)

group(post)

U+0B15 U+0B24 > U+0B15 U+0B4D U+0B24