Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекращает поддержку phpBB версии 3.2.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2020 года.
С учетом этого, а также того, что версия 3.2.x больше не будет получать обновлений, за исключением связанных с проблемами безопасности
(только при их наличии и только до 7 ноября 2020 года), рекомендуется обновить конференции до версии 3.3.x.

[3.1] Склонение существительных с числительными

Вопросы, связанные с переводом phpBB на русский язык.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15423
Стаж: 14 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 412 раз
Поблагодарили: 1842 раза

[3.1] Склонение существительных с числительными

Сообщение rxu »

В phpBB 3.1 введена новая система работы со склонениями существительных с числительными.
Взята с проекта 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 минут назад',
		),
В случае, если обрабатываемое значение менее 1 минуты (т.е. равно 0), будет выведено "менее минуты назад".

Примеры:

Код: Выделить всё

$user->lang('AGO', 0);
выведет "менее минуты назад" (использован ключ 0). Однако, если, например, удалить вхождение с ключом 0, будет выведено "0 минут назад" (т.е. использован ключ 3).

Код: Выделить всё

$user->lang('AGO', 11);
выведет "11 минут назад" (использован ключ 3).

Код: Выделить всё

$user->lang('AGO', 92);
выведет "92 минуты назад" (использован ключ 2).

И так далее.
Изображение
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 10552
Стаж: 11 лет 3 месяца
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 1512 раз
Поблагодарили: 1314 раз

Re: Склонение существительных с числительными

Сообщение Пчелкин »

Во разжевано... Аж просветление появилось в этом вопросе... ПасиБ!!!
Перенесено из форума Русский перевод phpBB 3.1.x в форум Русский перевод phpBB 25.09.2016 21:48 модератором rxu

Вернуться в «Русский перевод phpBB»