drandin / declension-nouns
Laravel 的变格名词。
Requires
- php: ^7.3 || ^8.0
This package is auto-updated.
Last update: 2024-09-21 18:19:02 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个电话的名词。