Morphos

Морфология для Вашего сайта.

3.2.7

Russian:

  • Исправлена генерация творительного падежа городов на ов: Киров, Псков, Тамбов (thanks to @VitalyArt)

3.2.6

Russian:

  • Исправлено склонение города Ростов-на-Дону
  • Исправлено постановка существительных типа ванная во множественное число (раньше была проблема с количеством 2 и 3).
  • Функция morphos\Russian\pluralize() и метод morphos\Russian\NounPluralization::pluralize() могут принимать аргументы (кол-во предметов и название предмета) в любом порядке. Следующие вызовы равнозначны:
    morphos\Russian\pluralize(5, 'дом')
    morphos\Russian\pluralize('дом', 5)
    
  • Исправлено склонение некоторых иноязычных имён, оканчивающихся на -ек.

3.2.5

Russian:

  • Добавлена обработка слов город, край и область в GeographicalNamesInflection
  • Удален предлог о/об из всех функций склонения. Теперь чтобы его добавить оберните склонённое слово в вызов RussianLanguage::about():

    `php RussianLanguage::about(NounDeclension::getCase('обед', 'предложный')) => 'об обеде' `

3.2.4

Russian:

  • Добавлены методы, добавляющие к слову верную форму предлога в (во), об (о, обо), c (со):
    • RussianLanguage::about($word) - добавляет о/об/обо в зависимости от букв, с которых начинается слово
    • RussianLanguage::in($word) - добавляет в/во в зависимости от букв, с которых начинается слово
    • RussianLanguage::with($word) - добавляет с/со в зависимости от букв, с которых начинается слово
  • Исправлено склонение в множественном числе слов, оканчивающихся на "т"/"р": сервер, халат.

3.2.3

English:

  • Added TimeSpeller class: morphos\English\TimeSpeller::spellInterval(DateInterval $interval)
  • Changed morphos\English\pluralize() function:
    • Swapped order of parameters in : pluralize($count, $word)
    • Now it returns string in format "%n %word"

3.2.2

Russian:

  • Исправлено склонение составных фамилий: Мартен-Люган, Копусов-Долинин
  • Исправлено склонение географических названий, оканчивающихся на ый, ные, ны: Набережные Челны, Грозный
  • Небольшое изменение в сигнатуре функции morphos\Russian\pluralize(): изменён порядок аргументов: pluralize($count, $word)

3.2.1

Russian:

  • Исправлено склонение мужских фамилий на ой, ых, ко: Толстой, Фоминых, Стецко
  • Исправлено склонение всех женских фамилий на ая: Стальная
  • Исправлено генерация числительных цифры 2: две
  • Исправлено склонение иностранных отчеств, склоняющихся по правилам склонения имён: Христиан, Александр

3.2.0

BC-breaking API changes

Russian

  • renamed classes:

    • GeneralDeclensionNounDeclension
    • PluralityNounPluralization
    • TimeUnitSpellerTimeSpeller
  • partially renamed classes:

    • CardinalNumeralCardinalNumeralGenerator
    • OrdinalNumeralOrdinalNumeralGenerator
    • FirstNamesDeclension, MiddleNamesDeclension, LastNamesDeclension, GeographicalNamesDeclension: Declension replaced with Inflection
  • functions change:

    • name() renamed to inflectName()
    • pluralize() now returns a string in format "%n %word" instead of inflected word only.

English:

  • renamed classes:
    • CardinalNumeralCardinalNumeralGenerator
    • OrdinalNumeralOrdinalNumeralGenerator
    • PluralityNounPluralization

New features

Russian:

  • Added method NounDeclension::detectGender() for gender detection of nouns.
  • Updated rule of female last names ending with ха.

Project changes

Now Morphos fully meets PSR-2.

3.0.9

  • Renamed MoneyFormatter to MoneySpeller

Russian:

  • Added TimeUnitSpeller: Spells date&time intervals like 5 часов и 6 минут назад
  • Increased priority of last name during gender detection in name() function

3.0.8

  • Fixed script bootstrapping

Russian:

  • Added MoneyFormatter
  • Added case for 0 in CardinalNumeral
  • Fixed declension of Geo names ending with ов

