Passed
Push — master ( 673f30...a0fef5 )
by Arnaud
25:58 queued 19:36
created

StringExtension::translate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 2
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace LAG\AdminBundle\Twig\Extension;
6
7
use LAG\AdminBundle\Application\Configuration\ApplicationConfiguration;
8
use Symfony\Component\String\Inflector\EnglishInflector;
9
use Symfony\Contracts\Translation\TranslatorInterface;
10
use Twig\Extension\AbstractExtension;
11
use Twig\TwigFilter;
12
13
class StringExtension extends AbstractExtension
14
{
15
    public function __construct(
16
        private ApplicationConfiguration $configuration,
17
        private TranslatorInterface $translator,
18
    ) {
19
    }
20
21
    public function getFilters(): array
22
    {
23
        return [
24
            new TwigFilter('pluralize', [$this, 'pluralize']),
25
            new TwigFilter('admin_trans', [$this, 'translate']),
26
        ];
27
    }
28
29
    public function pluralize(string $singular): string
30
    {
31
        return (new EnglishInflector())->pluralize($singular)[0];
32
    }
33
34
    public function translate(string $message, array $parameters = []): string
35
    {
36
        return $this->translator->trans($message, $parameters, $this->configuration->get('translation_domain'));
37
    }
38
}
39