softinvest/declension-nouns

Declension nouns for Laravel.


Keywords
laravel, declension, noun
License
MIT

Documentation

Declension Nouns. Склонение существительных

Приходилось ли вам встречать на различный сайтах подобные сообщения?

«Вы заказали 23 товаров», «В корзину добавлено 1 позиций», «Последний раз вы заходили на наш сайт 5 года назад», «Вы посмотрели 2 страниц каталога», «1 результатов поиска», «2 посетителей сайта просматривают данное предложение», «Вы заказали 5 смартфона».

Причина таких ошибок вовсе не опечатки разработчиков. Дело в том, что проблему склонения существительных часто откладывают на потом. Некорректно написаное слово не мешает приложению работать и решать основную бизнес-задачу.

Данный пакет позволит вам решить проблему склонения существительных в вашем web-проекте.

Установка

composer require drandin/declension-nouns
После установки пакета необходимо последовательно выполнить следующие действия:

Добавить в файл конфигурации приложения config/app.php сервис-провайдер. Строку указанную ниже следует внести в массив 'providers'.

 Drandin\DeclensionNouns\DeclensionNounsServiceProvider::class,

Для того, чтобы иметь доступ к функциям пакета через фасад следует добавить в config/app.php в массив 'aliases' строку:

 'DeclensionNoun' => \Drandin\DeclensionNouns\Facades\DeclensionNoun::class,

Затем, выполните в консоли команду, которая скопирует файл конфигурации declension-nouns.php в каталог config вашего приложения:

 php artisan vendor:publish --tag=config

После этого, запустите в консоли команду, которая обновит кэш конфигурации:

 php artisan config:cache

Если у вас установлен пакет ide-helper, то пересоздайте файл _ide_helper.php:

 php artisan ide-helper:generate

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

Предположим у нас есть число 4, и оно означат количество лет:

DeclensionNoun::make(4, "год");

В результате получим:

4 года

Предположим у нас есть число 5, и оно означат количество страниц:

DeclensionNoun::make(5, "страница");

В результате получим:

5 страниц

Предположим у нас есть число -304, и оно означат сумму в рублях, которую должен клиент:

DeclensionNoun::make(-304, "рубль");

В результате получим:

-304 рубля

Предположим у нас есть число 5, и оно означат возраст ребёнка:

DeclensionNoun::make(5, "год");

В результате получим:

5 лет   

То же самое, что и в примере выше, но мы получаем только слово:

DeclensionNoun::makeOnlyWord(5, "год");

В результате получим:

лет     

Как добавить слово в словарь?

Есть 2 способа.

Способ № 1

Внести в массив файла конфигурации config/declension-nouns.php новое слово:

    
    'телефон' => [
                'телефона',
                'телефонов'
            ],
    

Ключ элемента массива — единственное число, первый элемент - существительное, которое описывает 2 телефона, второй элемент - существительное, которое описывает 5 телефонов.

Способ № 2

Добавить слово в момент выполнения:

   DeclensionNoun::addToDictionary('телефон', 'телефона', 'телефонов');

Первым аргументом нудно передать единственное число, затем существительное, которое описывает 2 телефона, и третий аргумент - существительное, которое описывает 5 телефонов.

Лицензия (License)

MIT license