Passed
Push — master ( c9c108...62a3cd )
by Pieter
03:55
created

SharedTranslatorTrait::translate()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 18
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 4
eloc 13
c 1
b 0
f 1
nc 6
nop 1
dl 0
loc 18
rs 9.8333
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