/django/middleware/locale.py
Python | 25 lines | 14 code | 4 blank | 7 comment | 1 complexity | 614a9d3b847641b8dbba802414eda07e MD5 | raw file
Possible License(s): BSD-3-Clause
- "this is the locale selecting middleware that will look at accept headers"
- from django.utils.cache import patch_vary_headers
- from django.utils import translation
- class LocaleMiddleware(object):
- """
- This is a very simple middleware that parses a request
- and decides what translation object to install in the current
- thread context. This allows pages to be dynamically
- translated to the language the user desires (if the language
- is available, of course).
- """
- def process_request(self, request):
- language = translation.get_language_from_request(request)
- translation.activate(language)
- request.LANGUAGE_CODE = translation.get_language()
- def process_response(self, request, response):
- patch_vary_headers(response, ('Accept-Language',))
- if 'Content-Language' not in response:
- response['Content-Language'] = translation.get_language()
- translation.deactivate()
- return response