0

ブラウザ/セッション/ウェブサーバーがロケールと考えるものを使用するのではなく、ユーザーの UserProfile に設定された国コード/ロケールに基づいて Django でローカリゼーションを実行したいと考えています。

django テンプレートでこれを行う方法はありますか?

たとえば、の動作を変更する方法

{% load l10n %}
{{ value|time|localize }}

リクエストコンテキストではなく、プロファイルに保存されているものに基づいて日付をフォーマットするようにしますか?

4

1 に答える 1

2

Django provides LocaleMiddleware that does most of what you are after:

Enables language selection based on data from the request. It customizes content for each user. See the internationalization documentation.

The method it uses to guess the language is the same that is used by the translation machinery; that is it looks for a django_language variable in the session, if that exists and is a valid language, it will set that language for the request. See how django discovers language preference.

Once you enable LocaleMiddleware and set django_language from the user's profile at your login view everything should work.

于 2012-06-18T06:58:13.720 に答える