SharedTranslatorTrait   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 15
c 1
b 0
f 1
dl 0
loc 25
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A translate() 0 18 4
1
<?php
2
3
4
namespace W2w\Laravel\Apie\Plugins\IlluminateTranslation\Normalizers;
5
6
7
use Illuminate\Contracts\Translation\Translator;
8
use W2w\Lib\ApieObjectAccessNormalizer\Exceptions\LocalizationInfo;
9
10
trait SharedTranslatorTrait
11
{
12
    /**
13
     * @var Translator
14
     */
15
    private $translator;
16
17
    private function translate(LocalizationInfo $localizationInfo): string
18
    {
19
        $replacements = [];
20
        foreach ($localizationInfo->getReplacements() as $key => $value) {
21
            if (is_array($value)) {
22
                $replacements[$key] = json_encode($value);
23
            } else {
24
                $replacements[$key] = $value;
25
            }
26
        }
27
        $messageString = $localizationInfo->getMessageString();
28
        if (strpos($messageString, '::') === false) {
29
            $messageString = 'apie::' . $messageString;
30
        }
31
        return $this->translator->choice(
32
            $messageString,
33
            $localizationInfo->getAmount(),
34
            $replacements
35
        );
36
    }
37
}
38