翻译django中的日期格式:技术消息ID?

时间:2013-05-05 04:48:48

标签: django internationalization date-format

我正在开设一个显示日期的网站,并通过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的方式

非常感谢!

2 个答案:

答案 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" }

可以根据您的语言环境进行更改,希望解决方案可以帮助您:)