softinvest / declension-nouns
Laravel的变格名词。
Requires
- php: ^7.3 || ^8.0
This package is auto-updated.
Last update: 2024-09-25 19:57:17 UTC
README
您是否在不同的网站上遇到过类似的消息?
「您订购了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, "год");
结果将是
лет
如何将单词添加到词典中?
有两种方法。
方法 #1
在配置文件config/declension-nouns.php的数组中添加新单词
'телефон' => [ 'телефона', 'телефонов' ],
数组元素的键是单数形式,第一个元素是描述2个手机的名词,第二个元素是描述5个手机的名词。
方法 #2
在运行时添加单词
DeclensionNoun::addToDictionary('телефон', 'телефона', 'телефонов');
第一个参数需要传递单数形式的数字,然后是描述2个手机的名词,第三个参数是描述5个手机的名词。