从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种组合)?
答案 0 :(得分:4)
ngettext()
不支持多个变量。你必须确保编写可以逐块正确翻译的句子(如果可能的话,可以使用多个句子来避免与语言相关的排序问题)。
至少有一个原因导致不支持这一点的原因是必需的后备句子(ngettext()
的第一个参数)的数量会随着变量的数量呈指数增长(即2个变量需要4个这样的句子:奇异单数,奇数复数,复数 - 奇数和复数 - 复数,然后是3变量,等等。)
您可以在https://stackoverflow.com/a/1893929/4457767找到类似问题的答案。