Склонение имен и фамилий php
Склонение ФИО — NameCaseLib PHP Framework
Сегодня я расскажу о небольшом, но очень полезном фреймворке — NameCaseLib.
Я думаю, многие сталкивались с ситуацией, когда было необходимо просклонять Фамилию, Имя и Отчество человека по падежам. Данный фреймворк поможет нам избавиться от многочисленных «велосипедов».
Установка
Для работы NameCaseLib нам понадобится PHP5 и библиотека php_mbstring, для работы с текстом в формате UTF-8.
Отлично, теперь осталось подключить сам фреймворк, для этого скачаем необходимые файлы.
NameCaseLib поддерживает два языка: русский и украинский. Файл NCL.NameCase.ru.php содержит русские правила склонения, NCL.NameCase.ua.php, соответственно, украинские. В папке NCL расположено само «ядро» фреймворка, то есть, набор основных функций.
Соответственно, таким же образом, мы можем склонять и украинские ФИО, подключив украинские правила склонения.
Но, давайте все-таки разберем, какие параметры содержит в себе метод q, и как его еще можно использовать?
Данный метод имеет 3 параметра, 2 из них — можно не указывать. Первый параметр — ФИО человека, второй — падеж (Список констант приведу ниже; в случае, если не указан падеж (NULL), то метод возвращает все падежи), и третий — пол человека. (Константы, также, приведены ниже; если не указать пол (NULL), метод определит его сам)
Константы
Для указания пола используются константы:
Для указания падежей русского языка:
Для указания падежей украинского языка:
Примечания
Определение части ФИО
С помощью метода getFullNameFormat, мы можем определить часть, или какие части ФИО мы используем.
Но, что же делать, если все-таки фреймворк не может правильно определить, как склонять выбранное вами ФИО?
Для этого в библиотеке предусмотрен метод qFullName, который позволяет указать Фамилию, Имя, Отчество и пол человека в определенной последовательности.
Итоги
NameCaseLib — действительно удобный фреймворк, который включает в себя много полезных функций. На сайте имеется полная документация на русском языке.
Склонение имен и фамилий php
Склонение падежей русских имён, фамилий и отчеств
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Склонение падежей русских имён, фамилий и отчеств.
Портированная версия с Ruby на PHP
Для работы требуется PHP >= 5.3
Загрузите файлы в папку с библиотеками на сервере.
если вы хотите использовать petrovich как submodule,
или просто скачайте исходный код со страницы проекта на Github.
В библиотеку входит класс Petrovich и trait Trait_Petrovich
Trait содержит в себе
Названия суффиксов для методов образованы от английских названий соответствующих падежей. Полный список поддерживаемых падежей приведён в таблице ниже.
Суффикс метода | Падеж | Характеризующий вопрос |
---|---|---|
CASE_NOMENATIVE | именительный | Кто? Что? |
CASE_GENITIVE | родительный | Кого? Чего? |
CASE_DATIVE | дательный | Кому? Чему? |
CASE_ACCUSATIVE | винительный | Кого? Что? |
CASE_INSTRUMENTAL | творительный | Кем? Чем? |
CASE_PREPOSITIONAL | предложный | О ком? О чём? |
Метод Petrovich::detectGender возвращает пол, на основе отчества. Возвращаемое значение не зависит от пола, переданного в конструктор. Для полов определены следующие константы
About
Склонение падежей русских имён, фамилий и отчеств
Поиск ответа
Вопрос № 274087 |
Моя фамилия Обмуч (ударение на О). Во всех документах не склоняется! И даже в документах отца. Но всё равно есть те, кто склоняют, ссылаясь на словарь Ожегова. Подскажите кто из нас не прав: те, кто склоняет или те, кто пишет в документах не склоняя?
Ответ справочной службы русского языка
Если это мужская фамилия, то правы те, кто склоняют. См. подробнее:
Здравствуйте! Посоветуйте, пожалуйста, в сложном для меня вопросе =)
Я вышла замуж за гражданина Японии и сменила фамилию, по-русски она получается «Кошика». Должна ли моя фамилия склоняться в русском языке? Например, японские фамилии «Мацуо», «Такацу» не должны менять форму, на мой взгляд. А как же тогда быть в случае с «Кошика»?
Ответ справочной службы русского языка
Меня зовут Даниил Бых, я родом с Украины.
Подскажите, пожалуйста! Заранее благодарю!
Ответ справочной службы русского языка
Да, по правилам русского языка мужская фамилия Бых склоняется.
Ответ справочной службы русского языка
Ответ справочной службы русского языка
Да, Ваша фамилия склоняется. Ошибки в склонении фамилий встречаются очень часто, все, кто не склонял Вашу фамилию, ошибались. См. тематические материалы нашего портала: Азбучные истины. Склонение фамилий; Н. А. Еськова. Особенности склонения фамилий и личных имен.
Ответ справочной службы русского языка
Фамилия Читая склоняется, вот падежные формы: Ольга Читая, Ольги Читаи, Ольге Читае, Ольгу Читаю, Ольгой Читаей, об Ольге Читае. Так склоняется и мужская, и женская фамилия.
Здрасьте!
Моя фамилия Затилла, а имя Нурдаулет. До 7 класса мою фамилию склоняли как, например, Нурдаулету Затилле, Нурдаулета Затиллы. А потом в 7 классе учительница русского языка сказала, что моя фамилия не склоняется. С тех пор пишется Затилла Нурдаулету, Затиллы Нурдаулета. Несколько дней назад я сообщил «ВКонтакте», что моя фамилия не склоняется. И они попросили меня отправить им ссылку, чтобы доказать того, что моя фамилия не склоняется. Так спрошу у вас. СКЛОНЯЕТСЯ ЛИ МОЯ ФАМИЛИЯ ИЛИ НЕТ??
Жду ответа.
Ответ справочной службы русского языка
Все фамилии, кончающиеся на неударное а после согласных, склоняются по первому склонению: Рибера — Риберы, Рибере, Риберу, Риберой, Сенека — Сенеки и т.д.; так же склоняются Кафка, Спиноза, Сметана, Петрарка, Куросава, Глинка, Дейнека, Гулыга, Олеша, Нагнибеда, Окуджава и др. Все такие фамилии, независимо от происхождения, являются морфологически членимыми в русском языке, т. е. в них выделяется окончание -а. Подробнее см. в «Письмовнике» (пункт 13.1.11).
Также склоняются фамилии с ударным а после согласной, если они не являются фамилиями французского происхождения.
Таким образом, и Ваша фамилия Затилла склоняется.
Добрый день! Моя фамилия (Триголос) не склоняется. Однако согласно правилам русского языка должна склоняться. Что мне сделать чтобы доказать не склоняемость фамилии?
Ответ справочной службы русского языка
Моя фамилия Скидан (ударение на первый слог). Недавно столкнулся с тем что по каким нормам лингвистики моя фамилия слоняется, хотя в моей семье из поколения в поколение известно что это не так. Во всех моих документах, моих родителей, их родителей в которых фамилия пишется например в дательном падеже она без склонения. Помогите решить как на самом деле правильно.
Ответ справочной службы русского языка
Ответ справочной службы русского языка
Ответ справочной службы русского языка
Я вам только что задал вопрос,
» Моя фамилия Погребняк. Это украинская фамилия, а они вроде как не склоняются. Некоторые люди склоняют мою фамилию, пишут Погребняка, Погребняку, Погребняком. Разве это возможно? Ведь фамилия то не склоняется, или всё же склоняется?»
Ваш ответ, то что моя фамилия склоняется меня совершенно не удовлетворил, т.к. я всю жизнь ходил с несклоняемой фамилией и это мне твердили от школы до Университета, причём филологи в Университете это тоже подтверждали, а они там бакалавры, доценты, доктора были, они что все ошибались?
Если вы всё-таки настаиваете на своём, то приведите примеры как бы моя фамилия склонялась.
Например, машина принадлежит Александру Погребняку. Фотография Саши Погребняка. Написано Погребняком. Так что ли будет?
С уважением, Погребняк 🙂
Ответ справочной службы русского языка
Да, правильно именно так: машина принадлежит Александру Погребняку. Фотография Саши Погребняка. Написано Погребняком (вариант фотография Саши Погребняк возможен, но это будет означать, что речь идет о девочке Саше Погребняк). Бакалавры, доценты, доктора тоже могут ошибаться 🙂 Откройте любой справочник по русскому языку, в котором есть раздел о склонении имен и фамилий, и Вы в этом убедитесь.
Здравствуйте!
Моя фамилия Погребняк. Это украинская фамилия, а они вроде как не склоняются. Некоторые люди склоняют мою фамилию, пишут Погребняка, Погребняку, Погребняком. Разве это возможно? Ведь фамилия то не склоняется, или всё же склоняется?
Ответ справочной службы русского языка
Ответ справочной службы русского языка
Фамилию Прищепа склонять нужно.
Ответ справочной службы русского языка
Поиск ответа
Вопрос № 308604 |
Здравствуйте! Подскажите, пожалуйста как склоняется корейск ая фамилия Пай в мужском роде? Кому Михаилу Паю или Пай. Спасибо!
Ответ справочной службы русского языка
Фамилия должна склоняться, как и другие мужские фамилии на согласный.
Когда кореянки выходят замуж за японцев, меняют ли они свою ( корейск ую) фамилию на (японскую)? Или возможно всё происходит иначе? Можете пожалуйста поподробнее рассказать об этом? Буду крайне признателен! Заранее спасибо!
Ответ справочной службы русского языка
Это вопрос не о русском языке, его нужно задать культурологам. Мы можем только рекомендовать книгу «Системы личных имен у народов мира» (М., 1989). Возможно, в ней Вы найдете ответ на свой вопрос. А книгу можно найти на просторах интернета.
Ответ справочной службы русского языка
Мы придерживаемся рекомендаций Розенталя и советуем фамилию не склонять: встреча с Ван И.
Ответ справочной службы русского языка
Если это мужское имя, склоняется последняя часть: Чун Ён Бина.
В составных именах и фамилиях китайских, корейск их, вьетнамских склоняется последняя часть (если она оканчивается на согласный звук).
Добрый день, уважаемая Грамота! Помогите, пожалуйста, разобраться со склонением китайских мужских имен. Например, надо ли склонять имя главы Отдела международного сотрудничества ЦК Компартии Китая — Сун Тао? Он мужчина. Не могу найти в правилах соответствующего указания. Заранее спасибо.
Ответ справочной службы русского языка
В составных именах и фамилиях вьетнамских, корейск их, бирманских, камбоджийских, китайских и др. склоняется последняя часть, если она оканчивается на согласный. При этом часть имени Тао склонять не следует. Таким образом, указанное Вами имя не склоняется.
Склоняется ли мужская фамилия Юн? Мальчик, носитель фамилии, утверждает, что она корейск ая, поэтому не склоняется.
Ответ справочной службы русского языка
Мужская фамилия склоняется. И корейск ая тоже.
Ответ справочной службы русского языка
Вы написали верно: мужская фамилия Ким изменяется как существительное второго склонения: Кима, Киму, Кима, Кимом, о Киме. Женская фамилия Ким не склоняется.
Пожалуйста, поясните правильно ли проставлена запятая: По данным опроса, лучший видеорегистратор — корейск ий прибор YYY.
Ответ справочной службы русского языка
Ответ справочной службы русского языка
Только последний элемент склоняется в составных именах и фамилиях вьетнамских, корейск их, бирманских, камбоджийских, китайских и др. Склоняемость только последнего компонента объясняется здесь тем, что для русского языкового восприятия трудно различить, какие компоненты здесь являются именем, а какие фамилией. В русской словоизменительной системе такие имена и фамилии являются явными экзотизмами.
Если же у носителя фамилии русское (или давно освоенное русским языком) имя, т. е. имя и фамилию легко отличить друг от друга, фамилия склоняется (или не склоняется) по общим правилам, например: у Константина Квона, у Ирины Квон.
В X-XI веках корейск ие города, выстроенные в гористой местности, уже не следовали китайской схеме: их улицы не были прямыми, а ансамбли дворцов и храмов, дозорных башен и крепостных сооружений вписывались в окружающий пейзаж, составляя с ним единое целое. Как объяснить постановку двоеточия?
Ответ справочной службы русского языка
Двоеточие ставится в бессоюзном сложном предложении, когда вторая часть раскрывает содержание первой (между обеими частями можно вставить слова «а именно»). В данном случае во второй части объясняется, что значит «не следовали китайской схеме». Это значит, что их улицы не были прямыми.
Ответ справочной службы русского языка
Последняя словарная фиксация: дистрибьютор, южно корейск ий (Русский орфографический словарь, 4-е изд., М., 2012).
Склоняется ли корейск ая фамилия Цай?
Ответ справочной службы русского языка
Здравствуйте. Нужна ли запятая в данном предложении: Они просят нас осуществлять поставку японских телевизоров (,) наряду с телевизорами корейск ого производства. Спасибо.
Ответ справочной службы русского языка
Здравствуйте! Возник очень жаркий спор по поводу склонения корейск ой фамилии Сим в сочетании с русским именем и отчеством. Как правильно написать: «заявление от Сима Дениса Анатольевича или от Сим Дениса Анатольевича»? Заранее спасибо!
Ответ справочной службы русского языка
Правильно: Сима Дениса Анатольевича. Мужские фамилии, оканчивающиеся на согласный, склоняются (независимо от их происхождения).
Ответ справочной службы русского языка
Да, в подобных контекстах Ким превращается в обычную мужскую фамилию, которая склоняется (как и любые другие мужские фамилии, оканчивающиеся на согласный, независимо от их языкового происхождения): Киму Виктору Петровичу.
Php скрипт склонения слов. Склонение ФИО — NameCaseLib PHP Framework. Возможные ошибки при сборке и пути их устранения
У Вас в браузере заблокирован JavaScript. Разрешите JavaScript для работы сайта!
API склонения слов, получения рода(мужской, женский), падежа, склонения и других характеристик слова
API склонения слов
Чтобы получить от слова «свадебный» все неодушевленные прилагательные в множественном числе вызовите:
API получения рода слова, имени: мужской, женский
API получения пола: мужской, женский по имени. С помощью данного API по имени пользователя Вы сможете получить его пол. Это исключит необходимость заполнения дополнительного поря при регистрации.
Скачав эту библиотеку и поместив на свой сайт, её можно использовать вот так:
Я думаю, многие сталкивались с ситуацией, когда было необходимо просклонять Фамилию, Имя и Отчество человека по падежам. Данный фреймворк поможет нам избавиться от многочисленных «велосипедов».
Установка
Отлично, теперь осталось подключить сам фреймворк, для этого скачаем необходимые файлы.
NameCaseLib поддерживает два языка: русский и украинский. Файл NCL.NameCase.ru.php содержит русские правила склонения, NCL.NameCase.ua.php, соответственно, украинские. В папке NCL расположено само «ядро» фреймворка, то есть, набор основных функций.
Итак, давайте создадим файл в формате.php, и проверим работоспособность данного фреймворка.
Соответственно, таким же образом, мы можем склонять и украинские ФИО, подключив украинские правила склонения.
Константы
Для указания падежей русского языка:
Для указания падежей украинского языка:
Примечания
Определение части ФИО
С помощью метода getFullNameFormat, мы можем определить часть, или какие части ФИО мы используем.
Но, что же делать, если все-таки фреймворк не может правильно определить, как склонять выбранное вами ФИО?
Для этого в библиотеке предусмотрен метод qFullName, который позволяет указать Фамилию, Имя, Отчество и пол человека в определенной последовательности.
Итоги
Функция склонения по падежам
В результате получаем:
Один миллион долларов достается Пупкину Василию из Набережных Челнов!
Функция morpher_inflect склоняет словосочетание в именительном падеже (первый аргумент) в любой падеж (второй аргумент). Падеж может принимать следующие значения:
Все строки, передаваемые в библиотеку, должны быть в кодировке UTF-8. Результат также возвращается в UTF-8.
Перевод во множественное число в украинской версии пока не реализован.
Функция разбивки ФИО на составляющие
Функция morpher_split_fio разбивает входную строку на массив из фамилии, имя, отчества
Ф : Пупкин И : Василий О :
Функция перевода во множественное число
Если ко второму параметру добавить строку «mn», то результат будет во множественном числе:
На складе осталось 238 кочерёг.
Если первый параметр уже во множественном числе, то будет выдано:
#ERROR: Parameter 1 «text» is plural.
Функция определения рода
Функция прописи чисел и денежных сумм
Функция morpher_spell формирует пропись числа и ставит данную единицу измерения в нужный падеж:
Если пропись нужно вставить в текст в определенном падеже, укажите падеж третьим параметром:
В результате получим «В течение 28 (Двадцати восьми) календарных дней.»
Для названий некоторых денежных единиц функция morpher_spell выдает пропись такого вида:
При желании можно использовать сокращенные наименования денежных единиц, с точкой или без:
Или трехбуквенные коды валют международного стандарта ISO 4217, таких как RUB, USD, EUR и др. При этом в название денежной единицы автоматически включается название страны:
Обработка ошибок
#ERROR: Parameter 1 «text» should not be empty. |
#ERROR: Parameter 2 «case» should not be empty. |
#ERROR: Parameter 1 «text» is not Russian. |
#ERROR: Parameter 2 «case» is invalid. |
#ERROR: Parameter 1 «text» is plural. |
Установка модуля на Linux
Начиная с версии 1.3.0 мы предоставляем модуль для Linux-версии PHP в виде предварительно скомпилированных файлов morpher.so, упакованных в архив. Эти файлы пригодны для использования в следующих дистрибутивах Linux:
Вам остается лишь написать нам, чтобы получить morpher.so для вашего дистрибутива, извлечь morpher.so из архива и morpher.so как расширение PHP. Однако бинарная совместимость такого модуля с вашей системой не гаранируется, поскольку мы собираем модуль только в «чистых» системах с настройками по умолчанию и с той версией PHP, которую предлагает системный пакетный менеджер. Если модуль несовместим, то PHP не сможет загрузить его как расширение. Если для вашей системы не подходит ни один из готовых файлов модуля, то вам необходимо собрать модуль из предоставляемого исходного кода.
Для удобства и упрощения процедуры сборки модуля в дистрибутив включен набор скриптов, которые автоматизируют установку необходимых для компиляции пакетов, сборку модуля и регистрацию модуля в качестве расширения для PHP. Учитывая большое разнообразие дистрибутивов операционной системы, различные варианты конфигурации и особенности сборки расширений для php, нужно понимать, что в некоторых случаях при установке модуля может возникнуть необходимость в дополнительных действиях, не реализуемых сборочными скриптами.
Для запуска процедуры автоматической установки распакуйте дистрибутив в любой каталог, например, morpher:
Запустите сборочный скрипт командой:
В случае успеха файл модуля morpher.so будет скомпилирован и перенесен в каталог расширений php. Модуль будет зарегистрирован в конфигурации php, а работоспособность модуля будет проверена автоматически с помощью теста. Текстовый вывод сборочного скрипта должен содержать сообщение об успешном тестировании:
Ваш модуль готов к использованию. Каталог теперь можно удалить:
В случае наличия проблем со сборкой необходимо убедиться, что в вашей системе установлены и настроены все необходимые пакеты. Для сборки и работы модуля необходимо установить:
Вы можете запустить только сборку модуля без дополнительных действий командой:
Файл morpher.so необходимо поместить в каталог расширений PHP, например:
В вашей системе каталог расширений может быть другой.