【发布时间】:2017-10-04 10:15:25
【问题描述】:
我正在使用多种语言的页面。 我在树枝主页上有一个按钮可以在语言之间切换。 当用户单击按钮选择语言时,我正在尝试设置这样的语言环境:
public function indexLangAction(Request $request, $lang)
{
$session = $this->get('session');
if ($session->has("_locale") && $lang !== $session->get("_locale")) {
$session->set("_locale", $lang);
return new RedirectResponse('/' . $lang);
}
return $this->render('default/index.html.twig', [
'base_dir' => realpath($this-
>getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR,
]);
}
但是当我在同一会话中转到另一个页面时,语言恢复为默认值。
如何在所有用户会话中保存_locale?
如何设置_locale 的最佳方式是?我怎样才能从树枝上调用控制器?当用户单击按钮更改语言时,如何调用控制器?
privacy_lang:
path: /{_locale}/privacy
defaults: { _controller: AppBundle:Documents:privacy }
requirements:
_locale: en|es|ca
这是twig中调用路由privacy_lang的链接:
<a class="privacy enllac-lower" href="{{ path('privacy_lang') }}">Política de privacidad</a>
【问题讨论】:
-
当我使用多语言网站时,我使用 jms/i18n-routing-bundle 构建应用程序
标签: php symfony session multilingual