Иногда необходимо вывести число прописью при формировании какой-либо формы и нам приходит на помощь модуль DigitText, разработанный специально для фреймворка Laravel.
Он позволяет обрабатывать любое число на любом языке
Установить модуль очень просто:
1. Последовательно выполните команды:
2. После обновления композера, добавьте сервис провадер в файл `config/app.php`:
3. Далее, в том же файле, в раздел `aliases` добавьте фасад:
Готово!
Для перевода числа в текст используйте конструкцию:
Пример:
На момент написания статьи модуль поддерживает работу с такими языковыми формами, как: «русский», «английский» и «немецкий».
Любой желающий может помочь развитию модуля DigitText.
Модуль предоставлен по лицензии MIT.
Это мой первый модуль под Laravel. Знаю, что код далек от идеала и прошу сильно не пинать :)
Если Вы не разделяете взгляд автора, будьте добры конструктивно описать свою точку зрения в комментариях.
Он позволяет обрабатывать любое число на любом языке
Установка
Установить модуль очень просто:
1. Последовательно выполните команды:
composer require andrey-helldar/digittext
composer update
2. После обновления композера, добавьте сервис провадер в файл `config/app.php`:
Helldar\DigitText\DigitServiceProvider::class,
3. Далее, в том же файле, в раздел `aliases` добавьте фасад:
'DigitText' => Helldar\DigitText\DigitText::class,
Готово!
Использование
Для перевода числа в текст используйте конструкцию:
DigitText::text($number = 0, $lang = 'ru', $currency = false);
Пример:
DigitText::text();
DigitText::text(64.42);
DigitText::text(2866);
DigitText::text(0, 'ru', true);
DigitText::text(64.42, 'ru', true);
DigitText::text(2866, 'ru', true);
/*
* Результат:
* ноль
* шестьдесят четыре
* две тысячи восемьсот шестьдесят шесть
*
* ноль руб
* шестьдесят четыре руб 42 коп
* две тысячи восемьсот шестьдесят шесть руб
*/
Языковые формы
На момент написания статьи модуль поддерживает работу с такими языковыми формами, как: «русский», «английский» и «немецкий».
Любой желающий может помочь развитию модуля DigitText.
Модуль предоставлен по лицензии MIT.
От автора
Это мой первый модуль под Laravel. Знаю, что код далек от идеала и прошу сильно не пинать :)
К минусующим
Если Вы не разделяете взгляд автора, будьте добры конструктивно описать свою точку зрения в комментариях.
Комментарии (3)
michael_vostrikov
15.03.2016 13:46+5Если установлено расширение php_intl, можно вот так сделать:
$result = (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => 321]); echo $result; // триста двадцать один $result = (new \MessageFormatter('ru-RU', '{n, spellout,%spellout-cardinal-feminine}'))->format(['n' => 321]); echo $result; // триста двадцать одна
koceg
15.03.2016 15:11+2Поле для улучшений непаханное: статические функции; невозможно кастомизировать переводы под проект; абсолютно ничем не обоснованная сильняя связанность с Laravel; fraction, а не fractal, в конце концов.
m00t
Уберите nbproject. Разделите на 2 проекта: фреймворконезависимая библиотека и драйвер к ларавелу.