Склонение русских имен и фамилий на JavaScript & C#

Для одного из проектов пришлось переработать древунюю vb6 библиотеку склонения русских имен и фамилий.

Библиотеку перевел на JavaScript и C#. Разбил на методы и убрал русские названия, для большей читаемости кода. Исправил все английские буквы "асе" на русские.

Провел тестирование на 5000 имен сгенерированных вот этим сервисом: Генератор ников и имён. Сравнил результаты с вот этой библиотекой Склонение русских имён и фамилий на JavaScript, исправил все ошибки и выявил несколько ошибок в данной библиотеке.

Список ошибок и расхождений привожу ниже. Там где моих познаний русского языка не было достаточно для определения правильного варианта, – сравнивал с вот этим сервисом: Программа склонения по падежам

К сожалению сейчас не могу уделить больше времени этой библиотеке, поэтому код оставил в c# формате. Так же в некоторых местах можно сделать более красиво и изящно.

Просклонять имя

Именительный Родительный Дательный Винительный Творительный Предложный
Кто? Что? (есть) Кого? Чего? (нет) Кому? Чему? (дам) Кого? Что? (вижу) Кем? Чем? (горжусь) О ком? О чем? (думаю)
nominative genitive dative accusative instrumental prepositional

Таблица расхождений с библиотекой Склонение русских имён и фамилий на JavaScript

Спорное значение, правильное значение, неправильное значение

Лассмана Эмилия Андрияновна
Лассманы Эмилии Андрияновны
Лассмане Эмилии Андрияновне
Лассману Эмилию Андрияновну
Лассманой Эмилией Андрияновной
Лассмане Эмилии Андрияновне
Лассманой Эмилии Андрияновны
Лассманой Эмилии Андрияновне
Лассманой Эмилии Андрияновне
Янсона Полина Ивановна
Янсоны Полины Ивановны
Янсоне Полине Ивановне
Янсону Полину Ивановну
Янсоной Полиной Ивановной
Янсоне Полине Ивановне
Янсоной Полины Ивановны
Янсоной Полине Ивановне
Янсоной Полине Ивановне
Канаша Екатерина Казимировна
Канаши Екатерины Казимировны
Канаше Екатерине Казимировне
Канашу Екатерину Казимировну
Канашой Екатериной Казимировной
Канаше Екатерине Казимировне
Канашы Екатерины Казимировны
Унгерн Никита Наумович
Унгерна Никиты Наумовича
Унгерну Никите Наумовичу
Унгерна Никиту Наумовича
Унгерном Никитой Наумовичем
Унгерне Никите Наумовиче
Унгерным Никитой Наумовичем
Гриневец Олег Родионович
Гриневца Олега Родионовича
Гриневцу Олегу Родионовичу
Гриневца Олега Родионовича
Гриневцом Олегом Родионовичем
Гриневце Олеге Родионовиче
Гриневеца Олега Родионовича
Гриневецу Олегу Родионовичу
Гриневеца Олега Родионовича
Гриневецем Олегом Родионовичем
Гриневеце Олеге Родионовиче
Берия Феофан Эрнестович
Берии Феофана Эрнестовича
Берии Феофану Эрнестовичу
Берию Феофана Эрнестовича
Берией Феофаном Эрнестовичем
Берии Феофане Эрнестовиче
Берия Феофана Эрнестовича
Берия Феофану Эрнестовичу
Берия Феофана Эрнестовича
Берия Феофаном Эрнестовичем
Берия Феофане Эрнестовиче
Цой Ника Владиленовна
Цой Ники Владиленовны
Цой Нике Владиленовне
Цой Нику Владиленовну
Цой Никой Владиленовной
Цой Нике Владиленовне
Цоя Ники Владиленовны
Цою Нике Владиленовне
Цоя Нику Владиленовну
Цоем Никой Владиленовной
Цое Нике Владиленовне
Валевач Максимильян Кириллович
Валевача Максимильяна Кирилловича
Валевачу Максимильяну Кирилловичу
Валевача Максимильяна Кирилловича
Валевачом Максимильяном Кирилловичем
Валеваче Максимильяне Кирилловиче
Валевачем Максимильяном Кирилловичем
Казанец Владислав Евграфович
Казанца Владислава Евграфовича
Казанцу Владиславу Евграфовичу
Казанца Владислава Евграфовича
Казанцом Владиславом Евграфовичем
Казанце Владиславе Евграфовиче
Казанеца Владислава Евграфовича
Казанецу Владиславу Евграфовичу
Казанеца Владислава Евграфовича
Казанецем Владиславом Евграфовичем
Казанеце Владиславе Евграфовиче
Яна Ангелина Данииловна
Яны Ангелины Данииловны
Яне Ангелине Данииловне
Яну Ангелину Данииловну
Яной Ангелиной Данииловной
Яне Ангелине Данииловне
Яной Ангелины Данииловны
Яной Ангелине Данииловне
Яной Ангелине Данииловне
Грош Леонид Несторович
Гроша Леонида Несторовича
Грошу Леониду Несторовичу
Гроша Леонида Несторовича
Грошом Леонидом Несторовичем
Гроше Леониде Несторовиче
Грошем Леонидом Несторовичем
Боньча Евгений Ульянович
Боньчи Евгения Ульяновича
Боньче Евгению Ульяновичу
Боньчу Евгения Ульяновича
Боньчей Евгением Ульяновичем
Боньче Евгении Ульяновиче
Боньчой Евгением Ульяновичем
Views: 7443 Comments: 10
Артем on 13 May 2014 17:58 says

Спасибо большое за библиотеку.

Единственное, версия на C# не скачивается.

(Скорей всего скачать не дает настройки в Web.config)

Const on 13 May 2014 21:03 says

Артем, приятно, что библиотека пригодилась еще кому-то.

Decliner.cs запаковал в zip архив. Спасибо, что заметил.

Максм on 22 September 2014 11:40 says

Большое спасибо за библиотеку, очень пригодилась.

Не думали создать OpenSource проект на ее базе? Добавить туда возможность перевода чисел в пропись. Будет своеобразный бесплатный аналог Morpher'а.

Const on 24 September 2014 02:19 says

Максим, спасибо за отзыв.

Про бесплатный вариант морфера думал и даже начал, но нет времени закончить и довести до ума.

Максим on 24 September 2014 10:40 says

Const, так может залить проект студии на оперсорс, я бы присоединился, да и другие люди думаю тоже.

Const on 25 September 2014 06:30 says

Максим, хорошая мысль. Как разгребу свои текущие проекты, то выложу и маякну на почту.

Sourt on 25 January 2015 05:20 says

Бесплатный аналог морфера есть здесь: http://yeaahcode.blogspot.com/2015/01/lingvonet.html

LingvoNET - Библиотека для склонения и спряжения слов русского языка

Dovlet on 05 February 2015 08:36 says

Константин Спасибо за библиотеку, C# версия очень помогла для создания приказов и дополнений в моем приложении для автоматизации отдела кадров.

Const on 05 February 2015 11:36 says

Dovlet, рад, что пригодилось. Я тоже для подобного приложения ее и создал. Сейчас работаю над этим проектом: http://cyriller.2try.ws/.

Denis on 29 December 2016 21:15 says

Круто. Спасибо. Я не в коммерческих целях если что. Но респект однозначно.