Zend move translator configuration from module.config.php to Module.php

84 Views Asked by At

I'm pretty new to ZF and have a question regarding translator configuration. I have an application with the following translator configuration inside the module.cofig file:

'translator'         => [
    'locale' => 'ru_RU',
    'translation_file_patterns' => [
        [
            'type' => 'gettext',
            'base_dir' => __DIR__ . '/../language',
            'pattern' => '%s.mo',
        ],
        [
            'type' => 'phparray',
            'base_dir' => __DIR__ . '/../language',
            'pattern' => '%s.php',
        ],
    ],
    'cache' => \Zend\Cache\StorageFactory::factory(
        [
        'adapter' => [
            'name'    => 'Filesystem',
            'options' => [
                'cache_dir' => APPLICATION_LOAD_PATH . '/data/cache',
                'ttl'       => '3600',
            ],
        ],
        'plugins' => [
            [
                'name'    => 'serializer',
                'options' => [],
            ],
            'exception_handler' => [
                'throw_exceptions' => true,
            ],
        ],
        ]
    ),
],

This configuration works fine, but I want to know if is it possible to move this code inside Module.php trough the getTranslatorPluginConfig() . What I've tried is to use this method and return this same config:

public function getTranslatorPluginConfig(){
    return [
        'translator'         => [
            'locale' => 'ru_RU',
            'translation_file_patterns' => [
                [
                    'type' => 'gettext',
                    'base_dir' => __DIR__ . '/language',
                    'pattern' => '%s.mo',
                ],
                [
                    'type' => 'phparray',
                    'base_dir' => __DIR__ . '/language',
                    'pattern' => '%s.php',
                ],
            ],
            'cache' => \Zend\Cache\StorageFactory::factory(
                [
                    'adapter' => [
                        'name'    => Filesystem::class,
                        'options' => [
                            'cache_dir' => APPLICATION_LOAD_PATH . '/data/cache',
                            'ttl'       => '3600',
                        ],
                    ],
                    'plugins' => [
                        [
                            'name'    => 'serializer',
                            'options' => [],
                        ],
                        'exception_handler' => [
                            'throw_exceptions' => true,
                        ],
                    ],
                ]
            ),
        ],
    ];
}

As you can see I haven't changed anything (except base_dir path). I don't get any errors, but the translator is not working at all. If you can tell me what are the steps I need to take to make this configuration work from the Module file and if this is possible at all, I'll be grateful. I don't expect plain code, but just a guidance/suggestion of what could be done, since all I find in the Zend documentation is related with making this configuration inside module.config. Thanks in advance.

0

There are 0 best solutions below