2009-08-23 6 views
5

Gram z systemem i18n Django i wydaje się, że w większości działa. Jednak daty w kodzie modelu wydają się powodować problem.Django i18n i python locales (i daty)

Używam datetime.strftime do zapełnienia kilku krotek WYBORÓW, które są następnie używane w formularzach.

Z tego, co zrozumiałem, django ustawi język na wybrany przez użytkownika, tak aby datetime.strftime() wyświetlał się w odpowiednim języku, ale wydaje się, że to się nie zdarza.

Czego mi tu brakuje?

Jeśli ustawię lokalnie ręcznie (np. Locale.setlocale (locale.LC_TIME, "de_DE.UTF-8")) datetime jest tłumaczony poprawnie.

Dzięki,

Tom

Odpowiedz

3

Django nie ustawione locale przetłumaczenia tylko ładuje katalogu tłumaczeń. Aby uzyskać pożądany efekt, musisz ustawić ustawienia regionalne (co nie jest dobrym rozwiązaniem, ponieważ działa w całym procesie) lub użyć specjalistycznej biblioteki. Polecam Babel, która ma przyjemną integrację z Django.

+1

Ah, dziękuję Zgoda. Raczej uważam, że dokumenty django powinny być trochę bardziej wyraźne, raczej sugerują, że i18n robi więcej, niż faktycznie robi. –

+0

Powiedziałbym, że "i18n" jest reklamowane. Format daty i wartości pieniężne to "l10n" (lokalizacja), które i tak są nieobecne w Django. To domena biblioteki Babel. :) – zgoda

1

I niedawno do czynienia z podobnym problemem, ale udało się rozwiązać ten problem za pomocą format zamiast pytona strftime

+0

Próbowałem z formatem, ale% B i% b nie są rozpoznawane :(Dowolna pomoc? – Natim

+0

% B to% F i% b to% f w funkcji formatu :) –

+0

dziękuję kod22 za rozwiązanie formatu, I nie chciałem używać babel do mojego małego projektu. działaj zgodnie z oczekiwaniami. –