mic*_*x5d 8 python django calendar localization internationalization
当使用djangos(或更好的gettext)本地化机制时,很难获得当前语言环境的日期名称.通常,我会使用calendar:
calendar.day_name[current_day]
Run Code Online (Sandbox Code Playgroud)
哪个current_day是0到6之间的int.这不起作用,因为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'
Run Code Online (Sandbox Code Playgroud)
translation.activate在已经激活翻译的请求的上下文中是无用的.我在这里用它是出于示例目的.
如果您没有特定日期并且需要一周中某天的名称,请使用ugettext进行翻译:
>>> import calendar
>>> from django.utils import translation
>>> from django.utils.translation import ugettext as _
>>> translation.activate('fr')
>>> _(calendar.day_name[0])
'lundi'
Run Code Online (Sandbox Code Playgroud)