Reputation: 26785
Consider the following strings:
I have an apple.
I have 4 apples.
How do I get ZF2 to produce the second outcome? I am using translatePlural
and have tried a number of variations on this:
$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);
There doesn't seem to be anything in the Zend documentation (1, 2) to explain how to do this. As such I'm not sure if it's even possible.
Upvotes: 0
Views: 257
Reputation: 13558
The ZF2 translator does not perform any string formatting anymore. This was the case for ZF1, but this has become obsolete in ZF2. The recommended way is to be explicit yourself about this:
$num = 4;
$t = $translator;
sprintf($t->translatePlural('I have an apple', 'I have %d apples', $num),
$num);
(I am just very bad at formatting)
Effectively this gives either sprintf('I have an apple', $num)
as result or sprintf('I have %d apples', $num)
as result. In the first case, because of the missing %d
nothing will happen.
Upvotes: 3