
 X                 @   s  d  Z  d d l m Z d d l Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" g Z d# Z Gd$ d%   d% e  Z Gd& d'   d' e  Z e   Z [ d( d   Z e Z d) d   Z d* d   Z d+ d   Z d, d   Z d- d   Z d. d    Z e e e  Z e e e j  Z e e e j  Z d d/ d0  Z  d1 d2   Z! d d3 d  Z" d d4 d  Z# d d5 d!  Z$ d6 d   Z% d7 d	   Z& Gd8 d
   d
 e  Z' d9 d   Z( d: d   Z) d; d   Z* d< d   Z+ d= d> d  Z, d? d@   Z- d dA d  Z. dB d   Z/ dC dD   Z0 e e0 e j  Z1 dE d   Z2 e j3 dF  Z4 dG dH   Z5 d S)Iz
Internationalization support.
    )unicode_literalsN)six)ContextDecorator)
force_text)lazyactivate
deactivateoverridedeactivate_allget_languageget_language_from_requestget_language_infoget_language_bidicheck_for_language	to_locale
templatizestring_concatgettextgettext_lazygettext_noopugettextugettext_lazyugettext_noopngettextngettext_lazy	ungettextungettext_lazypgettextpgettext_lazy	npgettextnpgettext_lazyLANGUAGE_SESSION_KEYZ	_languagec               @   s   e  Z d  Z d S)TranslatorCommentWarningN)__name__
__module____qualname__ r&   r&   O/home/ubuntu/projects/ifolica/build/django/django/utils/translation/__init__.pyr"      s   r"   c               @   s"   e  Z d  Z d Z d d   Z d S)Transa  
    The purpose of this class is to store the actual translation function upon
    receiving the first call to that function. After this is done, changes to
    USE_I18N will have no effect to which function is served upon request. If
    your tests rely on changing USE_I18N, you can delete all the functions
    from _trans.__dict__.

    Note that storing the function with setattr will have a noticeable
    performance effect, as access to the function goes the normal path,
    instead of using __getattr__.
    c             C   sb   d d l  m } | j r, d d l m } n d d l m } t |  | t | |   t | |  S)Nr   )settings)
trans_real)
trans_null)Zdjango.confr)   ZUSE_I18NZdjango.utils.translationr*   r+   setattrgetattr)selfZ	real_namer)   transr&   r&   r'   __getattr__7   s    	zTrans.__getattr__N)r#   r$   r%   __doc__r0   r&   r&   r&   r'   r(   *   s   r(   c             C   s   t  j |   S)N)_transr   )messager&   r&   r'   r   F   s    c             C   s   t  j |   S)N)r2   r   )r3   r&   r&   r'   r   L   s    c             C   s   t  j |  | |  S)N)r2   r   )singularpluralnumberr&   r&   r'   r   P   s    c             C   s   t  j |   S)N)r2   r   )r3   r&   r&   r'   r   T   s    c             C   s   t  j |  | |  S)N)r2   r   )r4   r5   r6   r&   r&   r'   r   X   s    c             C   s   t  j |  |  S)N)r2   r   )contextr3   r&   r&   r'   r   \   s    c             C   s   t  j |  | | |  S)N)r2   r   )r7   r4   r5   r6   r&   r&   r'   r   `   s    c                s   t   t j  r4   d <t       } nm  j    G   f d d   d     t   f d d         }     f d d   | _ | S)Nr6   c                   sF   e  Z d  Z  f d d   Z d d   Z     f d d   Z d S)z&lazy_number.<locals>.NumberAwareStringc                s   t    d  S)Nr4   )bool)r.   )kwargsr&   r'   __bool__p   s    z/lazy_number.<locals>.NumberAwareString.__bool__c             S   s   t  |   j |   S)N)typer:   )r.   r&   r&   r'   __nonzero__s   s    z2lazy_number.<locals>.NumberAwareString.__nonzero__c                s   t  | t  rK  rK y |  } WqQ t k
 rG t d    YqQ Xn | } |  d <     } y | | } Wn t k
 r Yn X| S)Nz|Your dictionary lacks key '%s'. Please provide it, because it is required to determine whether string is singular or plural.r6   )
