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

33,912

Solution 1

The Twig Intl Extension

You can use the Twig Intl Extension found in fabpot's official Twig extension repository.

It provides a localized date filter which can be used like this:

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

use app.request.locale as third parameter for current locale or just 'sv'.

Integration into your project

add the official extensions to your composer.json using:

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 }

quick tip:

another handy extension is the Text extension providing truncate,...etc filters

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

Solution 2

I will make an addition to solution posted by @nifr.

In order to use your date format install the Twig Intl Extension and than you can use:

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

The last argument in my example is a date format - here is a documentation: http://userguide.icu-project.org/formatparse/datetime

Here is the Twig Intl Extension documentation: https://twig-extensions.readthedocs.io/en/latest/intl.html

Solution 3

|date filter use DateTime::format function which doesnt support locales. See this question and write your own twig extension.

Share:
33,912
tirithen
Author by

tirithen

System developer with focus on JavaScript (mostly excited about Polymer 3) and Go. Always eager to learn new things.

Updated on December 15, 2020

Comments

  • tirithen
    tirithen over 3 years

    I'm having problems with the |date("d F, Y") filter in my twig templates.

    I want the months to be outputted in Swedish. I have tried setting "locale: sv" in my parameters.yml files but I get no effect.

    It was working before I upgraded to from Symfony 2.1 to 2.3 so I think that might have something to do with it.

    Any thoughts on how to fix this?