|  | "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',)) | 
|  | response['Content-Language'] = translation.get_language() | 
|  | translation.deactivate() | 
|  | return response |