2

我正在尝试根据用户提供的语言环境设置模板中日期的格式。由于页面的其余部分将保留在原始本地 ('en') 中,我只希望对用户提供的数据进行格式化。

例如,日期。

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

有没有办法在块内的模板中设置语言环境,例如。就像是

{% locale|'en_GB' %}
    {{ my_date|localize }}
{% endlocale %}
4

1 回答 1

3

您不需要在模板中做任何明确的事情。

在你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 μμ.

更多信息在这里

编辑

嗯,我刚刚意识到您要求提供特定的模板块或值。也许本地化模板过滤器本地化模板标签 与您的具体情况更相关?

于 2013-05-10T13:04:24.570 回答