ZF2, I18n и динамическая локаль больше не работают после обновления

После, наконец, обновления Apache 2.2 -> 2.4 и php 5.4 -> 5.5 перевод уже не является динамичным. Мое приложение на двух языках с английским в качестве запасного варианта.
Локаль устанавливается, т. Е. По профилю пользователя, с помощью :: onBootstrap

Модуль класса
{
публичная функция onBootstrap ($ events)
{

    $translator = $events->getApplication()->getServiceManager()->get(
'translator'
);

$authSvc = $events->getApplication()->getServiceManager()->get('Zend\Authentication\AuthenticationService');

$locale = $this->getLocale($authService);

$translator->setLocale(
\Locale::acceptFromHttp($locale)
);

}

После обновления Apache и php перевод все еще работает, но в переводе используется языковой стандарт по умолчанию из системы. Если я поставлю локаль в $ this-> translate (‘MY TXT’, NAMESPACE, ‘en_US’) это работает, но это не главное. Даже после отладки я не смог определить источник проблемы. Он работал так, как предполагалось, более 2 лет назад. Любая помощь приветствуется.

1

Решение

Нашел проблему. Вы должны установить переводчик с языковым стандартом для помощника вида:

public function onBootstrap($events)
{

....
$viewRenderer = $events->getApplication()->getServiceManager()->get('ViewRenderer');

$plugIn = $viewRenderer->plugin('translate');
$plugIn->setTranslator($translator, __NAMESPACE__);
...
}

В противном случае локаль берется из config.global, если она там установлена ​​(как в моем случае). Понятия не имею, почему это работало раньше так долго …

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]