3

Symfony2 のロケール管理でわからないことがあります。date Twigメソッドでフランス語で月名を書きたいです。出来ますか?私はそれをすることはできません。

私のロケールは考慮されていないようです。

ここに私のapp/config/config.ymlファイルがあります:

framework:
    #esi:             ~
    translator:      { fallback: fr }
    secret:          %secret%
    charset:         UTF-8
    router:          { resource: "%kernel.root_dir%/config/routing.yml" }
    form:            true
    csrf_protection: true
    validation:      { enable_annotations: true }
    templating:      { engines: ['twig'] } #assets_version: SomeVersionScheme
    session:
        default_locale: fr
        auto_start:     true

セッションロケールは良さそうです:

echo $this->get('session')->getLocale();  // Returns "fr"
die;

それでも、私が使用しているとき、私の見解では、次のようになります。

<td class="month">{{ history.date|date('F Y') }}</td>

たとえば、「Juillet 2011」ではなく、「July 2011」が返されます。

私は何を誤解していますか?日付フィルターをローカライズするべきではありませんか? そうでない場合、正しい用語を取得するにはどうすればよいですか? 以前は I18N を使用してすべての月の名前を翻訳していましたが、ベスト プラクティスではないと思います。

4

1 に答える 1

3

dateはローカライズされた文字列を返しません。そのためにはstrftimeを使用する必要があります。さらに制御が必要な場合は、代わりにSonataIntlBundleを使用できます。

于 2012-09-02T10:53:39.060 に答える