Взята с проекта Mozilla - localizationd and plurals и использует т.н. правила.
Для русского языка используется правило 7.
Прописывается изменением специальной языковой переменной в language/ru/common.php:
По умолчанию для английского языка
Код: Выделить всё
'PLURAL_RULE' => 1,
Код: Выделить всё
'PLURAL_RULE' => 7,
Код: Выделить всё
'DOWNLOAD_COUNTS' => array(
0 => '0 скачиваний',
1 => '%d скачивание',
2 => '%d скачивания',
3 => '%d скачиваний',
),
- 1 - с числами, оканчивающимися на 1, кроме 11. Например: 1 минута, 51 минута.
- 2 - с числами, оканчивающимися на 2, 3 и 4, кроме 12, 13 и 14. Например: 2 минуты, 33 минуты, 44 минуты.
- 3 - со всеми остальными числами. Например: 0 минут, 11 минут, 14 минут, 99 минут.
Ключ 0 является специальным случаем, присвоенное ему значение обрабатывается независимо и выводится как есть. В приведенном примере в случае, если обрабатывается число 0, просто выводится "0 скачиваний", независимо от значения ключа 3.
Если задать "Мама мыла раму", при обработке числа 0 также будет выводиться заданное.
Пример:
Код: Выделить всё
'AGO' => array(
0 => 'менее минуты назад',
1 => '%d минуту назад',
2 => '%d минуты назад',
3 => '%d минут назад',
),
Примеры:
Код: Выделить всё
$user->lang('AGO', 0);
Код: Выделить всё
$user->lang('AGO', 11);
Код: Выделить всё
$user->lang('AGO', 92);
И так далее.