Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace Doctrine\Inflector\Rules\French;
6
 
7
use Doctrine\Inflector\Rules\Pattern;
8
use Doctrine\Inflector\Rules\Substitution;
9
use Doctrine\Inflector\Rules\Transformation;
10
use Doctrine\Inflector\Rules\Word;
11
 
12
class Inflectible
13
{
14
    /** @return Transformation[] */
15
    public static function getSingular(): iterable
16
    {
17
        yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)aux$/'), '\1ail');
18
        yield new Transformation(new Pattern('/ails$/'), 'ail');
19
        yield new Transformation(new Pattern('/(journ|chev)aux$/'), '\1al');
20
        yield new Transformation(new Pattern('/(bijou|caillou|chou|genou|hibou|joujou|pou|au|eu|eau)x$/'), '\1');
21
        yield new Transformation(new Pattern('/s$/'), '');
22
    }
23
 
24
    /** @return Transformation[] */
25
    public static function getPlural(): iterable
26
    {
27
        yield new Transformation(new Pattern('/(s|x|z)$/'), '\1');
28
        yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)ail$/'), '\1aux');
29
        yield new Transformation(new Pattern('/ail$/'), 'ails');
30
        yield new Transformation(new Pattern('/(chacal|carnaval|festival|récital)$/'), '\1s');
31
        yield new Transformation(new Pattern('/al$/'), 'aux');
32
        yield new Transformation(new Pattern('/(bleu|émeu|landau|pneu|sarrau)$/'), '\1s');
33
        yield new Transformation(new Pattern('/(bijou|caillou|chou|genou|hibou|joujou|lieu|pou|au|eu|eau)$/'), '\1x');
34
        yield new Transformation(new Pattern('/$/'), 's');
35
    }
36
 
37
    /** @return Substitution[] */
38
    public static function getIrregular(): iterable
39
    {
40
        yield new Substitution(new Word('monsieur'), new Word('messieurs'));
41
        yield new Substitution(new Word('madame'), new Word('mesdames'));
42
        yield new Substitution(new Word('mademoiselle'), new Word('mesdemoiselles'));
43
    }
44
}