mirror of
https://github.com/retailcrm/NameCaseLib.git
synced 2024-12-05 03:16:06 +03:00
[0.4.1] /RU11071220/ /UA11071220/ Исправление правил
This commit is contained in:
parent
d839d3d43a
commit
86c6cf3057
@ -26,7 +26,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
* Версия языкового файла
|
||||
* @var string
|
||||
*/
|
||||
protected $languageBuild = '11071218';
|
||||
protected $languageBuild = '11071220';
|
||||
|
||||
/**
|
||||
* Количество падежей в языке
|
||||
@ -642,12 +642,12 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
}
|
||||
|
||||
//похоже на фамилию
|
||||
if ($this->in($this->Last(2), array('ов', 'ин', 'ев', 'ёв', 'ый', 'ын', 'ой', 'ко', 'ук', 'як', 'ца', 'их', 'ик', 'ун', 'ок', 'ша', 'ая', 'га', 'ёк', 'аш', 'ив', 'юк', 'ус', 'це', 'ак', 'бр', 'яр', 'де', 'ых', 'уз', 'ах', 'рг', 'ец', 'юр')))
|
||||
if ($this->in($this->Last(2), array('ов', 'ин', 'ев', 'ёв', 'ый', 'ын', 'ой', 'ко', 'ук', 'як', 'ца', 'их', 'ик', 'ун', 'ок', 'ша', 'ая', 'га', 'ёк', 'аш', 'ив', 'юк', 'ус', 'це', 'ак', 'бр', 'яр', 'де', 'ых', 'уз', 'ах', 'рг', 'ец', 'юр', 'ич')))
|
||||
{
|
||||
$second+=0.4;
|
||||
}
|
||||
|
||||
if ($this->in($this->Last(3), array('ова', 'ева', 'ёва', 'ына', 'тых', 'рик', 'вач', 'аха', 'шен', 'мей', 'арь', 'вка', 'шир', 'бан', 'тин', 'чий', 'ина', 'гай', 'кий', 'бей')))
|
||||
if ($this->in($this->Last(3), array('ова', 'ева', 'ёва', 'ына', 'тых', 'рик', 'вач', 'аха', 'шен', 'мей', 'арь', 'вка', 'шир', 'бан', 'тин', 'чий', 'ина', 'гай', 'кий', 'бей', 'чан', 'ган')))
|
||||
{
|
||||
$second+=0.4;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class NCLNameCaseUa extends NCLNameCaseCore
|
||||
* Версия языкового файла
|
||||
* @var string
|
||||
*/
|
||||
protected $languageBuild = '11071218';
|
||||
protected $languageBuild = '11071220';
|
||||
/**
|
||||
* Количество падежей в языке
|
||||
* @var int
|
||||
@ -81,6 +81,20 @@ class NCLNameCaseUa extends NCLNameCaseCore
|
||||
return $letter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Перевіряє чи символ є апострофом чи не є
|
||||
* @param string(1) $char симпол для перевірки
|
||||
* @return bool true якщо символ є апострофом
|
||||
*/
|
||||
private function isApostrof($char)
|
||||
{
|
||||
if ($this->in($char, ' ' . $this->consonant . $this->vowels))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Чергування українських приголосних
|
||||
* Чергування г к —» ж ч
|
||||
@ -274,7 +288,7 @@ class NCLNameCaseUa extends NCLNameCaseCore
|
||||
//називному відмінку, у непрямих - о: Антона, Антонові
|
||||
//Чергування і -» о всередині
|
||||
$osLast = NCLStr::substr($osnova, -1, 1);
|
||||
if ($osLast != 'й' and NCLStr::substr($osnova, -2, 1) == 'і' and !$this->in(NCLStr::substr(NCLStr::strtolower($osnova), -4, 4), array('світ', 'цвіт')) and !$this->inNames($this->workingWord, 'Гліб'))
|
||||
if ($osLast != 'й' and NCLStr::substr($osnova, -2, 1) == 'і' and !$this->in(NCLStr::substr(NCLStr::strtolower($osnova), -4, 4), array('світ', 'цвіт')) and !$this->inNames($this->workingWord, 'Гліб') and !$this->in($this->Last(2), array('ік')))
|
||||
{
|
||||
$osnova = NCLStr::substr($osnova, 0, NCLStr::strlen($osnova) - 2) . 'о' . NCLStr::substr($osnova, -1, 1);
|
||||
}
|
||||
@ -440,7 +454,7 @@ class NCLNameCaseUa extends NCLNameCaseCore
|
||||
elseif ($this->Last(1) == 'я')
|
||||
{
|
||||
|
||||
if ($this->in($BeforeLast, $this->vowels))
|
||||
if ($this->in($BeforeLast, $this->vowels) or $this->isApostrof($BeforeLast))
|
||||
{
|
||||
$this->wordForms($this->workingWord, array('ї', 'ї', 'ю', 'єю', 'ї', 'є'), 1);
|
||||
$this->Rule(103);
|
||||
@ -519,7 +533,7 @@ class NCLNameCaseUa extends NCLNameCaseCore
|
||||
}
|
||||
|
||||
//Ті що на ськ
|
||||
if ($this->Last(1) == 'а' and ($this->in($this->Last(3, 2), array('ов', 'ев', 'єв', 'ив', 'ьк', 'тн', 'рн', 'ин'))))
|
||||
if ($this->Last(1) == 'а' and ($this->in($this->Last(2, 1), 'чнв') or $this->in($this->Last(3, 2), array('ьк'))))
|
||||
{
|
||||
$this->wordForms($this->workingWord, array($BeforeLast . 'ої', $BeforeLast . 'ій', $BeforeLast . 'у', $BeforeLast . 'ою', $BeforeLast . 'ій', $BeforeLast . 'о'), 2);
|
||||
$this->Rule(302);
|
||||
@ -731,12 +745,12 @@ class NCLNameCaseUa extends NCLNameCaseCore
|
||||
}
|
||||
|
||||
//похоже на фамилию
|
||||
if ($this->in($this->Last(2), array('ов', 'ін', 'ев', 'єв', 'ий', 'ин', 'ой', 'ко', 'ук', 'як', 'ца', 'их', 'ик', 'ун', 'ок', 'ша', 'ая', 'га', 'єк', 'аш', 'ив', 'юк', 'ус', 'це', 'ак', 'бр', 'яр', 'іл', 'ів', 'ич', 'сь', 'ей', 'нс', 'яс', 'ер', 'ай', 'ян', 'ах', 'ць', 'ющ', 'іс', 'ач', 'уб', 'ох', 'юх', 'ут', 'ча', 'ул', 'вк', 'зь', 'уц', 'їн', 'де', 'уз', 'юр' /* {endings_name2} */)))
|
||||
if ($this->in($this->Last(2), array('ов', 'ін', 'ев', 'єв', 'ий', 'ин', 'ой', 'ко', 'ук', 'як', 'ца', 'их', 'ик', 'ун', 'ок', 'ша', 'ая', 'га', 'єк', 'аш', 'ив', 'юк', 'ус', 'це', 'ак', 'бр', 'яр', 'іл', 'ів', 'ич', 'сь', 'ей', 'нс', 'яс', 'ер', 'ай', 'ян', 'ах', 'ць', 'ющ', 'іс', 'ач', 'уб', 'ох', 'юх', 'ут', 'ча', 'ул', 'вк', 'зь', 'уц', 'їн', 'де', 'уз', 'юр', 'ік', 'іч' /* {endings_name2} */)))
|
||||
{
|
||||
$second+=0.4;
|
||||
}
|
||||
|
||||
if ($this->in($this->Last(3), array('ова', 'ева', 'єва', 'тих', 'рик', 'вач', 'аха', 'шен', 'мей', 'арь', 'вка', 'шир', 'бан', 'чий', 'іна', 'їна', 'ька', 'ань', 'ива', 'аль', 'ура', 'ран', 'ало', 'ола', 'кур', 'оба', 'оль', 'нта', 'зій', 'ґан', 'іло', 'шта', 'юпа', 'рна', 'бла', 'еїн', 'има', 'мар', 'кар', 'оха', 'чур', 'ниш', 'ета', 'тна', 'зур', 'нір', 'йма', 'орж', 'рба', 'іла', 'лас', 'дід', 'роз', 'аба' /* {endings_name3} */)))
|
||||
if ($this->in($this->Last(3), array('ова', 'ева', 'єва', 'тих', 'рик', 'вач', 'аха', 'шен', 'мей', 'арь', 'вка', 'шир', 'бан', 'чий', 'іна', 'їна', 'ька', 'ань', 'ива', 'аль', 'ура', 'ран', 'ало', 'ола', 'кур', 'оба', 'оль', 'нта', 'зій', 'ґан', 'іло', 'шта', 'юпа', 'рна', 'бла', 'еїн', 'има', 'мар', 'кар', 'оха', 'чур', 'ниш', 'ета', 'тна', 'зур', 'нір', 'йма', 'орж', 'рба', 'іла', 'лас', 'дід', 'роз', 'аба', 'чан', 'ган' /* {endings_name3} */)))
|
||||
{
|
||||
$second+=0.4;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user