Completed
Push — dev-master ( f1d44b...511541 )
by Derek Stephen
01:34
created

TranslatorFactory   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 2
dl 0
loc 43
ccs 19
cts 19
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createTranslator() 0 17 2
A addPackageTranslations() 0 12 1
1
<?php
2
3
namespace Bone\Service;
4
5
use Bone\I18n\I18nRegistrationInterface;
6
use Locale;
7
use Laminas\I18n\Translator\Loader\Gettext;
8
use Laminas\I18n\Translator\Translator;
9
10
class TranslatorFactory
11
{
12
    /**
13
     * @param array $config
14
     * @return Translator
15
     */
16 14
    public function createTranslator(array $config, $domain = 'default')
17
    {
18 14
        $translator = new Translator();
19
20 14
        foreach ($config['supported_locales'] as $locale) {
21 14
            $file = $config['translations_dir'] . '/' . $locale .  '/' . $locale . '.mo';
22 14
            $translator->addTranslationFile(
23 14
                $config['type'],
24 14
                $file,
25 14
                $domain,
26 14
                $locale
27
            );
28
        }
29 14
        $translator->setLocale(Locale::getDefault());
30
31 14
        return $translator;
32
    }
33
34
    /**
35
     * @param Translator $translator
36
     * @param I18nRegistrationInterface $package
37
     * @param string $locale
38
     * @return Translator
39
     */
40 9
    public function addPackageTranslations(Translator $translator, I18nRegistrationInterface $package, string $locale)
41
    {
42 9
        $dir = $package->getTranslationsDirectory();
43 9
        $translator->addTranslationFile(
44 9
            Gettext::class,
45 9
            $dir . '/' . $locale . '/' . $locale . '.mo',
46 9
            'user',
47 9
            $locale
48
        );
49
50 9
        return $translator;
51
    }
52
}