3.0.7

  • Fixed bug in cardinal numerals generating classes (morphos\Russian\CardinalNumeral, morphos\English\CardinalNumeral) leading to infinite loop on x86.

English:

  • Added generating of ordinal numerals.

3.0.6

  • Added script to test morphos functionality (bin/morphos).

Russian:

  • Fixed declension of female last names ending with ая: Закипная
  • Disabled declension of female last names ending with ь or with a consonant.
  • Added rules to decline russian geographical names:
    • ending with ль: Ставрополь, Ярославль
    • ending with рь: Тверь
    • ending with ки: Березники, Ессентуки
    • ending with мь: Пермь, Кемь
    • ending with нь: Рязань, Назрань

3.0.5

Updates in general declension:

  • Added declension and pluralization of Russian Augmentatives: волчище, полотнище
  • Added declension and pluralization of Russian Adjectives: существительное, выходной, запятая, рабочий
  • Fixed genitive plural case for words with run-away vowels: письмо -> писем, ядро -> ядер
  • Fixed declension of nouns with run-away vowels: пень -> пня, котенок -> котенка
  • Fixed prepositional case for words ending with -ие: сообщение, воскрешение

3.0.4

  • Fixed morphos\Russian\Plurality::pluralize($word, $count) for $count > 100. (thanks to @alexlcdee)

3.0.3

  • Rule for "письмо" plurality
  • Rules for words with run-away vowels

3.0.2

  • Updated rules of geographical names declension: added support for two-words names like Нижний Новгород.
  • Updated web script.

3.0.1

  • Fixed warnings on PHP 5.x.
  • Updates rules for general nouns declension.
  • Updated web script web/index.php for testing (now with Material Design)

3.0.0

  • All methods of all classes are static now. Not need to create instanes of declension classes anymore. `php echo morphos\Russian\GeneralDeclension::getCases('стол'); `
  • Removed few methods:
    • OrdinalNumeral::generate()
    • CardinalNumeral::generate()
  • morphos\NamesDeclension gender constants (MAN and WOMAN) replaced by morphos\Gender constants MALE, FEMALE and NEUTER
  • Added new Russian declension class - GeographicalNamesDeclension for cities, countries, streets, continents names declension.

2.4.2

Updated gender-detection rules.

2.4.1

Small fix.

2.4.0

  • Deleted all global functions! Now global namespace is not used at all.
  • Added new shortcuts:
    • morphos\Russian\pluralize($word, $count = 2, $animateness = false)
    • morphos\English\pluralize($word, $count = 2)
  • Changed one shortcut:
    • morphos\Russian\nameCase() is renamed to morphos\Russian\name()
  • Refactored and restructured few classes.
  • Added string helper morphos\S for internal use.

2.3.5

  • Fixed bug in Ordinal numeral generator when numbers like 13 or 1013 formatted as two summands.

2.3.4

  • Fixed handling of PREPOSITIONAL case in nameCase() function.

2.3.3

  • Fixed collision leading to error when using morphos\Russian\CasesHelper.

2.3.2

  • Added support for generation Russian ordinal numerals (525 => пятьсот двадцать пятый)
  • Added support for generation English cardinal numerals (119 => one hundred nineteen)

2.3.1

  • Change declensions definitions
  • Add gender auto-detection in declension classes

2.3.0

  • Refactored method names:
    • getForm() -> getCase()
    • getForms() -> getCases()
    • hasForms() -> isMutable()
  • Now you can use following values as $case in getForm() methods and in nameCase() function:
    • nominative, nominativus, n, именительный, именит instead of Cases::NOMINATIVE
    • genetive, g, родительный, родит instead of Cases::GENITIVE
    • dative, dativus, d, дательный, дат instead of Cases::DATIVE
    • accusative, винительный, винит instead of Cases::ACCUSATIVE
    • ablative, ablativus, творительный, творит instead of Cases::ABLATIVE
    • prepositional, praepositionalis, p, предложный, предлож instead of Cases::PREPOSITIONAL

2.2.9

  • Changed constant Cases::GENETIVE to Cases::GENITIVE. The old constant will be present in morphos for a while.
  • Some code refactored

2.2.8

  • Added handling of immutable nouns.

2.2.7

  • Fixed few incorrect rules.