当我更改语言环境时,页面上没有任何反应。它重新加载,但使用相同的语言。如果我打开另一个选项卡并访问我的服务器,那么语言环境将是我在上一个选项卡中选择的语言环境。
这是我设置语言环境的默认控制器。
public function indexAction(Request $request)
{
// set locale
$request->setLocale($request->query->get('_locale'));
dump($request->getLocale($request->query->get('_locale')));
return $this->render('default/index.html.twig', [
'translate' => $this->get('translator')->trans('Symfony is great'),
]);
}
这是我的路线
index:
path: /{_locale}
defaults: { _controller: AppBundle:Default:index }
requirements:
_locale: en|bg
以下是我如何从树枝上改变它。
<div class="col-lg-12">
<a class="btn btn-info" role="button" href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'bg'})) }}">Bulgaria</a>
<a class="btn btn-info" role="button" href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}">England</a>
</div>
这是显示的位置。
<h3>{{ translate }}</h3>