diff --git a/lib/Doctrine/Inflector/Rules/French/Inflectible.php b/lib/Doctrine/Inflector/Rules/French/Inflectible.php index 3498acf..c8f1f8f 100644 --- a/lib/Doctrine/Inflector/Rules/French/Inflectible.php +++ b/lib/Doctrine/Inflector/Rules/French/Inflectible.php @@ -31,6 +31,7 @@ public static function getPlural(): iterable yield new Transformation(new Pattern('/(s|x|z)$/'), '\1'); yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)ail$/'), '\1aux'); yield new Transformation(new Pattern('/ail$/'), 'ails'); + yield new Transformation(new Pattern('/(chacal|carnaval|festival|récital)$/'), '\1s'); yield new Transformation(new Pattern('/al$/'), 'aux'); yield new Transformation(new Pattern('/(bleu|émeu|landau|pneu|sarrau)$/'), '\1s'); yield new Transformation(new Pattern('/(bijou|caillou|chou|genou|hibou|joujou|lieu|pou|au|eu|eau)$/'), '\1x'); diff --git a/tests/Doctrine/Tests/Inflector/Rules/French/FrenchFunctionalTest.php b/tests/Doctrine/Tests/Inflector/Rules/French/FrenchFunctionalTest.php index 262c118..3c073ac 100644 --- a/tests/Doctrine/Tests/Inflector/Rules/French/FrenchFunctionalTest.php +++ b/tests/Doctrine/Tests/Inflector/Rules/French/FrenchFunctionalTest.php @@ -53,6 +53,10 @@ public function dataSampleWords(): array ['monsieur', 'messieurs'], ['madame', 'mesdames'], ['mademoiselle', 'mesdemoiselles'], + ['chacal', 'chacals'], + ['carnaval', 'carnavals'], + ['festival', 'festivals'], + ['récital', 'récitals'], ]; }