ó
ù¢TQc           @  s  d  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 g Z	 d  e
 f d! „  ƒ  YZ e ƒ  Z [ d" „  Z e Z d# „  Z d$ „  Z d% „  Z d& „  Z d' „  Z d( „  Z e e e ƒ Z e e e ƒ Z e e e j ƒ Z e e e j ƒ Z e e e j ƒ Z e e e j ƒ Z d) „  Z d* „  Z d+ e
 f d, „  ƒ  YZ d- „  Z  d. „  Z! d/ „  Z" d0 „  Z# e$ d1 „ Z% d2 „  Z& d7 d3 „ Z( d4 „  Z) d5 „  Z* e e* e j ƒ Z+ d6 „  Z, d7 S(8   u   
Internationalization support.
iÿÿÿÿ(   t   unicode_literals(   t
   force_text(   t   lazy(   t   sixu   activateu
   deactivateu   overrideu   deactivate_allu   get_languageu   get_language_from_requestu   get_language_infou   get_language_bidiu   check_for_languageu	   to_localeu
   templatizeu   string_concatu   gettextu   gettext_lazyu   gettext_noopu   ugettextu   ugettext_lazyu   ugettext_noopu   ngettextu   ngettext_lazyu	   ungettextu   ungettext_lazyu   pgettextu   pgettext_lazyu	   npgettextu   npgettext_lazyt   Transc           B  s   e  Z d  Z d „  Z RS(   u  
    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(   Niÿÿÿÿ(   t   settings(   t
   trans_real(   t
   trans_null(   t   django.confR   t   USE_I18Nt   django.utils.translationR   R   t   setattrt   getattr(   t   selft	   real_nameR   t   trans(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyt   __getattr__-   s    	(   t   __name__t
   __module__t   __doc__R   (    (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR       s   c         C  s   t  j |  ƒ S(   N(   t   _transt   gettext_noop(   t   message(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR   ;   s    c         C  s   t  j |  ƒ S(   N(   R   t   gettext(   R   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR   @   s    c         C  s   t  j |  | | ƒ S(   N(   R   t   ngettext(   t   singulart   pluralt   number(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR   C   s    c         C  s   t  j |  ƒ S(   N(   R   t   ugettext(   R   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR   F   s    c         C  s   t  j |  | | ƒ S(   N(   R   t	   ungettext(   R   R   R   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR   I   s    c         C  s   t  j |  | ƒ S(   N(   R   t   pgettext(   t   contextR   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR   L   s    c         C  s   t  j |  | | | ƒ S(   N(   R   t	   npgettext(   R   R   R   R   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR    O   s    c         C  s   t  j |  ƒ S(   N(   R   t   activate(   t   language(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR!   Y   s    c           C  s
   t  j ƒ  S(   N(   R   t
   deactivate(    (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR#   \   s    t   overridec           B  s&   e  Z e d  „ Z d „  Z d „  Z RS(   c         C  s"   | |  _  | |  _ t ƒ  |  _ d  S(   N(   R"   R#   t   get_languaget   old_language(   R   R"   R#   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyt   __init__`   s    		c         C  s*   |  j  d  k	 r t |  j  ƒ n t ƒ  d  S(   N(   R"   t   NoneR!   t   deactivate_all(   R   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyt	   __enter__e   s    c         C  s$   |  j  r t  ƒ  n t |  j ƒ d  S(   N(   R#   R!   R&   (   R   t   exc_typet	   exc_valuet	   traceback(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyt   __exit__k   s    	
(   R   R   t   FalseR'   R*   R.   (    (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR$   _   s   	c           C  s
   t  j ƒ  S(   N(   R   R%   (    (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR%   q   s    c           C  s
   t  j ƒ  S(   N(   R   t   get_language_bidi(    (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR0   t   s    c         C  s   t  j |  ƒ S(   N(   R   t   check_for_language(   t	   lang_code(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR1   w   s    c         C  s   t  j |  ƒ S(   N(   R   t	   to_locale(   R"   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR3   z   s    c         C  s   t  j |  | ƒ S(   N(   R   t   get_language_from_request(   t   requestt
   check_path(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR4   }   s    c         C  s   t  j |  ƒ S(   N(   R   t   get_language_from_path(   t   path(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR7   €   s    c         C  s   t  j |  | ƒ S(   N(   R   t
   templatize(   t   srct   origin(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR9   ƒ   s    c           C  s
   t  j ƒ  S(   N(   R   R)   (    (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyR)   †   s    c          G  s&   d j  g  |  D] } t | ƒ ^ q ƒ S(   uu   
    Lazy variant of string concatenation, needed for translations that are
    constructed from multiple parts.
    u    (   t   joinR   (   t   stringst   s(    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyt   _string_concat‰   s    c         C  sD   d d l  m } y | |  SWn! t k
 r? t d |  ƒ ‚ n Xd  S(   Niÿÿÿÿ(   t	   LANG_INFOu   Unknown language code %r.(   t   django.conf.localeR@   t   KeyError(   R2   R@   (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyt   get_language_info‘   s
    N(-   R   t
   __future__R    t   django.utils.encodingR   t   django.utils.functionalR   t   django.utilsR   t   __all__t   objectR   R   R   t   ugettext_noopR   R   R   R   R   R    t   strt   gettext_lazyt   ngettext_lazyt	   text_typet   ugettext_lazyt   ungettext_lazyt   pgettext_lazyt   npgettext_lazyR!   R#   R$   R%   R0   R1   R3   R/   R4   R7   R(   R9   R)   R?   t   string_concatRC   (    (    (    s:   ../Django//lib/python/django/utils/translation/__init__.pyt   <module>   sZ   																			