关于 unicode:是否有理由对没有复数的语言环境使用 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 {#}}?¢???aè?€?????ˉ?€?

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

变量语法 ??¨??‰{count}?¢???aè?€?????ˉ?€?

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

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

对于大多数图书馆来说,建议在没有复数形式的语言环境中使用变量语法是否安全?


保留复数标记没有任何价值。不过,=0 的大小写应该是 ?2'??‰。


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

另外,如果是教语言学家如何使用 ICU,你最好解释一下论证是如何工作的,因为它不仅限于复数形式(还有选择那些有类似方式的工作)。

最后,如果您正在处理带有 ICU 的 YML 等翻译文件,我会说最好保留 ICU 复数标记。这意味着您可以随时更改翻译的源语言(包括更改为不像中文那样没有复数的语言),并且您不必重写所有应该保留复数标记的字符串首先。