mirror of
https://github.com/retailcrm/NameCaseLib.git
synced 2024-12-05 03:16:06 +03:00
[0.4.1] /RU11072716/ распознавание имени, фамилии
This commit is contained in:
parent
3a2d34feae
commit
dd3b304fa6
@ -28,18 +28,17 @@ require_once NCL_DIR . '/NCLNameCaseWord.php';
|
||||
*/
|
||||
class NCLNameCaseCore extends NCL
|
||||
{
|
||||
|
||||
/**
|
||||
* Версия библиотеки
|
||||
* @var string
|
||||
*/
|
||||
protected $version = '0.4.1';
|
||||
|
||||
/**
|
||||
* Версия языкового файла
|
||||
* @var string
|
||||
*/
|
||||
protected $languageBuild = '0';
|
||||
|
||||
/**
|
||||
* Готовность системы:
|
||||
* - Все слова идентифицированы (известо к какой части ФИО относится слово)
|
||||
@ -144,6 +143,14 @@ class NCLNameCaseCore extends NCL
|
||||
$this->workindLastCache = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Если не нужно склонять слово, делает результат таким же как и именительный падеж
|
||||
*/
|
||||
protected function makeResultTheSame()
|
||||
{
|
||||
$this->lastResult = array_fill(0, $this->CaseCount, $this->workingWord);
|
||||
}
|
||||
|
||||
/**
|
||||
* Если <var>$stopAfter</var> = 0, тогда вырезает $length последних букв с текущего слова (<var>$this->workingWord</var>)
|
||||
* Если нет, тогда вырезает <var>$stopAfter</var> букв начиная от <var>$length</var> с конца
|
||||
@ -989,7 +996,7 @@ class NCLNameCaseCore extends NCL
|
||||
{
|
||||
$this->setGender($gender);
|
||||
}
|
||||
|
||||
|
||||
return $this->getFormatted($caseNum, $format);
|
||||
}
|
||||
|
||||
@ -1106,7 +1113,7 @@ class NCLNameCaseCore extends NCL
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает версию библиотеки
|
||||
* @return string версия библиотеки
|
||||
@ -1115,7 +1122,7 @@ class NCLNameCaseCore extends NCL
|
||||
{
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает версию использованого языкового файла
|
||||
* @return string версия языкового файла
|
||||
|
@ -220,12 +220,18 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
$this->Rule(403);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
elseif(!$this->in($this->Last(2, 1), $this->vowels))
|
||||
{
|
||||
$this->wordForms($this->workingWord, array('ого', 'ому', 'ого', 'им', 'ом'), 2);
|
||||
$this->Rule(404);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->makeResultTheSame();
|
||||
$this->Rule(405);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -341,7 +347,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
if ($this->in($this->Last(3), $this->ovo) or $this->in($this->Last(2), $this->ih))
|
||||
{
|
||||
$this->Rule(8);
|
||||
$this->lastResult = array_fill(0, $this->CaseCount, $this->workingWord);
|
||||
$this->makeResultTheSame();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user