
    XjM                         U d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  ee	          Z
 edd          Zee         ed<    G d	 d
          Zi Zeeef         ed<   ddedz  defdZdefdZdefdZdS )    N)
ContextVar)Path)Any)
get_loggercurrent_localezh_CN)defaultc                   N    e Zd ZddefdZd ZdedefdZdded	edz  defd
ZdS )
Translatorr   localec                 J    || _         i | _        |                                  d S N)r   translations_load_translations)selfr   s     @/lsinfo/ai/hellotax_ai/base_platform/app/core/i18n/translator.py__init__zTranslator.__init__   s)    ,.!!!!!    c                 ~   t          t                    j        dz  | j         dz  }|                                rft          |d          5 }t          j        |          | _        d d d            n# 1 swxY w Y   t          
                    d| j                    d S t                              d| j         d           t          t                    j        dz  dz  }|                                rEt          |d          5 }t          j        |          | _        d d d            d S # 1 swxY w Y   d S d S )	Nlocalesz.jsonzutf-8)encodingz Translations loaded for locale: z'Translation file not found for locale: z, falling back to zh_CNz
zh_CN.json)r   __file__parentr   existsopenjsonloadr   loggerinfowarning)r   locale_fileffallback_files       r   r   zTranslator._load_translations   s   8nn+i7T[:O:O:OO 		5kG444 1$(IaLL!1 1 1 1 1 1 1 1 1 1 1 1 1 1 1KKH4;HHIIIIINNiT[iiijjj NN1I=LM##%% 5-'::: 5a(,	!D%5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 55 5s$   A33A7:A7	D00D47D4keyreturnc                    |                     d          }| j        }	 |D ]
}||         }t          |t                    r|r |j        di |S t          |t                    r|n|S # t
          t          f$ r |cY S w xY w)N. )splitr   
isinstancestrformatKeyError	TypeError)r   r$   kwargskeysvalueks         r   tzTranslator.t    s    yy~~!	 ! !a%%% .& .#u|--f---&uc22;55;)$ 	 	 	JJJ	s   0A( A( (A>=A>Nr	   c                 6     | j         |fi |}||k    r||S |S r   )r3   )r   r$   r	   r/   results        r   getzTranslator.get,   s3    &&v&&S==W0Nr   )r   r   )__name__
__module____qualname__r+   r   r   r3   r6   r(   r   r   r   r      s        " "s " " " "
5 5 5
S 
s 
 
 
 
 s S4Z S      r   r   _translatorsr   r%   c                     | t                                           } | t          vrt          |           t          | <   t          |          S r   )r   r6   r:   r   r   s    r   get_translatorr=   6   s@    ~##%%\!!)&11Vr   c                 :    t                               |            d S r   )r   setr<   s    r   
set_localer@   >   s    vr   c                  4    t                                           S r   )r   r6   r(   r   r   
get_localerB   B   s    r   r   )r   contextvarsr   pathlibr   typingr   common_loggingr   r7   r   r   r+   __annotations__r   r:   dictr=   r@   rB   r(   r   r   <module>rI      s:    " " " " " "             % % % % % %	H		",*-=w"O"O"O
3 O O O$ $ $ $ $ $ $ $N ')d3
?# ( ( (   3:          s     C            r   