我正在使用symfony 3.4,并且希望为请求设置显示区域设置。
我尝试按照in the Symfony documentation的说明使用以下代码
namespace AppBundle\EventListener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class EventListener
{
private $tokenStorage;
public function __construct(TokenStorageInterface $tokenStorage)
{
$this->tokenStorage = $tokenStorage;
}
public function onKernelRequest(GetResponseEvent $event)
{
$request = $event->getRequest();
$request->setLocale('en');
}
}
,但不影响页面。在symfony状态栏上,它仍显示de_DE
为区域设置。我阅读了关于此stackoverflow post的说明,但感觉就像我所做的一样。那我想念什么?
答案 0 :(得分:1)
必须在LocaleListener之前调用自定义侦听器,它会基于当前请求初始化语言环境。为此,请将侦听器优先级设置为高于LocaleListener优先级的值(可以通过运行debug:event kernel.request命令获得该值)。 查看文档https://symfony.com/doc/3.4/translation/locale.html