diff --git a/Library/NCL/NCLNameCaseCore.php b/Library/NCL/NCLNameCaseCore.php
index 3413a34..56666a1 100644
--- a/Library/NCL/NCLNameCaseCore.php
+++ b/Library/NCL/NCLNameCaseCore.php
@@ -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);
+ }
+
/**
* Если $stopAfter = 0, тогда вырезает $length последних букв с текущего слова ($this->workingWord)
* Если нет, тогда вырезает $stopAfter букв начиная от $length с конца
@@ -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 версия языкового файла
diff --git a/Library/NCLNameCaseRu.php b/Library/NCLNameCaseRu.php
index e53d2fb..ccd7d4f 100644
--- a/Library/NCLNameCaseRu.php
+++ b/Library/NCLNameCaseRu.php
@@ -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;