如何按照接受的语言头在Symfony 2中进行语言翻译?

3

我有一个

config.yml

#Here locale is en
translator:      { fallback: %locale% }
...
session:
    default_locale: %locale%

routing.yml

AcmeDemoBundle_homepage:
    pattern:  /{_locale}/index
    defaults: { _controller: AcmeDemoBundle:Default:index, _locale: de}
    requirements:
    _locale: en|de

如果手动输入URL,则会将 /en/index 转到英文,/de/index 转到德文。

如何实现自动跳转至德语页面, 如果浏览器的语言设置为德语 (de_DE 或 de),否则跳转至英语页面(所有其他浏览器接受的语言)?

2个回答

5

我应该在哪里创建内核事件监听器?我对此不熟悉。 - Justin John

3
我一直在使用JMSI18nRoutingBundle,它可以自动处理URL中的区域设置。在默认的URL上,它会选择性地使用首选语言环境。
内核事件监听器是一个不错的选择,你可以在文档中找到相关信息。但是,请记住,你应该仅在新会话上触发它,以确保用户仍然可以手动选择他们所查看的网站语言。

@louis-philippe-huberdeau 你知道如何仅在新会话上触发监听器吗?问候! - Hugo Nogueira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接