npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

numeralize-ru

v2.0.0

Published

Russian numerals

Downloads

4,921

Readme

numeralize-ru

Написание числительных на русском языке с учётом пола и падежа.

Использование в NodeJS

npm install --save numeralize-ru
import {numeralize, Case, Gender} from "numeralize-ru";

console.log(numeralize(5122981121, Gender.Masculine, Case.Nominative));

Использование в дореволюционных браузерах

<script src="https://unpkg.com/numeralize-ru/lib/index.browser.js"></script>
<script>
    console.log(numeralize.numeralize(5122981121, numeralize.Gender.Feminine));
</script>

API

/**
 * Возвращает числительное, соответствующее числу
 *
 * @param {number} number Целое число, для которого надо записать числительное
 *
 * @param {Gender} [gender=Gender.Masculine] Пол:
 *  - {@link Gender.Masculine} – мужской (по умолчанию);
 *  - {@link Gender.Feminine} – женский;
 *  - {@link Gender.Neuter} – средний.
 *
 * @param {Case} [kase=Case.Nominative] Падеж
 *  (`case` является ключевым словом, поэтому не может быть использован в качестве имени переменной):
 *  - {@link Case.Nominative} — именительный (по умолчанию);
 *  - {@link Case.Genitive} — родительный;
 *  - {@link Case.Dative} — дательный;
 *  - {@link Case.Accusative} — винительный;
 *  - {@link Case.Instrumental} — творительный;
 *  - {@link Case.Prepositional} — предложный.
 *
 * @param {boolean} [animate=false] Являются ли перечисляемые предметы одушевлёнными
 *  (влияет на форму винительного падежа некоторых числительных)
 *
 * @example
 * // мужской род, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать один'
 * numeralize(5122981121);
 *
 * @example
 * // женский род, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать одна'
 * numeralize(5122981121, Gender.Feminine);
 *
 * @example
 * // средний род, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать одно'
 * numeralize(5122981121, Gender.Neuter);
 *
 * @example
 * // мужской род, именительный падеж, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одна тысяча сто двадцать один'
 * numeralize(5122981121, Gender.Masculine, Case.Nominative);
 *
 * @example
 * // мужской род, родительный падеж, 'пяти миллиардов ста двадцати двух миллионов девятисот восьмидесяти одной тысячи ста двадцати одного'
 * numeralize(5122981121, Gender.Masculine, Case.Genitive);
 *
 * @example
 * // мужской род, дательный падеж, 'пяти миллиардам ста двадцати двум миллионам девятистам восьмидесяти одной тысяче ста двадцати одному'
 * numeralize(5122981121, Gender.Masculine, Case.Dative);
 *
 * @example
 * // мужской род, винительный падеж, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одну тысячу сто двадцать один'
 * numeralize(5122981121, Gender.Masculine, Case.Accusative);
 *
 * @example
 * // мужской род, винительный падеж, одушевлённые предметы, 'пять миллиардов сто двадцать два миллиона девятьсот восемьдесят одну тысячу сто двадцать одного'
 * numeralize(5122981121, Gender.Masculine, Case.Accusative, true);
 *
 * @example
 * // мужской род, творительный падеж, 'пятью миллиардами ста двадцатью двумя миллионами девятьюстами восемьюдесятью одной тысячей ста двадцатью одним'
 * numeralize(5122981121, Gender.Masculine, Case.Instrumental);
 *
 * @example
 * // мужской род, творительный падеж, 'пяти миллиардах ста двадцати двух миллионах девятистах восьмидесяти одной тысяче ста двадцати одном'
 * numeralize(5122981121, Gender.Masculine, Case.Prepositional);
 */
declare function numeralize(
  number: number,
  gender: Gender = Gender.Masculine,
  kase: Case = Case.Nominative,
  animate: boolean = false
): string;

/**
 * Выбирает нужную форму существительного в зависимости от количества.
 *
 * @param {number} count Количество
 * @param {string} one Форма существительного для одного предмета, например, «рубль»;
 * @param {string} two Форма существительного для двух предметов, например, «рубля»;
 * @param {string} five Форма существительного для пяти предмета, например, «рублей»;
 *
 * @example
 * // 'рублей'
 * pluralize(0, 'рубль', 'рубля', 'рублей');
 *
 * @example
 * // 'рубль'
 * pluralize(1, 'рубль', 'рубля', 'рублей');
 *
 * @example
 * // 'рубля'
 * pluralize(2, 'рубль', 'рубля', 'рублей');
 *
 * @example
 * // 'рублей'
 * pluralize(5, 'рубль', 'рубля', 'рублей');
 *
 * @example
 * // 'рублей'
 * pluralize(11, 'рубль', 'рубля', 'рублей');
 *
 * @example
 * // 'рубль'
 * pluralize(21, 'рубль', 'рубля', 'рублей');
 *
 * @example
 * // 'рубля'
 * pluralize(22, 'рубль', 'рубля', 'рублей');
 */
declare function pluralize(count: number, one: string, two: string, five: string): string

Спонсорство

Стать первым спонсором проекта

Roadmap

  • Порядковые числительные (ordinal numerals): первый, вторым, третьими и т.д.
  • Собирательные числительные (collective numerals): трое, четверых, пятерыми и т.д.
  • Особые формы единственного и множественного числа: одни сутки, два дня, пять суток и т.д.

См.также

  • Подробно о склонении числительных в русском языке с примерами: http://numeralonline.ru/