Php ZF2中带字符串替换的复数翻译

Php ZF2中带字符串替换的复数翻译,php,zend-framework2,Php,Zend Framework2,考虑以下字符串: 我有一个苹果 我有四个苹果 如何让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->translatePlur

考虑以下字符串:

我有一个苹果

我有四个苹果

如何让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);

Zend文档(,)中似乎没有任何东西解释如何做到这一点。因此,我不确定这是否可能。

ZF2转换器不再执行任何字符串格式设置。ZF1就是这种情况,但在ZF2中已经过时。建议的方法是明确自己的观点:

$num=4;
$t=$translator;
sprintf($t->translatePlural('I have apple','I have%d apples',$num),
$num);
(我只是格式很差)


实际上,这会给出
sprintf('I have apple',$num)
作为结果,或者
sprintf('I have%d apple',$num)
作为结果。在第一种情况下,由于缺少
%d
,将不会发生任何事情。

ZF2转换器不再执行任何字符串格式设置。ZF1就是这种情况,但在ZF2中已经过时。建议的方法是明确自己的观点:

$num=4;
$t=$translator;
sprintf($t->translatePlural('I have apple','I have%d apples',$num),
$num);
(我只是格式很差)


实际上,这会给出
sprintf('I have apple',$num)
作为结果,或者
sprintf('I have%d apple',$num)
作为结果。在第一种情况下,由于缺少
%d
,将不会发生任何事情。

ZF2转换器不再执行任何字符串格式设置。ZF1就是这种情况,但在ZF2中已经过时。建议的方法是明确自己的观点:

$num=4;
$t=$translator;
sprintf($t->translatePlural('I have apple','I have%d apples',$num),
$num);
(我只是格式很差)


实际上,这会给出
sprintf('I have apple',$num)
作为结果,或者
sprintf('I have%d apple',$num)
作为结果。在第一种情况下,由于缺少
%d
,将不会发生任何事情。

ZF2转换器不再执行任何字符串格式设置。ZF1就是这种情况,但在ZF2中已经过时。建议的方法是明确自己的观点:

$num=4;
$t=$translator;
sprintf($t->translatePlural('I have apple','I have%d apples',$num),
$num);
(我只是格式很差)

实际上,这会给出
sprintf('I have apple',$num)
作为结果,或者
sprintf('I have%d apple',$num)
作为结果。在第一种情况下,由于缺少
%d
,将不会发生任何事情