我正在开设一个显示日期的网站,并通过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的方式非常感谢!
答案 0 :(得分:1)
好吧,经过一番徘徊,这很有效:
{{ date_start|date:_('DATE_WITH_HOUR') }}
答案 1 :(得分: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
formats.py看起来像
SHORT_DATE_FORMAT = 'Y/m/d'
SHORT_DATETIME_FORMAT = 'Y/m/d G:i:s'
和我的template.html
{ now | date:"SHORT_DATE_FORMAT" }
可以根据您的语言环境进行更改,希望解决方案可以帮助您:)