Russian - savoirfairelinux/num2words GitHub Wiki
ru (Russian)
Arguments:
- 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) две
Additional features
- 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')
пять целых десять сотых