如何在symfony2中使用正确的语言环境(2.4及以上)

时间:2013-10-27 17:33:14

标签: symfony twig

如何在symfony2 Twig中正确使用日期语言环境,以便:

for GB browser I display format 27/10/2013 
for US browser I display format 10/27/2013

1 个答案:

答案 0 :(得分:4)

首先,我必须启用Intl twig扩展,默认情况下包含在symfony2框架中(默认情况下未启用

通过在config.yml中添加它来启用它(例如src / Project / TestBundle / Resources / config /):

services:
    twig.extension.intl:
        class: Twig_Extensions_Extension_Intl
        tags:
            - { name: twig.extension }

然后你这样使用:

{{ 'now' | localizeddate('short', 'none') }} 
// outputs dd/mm/yyyy or mm/dd/yyyy depending on where browser is coming from

如果这不能自动运行,那么您需要强制在浏览器中使用首选语言(在您的控制器中)

$this->getRequest()->setLocale($this->getRequest()->getPreferredLanguage());

这将使用有效的日期格式,具体取决于浏览器的访问者设置(如值为en_GB或en_US的Accept-Language标头)

您可以通过在localizeddate中添加第三个参数来强制使用某些区域设置(例如“de-DE”)。要获取当前区域设置,请使用{{app.request.locale}}

请注意,枝条文档有点过时,所以最好使用我上面做的