RTL语言:以逗号分隔的列表

时间:2016-08-30 22:02:17

标签: javascript internationalization

我在应用程序中使用ICU Message Format表示i18n。

某些字符串涉及动态长度的逗号分隔列表。例如,字符串:

  

"有三只宠物:一只狗,一只鱼,一只猫。"

可以使用以下消息生成

  

"有{count}个宠物:{list}"

其中count是列表的长度,list是各个字符串本身。 (顺便说一句,这是一个真正的字符串,我正在配置"宠物" per" count,"但让我们保持简单。)

在伪代码中,list变量可能会像这样生成:

pets.join(', ');

最后一点是我不喜欢的。它似乎只对LTR语言有意义,可能只是LTR语言的一个子集。

我有两个问题:

  1. 逗号分隔列表应该如何用其他语言格式化,例如RTL语言?
  2. ICU消息格式是否以任何方式支持,或者除了ICU之外还需要系统来生成列表?
  3. 对于它的价值,这是一个JavaScript webapp,虽然这些问题的答案可能与语言无关。

1 个答案:

答案 0 :(得分:2)

列表格式是区域设置敏感的。并非所有语言都使用“ASCII逗号”或空格。 ICU有一个ListFormatter: http://icu-project.org/apiref/icu4j/com/ibm/icu/text/ListFormatter.html

对于JavaScript,闭包有一个等价物 https://github.com/google/closure-library/blob/master/closure/goog/labs/i18n/listformat.js