【问题标题】:django format date on user supplied locale用户提供的区域设置上的 django 格式日期
【发布时间】:2013-05-05 00:46:30
【问题描述】:

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

例如,日期。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    在您的settings.py 中定义FORMAT_MODULE_PATH 设置。 喜欢:

    FORMAT_MODULE_PATH = 'myproject.myapp.formats'
    

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

    就我而言,我的项目的默认语言是en,但我也支持el(希腊语)。 所以我在我的settings.py 中有这个:

    FORMAT_MODULE_PATH = 'myproject.websiteapp.formats'
    

    myproject/websiteapp/formats 目录中,我有一个带有formats.py 文件的el 包,例如:

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

    更多信息here

    编辑

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-02
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      相关资源
      最近更新 更多