2016-06-25 16 views
6

Yerel saat mekanizması (veya daha iyi gettext) yerelleştirme mekanizması kullanıldığında, geçerli yerel ayarların gün isimlerini almak zordur. Genellikle ben calendar kullanırsınız: Django doğru istenen yerel ayarı belirlemek için görünmüyor gibi current_day Bu işe yaramaz 0 ila 6 arasında bir int olduğunuDjango'da yerelleştirilmiş gün isimleri nasıl edinilir?

calendar.day_name[current_day] 

. Ay isimleri için aynı durum.

Takvim adları doğru şekilde nasıl yerelleştirilir?

cevap

5

django.utils.formats.date_format'u kullanabilirsiniz.

>>> 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 çeviri zaten aktive bir isteğin bağlamında işe yaramaz. Bunu örnek olarak kullandım. Belirli bir tarihi var ve haftanın bir gününün adını gerekmiyorsa

, sadece çevirmek için ugettext kullanın:

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