最终更新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年。欢迎任何帮助。
答案 0 :(得分:1)
发现问题。您必须将具有区域设置的转换程序设置为视图助手:
public function onBootstrap($events)
{
....
$viewRenderer = $events->getApplication()->getServiceManager()->get('ViewRenderer');
$plugIn = $viewRenderer->plugin('translate');
$plugIn->setTranslator($translator, __NAMESPACE__);
...
}
否则,如果在那里设置了区域设置,则从config.global中获取(如我的情况)。不知道为什么它之前有这么长时间......