diff --git a/Library/NCL/NCLNameCaseCore.php b/Library/NCL/NCLNameCaseCore.php index 3334305..3580548 100644 --- a/Library/NCL/NCLNameCaseCore.php +++ b/Library/NCL/NCLNameCaseCore.php @@ -612,13 +612,22 @@ class NCLNameCaseCore extends NCL $cnt=count($cur_words); foreach ($cur_words as $k=>$cur_word){ $is_norm_rules=true; + $o_ncw=new NCLNameCaseWord($cur_word); if ( $name_part_letter=='S' && $cnt>1 && $k<$cnt-1 ){ //если первая часть фамилии тоже фамилия, то склоняем по общим правилам //иначе не склоняется - $o_nc = new NCLNameCaseRu(); - $o_nc->detectNamePart( $o_ncw ); - $is_norm_rules=( $o_ncw->getNamePart()==$name_part_letter ); + + $exclusion=array('тулуз');//исключения + $cur_word_=mb_strtolower($cur_word); + if ( !in_array($cur_word_, $exclusion ) ){ + $o_nc = new NCLNameCaseRu(); + $o_nc->detectNamePart( $o_ncw ); + $is_norm_rules=( $o_ncw->getNamePart()=='S' ); + } + else { + $is_norm_rules=false; + } } $this->setWorkingWord($cur_word); diff --git a/Library/NCLNameCaseRu.php b/Library/NCLNameCaseRu.php index 7585a1d..9e255a6 100644 --- a/Library/NCLNameCaseRu.php +++ b/Library/NCLNameCaseRu.php @@ -270,7 +270,7 @@ class NCLNameCaseRu extends NCLNameCaseCore $this->Rule(501); return true; } - if ($this->Last(2, 1) == 'е') + if ($this->Last(2, 1) == 'е' && !in_array($this->Last(3, 1), array('р')))//Лотрек { $this->wordForms($this->workingWord, array('ька', 'ьку', 'ька', 'ьком', 'ьке'), 2); $this->Rule(502); @@ -821,7 +821,7 @@ class NCLNameCaseRu extends NCLNameCaseCore //Исключения if ($this->inNames($namepart, array('Лев', 'Яков', 'Вова', 'Маша', 'Ольга', 'Еремей', 'Исак', 'Исаак', 'Ева', 'Ирина', 'Элькин', 'Мерлин', 'Макс', 'Алекс', 'Франц', 'Питер', 'Пауль', 'Вильям', 'Уильям', - 'Альфонс', 'Ганс', 'Франс', 'Мариа'/*Альфонс Мариа Муха*/, 'Филиппо', 'Андреа', 'Корнелис', + 'Альфонс', 'Ганс', 'Франс', 'Мариа'/*Альфонс Мариа Муха*/, 'Филиппо', 'Андреа', 'Корнелис', 'Фрэнк', 'Бриджет', 'Элизабет', 'Маргарет', 'Джанет'/*женские иностранные*/))) { $first+=10;