Search code examples
pythondjangointernationalizationdjango-users

Django - Could i18n.set_language() store in User profile


I would like i18n.set_language() to store the language into an eventually available user profile when a language is selected by a user.

Django should also use this to discover my language.

Is it a good idea ? If yes how could I do it ?


Solution

    1. See How to override a view from an external Django app -> How to override without forking -> Overriding a view to make "i18n.set_language() to store the language into an eventually available user profile"

    2. Copy django-user-accounts middleware and change get_language_for_user.

    3. Place the middleware after django.middleware.locale.LocaleMiddleware, because this sets the default language based on the request so that's still useful for anonymous visitors, so you want this executed before your own middleware.