def process_request(self, request: Request): # No locale for static media # This avoids touching user session, which means we avoid # setting `Vary: Cookie` as a response header which will # break HTTP caching entirely. self.__skip_caching = request.path_info.startswith(settings.ANONYMOUS_STATIC_PREFIXES) if self.__skip_caching: return safe_execute(self.load_user_conf, request, _with_transaction=False) lang_code = request.GET.get("lang") # user is explicitly forcing language if lang_code: try: language = _trans.get_supported_language_variant(lang_code) except LookupError: super().process_request(request) else: _trans.activate(language) request.LANGUAGE_CODE = _trans.get_language() else: super().process_request(request)