2
0
mirror of https://github.com/tenrok/numeralize-ru.git synced 2026-06-17 19:21:31 +03:00
Files
numeralize-ru/README.md
T

108 lines
6.0 KiB
Markdown

# numeralize-ru
Написание числительных на русском языке с учётом пола и падежа.
# Установка
```
npm install --save numeralize-ru
```
# API
### `numeralize(number, [gender, [kase, [animate]]])`
Возвращает числительное, соответствующее числу
+ `number` — число, для которого надо записать числительное;
+ `gender` — пол:
+ `Gender.Masculine` — мужской (по умолчанию);
+ `Gender.Feminine` — женский;
+ `Gender.Neuter` — средний;
+ `kase` — падеж (`case` является ключевым словом, поэтому не может быть использован в качестве имени переменной):
+ `Case.Nominative` — именительный (по умолчанию);
+ `Case.Genitive` — родительный;
+ `Case.Dative` — дательный;
+ `Case.Accusative` — винительный;
+ `Case.Instrumental` — творительный;
+ `Case.Prepositional` — предложный;
+ `animate` — являются ли перечисляемые предметы одушевлёнными (влияет на форму винительного падежа некоторых числительных)
```typescript
import {Case, Gender, numeralize, pluralize} from 'numeralize-ru';
numeralize(5122981121);
// мужской род, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать один'
numeralize(5122981121, Gender.Feminine);
// женский род, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать одна'
numeralize(5122981121, Gender.Neuter);
// средний род, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать одно'
numeralize(5122981121, Gender.Masculine, Case.Nominative);
// мужской род, именительный падеж, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать один'
numeralize(5122981121, Gender.Masculine, Case.Genitive);
// мужской род, родительный падеж, 'пяти миллиардов ста двадцати двух миллионов девятисот восьмидесяти одной тысячи ста двадцати одного'
numeralize(5122981121, Gender.Masculine, Case.Dative);
// мужской род, дательный падеж, 'пяти миллиардам ста двадцати двум миллионам девятистам восьмидесяти одной тысяче ста двадцати одному'
numeralize(5122981121, Gender.Masculine, Case.Accusative);
// мужской род, винительный падеж, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одну тысячу сто двадцать один'
numeralize(5122981121, Gender.Masculine, Case.Accusative, true);
// мужской род, винительный падеж, одушевлённые предметы, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одну тысячу сто двадцать одного'
numeralize(5122981121, Gender.Masculine, Case.Instrumental);
// мужской род, творительный падеж, 'пятью миллиардами ста двадцатью двумя миллионами девятьюстами восемьюдесятью одной тысячей ста двадцатью одним'
numeralize(5122981121, Gender.Masculine, Case.Prepositional);
// мужской род, творительный падеж, 'пяти миллиардах ста двадцати двух миллионах девятистах восьмидесяти одной тысяче ста двадцати одном'
```
### `pluralize(count, one, two, five)`
Выбирает нужную форму существительного в зависимости от количества.
+ `count` — количество
+ `one` — форма существительного для одного предмета, например, _рубль_;
+ `two` — форма существительного для двух предметов, например, _рубля_;
+ `five` — форма существительного для пяти предметов, например, _рублей_;
```typescript
import {pluralize} from 'numeralize-ru';
pluralize(0, 'рубль', 'рубля', 'рублей');
// 'рублей'
pluralize(1, 'рубль', 'рубля', 'рублей');
// 'рубль'
pluralize(2, 'рубль', 'рубля', 'рублей');
// 'рубля'
pluralize(5, 'рубль', 'рубля', 'рублей');
// 'рублей'
pluralize(11, 'рубль', 'рубля', 'рублей');
// 'рублей'
pluralize(21, 'рубль', 'рубля', 'рублей');
// 'рубль'
pluralize(22, 'рубль', 'рубля', 'рублей');
// 'рубля'
```
# Roadmap
+ Порядковые числительные (ordinal numerals): _первый_, _вторым_, _третьими_ и т.д.
+ Собирательные числительные (collective numerals): _трое_, _четверых_, _пятерыми_ и т.д.
+ Особые формы единственного и множественного числа: _одни сутки_, _два дня_, _пять суток_ и т.д.
# См.также
+ Подробно о склонении числительных в русском языке с примерами: http://numeralonline.ru/