我已经将Web应用程序从Symfony 4.1更新到4.3,并且出现了奇怪的错误。在dev env上时,翻译器正常工作-它具有通过请求语言环境设置的语言环境。但是当我切换到prod env时,无论请求的语言环境如何,翻译器始终具有默认语言环境(请参见随附的图像)。
根据documentation,请求的语言环境由订阅事件“ onKernelRequest”确定,优先级高于“ LocaleListener”,请参见debug:
#8 App\EventSubscriber\LocaleSubscriber::onKernelRequest() 20
#9 ApiPlatform\Core\Filter\QueryParameterValidateListener::onKernelRequest() 16
#10 Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest() 16
您能建议一些要检查的东西吗?使用4.1,它可以正常工作。
这不是缓存问题,我已经尝试过使用clear:cache和删除缓存文件夹内容来清除高速缓存。我也在本地主机和远程服务器上尝试过此操作,其行为始终相同(使用已清除的缓存)。
转换器的语言环境应在dev和prod env中均由请求的语言环境设置。但这仅适用于开发环境。
答案 0 :(得分:1)
尝试在翻译器中强制使用本地语言:
App\EventSubscriber\LocaleSubscriber::onKernelRequest
$translator->setLocale($locale);