Translator::translateBundle()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 1
nop 3
dl 0
loc 27
rs 9.488
c 0
b 0
f 0
1
<?php
2
3
namespace LaravelLangBundler;
4
5
use Illuminate\Support\Collection;
6
use LaravelLangBundler\Bundle\Bundle;
7
use LaravelLangBundler\BundleItems\BundleItem;
8
9
class Translator
10
{
11
    /**
12
     * Translate the values in given bundle.
13
     *
14
     * @param Bundle $bundle
15
     * @param array  $parameters
16
     * @param string $locale
17
     *
18
     * @return Collection
19
     */
20
    public function translateBundle(
21
        Bundle $bundle,
22
        array $parameters = [],
23
        $locale = null
24
    ) {
25
        return $bundle->getValues()
26
            ->mapWithKeys(function (BundleItem $bundleItem) use ($parameters, $locale) {
27
                $bundleItem->setParameters($parameters);
28
29
                if ($choice = $bundleItem->hasChoice()) {
30
                    $value = app('translator')->transChoice(
31
                        $bundleItem->getId(),
32
                        $choice,
33
                        $bundleItem->getParameters(),
34
                        $locale
35
                    );
36
                } else {
37
                    $value = app('translator')->trans(
38
                        $bundleItem->getId(),
39
                        $bundleItem->getParameters(),
40
                        $locale
41
                    );
42
                }
43
44
                return $bundleItem->setValue($value)->getReturnArray();
45
            });
46
    }
47
}
48