
    Xj                     h    d dl mZ d dlmZ ddlmZ d dlmZ  ee          Z	 G d de          Z
dS )	    )Request)BaseHTTPMiddleware   )
set_locale)
get_loggerc                   R     e Zd Zd
def fdZdefdZdedefdZdedefd	Z xZ	S )LanguageMiddlewarezh_CNdefault_localec                 X    t                                          |           || _        d S )N)super__init__r   )selfappr   	__class__s      @/lsinfo/ai/hellotax_ai/base_platform/app/core/i18n/middleware.pyr   zLanguageMiddleware.__init__   s)    ,    requestc                    K   |                      |          }t          |           t                              d| |            ||           d {V }|S )NzLanguage set to: )lang)_detect_localer   loggerinfo)r   r   	call_nextlocaleresponses        r   dispatchzLanguageMiddleware.dispatch   sl      $$W--6000v>>>"7++++++++r   returnc                 h   |j                             d          }|r|                     |          S |j                            d          }|r_|                    d          }|rH|d                             d          d                                         }|                     |          S | j        S )Nr   zaccept-language,r   ;)query_paramsget_normalize_localeheaderssplitstripr   )r   r   
lang_paramaccept_language	languagesprimary_langs         r   r   z!LanguageMiddleware._detect_locale   s    )--f55
 	6))*555!/--.?@@ 	<'--c22I <(|11#66q9??AA--l;;;""r   r   c                     |                                                     dd          }dddddd}|                    || j                  S )N-_en_USr
   )enen_uszhzh_cnzh_hans)lowerreplacer#   r   )r   r   
locale_maps      r   r$   z$LanguageMiddleware._normalize_locale#   sS    ''S11
 

 ~~fd&9:::r   )r
   )
__name__
__module____qualname__strr   r   r   r   r$   __classcell__)r   s   @r   r	   r	   
   s        - -C - - - - - -g    
#g 
## 
# 
# 
# 
#	; 	; 	; 	; 	; 	; 	; 	; 	; 	;r   r	   N)fastapir   starlette.middleware.baser   
translatorr   common_loggingr   r8   r   r	    r   r   <module>rB      s          8 8 8 8 8 8 " " " " " " % % % % % %	H		"; "; "; "; ";+ "; "; "; "; ";r   