An open API service indexing awesome lists of open source software.

https://github.com/wapmorgan/morphos-blade

Morphos adapter for Blade
https://github.com/wapmorgan/morphos-blade

blade blade-directives morphology

Last synced: about 2 months ago
JSON representation

Morphos adapter for Blade

Awesome Lists containing this project

README

        

# MorphosBlade

[In English see README](README.md).

[![Composer package](http://composer.network/badge/wapmorgan/morphos-blade)](https://packagist.org/packages/wapmorgan/morphos-blade)
[![Latest Stable Version](https://poser.pugx.org/wapmorgan/morphos-blade/version)](https://packagist.org/packages/wapmorgan/morphos-blade)
[![License](https://poser.pugx.org/wapmorgan/morphos-blade/license)](https://packagist.org/packages/wapmorgan/morphos-blade)

Добавляет в шаблонизатор Laravel blade-директивы для русского языка: @plural, @name, @numeral, @ordinal и @money.
Они позволяют правильно использовать флексию (изменяемую часть слова) - например сколнять числительные
и существительные в зависимости от падежа, рода (мужской/женский/средний), единственного или множественного числа.

```blade


@plural(252, 'новость') от @name('Иванов Иван Иванович', 'родительный')
@numeral(565, 'сообщение', 'n') и @money(123.50, '₽') за Ваше отсутствие.
Это Ваше @ordinal(351, 'n') посещение нашего сайта за сегодня!

```

Результат компиляции шаблона:

```html


252 новости от Иванова Ивана Ивановича
пятьсот шестьдесят пять сообщений и 123 рубля 50 копеек за Ваше отсутствие
Это Ваше триста пятьдесят первое посещение нашего сайта за сегодня!

```

Часто используемые директивы:

- **@plural(count, noun)** - Получить множественную форму слова. Аргументы - количество объектов (count) и существительное (nount).
```blade
@plural(244, 'элемент')
```

- **@money(value, currency)** - Денежная сумма прописью. Аргументы - сумма (value) и валюта (currency) (₽ or $ or € or ₴ or £).
```blade
@money(1000.10, '$')
```

- **@numeral(number)** - Числительное прописью. Аргумент - количество объектов (number) которое надо преобразовать в текст.
```blade
@numeral(344)
```

- **@ordinal(number)** - Порядковый номер прописью. Аргумент - порядковый номер (number) который надо преобразовать в текст.
```blade
@ordinal(500)
```

- **@name(name, case)** - Вывести имя в нужном падеже с автоматическим определением рода (мужской/женский). Аргументы - имя (name) и падеж (case): именительный, родительный, дательный, винительный, творительный, предложный
```blade
@name('Коленко Сергей Аркадьевич', 'дательный')
```

Дополнительные директивы:

- **@name(name, gender, case)** - Вывести имя в нужном падеже с возможностью вручную указать род (мужской/женский/средний). Аргументы - имя (name), род (gender: `f`, `m` или null), падеж (case): именительный, родительный, дательный, винительный, творительный, предложный
```blade
@name('Филимонов Игорь', 'm', 'дательный')
```

- **@numeral(number, gender)** - Числительное прописью. Аргументы - количество (number) и род (gender: `m`, `f` или `n`). Указывайте род (gender) для корректного для правильного преобразования склоняемых числительных (один/одно/одна, два/две).
```blade
@numeral(121, 'n')
```

- **@numeral(number, noun)** - Количество объектов прописью во множественном числе. Аргументы - количество объектов (number) и связанное существительное в единственном числе (noun: количество чего именно мы выводим). Эта директива-сокращение для конструкции `@numeral(3) @plural(3, 'поле')`
```blade
@numeral(3, 'поле')
```

- **@numeral(number, noun, gender)** - Количество объектов прописью во множественном числе с указанием рода. Аргументы - количество объектов (number), связанное существительное в единственном числе (noun: количество чего именно мы выводим) и род (gender: `m`, `f` или `n`). Указывайте род (gender) для корректного для правильного преобразования склоняемых числительных (один/одно/одна, два/две).
```blade
@numeral(101, 'сообщение', 'n')
```

- **@ordinal(number, gender)** - Порядковый номер в нужном роде (мужской/женский/средний). Аргументы - порядковый номер (number) и род (gender: `m`, `f` или `n`). Указывайте род (gender) для корректного для правильного преобразования склоняемых порядковых номеров (первый/первое/первая, второй/второе/вторая, etc).
```blade
@ordinal(351, 'n')
```

## Установка

### Установка пакета

```
composer require wapmorgan/morphos-blade
```

### Регистрация сервис-провайдера
Откройте `app.php` в папке `config` и добавьте строку в массив `providers` как в этом примере:

```php
'providers' => array(
...
morphos\MorphosBladeProvider::class
)
```