zf3 перевод маршрута - переводчик не найден - PullRequest
0 голосов
/ 22 октября 2018

Мне нужно реализовать мультиязычный сайт.Чем мне нужно использовать i18n и переводчик, но у меня есть некоторые проблемы с переводчиком маршрутов

Это мой module.config.php

{
return [
    'router' => [
        'router' => [
            'router_class'           => TranslatorAwareTreeRouteStack::class,
        ],
        'routes' => [
            'home' => [
                'type' => Literal::class,
                'options' => [
                    'route'    => '/',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'     => 'index',
                    ],
                ],
            ],
            'application' => [
                'type'    => Segment::class,
                'options' => [
                    'route'    => '/{contact}',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'     => 'index',
                    ],
                ],
            ],
        ],
    ]};
    }

А это мой класс Module.php

 public function onBootstrap(MvcEvent $e)
    {
        /** @var \Zend\Mvc\I18n\Translator $translator */

        $translator = $e->getApplication()->getServiceManager()->get('MvcTranslator');
        $translator->addTranslationFilePattern(
            'phpArray',
            Resources::getBasePath(),
            Resources::getPatternForValidator()
        );
        AbstractValidator::setDefaultTranslator($translator);
    }       

Когда я запускаю приложение, я получаю эту ошибку

Zend\Router\Exception\RuntimeException: No translator provided in ..vendor\zendframework\zend-router\src\Http\Segment.php on line 372   

Как передать переводчик в сегментный класс?Мне нужно использовать другой класс для перевода?

1 Ответ

0 голосов
/ 28 октября 2018

Проблема была в конфигурации.Я перемещаю это

'router' => [
        'router_class' => \Zend\Mvc\I18n\Router\TranslatorAwareTreeRouteStack::class,
        'routes' => [

        ],
    ],

в глобальной конфигурации, и все работает нормально.

...