2009-08-23 12 views
5

私はDjangoのi18nシステムで遊んでいましたが、ほとんどの場合動作しているようです。しかし、モデルコードの日付は問題を引き起こしているようです。Django i18nとpythonのロケール(と日付)

私は、datetime.strftimeを使用していくつかのCHOICESタプルを作成し、フォームで使用します。

djangoは、datetime.strftime()が適切な言語で出力されるようにロケールをユーザーの選択に設定しますが、これは起こりそうにありません。

私はここで何が欠けていますか?

ロケールを手動で設定した場合(例:locale.setlocale(locale.LC_TIME、 'de_DE.UTF-8'))、datetimeは正しく変換されます。

おかげで、

トム

答えて

3

Djangoは単なる翻訳カタログをロードし、翻訳のためのロケールを設定しません。望ましい効果を得るには、ロケールを設定するか(これはプロセス全体で機能するため適切ではありません)、または特殊なライブラリを使用してください。私はBabelをお勧めします。これには素晴らしいDjangoの統合があります。

+1

ああformatを使用して問題を解決するために管理しているあなたはzgoda感謝。むしろdjangoのドキュメントはもっと明白でなければならないと思っています。 –

+0

私はそれが "i18n"と宣伝していると言いたい。日付と金額の書式は "ln"(ローカリゼーション)で、Djangoには存在しません。それはバベルの図書館の領域です。 :) – zgoda

1

私は最近、同様の問題に直面したが、代わりにpythonのstrftime

+0

フォーマットで試しましたが、%Bと%bは認識されません:(助けがありますか? – Natim

+0

%Bは%Fで、%bはフォーマット関数で%fです:) –

+0

フォーマットソリューションのcode22に感謝します。私の小規模なプロジェクトにバベルを使用したくなかった。期待通りに働く –