https://github.com/danakt/sklonenie
Light-weight and fast library to decline Russian names
https://github.com/danakt/sklonenie
affix cases declension firstname flexies inflection lastname middlename name names russian sklonenie
Last synced: 6 months ago
JSON representation
Light-weight and fast library to decline Russian names
- Host: GitHub
- URL: https://github.com/danakt/sklonenie
- Owner: danakt
- License: mit
- Created: 2016-12-10T00:33:56.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-02-11T00:50:34.000Z (over 3 years ago)
- Last Synced: 2025-04-15T18:49:42.445Z (7 months ago)
- Topics: affix, cases, declension, firstname, flexies, inflection, lastname, middlename, name, names, russian, sklonenie
- Language: JavaScript
- Homepage:
- Size: 98.6 KB
- Stars: 26
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Sklonenie
================================================================================
Лёгкая и быстрая библиотека для склонения по падежам русских имён, отчеств и фамилий
[](https://www.npmjs.com/package/sklonenie)
[](https://travis-ci.org/danakt/sklonenie.js)
Использование
--------------------------------------------------------------------------------
Установите npm пакет:
```
$ npm install sklonenie
```
И используйте следующим образом:
```js
const sklonenie = require('sklonenie')
// ...
const bulgakov = sklonenie('Михаил', 'Афанасьевич', 'Булгаков')
console.log(`На страницах рукописи ${bulgakov['винительный'].join(' ')} «Мастер и Маргарита» ученые обнаружили следы морфия`)
// На страницах рукописи Михаила Афанасьевича Булгакова «Мастер и Маргарита» ученые обнаружили следы морфия
```
Методы
--------------------------------------------------------------------------------
### sklonenie()
Получение массива со склонениями имени, отчества и фамилии.
*Синтаксис:*
```js
sklonenie(имя, отчество, фамилия[, пол])
sklonenie(имя, отчество, фамилия[, пол])[склонение]
```
Последный аргумент — пол — может принимать значение «1» — мужское имя, или «2» — женское. Не обязателен, но может помочь склонять некоторые имена и фамилии.
*Пример:*
```js
const adel_1 = sklonenie('Адель', 'Захарович', 'Дельвиг', 1)
const adel_2 = sklonenie('Адель', 'Захаровна', 'Дельвиг', 2)
console.log(adel_1['родительный'])
// ['Аделя', 'Захаровича', 'Дельвига']
console.log(adel_2['родительный'])
// ['Адели', 'Захаровны', 'Дельвиг']
```
Склонение можно получить по ключу в виде названия или индекса падежа **(от 0 до 5)**.
*Пример:*
```js
const tolstoy = sklonenie('Лев', 'Николаевич', 'Толстой')
console.log(
tolstoy['дательный'], // получение по названию
tolstoy[2] // получение по индексу (0–5)
)
```
Также возможно получение части имени из результата
*Пример:*
```js
const saltikovSchedrin = sklonenie('Михаил', 'Евграфович', 'Салтыков-Щедрин', 1)
console.log(saltikovSchedrin.lastname['винительный'])
// Салтыкова-Щедрина
```
### sklonenie.firstname()
Получение массива со склонениями имени
*Синтаксис:*
```js
sklonenie.firstname(имя[, пол])
```
*Пример:*
```js
const pavel = sklonenie.firstname('Павел')
console.log(pavel['именительный'])
// Павел
```
### sklonenie.middlename()
Получение массива со склонениями отчества
*Синтаксис:*
```js
sklonenie.middlename(отчество[, пол])
```
*Пример:*
```js
const mihaylovich = sklonenie.middlename('Михайлович')
const mihalych = sklonenie.middlename('Михалыч')
console.log(mihaylovich['родительный'])
// Михайловича
console.log(mihalych['родительный'])
// Михалыча
```
### sklonenie.lastname()
Получение массива со склонениями фамилии
*Синтаксис:*
```js
sklonenie.lastname(фамилия[, пол])
```
*Пример:*
```js
const lermontov = sklonenie.lastname('Лермонтов')
const gyote = sklonenie.lastname('Гёте')
console.log(lermontov['дательный'])
// Лермонтову
console.log(gyote['предложный'])
// Гёте
```