4

手册中复制示例,ngettext 的工作方式如下:

ngettext("%d window", "%d windows", 1); //'1 window';
ngettext("%d window", "%d windows", 2); //'2 windows';

但是,例如,如果我想使用 2 个变量%d windows %d doors怎么办?是否有标准的方法来实现这一点,以便根据 2 个变量出现正确的字符串(4 种组合)?

4

1 回答 1

4

ngettext()不支持多变量。您必须确保编写可以逐块正确翻译的句子(如果可能的话,使用多个句子以避免与语言相关的排序问题)。

不支持这一点的至少一个原因是必要的后备句子( 的第一个参数ngettext())的数量会随着变量的数量呈指数增长(即,对于 2 个变量,您需要 4 个这样的句子:单数、单数、复数、复数单数和复数复数,然后 8 代表 3 个变量,等等)。

您可以在https://stackoverflow.com/a/1893929/4457767找到类似问题的答案。

于 2015-01-15T13:51:10.703 回答