0

私は、日付を表示するサイトに取り組んでおり、i18n を介して複数の言語で表示されます。フィルターを使用して日付を表示しています (場合によっては、日のみ、時間のみなど)。

これの最後の段落を読みました: https://docs.djangoproject.com/en/1.2/topics/i18n/、私が理解していることから、djangoで必要な形式を指定できるはずです.po ロケールに変換し、テンプレート フィルターで使用しますか?

しかし、うまくいかないようです。

 {{ date_start|date:"{% trans "DATE_HOUR_ONLY" %}" }}

英語の django.po で:

 msgid "DATE_HOUR_ONLY"
 msgstr "%P"

ただし、これは完全に爆発します...そして、二重引用符の代わりに単一引用符を使用すると ( {{ date_start|date:"{% trans 'DATE_HOUR_ONLY' %}" }} ) 爆発しませんが、これが表示されます:

 {% 31Fri, 17 May 2013 00:00:00 -0500a.m.500 'FriAMCDTMay_00-05001368766800R_-0500MayFalse2013' %}

続行方法に関する具体的な例をオンラインで見つけることができません。フィルタがないと、settings.py で DATE_FORMAT がどのように設定されているかにより、言語に応じて日付が正しく切り替わります。

どうもありがとう !

4

2 に答える 2

1

多分あなたはDjangoのformats.pyを試すことができます

https://docs.djangoproject.com/en/1.4/topics/i18n/formatting/

たとえば、プロジェクトにフォーマット フォルダーがあります。別のロケールを追加する場合は、「 init .py」を忘れないでください。「en」と同じレベルに「zh_TW」のようなフォルダーを追加するだけで済みます。

mysite/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py

format.py は次のようになります

SHORT_DATE_FORMAT = 'Y/m/d'
SHORT_DATETIME_FORMAT = 'Y/m/d G:i:s'

そして私のtemplate.htmlで

{ now | date:"SHORT_DATE_FORMAT" }

ロケールによって変更される可能性があります。解決策が役立つことを願っています:)

于 2013-10-14T09:44:17.237 に答える
1

さて、少しさまよった後、これはうまくいきました:

  {{ date_start|date:_('DATE_WITH_HOUR') }}
于 2013-05-05T04:55:17.040 に答える