-
Notifications
You must be signed in to change notification settings - Fork 506
Russian
smilingDima edited this page Dec 25, 2023
·
1 revision
- to:
-
cardinal
(default) - количественное -
ordinal
- порядковое
$ num2words(123, lang='ru') сто двадцать три $ num2words(1, lang='ru', to='ordinal') первый $ num2words(136, lang='ru', to='ordinal') сто тридцать шестой
-
- case:
-
n
(default) - nominative (именительный падеж) -
g
- genitive (родительный падеж) -
d
- dative (дательный падеж) -
a
- accusative (винительный падеж) -
i
- instrumental (творительный падеж) -
p
- prepositional (предложный падеж)
$ num2words(1, lang='ru', case='g') одного $ num2words(122, lang='ru', case='d') ста двадцати двум
-
- plural:
-
True
- prural (множественное число) -
False
(default) - singular (единственное число)
$ num2words(1, lang='ru', case='a', plural=True, animate=False) одни
-
- gender:
-
m
(default) - masculine (мужской род) -
f
- feminine (женский род) -
n
- neuter (средний род)
$ num2words(1, lang='ru', to='ordinal', gender='f') первая $ num2words(-1, lang='ru', gender='f') минус одна $ num2words(23, lang='ru', to='ordinal', gender='n') двадцать третье $ num2words(125.1, lang='ru', gender='n') сто двадцать пять целых одна десятая $ num2words(1000, lang='ru', to='ordinal', gender='n') тысячное
-
- animate: affects only with the accusative case (имеет значение только в винительном падеже)
-
True
(default) - animate (одушевленное) -
False
- inanimate (неодушевленное)
$ num2words(2, lang='ru', case='a', gender='f', animate=True) двух $ num2words(2, lang='ru', case='a', gender='f', animate=False) две
-
- Useful pluralize function:
def pluralize(n, forms):
"""
Returns appropriate form of item that should be after its quantity
:param n: number of items
:param forms: array of 3 forms for 1, 2 and 5 counts ('яблоко', 'яблока', 'яблок')
:returns
"""
if n % 100 in (11, 12, 13, 14):
return forms[2]
if n % 10 == 1:
return forms[0]
if n % 10 in (2, 3, 4):
return forms[1]
return forms[2]
Example:
> pluralize(1, ['яблоко', 'яблока', 'яблок'])
яблоко
> pluralize(2, ['яблоко', 'яблока', 'яблок'])
яблока
> pluralize(5, ['яблоко', 'яблока', 'яблок'])
яблок
> num2words(100, lang='ru') + pluralize(100, ['яблоко', 'яблока', 'яблок'])
сто яблок
> num2words(101, lang='ru') + pluralize(101, ['яблоко', 'яблока', 'яблок'])
сто одно яблоко
> num2words(102, lang='ru') + pluralize(102, ['яблоко', 'яблока', 'яблок'])
сто два яблока
- Decimal feature:
$ num2words(5.10, lang='ru')
пять целых одна десятая
$ num2words("5.10", lang='ru')
пять целых десять сотых