【发布时间】:2016-08-30 22:02:16
【问题描述】:
我在应用程序中为 i18n 使用 ICU Message Format。
一些字符串涉及动态长度的逗号分隔列表。例如,字符串:
“共有三种宠物:狗、鱼、猫。”
可能会生成此消息:
“有 {count} 个宠物:{list}”
其中 count 是列表的长度,而 list 是各个字符串本身。 (顺便说一句,这是一个真正的字符串吗?我会为每个“计数”配置“宠物”,但让我们保持简单)。
在伪代码中,列表变量可能是这样生成的:
pets.join(', ');
最后一点是我不喜欢的。它似乎只对 LTR 语言有意义,并且可能只是 LTR 语言的一个子集。
我有两个问题:
- 应如何在其他语言(例如 RTL 语言)中设置逗号分隔列表的格式?
- ICU 消息格式是否以任何方式支持这一点,或者它是否需要除 ICU 之外的系统来生成列表?
不管怎样,这是一个 JavaScript 网络应用,尽管这些问题的答案可能与语言无关。
【问题讨论】:
标签: javascript internationalization