@@ 151-153 (lines=3) @@ | ||
148 | // exceptions |
|
149 | if (in_array($word, self::$neuterExceptions)) { |
|
150 | $forms[Cases::RODIT] = $prefix.'ей'; |
|
151 | } elseif (S::slice($word, -2, -1) == 'и') { |
|
152 | $forms[Cases::RODIT] = $prefix.'й'; |
|
153 | } else { |
|
154 | $forms[Cases::RODIT] = $prefix; |
|
155 | } |
|
156 | } elseif (S::slice($word, -2) == 'ка') { // words ending with -ка: чашка, вилка, ложка, тарелка, копейка, батарейка |
|
@@ 159-161 (lines=3) @@ | ||
156 | } elseif (S::slice($word, -2) == 'ка') { // words ending with -ка: чашка, вилка, ложка, тарелка, копейка, батарейка |
|
157 | if (S::slice($word, -3, -2) == 'л') { |
|
158 | $forms[Cases::RODIT] = S::slice($word, 0, -2).'ок'; |
|
159 | } elseif (S::slice($word, -3, -2) == 'й') { |
|
160 | $forms[Cases::RODIT] = S::slice($word, 0, -3).'ек'; |
|
161 | } else { |
|
162 | $forms[Cases::RODIT] = S::slice($word, 0, -2).'ек'; |
|
163 | } |
|
164 | } elseif (in_array($last, array('а'))) { // обида, ябеда |
|
@@ 170-172 (lines=3) @@ | ||
167 | $forms[Cases::RODIT] = $prefix.'й'; |
|
168 | } elseif (RussianLanguage::isHissingConsonant($last) || ($soft_last && $last != 'й') || in_array(S::slice($word, -2), array('чь', 'сь'))) { |
|
169 | $forms[Cases::RODIT] = $prefix.'ей'; |
|
170 | } elseif ($last == 'й' || S::slice($word, -2) == 'яц') { // месяц |
|
171 | $forms[Cases::RODIT] = $prefix.'ев'; |
|
172 | } else { // (self::isConsonant($last) && !RussianLanguage::isHissingConsonant($last)) |
|
173 | $forms[Cases::RODIT] = $prefix.'ов'; |
|
174 | } |
|
175 |