0

I'm attempting to implement an auto language switcher in Django based on the client's IP address. For testing purposes, I've created a middleware to set the language to French ('fr').

class SetFrenchLanguageMiddleware:
def __init__(self, get_response):
    self.get_response = get_response

def __call__(self, request):
    user_language = 'fr'
    translation.activate(user_language)
    request.LANGUAGE_CODE = translation.get_language()

    response = self.get_response(request)

    response.set_cookie('django_language', user_language)
    print("language set to ", user_language)
    return response

When I access a page, I see "language set to fr" printed in the console, indicating that the middleware is executed. However:

The content is still displayed in English, the default language. The URL prefix doesn't change to "/fr/". Could someone help me understand why this isn't working as expected and guide me on how to resolve the issue?

Sabrebar
  • 89
  • 7
  • I'd like to note that my website supports the French language, and it functions correctly when the URL is prefixed with "/fr/. – Sabrebar Aug 11 '23 at 19:23

0 Answers0