2017-12-29 13 views
1

私は、ログイン時に私のDjangoのアプリで言語を設定します。私はしたいと何が起こるすると、そのアプリのdoesntの負荷言語ですDjango - 手動で言語を設定するには?

user_language = user.profile.language 
translation.activate(user_language) 
request.session['django_language'] = user_language 
request.session[translation.LANGUAGE_SESSION_KEY] = user_language 

。 テンプレートで使用する場合は、{% get_current_language %}テンプレート「en」または「pl」を参照してください。私は 'ページをリフレッシュする'と言語の変更を押します。また、あるユーザーの言語を変更すると、すべてのユーザーに影響を与えることも奇妙です。

私の質問は、手動で言語を設定して、一定のままにして、特定のユーザーのみに設定することです。ログイン直後に言語を設定したいと思います。

答えて

1

ユーザーが独自の言語設定を制御できるようにする組み込みのDjangoミドルウェアがあります。 Django docs (read this link)から

あなたは、個々のユーザーは、彼らが好むどの言語を指定できるようにしたい場合は、あなたもLocaleMiddlewareを使用する必要があります。 LocaleMiddlewareは、リクエストからのデータに基づいて言語選択を可能にします。各ユーザーのコンテンツをカスタマイズします。

get_current_language()は、Translation docsから必要なものすべてを完全に実装したことを確認した後に使用できます。

+1

このサイトに案内してくれてありがとう。 MIDDLEWARE設定に 'django.middleware.locale.LocaleMiddleware'を追加するだけでした。 – gerpaick

関連する問題