Php Symfony 3.4如何设置区域设置

Php Symfony 3.4如何设置区域设置,php,symfony,event-handling,locale,symfony-3.4,Php,Symfony,Event Handling,Locale,Symfony 3.4,使用symfony 3.4,我正在使用优先级高于LocaleListener的事件侦听器设置区域设置,如中所述: 现在据我所知,要在细枝模板中获得区域设置,我使用 {{ app.request.locale }} 它输出我通过EventListener设置的区域设置(即en)。但是我也在我的成员-对象上实现了getDisplayLocale()方法,我用它登录到页面。这里的想法是,在没有登录的情况下,应该使用客户机的默认区域设置,如果登录,则使用成员的区域设置。现在,成员区域设置为de 我现在

使用symfony 3.4,我正在使用优先级高于
LocaleListener
的事件侦听器设置区域设置,如中所述:

现在据我所知,要在细枝模板中获得区域设置,我使用

{{ app.request.locale }}
它输出我通过EventListener设置的区域设置(即
en
)。但是我也在我的
成员
-对象上实现了
getDisplayLocale()
方法,我用它登录到页面。这里的想法是,在没有登录的情况下,应该使用客户机的默认区域设置,如果登录,则使用成员的区域设置。现在,成员区域设置为
de

我现在不明白的是,该页面实际上是用德语呈现的,symfony状态栏显示德语,即使细枝模板变量
{{app.request.locale}}
显示
en


为什么symfony状态栏中显示的变量与
{{app.request.locale}
中显示的变量不同?如何在EventListener中设置在我的twig模板中实际用于翻译的变量?

显然有一个地方,将区域设置提供给Translator组件。。。(或者不是…)我现在不太确定在哪里。问题是,它是在请求中设置之后被覆盖的,还是在请求中设置之前被覆盖但未更新的…我的config.yml:framework:
translator:{fallsbacks:['%locale%'|}
以上我有
参数:locale:'de'
。我觉得这是在覆盖不应该覆盖的内容。但我不记得在这里更改了什么,我认为这是symfony默认值…等等…你的页面上有英文翻译吗?因为翻译会退回到“默认值”语言。
de_de
display可能只是一个显示错误…提供脚本的翻译,并检查是否有帮助…否则它可能实际上不是问题。我不认为这是问题所在。所采用的翻译语言是由成员实体提供的,而不是备用语言。它只接受fallback信息,如果没有成员登录(那么它应该采用EventListener设置的信息,但由于某些原因没有)。另外,我的主要问题是,为什么细枝模板中的
app.request.locale
与实际用于翻译页面的区域设置不同?
app.request.locale
使设置翻译区域设置的侦听器有什么意义:……可能使用了一些奇怪的错误区域设置,并返回到默认的somewhere?app.request.locale确实有意义,因为它说明了用户通过路由或其他方式提供的区域设置。
{{ app.request.locale }}