
    k"gr                     r    d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ  G d d	e      Zy
)    )settings) is_language_prefix_patterns_used)HttpResponseRedirect)get_script_prefixis_valid_path)translation)patch_vary_headers)MiddlewareMixinc                        e Zd ZdZeZd Zd Zy)LocaleMiddlewarez
    Parse a request and decide 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).
    c                 J   t        |dt        j                        }t        |      \  }}t	        j
                  ||      }t	        j                  |j                        }|s|r|st        j                  }t	        j                  |       t	        j                         |_        y )Nurlconf)
check_path)getattrr   ROOT_URLCONFr   r   get_language_from_requestget_language_from_path	path_infoLANGUAGE_CODEactivateget_language)selfrequestr   i18n_patterns_usedprefixed_default_languagelanguagelanguage_from_paths          Q/var/www/html/djangosite/lib/python3.12/site-packages/django/middleware/locale.pyprocess_requestz LocaleMiddleware.process_request   s    '9h.C.CD -W5	
%88 2
 )??@Q@QR""---HX& + 8 8 :    c                    t        j                         }t        j                  |j                        }t	        |dt
        j                        }t        |      \  }}|j                  dk(  r|s|r|rd||j                  }t        ||      }	|	 xr5 t
        j                  xr# |j                  d       xr t        d|z  |      }
|	s|
rQt               }|j                  |
      j                  |||dd      }| j                  |      }t!        |d       |S |r|st!        |d       |j"                  j%                  d	|       |S )
Nr   i  /z%s/)force_append_slash   )Accept-LanguageCookie)r%   zContent-Language)r   r   r   r   r   r   r   r   status_coder   APPEND_SLASHendswithr   get_full_pathreplaceresponse_redirect_classr	   headers
setdefault)r   r   responser   r   r   r   r   language_path
path_validpath_needs_slashscript_prefixlanguage_urlredirects                 r   process_responsez!LocaleMiddleware.process_response&   sZ   ++-(??@Q@QR'9h.C.CD -W5	
%   C'&") (01B1BCM&}g>J#-~  %% B%..s33B!%-"7A  - 1 3  '44'7  5  '-M8)LaP   77E"8-JK"'9x)=>##$6Ar    N)__name__
__module____qualname____doc__r   r,   r   r6    r    r   r   r   
   s     3;&*r    r   N)django.confr   django.conf.urls.i18nr   django.httpr   django.urlsr   r   django.utilsr   django.utils.cacher	   django.utils.deprecationr
   r   r;   r    r   <module>rC      s(      B , 8 $ 1 4F Fr    