CLDR阿拉伯语区域设置中的奇怪列表模式格式

梅诺·霍奇希尔德(Meno Hochschild)

我在CLDR-25数据中观察到阿拉伯语区域中列表模式格式的以下条目(希伯来语中也类似):

<listPatterns>
  <listPattern>
    <listPatternPart type="start" draft="contributed">{0}، {1}</listPatternPart>
    <listPatternPart type="middle" draft="contributed">{0}، {1}</listPatternPart>
    <listPatternPart type="end" draft="contributed">{0}، و {1}</listPatternPart>
    <listPatternPart type="2" draft="contributed">{0} و {1}</listPatternPart>
  </listPattern>
</listPatterns>

请注意,LDML规范仅涉及形式为“ {0}”或“ {1}”的占位符(与类型“ end”和“ 2”的列表模式部分不同)。也可以看看:

http://cldr.unicode.org/development/development-process/design-proposals/list-formatting

或者

http://cldr.unicode.org/translation/lists

我怀疑这与从右到左样式有关,但是如何详细说明呢?


更新:

现在,我编写了一个小的Java程序来查看char的真实序列。

String s = "{0} و {1}"; // as displayed in browser or IDE-window
for (char c : s.toCharArray()) {
    System.out.println(c);
}

输出为:

{
0
}

و

{
1
}

所以这似乎是一个显示问题,而不是字符序列本身的问题?我使用Internet Explorer 9和Eclipse 4.3。

梅诺·霍奇希尔德(Meno Hochschild)

字符序列在这里(以代码点为单位):

123=>{
48=>0
125=>}
32=> 
1608=>و   // DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC=true
32=> 
123=>{
49=>1
125=>}

Unicode还通过评估双向上下文来推断显示样式。因此,此处的unicode算法似乎首先将标准LTR上下文应用于找到的第一个字符-因此保留了字符序列“ {0}”。

当算法输入阿拉伯字符时,表示其双向状态,并将其应用于接下来的下一个字符。根据W3C官方文件,这意味着:

在RTL上下文中(从右到左),左方括号标志符号“ {”的形状更改为“}”。因此,从阿拉伯字符的角度来看,留给阿拉伯字符的序列为“ 1}”,这等效于通常的LTR形式“ {1”。读取ASCII字符“ 1”后,unicode算法评估为现在上下文再次为LTR,因此以常规形式“}”显示右括号。最终的视觉结果(但是不是以代码点的形式)是好像有一个额外的关闭括号和一个更少的打开括号。

我希望SO读者在双向上下文中遇到类似的奇怪视觉效果时,可以从中获得有用的解释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

区域设置为阿拉伯语时,Android中的日期格式问题

来自分类Dev

阿拉伯语转向奇怪的问号

来自分类Dev

Json格式编码阿拉伯语

来自分类Dev

阿拉伯语的订购列表不起作用

来自分类Dev

在PHP中搜索并替换阿拉伯语

来自分类Dev

检测阿拉伯语标记中的重复字符

来自分类Dev

删除 R 中的非阿拉伯语单词

来自分类Dev

无法在phpmyadmin中输入阿拉伯语数据

来自分类Dev

MS SQL 表中的阿拉伯语插入

来自分类Dev

iOS阿拉伯语Pushnotification

来自分类Dev

iOS阿拉伯语Pushnotification

来自分类Dev

笔尖镜像阿拉伯语

来自分类Dev

Redis阿拉伯语解码

来自分类Dev

如何从右到左更改特定列表项文本(例如阿拉伯语/希伯来语)?

来自分类Dev

如何删除或过滤列表中的非英语(中文,韩语,日语,阿拉伯语)字符串?

来自分类Dev

从对象填充的下拉列表中未正确显示波斯语/阿拉伯语文本

来自分类Dev

在python 2.7中打印阿拉伯语/波斯语字母

来自分类Dev

Stimulsoft报告richText错误中的Unicode字符(阿拉伯语或波斯语)

来自分类Dev

python3中波斯语或阿拉伯语的unicode和编码

来自分类Dev

在python 2.7中打印阿拉伯语/波斯语字母

来自分类Dev

如何找到阿拉伯语和波斯语中的mist漏?

来自分类Dev

组织模式是否支持阿拉伯语等RTL语言

来自分类Dev

至少3个单词或更多,但使用阿拉伯语[HTML模式]

来自分类Dev

使用as3以阿拉伯语格式显示当前日期和时间

来自分类Dev

阿拉伯语PDF格式转换为PHP至MYSQL,Unicode解码?

来自分类Dev

Android 以英文书面格式获取当前的阿拉伯语/伊斯兰日期

来自分类Dev

在列表中使用阿拉伯语unicode编写CSV文件

来自分类Dev

在数据库中保存字符串的阿拉伯语列表

来自分类Dev

阿拉伯语的PHP Hashtag不能是链接

Related 相关文章

  1. 1

    区域设置为阿拉伯语时,Android中的日期格式问题

  2. 2

    阿拉伯语转向奇怪的问号

  3. 3

    Json格式编码阿拉伯语

  4. 4

    阿拉伯语的订购列表不起作用

  5. 5

    在PHP中搜索并替换阿拉伯语

  6. 6

    检测阿拉伯语标记中的重复字符

  7. 7

    删除 R 中的非阿拉伯语单词

  8. 8

    无法在phpmyadmin中输入阿拉伯语数据

  9. 9

    MS SQL 表中的阿拉伯语插入

  10. 10

    iOS阿拉伯语Pushnotification

  11. 11

    iOS阿拉伯语Pushnotification

  12. 12

    笔尖镜像阿拉伯语

  13. 13

    Redis阿拉伯语解码

  14. 14

    如何从右到左更改特定列表项文本(例如阿拉伯语/希伯来语)?

  15. 15

    如何删除或过滤列表中的非英语(中文,韩语,日语,阿拉伯语)字符串?

  16. 16

    从对象填充的下拉列表中未正确显示波斯语/阿拉伯语文本

  17. 17

    在python 2.7中打印阿拉伯语/波斯语字母

  18. 18

    Stimulsoft报告richText错误中的Unicode字符(阿拉伯语或波斯语)

  19. 19

    python3中波斯语或阿拉伯语的unicode和编码

  20. 20

    在python 2.7中打印阿拉伯语/波斯语字母

  21. 21

    如何找到阿拉伯语和波斯语中的mist漏?

  22. 22

    组织模式是否支持阿拉伯语等RTL语言

  23. 23

    至少3个单词或更多,但使用阿拉伯语[HTML模式]

  24. 24

    使用as3以阿拉伯语格式显示当前日期和时间

  25. 25

    阿拉伯语PDF格式转换为PHP至MYSQL,Unicode解码?

  26. 26

    Android 以英文书面格式获取当前的阿拉伯语/伊斯兰日期

  27. 27

    在列表中使用阿拉伯语unicode编写CSV文件

  28. 28

    在数据库中保存字符串的阿拉伯语列表

  29. 29

    阿拉伯语的PHP Hashtag不能是链接

热门标签

归档