web-dev-qa-db-ja.com

Symfony2:スウェーデン語の出力月にtwig | date( "d F、Y")フィルターを設定するにはどうすればよいですか?

twigテンプレートで| date( "d F、Y")フィルターに問題があります。

月をスウェーデン語で出力したいです。 parameters.ymlファイルに「locale:sv」を設定しようとしましたが、効果がありません。

Symfony 2.1から2.3にアップグレードする前に機能していたので、それは何か関係があると思います。

これを修正する方法についての考えはありますか?

25
tirithen

Twig Intl Extension

Twig Intl Extension を使用できますfabpotの公式Twig拡張 repository

次のように使用できるローカライズされた日付フィルターを提供します。

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

現在のロケールの3番目のパラメーターとして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 }

簡単なヒント:

別の便利な拡張機能は、truncateなどのフィルターを提供するText拡張機能です

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

|dateフィルターの使用DateTime::formatロケールをサポートしない関数。 この質問 を参照して、独自のtwig拡張機能を記述してください。

2
Alexey B.

@nifrが投稿したソリューションに追加します。

日付形式を使用するには、Twig Intl Extensionをインストールします。使用できるものは次のとおりです。

{{ 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

2
Seb