【发布时间】:2013-06-09 21:33:12
【问题描述】:
我有 symfony 2.3 并且我为 i18n 目的配置了翻译,将 _locale 放在 url 中,它适用于经过身份验证的用户,但不适用于匿名用户,因为匿名用户总是给我默认的语言环境,在探查器语言环境看起来不错,但它没有加载正确的翻译。
Pd:我正在使用 FOSUserBundle
【问题讨论】:
我有 symfony 2.3 并且我为 i18n 目的配置了翻译,将 _locale 放在 url 中,它适用于经过身份验证的用户,但不适用于匿名用户,因为匿名用户总是给我默认的语言环境,在探查器语言环境看起来不错,但它没有加载正确的翻译。
Pd:我正在使用 FOSUserBundle
【问题讨论】:
请确保已为匿名用户启动会话。在您的控制器中检查:
$this->container->get('session')->isStarted()
开始会话
$this->container->get('session')->start();
如果会话正确启动,请验证区域设置是否已设置。
在其他示例中使用 $this->get() 别名为 $this->container->get()。
获取语言环境
$this->get('session')->get('_locale');
否则设置语言环境
$this->get('session')->set('_locale', 'en_US');
【讨论】: