用户提供的语言环境中的django格式日期

时间:2013-05-10 10:41:12

标签: django localization django-templates django-i18n django-localflavor

我正在尝试根据用户提供的区域设置在模板中设置日期格式。由于页面的其余部分将保留在原始本地('en'),我只想要我的用户'  提供要格式化的数据。

例如,日期。

英国的用户应该能够在其网页上的日期使用l10n,但我不想将整个网站设置为en_GB

有没有办法在块内的模板中设置区域设置,例如。

之类的东西
{% locale|'en_GB' %}
    {{ my_date|localize }}
{% endlocale %}

1 个答案:

答案 0 :(得分:1)

您无需在模板中进行任何明确的操作。

settings.py内定义FORMAT_MODULE_PATH设置。 像:

FORMAT_MODULE_PATH = 'myproject.myapp.formats'
formats目录下的

创建一个python包支持的语言(其他 比你的项目默认)。在每个内部,你应该有一个formats.py 应该有任何本地化格式选项。

在我的情况下,我的项目的默认语言是en,但我也支持el(希腊语)。 所以我在settings.py

中有这个
FORMAT_MODULE_PATH = 'myproject.websiteapp.formats'

myproject/websiteapp/formats目录中,我有el个包,其中包含formats.py个文件,如:

el/
 __init__.py
 formats.py

formats.py里面我有这个:

DATETIME_FORMAT="l j M Y, g:i a"

这是日期的希腊特定表示。

所以当我在模板中使用datetime字段时:

{{ mymodel.pub_date }}

当locale设置为默认值时,它会打印默认的en表示:

Published on: Feb. 22, 2013, 1:47 p.m.
当区域设置为el时,

和我的自定义希腊语。

Δημοσιεύτηκε: Τετάρτη 6 Φεβ 2013, 5:39 μμ.

更多信息here

修改

嗯,我刚才意识到您要求提供特定的模板块或值。 可能是localize模板过滤器localize模板标记 与您的具体案例更相关?