diff --git a/lib/inflections/en.php b/lib/inflections/en.php index b3a832c..26dbfe3 100644 --- a/lib/inflections/en.php +++ b/lib/inflections/en.php @@ -39,6 +39,9 @@ ->plural('/^(ox)$/i', '\1en') ->plural('/^(oxen)$/i', '\1') ->plural('/(quiz)$/i', '\1zes') + ->plural('/^is$/i', 'are') + ->plural('/^was$/i', 'were') + ->plural('/^has$/i', 'have') ->singular('/s$/i', '') ->singular('/(ss)$/i', '\1') @@ -66,19 +69,34 @@ ->singular('/(matr)ices$/i', '\1ix') ->singular('/(quiz)zes$/i', '\1') ->singular('/(database)s$/i', '\1') + ->singular('/^are$/i', 'is') + ->singular('/^were$/i', 'was') + ->singular('/^have$/i', 'has') + ->irregular('appendix', 'appendices') + ->irregular('cactus', 'cacti') + ->irregular('child', 'children') + ->irregular('criterion', 'criteria') + ->irregular('curriculum', 'curricula') + ->irregular('foot', 'feet') + ->irregular('genus', 'genera') + ->irregular('goose', 'geese') ->irregular('leaf', 'leaves') ->irregular('loaf', 'loaves') + ->irregular('man', 'men') + ->irregular('move', 'moves') + ->irregular('nucleus', 'nuclei') ->irregular('octopus', 'octopuses') - ->irregular('virus', 'viruses') ->irregular('person', 'people') - ->irregular('man', 'men') - ->irregular('child', 'children') + ->irregular('phenomenon', 'phenomena') + ->irregular('radius', 'radii') ->irregular('sex', 'sexes') - ->irregular('move', 'moves') + ->irregular('stimulus', 'stimuli') + ->irregular('syllabus', 'syllabi') + ->irregular('thief', 'thieves') + ->irregular('tooth', 'teeth') + ->irregular('virus', 'viruses') ->irregular('zombie', 'zombies') - ->irregular('goose', 'geese') - ->irregular('genus', 'genera') // http://easenglish.net/Files/Grammar/uncountable%20words.pdf ->uncountable(explode(' ', 'advice aircraft art baggage butter clothing coal cotton deer equipment experience feedback fish flour food furniture gas homework impatience information jeans knowledge leather love luggage management money moose music news oil patience police polish progress research rice salmon sand series sheep silk sms soap spam species staff sugar swine talent toothpaste traffic travel vinegar weather wood wool work')); diff --git a/tests/Inflections/en.php b/tests/Inflections/en.php index 1131208..acf9476 100755 --- a/tests/Inflections/en.php +++ b/tests/Inflections/en.php @@ -9,6 +9,7 @@ "process" => "processes", "address" => "addresses", "case" => "cases", + "release" => "releases", "stack" => "stacks", "wish" => "wishes", "fish" => "fish", @@ -31,19 +32,19 @@ "wife" => "wives", "safe" => "saves", "half" => "halves", + "scarf" => "scarves", + "wharf" => "wharves", "move" => "moves", - "salesperson" => "salespeople", - "person" => "people", - - "spokesman" => "spokesmen", - "man" => "men", - "woman" => "women", - "basis" => "bases", "diagnosis" => "diagnoses", "diagnosis_a" => "diagnosis_as", + "ellipsis" => "ellipses", + "hypothesis" => "hypotheses", + "oasis" => "oases", + "paralysis" => "paralyses", + "synthesis" => "syntheses", "datum" => "data", "medium" => "media", @@ -90,7 +91,6 @@ "louse" => "lice", "house" => "houses", - "octopus" => "octopuses", "virus" => "viruses", "alias" => "aliases", "portfolio" => "portfolios", @@ -120,22 +120,45 @@ "slice" => "slices", "police" => "police", - # "f" or "fe" => "ves" - "calf" => "calves", - "half" => "halves", - "knife" => "knives", - "leaf" => "leaves", - "loaf" => "loaves", + # "f" or "fe" => "ves" + "calf" => "calves", + "half" => "halves", + "knife" => "knives", + "leaf" => "leaves", + "life" => "lives", + "loaf" => "loaves", # irregulars - 'person' => 'people', - 'man' => 'men', - 'child' => 'children', - 'sex' => 'sexes', - 'move' => 'moves', - 'zombie' => 'zombies', - 'genus' => 'genera', + "appendix" => "appendices", + "cactus" => "cacti", + "child" => "children", + "criterion" => "criteria", + "curriculum" => "curricula", + "foot" => "feet", + "genus" => "genera", + "goose" => "geese", + "is" => "are", + "leaf" => "leaves", + "loaf" => "loaves", + "man" => "men", + "move" => "moves", + "nucleus" => "nuclei", + "octopus" => "octopuses", + "person" => "people", + "phenomenon" => "phenomena", + "radius" => "radii", + "salesperson" => "salespeople", + "sex" => "sexes", + "spokesman" => "spokesmen", + "stimulus" => "stimuli", + "syllabus" => "syllabi", + "thief" => "thieves", + "tooth" => "teeth", + "virus" => "viruses", + "was" => "were", + "woman" => "women", + "zombie" => "zombies", # uncountable