2009-08-23 22 views
5

Django'nun i18n sistemi ile oynuyordum ve çoğunlukla çalışıyor gibi görünüyor. Ancak, model kodundaki tarihler bir soruna neden oluyor gibi görünüyor.Django i18n ve python yerelleri (ve tarihleri)

Daha sonra formlarda kullanılan birkaç CHOICES tuplesini doldurmak için datetime.strftime kullanıyorum.

Anladığım kadarıyla, django yerel ayarı kullanıcının tercihine göre ayarlayacaktır, böylece datetime.strftime() öğesi uygun dilde çıkacaktır, ancak bu gerçekleşmez.

Burada nelerin eksik?

Yerel ayarı elle ayarlıyorum (örn. Locale.setlocale (locale.LC_TIME, 'de_DE.UTF-8')) datetime doğru şekilde çeviri yapar.

sayesinde

Tom

cevap

3

Django sadece çeviri kataloğunu yükler, çeviri için yerel belirlemez. İstenilen etkiyi elde edebilmek için ya ayar setini (süreç boyunca çalıştığından beri iyi bir seçenek değildir) ya da özel kütüphane kullanmış olursunuz. Güzel Django entegrasyonu olan Babel'u öneririm.

+1

Ah ait format kullanarak sorunu çözmek için başardınız Eğer Zgoda'nın teşekkür ederim. Django dokümanlarının biraz daha açık olması gerektiğini düşünmekteyim, i18n'nin aslında daha fazla iş yaptığını öne sürüyorlar. –

+0

Reklamı yapılan "i18n" olduğunu söyleyebilirim. Biçimlendirme tarihleri ​​ve parasal değerler, Django'da bulunmayan "l10n" (yerelleştirme) dır. Babil kütüphanesinin alanı. :) – zgoda

1

Geçenlerde, benzer sorunla karşı karşıya ama bunun yerine piton strftime

+0

Biçimde denedim ama% B ve% b tanınmadı :(Herhangi bir yardım? – Natim

+0

% B,% F ve% b,% 100 işlevi biçimindedir :) –

+0

biçim çözümü için kod21'e teşekkür ederim, ben Küçük projem için babel kullanmak istemedim. beklendiği gibi çalışıyor –