Symfony2:我如何设置trick|date(“dF,Y”)过滤器以瑞典语输出月份


Symfony2: How can I set twig |date("d F, Y") filter to output months in Swedish?

我的小树枝模板中的|date("d F,Y")过滤器有问题。

我希望这几个月用瑞典语输出。我尝试在parameters.yml文件中设置"locale:sv",但没有效果。

在我从Symfony 2.1升级到2.3之前,它一直在工作,所以我认为这可能与它有关。

有什么想法吗?

Twig Intl扩展

您可以使用fabpot官方Twig扩展库中的Twig Intl扩展。

它提供了一个本地化的日期过滤器,可以这样使用:

{{ date | localizeddate('full', 'none', app.request.locale ) }}

使用app.request.locale作为当前区域设置的第三个参数,或者仅使用'sv'

集成到您的项目

使用将官方扩展添加到您的composer.json

composer require twig/extensions:1.0.*@dev
composer update twig/extensions

config.yml

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

快速提示:

另一个方便的扩展是提供截断的Text扩展,。。。etc过滤器

services:
    twig.extension.text:
        class: Twig_Extensions_Extension_Text
        tags:
            - { name: twig.extension }

我将添加到@nifr发布的解决方案中。

为了使用您的日期格式,请安装Twig Intl扩展,然后您可以使用:

{{ date|localizeddate('none', 'none', app.request.locale, null, 'dd MMMM, yyyy') }}

我的例子中的最后一个参数是日期格式——这里是一个文档:http://userguide.icu-project.org/formatparse/datetime

以下是Twig Intl Extension文档:https://twig-extensions.readthedocs.io/en/latest/intl.html

|date过滤器使用不支持区域设置的DateTime::format函数。看到这个问题,写下你自己的小树枝扩展。

twighp/Twig扩展包现已存档:

警告:此存储库已被放弃,取而代之的是Twig Core Extra扩展。

您可以安装twit/intl extra,而不是使用ICU语法使用format_date():

{{ date|format_date(locale='sv', pattern='EEEE d MMMM yyyy') }}
# Söndag 26 mars 2023

注意:需要PHPintl扩展。