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

В данном подфоруме будут располагаться все статьи, помогающие освоиться в администрировании форума phpBB 3.1 / Ascraeus.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Ответить
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

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

Сообщение DeaDRoMeO »

В phpBB 3.1 введена новая система работы со склонениями существительных с числительными (Более подробно о правилах ..). :-00):

Для русского языка используется правило 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, по ЛС не отвечаю !!!
#1
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение