我有 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');