| @@ 208-218 (lines=11) @@ | ||
| 205 | static::TVORIT => $prefix.'ей', |
|
| 206 | static::PREDLOJ => $prefix.'и', |
|
| 207 | ]; |
|
| 208 | } elseif (S::slice($name, -1) == 'я') { |
|
| 209 | $prefix = S::name(S::slice($name, 0, -1)); |
|
| 210 | return [ |
|
| 211 | static::IMENIT => $prefix . 'я', |
|
| 212 | static::RODIT => $prefix . 'и', |
|
| 213 | static::DAT => $prefix . 'е', |
|
| 214 | static::VINIT => $prefix . 'ю', |
|
| 215 | static::TVORIT => $prefix . 'ей', |
|
| 216 | static::PREDLOJ => $prefix . 'е', |
|
| 217 | ]; |
|
| 218 | } |
|
| 219 | ||
| 220 | if (!in_array($name, static::$immutableNames, true)) { |
|
| 221 | if ($gender === null) { |
|
| @@ 79-89 (lines=11) @@ | ||
| 76 | Cases::TVORIT => $name.'ем', |
|
| 77 | Cases::PREDLOJ => $name.'е', |
|
| 78 | ); |
|
| 79 | } elseif (S::slice($name, -2) == 'на') { |
|
| 80 | $prefix = S::name(S::slice($name, 0, -1)); |
|
| 81 | return array( |
|
| 82 | Cases::IMENIT => $prefix.'а', |
|
| 83 | Cases::RODIT => $prefix.'ы', |
|
| 84 | Cases::DAT => $prefix.'е', |
|
| 85 | Cases::VINIT => $prefix.'у', |
|
| 86 | Cases::TVORIT => $prefix.'ой', |
|
| 87 | Cases::PREDLOJ => $prefix.'е', |
|
| 88 | ); |
|
| 89 | } |
|
| 90 | ||
| 91 | // inflect other middle names (foreign) as first names |
|
| 92 | return FirstNamesInflection::getCases($name, $gender); |
|