Блог Горошко Андрея 1C-Битрикс Склонение существительных с числительными: Класс Bitrix\Main\Grid\Declension

Склонение существительных с числительными: Класс Bitrix\Main\Grid\Declension

Частая задача интерфейса: вывести количество элементов с правильным окончанием (например: «Найдено 22 элемента»).

Раньше разработчики писали свои функции declension($n, $form1, $form2, $form5). В D7 есть штатное решение.

Использование класса

Класс находится в пространстве имен Bitrix\Main\Grid.

use Bitrix\Main\Grid\Declension;

// Создаем объект склонения
// Параметры: (форма для 1, форма для 2, форма для 5)
$declension = new Declension('товар', 'товара', 'товаров');

$count = 1;
echo "$count " . $declension->get($count); // 1 товар

$count = 2;
echo "$count " . $declension->get($count); // 2 товара

$count = 5;
echo "$count " . $declension->get($count); // 5 товаров

$count = 112;
echo "$count " . $declension->get($count); // 112 товаров

Работа с другими языками

Для английского языка (где всего две формы: 1 item, 2 items) нужно передавать только два аргумента или использовать ту же форму для множественного числа дважды.

// Для английского
$declensionEn = new Declension('item', 'items'); 

echo "1 " . $declensionEn->get(1); // 1 item
echo "5 " . $declensionEn->get(5); // 5 items

Примечание: Класс Declension использует простую логику.

Для полноценной мультиязычности (с поддержкой сложных правил славянских или восточных языков) правильнее использовать языковые файлы с поддержкой Plural Form (доступно в Loc::getMessage с плейсхолдерами), но для простых задач (рус/анг) Declension подходит идеально.

Вывод:
Не пишите свои велосипеды для склонения слов.

Класс Bitrix\Main\Grid\Declension прост, надежен и доступен в ядре «из коробки».

Bitrix\Main\Grid\Declension, склонение по числам битрикс, plural form bitrix, 1 товар 2 товара 5 товаров, языковые файлы.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Добавить комментарий

Related Post

Получить значения параметра свойства товаров или вариаций catalog.productProp…Получить значения параметра свойства товаров или вариаций catalog.productProp…

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить значения параметра свойства товаров или вариаций catalog.productProp…»,

Создание оптового портала с разграничением прав доступа для филиалов холдингаСоздание оптового портала с разграничением прав доступа для филиалов холдинга

Разработка и внедрение профессионального B2B-портала и дилерского кабинета на 1С-Битрикс позволяет кардинально сократить издержки отдела оптовых продаж, перевести дилеров на самообслуживание 24/7 и исключить ошибки ручного ввода заказов. Услуга «Создание

Создание B2B-кабинета для импортеров с расчетом таможенных пошлин и логистических плечСоздание B2B-кабинета для импортеров с расчетом таможенных пошлин и логистических плеч

Разработка и внедрение профессионального B2B-портала и дилерского кабинета на 1С-Битрикс позволяет кардинально сократить издержки отдела оптовых продаж, перевести дилеров на самообслуживание 24/7 и исключить ошибки ручного ввода заказов. Услуга «Создание