Completed
Push — dev-master ( 3f66ae...92266b )
by Derek Stephen
01:52
created

TranslatorFactory   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 57.89%

Importance

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

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