考虑以下字符串:
我有一个苹果。
我有4个苹果。
如何让ZF2产生第二个结果?我正在使用translatePlural
,并尝试了很多变体:
$translator->translatePlural('I have an apple', 'I have %d apples', 4);
$translator->translatePlural('I have an apple', 'I have %s apples', 4);
$translator->translatePlural('I have an apple', 'I have %$1 apples', 4);
$translator->translatePlural('I have an apple', 'I have %%s apples', 4);
答案 0 :(得分:3)
ZF2转换器不再执行任何字符串格式化。这是ZF1的情况,但这在ZF2中已经过时了。建议的方法是明确自己:
$num = 4;
$t = $translator;
sprintf($t->translatePlural('I have an apple', 'I have %d apples', $num),
$num);
(我在格式化方面非常糟糕)
实际上,这会产生sprintf('I have an apple', $num)
作为结果或sprintf('I have %d apples', $num)
作为结果。在第一种情况下,由于缺少%d
,任何事情都不会发生。