php ngettext 多个变量

php ngettext multiple variables

manual 复制示例,ngettext 的工作方式如下:

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

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

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

至少一个不支持的原因是必要的回退句子的数量(ngettext() 的第一个参数)会随着变量的数量呈指数增长(即你需要 4 个这样的句子来处理 2变量:单数-单数、单数-复数、复数-单数和复数-复数,然后 3 个变量为 8,等等)。

您将在 找到类似问题的答案。