isinstancedictKeyError	TypeError)r.   ZrhsZnumber_valueZ
translated)funcr9   r6   r&   r'   __mod__v   s    
z.lazy_number.<locals>.NumberAwareString.__mod__N)r#   r$   r%   r:   r<   rB   r&   )rA   r9   r6   r&   r'   NumberAwareStringo   s   rC   c                 s       S)Nr&   )r9   )rC   r&   r'   <lambda>   s    zlazy_number.<locals>.<lambda>c                  s   t       f f S)N)_lazy_number_unpickler&   )rA   r6   original_kwargsresultclassr&   r'   rD      s    )r=   r   integer_typesr   copy
__reduce__)rA   rG   r6   r9   proxyr&   )rC   rA   r9   r6   rF   rG   r'   lazy_numberh   s    
"!rL   c             C   s   t  |  | d | | S)Nr6   )rL   )rA   rG   r6   r9   r&   r&   r'   rE      s    rE   c          	   C   s   t  t t d |  d | d | S)Nr4   r5   r6   )rL   r   str)r4   r5   r6   r&   r&   r'   r      s    c          	   C   s"   t  t t j d |  d | d | S)Nr4   r5   r6   )rL   r   r   	text_type)r4   r5   r6   r&   r&   r'   r      s    c             C   s(   t  t t j d |  d | d | d | S)Nr7   r4   r5   r6   )rL   r   r   rN   )r7   r4   r5   r6   r&   r&   r'   r       s    c             C   s   t  j |   S)N)r2   r   )languager&   r&   r'   r      s    c               C   s
   t  j   S)N)r2   r   r&   r&   r&   r'   r      s    c               @   s7   e  Z d  Z d d d  Z d d   Z d d   Z d S)	r	   Fc             C   s   | |  _  | |  _ d  S)N)rO   r   )r.   rO   r   r&   r&   r'   __init__   s    	zoverride.__init__c             C   s6   t    |  _ |  j d  k	 r+ t |  j  n t   d  S)N)r   old_languagerO   r   r
   )r.   r&   r&   r'   	__enter__   s    zoverride.__enter__c             C   s=   |  j  d  k r t   n  |  j r, t   n t |  j   d  S)N)rQ   r
   r   r   )r.   exc_type	exc_value	tracebackr&   r&   r'   __exit__   s
    
	
zoverride.__exit__N)r#   r$   r%   rP   rR   rV   r&   r&   r&   r'   r	      s   c               C   s
   t  j   S)N)r2   r   r&   r&   r&   r'   r      s    c               C   s
   t  j   S)N)r2   r   r&   r&   r&   r'   r      s    c             C   s   t  j |   S)N)r2   r   )	lang_coder&   r&   r'   r      s    c             C   s   t  j |   S)N)r2   r   )rO   r&   r&   r'   r      s    Fc             C   s   t  j |  |  S)N)r2   r   )request
check_pathr&   r&   r'   r      s    c             C   s   t  j |   S)N)r2   get_language_from_path)pathr&   r&   r'   rZ      s    rZ   c             C   s   t  j |  |  S)N)r2   r   )srcoriginr&   r&   r'   r      s    c               C   s
   t  j   S)N)r2   r
   r&   r&   r&   r'   r
      s    c              G   s   d j  d d   |  D  S)zu
    Lazy variant of string concatenation, needed for translations that are
    constructed from multiple parts.
     c             s   s   |  ] } t  |  Vq d  S)N)r   ).0sr&   r&   r'   	<genexpr>   s    z!_string_concat.<locals>.<genexpr>)join)stringsr&   r&   r'   _string_concat   s    rd   c             C   s   d d l  m } yC | |  } d | k rL d | k rL t | d d  } n | } Wn} t k
 r d |  k r t d |    n  |  j d  d } y | | } Wn( t k
 r t d |  | f   Yn XYn X| r t | d  | d <n  | S)	Nr   )	LANG_INFOfallbackname-zUnknown language code %s.z Unknown language code %s and %s.Zname_translated)Zdjango.conf.localere   r   r?   splitr   )rW   re   Z	lang_infoinfoZgeneric_lang_coder&   r&   r'   r      s"    

 z\s*
\s*c             C   s   t  j d |  j    S)N )trim_whitespace_resubstrip)r`   r&   r&   r'   trim_whitespace   s    ro   )6r1   
__future__r   reZdjango.utilsr   Zdjango.utils.decoratorsr   Zdjango.utils.encodingr   Zdjango.utils.functionalr   __all__r!   SyntaxWarningr"   objectr(   r2   r   r   r   r   r   r   r   r   rM   r   rN   r   r   rL   rE   r   r   r    r   r   r	   r   r   r   r   r   rZ   r   r
   rd   r   r   compilerl   ro   r&   r&   r&   r'   <module>   sl   				(