public static function translatePlural($singular, $plural, $number, ...$text)
{
if (function_exists('ngettext')) {
$message = ngettext($singular, $plural, $number);
} else {
$message = $singular;
}
if (func_num_args() > 3) {
// first element is number
array_unshift($text, $number);
$message = vsprintf($message, $text);
}
return $message;
}
/** * Test Plural Translate */ public function testPluralTranslateWithAdditionalParams() { $translator = new Translator(); $translator->setDomain('messages'); $translator->setLocale('uk_UA'); $translator->setPath(PATH_APPLICATION . '/locale'); if (function_exists('ngettext')) { $this->assertEquals('2 messages', $translator->translatePlural('%d message', '%d messages', 2, 2)); } else { $this->assertEquals('2 message', $translator->translatePlural('%d message', '%d messages', 2, 2)); } }