Sergey d228767097 Merge pull request #152 from alex-storchak/fix-cases-for-cardinal-num-1000-russian | 1 month ago | |
---|---|---|
.github | 2 years ago | |
bin | 2 years ago | |
src | 1 month ago | |
tests | 1 month ago | |
web | 1 year ago | |
.gitignore | 2 years ago | |
.rr.yaml | 1 year ago | |
.scrutinizer.yml | 6 years ago | |
.travis.yml | 2 years ago | |
CONTRIBUTING.md | 5 years ago | |
Dockerfile | 1 year ago | |
LICENSE.md | 7 years ago | |
README-en.md | 1 year ago | |
README-ru.md | 1 year ago | |
README.md | 8 months ago | |
_config.yml | 2 years ago | |
composer.json | 2 years ago | |
phpstan.neon | 4 years ago | |
phpunit.xml.dist | 2 years ago |
English morphology shortcuts:
morphos\English\NounPluralization::pluralize($word, $count)
morphos\English\CardinalNumeralGenerator::generate($number)
morphos\English\OrdinalNumeralGenerator::generate($number)
morphos\English\TimeSpeller::spellInterval(DateInterval $interval)
English class hierarchy:
morphos\
English\
CardinalNumeralGenerator
OrdinalNumeralGenerator
NounPluralization
TimeSpeller
Pluralization a word in English is possible with NounPluralization
class:
use function morphos\English\pluralize;
use morphos\English\NounPluralization;
echo '10 '.NounPluralization::pluralize('foot') => '10 feet'
// or if you don't know count of objects
// or you can use shortcut
$n = 1;
echo pluralize($n, 'foot') => '1 foot'
// or API: GET /en/pluralize?count=...&word=...
All number creation classes are similar and have one common methods:
OrdinalNumeralGenerator::generate($number, bool $short= false)
- Generates an ordinal numeral for a number.
GET /en/ordinal?number=...
CardinalNumeralGenerator::generate($number)
- Generates a cardinal numeral for a number.
GET /en/cardinal?number=...
Creation of cardinal numerals in english language (CardinalNumeralGenerator
).
use morphos\English\CardinalNumeralGenerator;
// Get text representation of a number:
$number = 4351;
CardinalNumeralGenerator::generate($number) => 'four thousand, three hundred fifty-one'
Creation of ordinal numerals in english language (OrdinalNumeralGenerator
).
use morphos\English\OrdinalNumeralGenerator;
// Get text representation of a number or short form:
$number = 4351;
OrdinalNumeralGenerator::generate($number) => 'four thousand, three hundred fifty-first'
// short form of ordinal numeral
OrdinalNumeralGenerator::generate($number, true) => '4351st'
You can generate text representation of time interval with TimeSpeller
class:
use morphos\English\TimeSpeller;
// generate text representation of 5 years and 2 months
$interval = new DateInterval('P5Y2M');
TimeSpeller::spellInterval($interval) => '5 years 2 months'
TimeSpeller::spellInterval($interval, TimeSpeller::SEPARATE) => '5 years and 2 months'
// or with API: GET /en/time/spellDifference?dateTime=...&options=...&limit=...
// or with API: GET /en/time/spellInterval?interval=...&options=...&limit=...