我正在尝试根据用户提供的区域设置在模板中设置日期格式。由于页面的其余部分将保留在原始本地('en'),我只想要我的用户' 提供要格式化的数据。
例如,日期。
英国的用户应该能够在其网页上的日期使用l10n
,但我不想将整个网站设置为en_GB
。
有没有办法在块内的模板中设置区域设置,例如。
之类的东西{% locale|'en_GB' %}
{{ my_date|localize }}
{% endlocale %}
答案 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模板标记 与您的具体案例更相关?