我正在尝试根据用户提供的语言环境设置模板中日期的格式。由于页面的其余部分将保留在原始本地 ('en') 中,我只希望对用户提供的数据进行格式化。
例如,日期。
英国的用户应该能够使用l10n
他们页面上的日期,但我不想将整个网站设置为en_GB
.
有没有办法在块内的模板中设置语言环境,例如。就像是
{% locale|'en_GB' %}
{{ my_date|localize }}
{% endlocale %}
我正在尝试根据用户提供的语言环境设置模板中日期的格式。由于页面的其余部分将保留在原始本地 ('en') 中,我只希望对用户提供的数据进行格式化。
例如,日期。
英国的用户应该能够使用l10n
他们页面上的日期,但我不想将整个网站设置为en_GB
.
有没有办法在块内的模板中设置语言环境,例如。就像是
{% locale|'en_GB' %}
{{ my_date|localize }}
{% endlocale %}
您不需要在模板中做任何明确的事情。
在你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"
这是日期的希腊特定表示。
因此,当我在模板中使用日期时间字段时:
{{ mymodel.pub_date }}
en
当语言环境设置为默认值时,它会打印默认表示:
Published on: Feb. 22, 2013, 1:47 p.m.
当语言环境设置为el
.
Δημοσιεύτηκε: Τετάρτη 6 Φεβ 2013, 5:39 μμ.
更多信息在这里
编辑