gpt4 book ai didi

python - 如何在 Django 中获取本地化的日名称?

转载 作者:太空狗 更新时间:2023-10-29 20:58:10 26 4
gpt4 key购买 nike

当使用 djangos(或更好的 gettext 的)本地化机制时,很难获得当前语言环境的日期名称。通常,我会使用 calendar:

calendar.day_name[current_day]

current_day 是一个介于 0 和 6 之间的整数。这是行不通的,因为 Django 似乎没有正确设置请求的语言环境。月份名称的情况相同。

那么,如何正确本地化日历名称呢?

最佳答案

您可以使用 django.utils.formats.date_format

>>> from django.utils.formats import date_format
>>> from django.utils import translation
>>> from datetime import date
>>> date_format(date.today(), 'l')
'Saturday'
>>> translation.activate('fr')
>>> date_format(date.today(), 'l')
'samedi'

translation.activate 在已激活翻译的请求上下文中无用。我在这里使用它作为示例。

如果您没有特定日期并且需要星期几的名称,只需使用 gettext 来翻译它:

>>> import calendar
>>> from django.utils import translation
>>> from django.utils.translation import gettext as _
>>> translation.activate('fr')
>>> _(calendar.day_name[0])
'lundi'

请注意,尽管“day_name”是一个变量,_(day_name) 起作用的原因是因为 day names are already translated by Django , 因此不需要被 gettext 发现。

关于python - 如何在 Django 中获取本地化的日名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38029827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com