drandin/declension-nouns

Laravel 的变格名词。

dev-master 2021-09-21 11:40 UTC

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个电话的名词。

许可证(License)

MIT 许可证