mirror of
https://github.com/retailcrm/NameCaseLib.git
synced 2024-12-05 03:16:06 +03:00
fix определение фамилии на -уа не склоняем; не склоняем 'ван', 'де';
правила для слов 'старший', 'младший'; женские имена на -вия; исключения 'Анри', 'Питер', 'Пауль', 'Макс', 'Алекс', 'Франц'
This commit is contained in:
parent
0c4bee266a
commit
3aa2506593
@ -52,7 +52,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
|||||||
* Окончания имен/фамилий, который не склоняются
|
* Окончания имен/фамилий, который не склоняются
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $ih = array('их', 'ых', 'ко');
|
private $ih = array('их', 'ых', 'ко', 'уа');//Бенуа, Франсуа
|
||||||
/**
|
/**
|
||||||
* Список окончаний характерных для фамилий
|
* Список окончаний характерных для фамилий
|
||||||
* По шаблону {letter}* где * любой символ кроме тех, что в {exclude}
|
* По шаблону {letter}* где * любой символ кроме тех, что в {exclude}
|
||||||
@ -140,10 +140,16 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
|||||||
$this->Rule(202);
|
$this->Rule(202);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
elseif ($this->inNames($this->workingWord, array("ван", 'де')))
|
||||||
|
{
|
||||||
|
$this->Rule(203);
|
||||||
|
$this->makeResultTheSame();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->wordForms($this->workingWord, array('а', 'у', 'а', 'ом', 'е'));
|
$this->wordForms($this->workingWord, array('а', 'у', 'а', 'ом', 'е'));
|
||||||
$this->Rule(203);
|
$this->Rule(204);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -473,6 +479,11 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
|||||||
*/
|
*/
|
||||||
protected function manFirstName()
|
protected function manFirstName()
|
||||||
{
|
{
|
||||||
|
if ($this->inNames($this->workingWord, array('Старший', 'Младший')))
|
||||||
|
{
|
||||||
|
$this->wordForms($this->workingWord, array('его', 'ему', 'его', 'им', 'ем'), 2);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return $this->RulesChain('man', array(1, 2, 3));
|
return $this->RulesChain('man', array(1, 2, 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,7 +603,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
|||||||
$woman+=0.15;
|
$woman+=0.15;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->in($this->Last(3), array('лия', 'ния', 'сия', 'дра', 'лла', 'кла', 'опа')))
|
if ($this->in($this->Last(3), array('лия', 'ния', 'сия', 'дра', 'лла', 'кла', 'опа', 'вия'))) //Ольвия
|
||||||
{
|
{
|
||||||
$woman+=0.5;
|
$woman+=0.5;
|
||||||
}
|
}
|
||||||
@ -602,7 +613,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
|||||||
$woman+=0.5;
|
$woman+=0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->inNames($this->workingWord, 'Вова'))
|
if ($this->inNames($this->workingWord, array('Вова', 'Анри', 'Питер', 'Пауль')))
|
||||||
{
|
{
|
||||||
$man += 10;
|
$man += 10;
|
||||||
}
|
}
|
||||||
@ -714,7 +725,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Не бывает имет с такими предпоследними буквами
|
* Не бывает имен с такими предпоследними буквами
|
||||||
*/
|
*/
|
||||||
if ($this->in($this->Last(2, 1), 'жчщъэю'))
|
if ($this->in($this->Last(2, 1), 'жчщъэю'))
|
||||||
{
|
{
|
||||||
@ -771,7 +782,8 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Исключения
|
//Исключения
|
||||||
if ($this->inNames($namepart, array('Лев', 'Яков', 'Вова', 'Маша', 'Ольга', 'Еремей', 'Исак', 'Исаак', 'Ева', 'Ирина', 'Элькин', 'Мерлин')))
|
if ($this->inNames($namepart, array('Лев', 'Яков', 'Вова', 'Маша', 'Ольга', 'Еремей',
|
||||||
|
'Исак', 'Исаак', 'Ева', 'Ирина', 'Элькин', 'Мерлин', 'Макс', 'Алекс', 'Франц', 'Питер', 'Пауль')))
|
||||||
{
|
{
|
||||||
$first+=10;
|
$first+=10;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user