是否有理由对没有复数的语言环境使用 ICU 复数语法?

Is there a reason to use the ICU plural syntax for locales without plurals?

我注意到一些语言环境只有一种由 CLDR 定义的(基数)复数形式。以下是一些没有复数形式的流行语言示例:

假设以下英文 ICU 消息字符串:

You have {count, plural, =0 {no unread messages} one {# unread message} other {# unread messages}}.

将复数 ICU 语法翻译成这些语言是否有价值?例如中文:

复数语法 您有{count, plural, other {#}}條未讀消息。

或者因为没有复数形式,我们是否应该建议翻译人员像这样简单地使用变量:

变量语法 您有{count}條未讀消息。

我测试了两个库 (GlobalizeJs and FormatJs),它们似乎都适用于两种语法。

交换这些语法是否存在任何已知问题?

大多数图书馆推荐使用 可变语法 对于没有复数的语言环境是否安全?

保留复数标记没有任何价值。 =0 案例应该说没有。

晚了几年,但请注意,这有很大的价值,这取决于该短语是只使用复数类别还是也使用覆盖(如示例中的 =0)以及您是否只是想在语法上正确在每种语言中,或者更确切地说,试图听起来像人而不是机器。

此外,如果是教语言学家如何使用 ICU 的问题,你最好解释一下参数是如何工作的,因为它不限于复数形式(也有具有类似工作方式的选择)。

最后,如果您正在使用带有 ICU 的 YML 等翻译文件,我会说最好保留 ICU 复数标记。这意味着您可以随时更改翻译的源语言(包括更改为没有复数形式的语言,例如中文),并且您不必重写所有应该保留复数标记的字符串第一名.