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

date, datetime, php, symfony, twig

Solution

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 }

Problem

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?

Original source

Related problems