wapmorgan / yii2-inflection
为 Yii2 的屈折扩展。支持英语/俄语,可以屈折单词/姓名/数字/货币/日期和时间。
1.0.4
2018-03-26 03:15 UTC
Requires
- wapmorgan/morphos: ~3.2.3
- yiisoft/yii2: ^2.0
Requires (Dev)
- phpunit/phpunit: ~4.8
README
为 Yii2 的屈折扩展。支持英语/俄语,可以屈折单词/姓名/数字/货币/日期和时间。
功能
- 使用数字使单词变为复数:
en
:Yii::$app->inflection->pluralize(2, 'item')
=>2 items
ru
:Yii::$app->inflection->pluralize(2, 'элемент')
=>2 элемента
- 将姓名屈折为关系格(仅适用于俄语):
ru
:Yii::$app->inflection->inflectName('Иванов Петр', wapmorgan\yii2inflection\Inflector::DATIVE)
=>Иванову Петру
- 所有支持的格的描述在情况部分。
- 将地理名称屈折为关系格(仅适用于俄语):
ru
:Yii::$app->inflection->inflectGeoName('Санкт-Петербург', wapmorgan\yii2inflection\Inflector::GENITIVE)
=>Санкт-Петербурга
- 生成基数词:
en
:Yii::$app->inflection->cardinalize(2)
=> 'two'ru
:Yii::$app->inflection->cardinalize(2)
=> 'два'
- 生成序数词:
en
:Yii::$app->inflection->ordinalize(2)
=> '2nd'ru
:Yii::$app->inflection->ordinalize(2)
=> '2-й'
和完整形式
en
:Yii::$app->inflection->ordinalize(2, wapmorgan\yii2inflection\Inflector::FULL)
=> 'second'ru
:Yii::$app->inflection->ordinalize(2, wapmorgan\yii2inflection\Inflector::FULL)
=> 'второй'
- 货币转换为文字:
- (正在进行中)
en
:Yii::$app->inflection->monetize(wapmorgan\yii2inflection\Inflector::DOLLAR, 122.04)
=> 'one hundred twenty-two dollars four cents' ru
:Yii::$app->inflection->monetize(wapmorgan\yii2inflection\Inflector::DOLLAR, 122.04)
=> 'сто двадцать два доллара четыре цента'- 所有支持的货币的描述在货币部分。
- 日期范围转换为文字:
en
:Yii::$app->inflection->textizeTimeRange(new DateInterval('P2Y'))
=> '2 years'ru
:Yii::$app->inflection->textizeTimeRange(new DateInterval('P2Y'))
=> '2 года'
(正在进行中)表示该功能目前不受支持,但计划实现。
情况
货币
如何工作
它使用内置的屈折器进行英语复数化(yii\helpers\Inflector
)和Morphos进行英语和俄语的实时屈折(无需词典)。
安装
- 安装扩展
composer require wapmorgan/yii2-inflection
- 在配置中添加
wapmorgan\yii2inflection\Inflection
作为服务inflection
并指定应用程序的正确目标语言(web.php 或 console.php)
$config = [ // ... 'language' => 'ru_RU', // for example, Russian // ... 'components' => [ // ... 'inflection' => [ 'class' => 'wapmorgan\yii2inflection\Inflection' ] ], // ... ];
- 可选服务参数
language
- 默认屈折语言。默认情况下,它使用当前应用程序的 language 参数,但您可以更改此行为。目前支持的语言是ru
(俄语)和en
(英语)或它们的修改版(ru_RU
,en_US
)。如果您传递不支持或不认识的语言,则在服务初始化期间将抛出异常。defaultCurrency
- 在将货币转换为文字时的默认货币。如果设置,可以在不指定货币的情况下调用monetize(float $value)
:Yii::$app->inflection->monetize(123.45)
=>一百二十三圆四十五分
- 在控制器/命令/视图中调用上述任何方法。
$word = 'новость'; echo Yii::$app->inflection->pluralize(rand(2, 139), $word).PHP_EOL; echo Yii::$app->inflection->pluralize(rand(9, 69), $word).PHP_EOL;