wapmorgan/yii2-inflection

为 Yii2 的屈折扩展。支持英语/俄语,可以屈折单词/姓名/数字/货币/日期和时间。

安装次数: 74,587

依赖项: 0

建议者: 0

安全: 0

星标: 31

关注者: 2

分支: 7

开放问题: 0

类型:yii2-extension

1.0.4 2018-03-26 03:15 UTC

This package is auto-updated.

Last update: 2024-09-09 15:16:15 UTC


README

为 Yii2 的屈折扩展。支持英语/俄语,可以屈折单词/姓名/数字/货币/日期和时间。

Latest Stable Version License Testing

  1. 功能
  2. 如何工作
  3. 安装

功能

  1. 使用数字使单词变为复数:
  • en: Yii::$app->inflection->pluralize(2, 'item') => 2 items
  • ru: Yii::$app->inflection->pluralize(2, 'элемент') => 2 элемента
  1. 将姓名屈折为关系格(仅适用于俄语):
  • ru: Yii::$app->inflection->inflectName('Иванов Петр', wapmorgan\yii2inflection\Inflector::DATIVE) => Иванову Петру
  • 所有支持的格的描述在情况部分。
  1. 将地理名称屈折为关系格(仅适用于俄语):
  • ru: Yii::$app->inflection->inflectGeoName('Санкт-Петербург', wapmorgan\yii2inflection\Inflector::GENITIVE) => Санкт-Петербурга
  1. 生成基数词:
  • en: Yii::$app->inflection->cardinalize(2) => 'two'
  • ru: Yii::$app->inflection->cardinalize(2) => 'два'
  1. 生成序数词:
  • 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) => 'второй'
  1. 货币转换为文字:
  • (正在进行中) 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) => 'сто двадцать два доллара четыре цента'
  • 所有支持的货币的描述在货币部分。
  1. 日期范围转换为文字:
  • en: Yii::$app->inflection->textizeTimeRange(new DateInterval('P2Y')) => '2 years'
  • ru: Yii::$app->inflection->textizeTimeRange(new DateInterval('P2Y')) => '2 года'

正在进行中)表示该功能目前不受支持,但计划实现。

情况

货币

如何工作

它使用内置的屈折器进行英语复数化(yii\helpers\Inflector)和Morphos进行英语和俄语的实时屈折(无需词典)。

安装

  1. 安装扩展
composer require wapmorgan/yii2-inflection
  1. 在配置中添加 wapmorgan\yii2inflection\Inflection 作为服务 inflection 并指定应用程序的正确目标语言(web.phpconsole.php
$config = [
  // ...
  'language' => 'ru_RU', // for example, Russian
  // ...
  'components' => [
    // ...
    'inflection' => [
      'class' => 'wapmorgan\yii2inflection\Inflection'
    ]
  ],
  // ...
];
  • 可选服务参数
    • language - 默认屈折语言。默认情况下,它使用当前应用程序的 language 参数,但您可以更改此行为。目前支持的语言是 ru(俄语)和 en(英语)或它们的修改版(ru_RUen_US)。如果您传递不支持或不认识的语言,则在服务初始化期间将抛出异常。
    • defaultCurrency - 在将货币转换为文字时的默认货币。如果设置,可以在不指定货币的情况下调用 monetize(float $value)Yii::$app->inflection->monetize(123.45) => 一百二十三圆四十五分
  1. 在控制器/命令/视图中调用上述任何方法。
$word = 'новость';
echo Yii::$app->inflection->pluralize(rand(2, 139), $word).PHP_EOL;
echo Yii::$app->inflection->pluralize(rand(9, 69), $word).PHP_EOL;