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' %}

我在网上找不到任何关于如何进行的具体示例。如果没有过滤器,日期会根据语言正确切换,因为 DATE_FORMAT 在我的 settings.py 中是如何设置的

非常感谢 !

4

2 回答 2

1

好吧,经过一番闲逛,这奏效了:

  {{ date_start|date:_('DATE_WITH_HOUR') }}
于 2013-05-05T04:55:17.040 回答
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

格式.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 回答