Skip to content

Commit

Permalink
Inflect foreign middle names as first names in russian
Browse files Browse the repository at this point in the history
  • Loading branch information
wapmorgan committed Aug 3, 2017
1 parent f348463 commit ef42592
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
8 changes: 4 additions & 4 deletions src/Russian/MiddleNamesInflection.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ public static function isMutable($name, $gender = null)
if (in_array(S::slice($name, -2), array('ич', 'на'))) {
return true;
}
return false;
// if foreign, try it as a name
return FirstNamesInflection::isMutable($name, $gender);
}

public static function getCase($name, $case, $gender = null)
Expand Down Expand Up @@ -64,8 +65,7 @@ public static function getCases($name, $gender = null)
);
}

// immutable middle name
$name = S::name($name);
return array_fill_keys(array(self::IMENIT, self::RODIT, self::DAT, self::VINIT, self::TVORIT), $name) + array(self::PREDLOJ => self::choosePrepositionByFirstLetter($name, 'об', 'о').' '.$name);
// inflect other middle names as first names (foreign)
return FirstNamesInflection::getCases($name, $gender);
}
}
10 changes: 7 additions & 3 deletions tests/Russian/FunctionsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,13 @@ public function namesProvider()
['Янаев Осип Андреевич', Gender::MALE, 'Янаева Осипа Андреевича', 'Янаеву Осипу Андреевичу', 'Янаева Осипа Андреевича', 'Янаевым Осипом Андреевичем', 'о Янаеве Осипе Андреевиче'],
['Молодыха Лариса Трофимовна', Gender::FEMALE, 'Молодыхи Ларисы Трофимовны', 'Молодыхе Ларисе Трофимовне', 'Молодыху Ларису Трофимовну', 'Молодыхой Ларисой Трофимовной', 'о Молодыхе Ларисе Трофимовне'],
['Вергун Илья Захарович', Gender::MALE, 'Вергуна Ильи Захаровича', 'Вергуну Илье Захаровичу', 'Вергуна Илью Захаровича', 'Вергуном Ильей Захаровичем', 'о Вергуне Илье Захаровиче'],
['Горюнова Таисия Романовна', Gender::FEMALE, 'Горюновой Таисии Романовны', 'Горюновой Таисии Романовне', 'Горюнову Таисию Романовну', 'Горюновой Таисией Романовной', 'о Горюновой Таисии Романовне'],
['Путинцева Антонина Карповна', Gender::FEMALE, 'Путинцевой Антонины Карповны', 'Путинцевой Антонине Карповне', 'Путинцеву Антонину Карповну', 'Путинцевой Антониной Карповной', 'о Путинцевой Антонине Карповне'],
];
['Горюнова Таисия Романовна', Gender::FEMALE, 'Горюновой Таисии Романовны', 'Горюновой Таисии Романовне', 'Горюнову Таисию Романовну', 'Горюновой Таисией Романовной', 'о Горюновой Таисии Романовне'],
['Путинцева Антонина Карповна', Gender::FEMALE, 'Путинцевой Антонины Карповны', 'Путинцевой Антонине Карповне', 'Путинцеву Антонину Карповну', 'Путинцевой Антониной Карповной', 'о Путинцевой Антонине Карповне'],

// foreign names
['Андерсен Ганс Христиан', Gender::MALE, 'Андерсена Ганса Христиана', 'Андерсену Гансу Христиану', 'Андерсена Ганса Христиана', 'Андерсеном Гансом Христианом', 'об Андерсене Гансе Христиане'],
['Милн Алан Александр', Gender::MALE, 'Милна Алана Александра', 'Милну Алану Александру', 'Милна Алана Александра', 'Милном Аланом Александром', 'о Милне Алане Александре'],
];
}

/**
Expand Down

0 comments on commit ef42592

Please sign in to comment.