;
Êâ"Ic               @   s«  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d d d d d d	 d
 d d d d d g Z	 e j
 j e j d d ƒ Z d „  Z d „  Z d „  Z Gd „  d ƒ Z Gd „  d e ƒ Z d d d d „ Z i  Z d d d d& d d „ Z d d d d „ Z i  a i  a d a d d „ Z d d „ Z d d „ Z d „  Z d „  Z  d  „  Z! d! „  Z" d" „  Z# d# „  Z$ d$ „  Z% d% „  Z& e Z' d S('   uª  Internationalization and localization support.

This module provides internationalization (I18N) and localization (L10N)
support for your Python programs by providing an interface to the GNU gettext
message catalog library.

I18N refers to the operation by which a program is made aware of multiple
languages.  L10N refers to the adaptation of your program, once
internationalized, to the local language and cultural habits.

i    N(   u   ENOENTu   NullTranslationsu   GNUTranslationsu   Catalogu   findu   translationu   installu
   textdomainu   bindtextdomainu   dgettextu	   dngettextu   gettextu   ngettextu   shareu   localec             C   s   |  o | S| Sd S(   uy   
    Implements the C expression:

      condition ? true : false

    Required to correctly interpret plural forms.
    N(    (   u	   conditionu   trueu   false(    (    u$   /mit/python/lib/python3.0/gettext.pyu   test=   s    c                sË  d d l  m } d d l ‰ d d l } | j | |  ƒ j ƒ } y ‡ f d †  | Dƒ } Wn# | j k
 o t d ƒ ‚ Yn X| o t d ƒ ‚ n |  j d d ƒ }  |  j d	 d
 ƒ }  t	 j
 d ƒ ‰  ˆ  j d |  ƒ }  t	 j
 d ƒ ‰  ‡ ‡  f d †  ‰ d g } xœ |  D]” } | d k o | j d ƒ q| d k oS t | ƒ d k o t d ƒ ‚ n ˆ  j ˆ | j ƒ  ƒ } | d c d | 7<q| d c | 7<qWˆ  j ˆ | j ƒ  ƒ }  t d |  ƒ S(   u   Gets a C expression as used in PO files for plural forms and returns a
    Python lambda function that implements an equivalent expression.
    i    (   u   StringIONc                sD   g  } |  ]6 } | d  ˆ  j  k o | d d k o | | q
 q
 S(   i    i   u   n(   u   NAME(   u   .0u   _[1]u   x(   u   token(    u$   /mit/python/lib/python3.0/gettext.pyu
   <listcomp>T   s    u;   plural forms expression error, maybe unbalanced parenthesisu*   plural forms expression could be dangerousu   &&u    and u   ||u    or u   \!([^=])u    not \1u   (.*?)\?(.*?):(.*)c                s8   d |  j  d ƒ |  j  d ƒ ˆ j ˆ  |  j  d ƒ ƒ f S(   Nu   test(%s, %s, %s)i   i   i   (   u   groupu   sub(   u   x(   u   replu   expr(    u$   /mit/python/lib/python3.0/gettext.pyu   reple   s    u    u   (u   )i   u%   unbalanced parenthesis in plural formiÿÿÿÿu   (%s)u   lambda n: int(%s)(   u   iou   StringIOu   tokenu   tokenizeu   generate_tokensu   readlineu
   TokenErroru
   ValueErroru   replaceu   reu   compileu   subu   appendu   lenu   popu   eval(   u   pluralu   StringIOu   tokenizeu   tokensu   dangeru   stacku   cu   s(    (   u   expru   tokenu   replu$   /mit/python/lib/python3.0/gettext.pyu   c2pyK   s8    	 c             C   sÇ  d d l  m } | |  ƒ }  d	 } d
 } d } d } |  j d ƒ } | d k o. |  | d  … } |  d  | … }  | | O} n d } |  j d ƒ } | d k o. |  | d  … } |  d  | … }  | | O} n d } |  j d ƒ } | d k o. |  | d  … }	 |  d  | … }  | | O} n d }	 |  }
 g  } x† t | d ƒ D]t } | | @pb |
 } | | @o | |	 7} n | | @o | | 7} n | | @o | | 7} n | j | ƒ qAqAW| j ƒ  | S(   Ni    (   u	   normalizei   i   u   @u    u   .u   _i   i   i   (   u   localeu	   normalizeu   findu   rangeu   appendu   reverse(   u   localeu	   normalizeu   COMPONENT_CODESETu   COMPONENT_TERRITORYu   COMPONENT_MODIFIERu   masku   posu   modifieru   codesetu	   territoryu   languageu   retu   iu   val(    (    u$   /mit/python/lib/python3.0/gettext.pyu   _expand_lang~   sN        
c             B   s€   |  Ee  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d d „ Z d S(   c             C   sF   i  |  _  d  |  _ d  |  _ d  |  _ | d  k	 o |  j | ƒ n d  S(   N(   u   _infou   Noneu   _charsetu   _output_charsetu	   _fallbacku   _parse(   u   selfu   fp(    (    u$   /mit/python/lib/python3.0/gettext.pyu   __init__ª   s    				c             C   s   d  S(   N(    (   u   selfu   fp(    (    u$   /mit/python/lib/python3.0/gettext.pyu   _parse²   s    c             C   s+   |  j  o |  j  j | ƒ n
 | |  _  d  S(   N(   u	   _fallbacku   add_fallback(   u   selfu   fallback(    (    u$   /mit/python/lib/python3.0/gettext.pyu   add_fallbackµ   s    
c             C   s   |  j  o |  j  j | ƒ S| S(   N(   u	   _fallbacku   gettext(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/gettext.pyu   gettext»   s    
c             C   s   |  j  o |  j  j | ƒ S| S(   N(   u	   _fallbacku   lgettext(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/gettext.pyu   lgettextÀ   s    
c             C   s;   |  j  o |  j  j | | | ƒ S| d k o | S| Sd  S(   Ni   (   u	   _fallbacku   ngettext(   u   selfu   msgid1u   msgid2u   n(    (    u$   /mit/python/lib/python3.0/gettext.pyu   ngettextÅ   s
    
c             C   s;   |  j  o |  j  j | | | ƒ S| d k o | S| Sd  S(   Ni   (   u	   _fallbacku	   lngettext(   u   selfu   msgid1u   msgid2u   n(    (    u$   /mit/python/lib/python3.0/gettext.pyu	   lngettextÍ   s
    
c             C   s   |  j  S(   N(   u   _info(   u   self(    (    u$   /mit/python/lib/python3.0/gettext.pyu   infoÕ   s    c             C   s   |  j  S(   N(   u   _charset(   u   self(    (    u$   /mit/python/lib/python3.0/gettext.pyu   charsetØ   s    c             C   s   |  j  S(   N(   u   _output_charset(   u   self(    (    u$   /mit/python/lib/python3.0/gettext.pyu   output_charsetÛ   s    c             C   s   | |  _  d  S(   N(   u   _output_charset(   u   selfu   charset(    (    u$   /mit/python/lib/python3.0/gettext.pyu   set_output_charsetÞ   s    c             C   s¼   d d  l  } |  j | j d <t | d ƒ oŒ d | k o | j d | j d <n d | k o |  j | j d <n d | k o |  j | j d <n d | k o |  j | j d <q¸ n d  S(   Ni    u   _u   __contains__u   gettextu   ngettextu   lgettextu	   lngettext(   u   builtinsu   gettextu   __dict__u   hasattru   ngettextu   lgettextu	   lngettext(   u   selfu   namesu   builtins(    (    u$   /mit/python/lib/python3.0/gettext.pyu   installá   s    N(   u   __name__u
   __module__u   Noneu   __init__u   _parseu   add_fallbacku   gettextu   lgettextu   ngettextu	   lngettextu   infou   charsetu   output_charsetu   set_output_charsetu   install(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/gettext.pyu   NullTranslations©   s   
										c             B   sG   |  Ee  Z d  Z d Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   l   Þ* l   •$< c              C   sÂ  t  j } t | d d ƒ } i  |  _ } d „  |  _ | j ƒ  } t | ƒ } | d | d d … ƒ d } | |  j k o/ | d | d d	 … ƒ \ } }	 }
 } d
 } nR | |  j k o/ | d | d d	 … ƒ \ } }	 }
 } d } n t	 d d | ƒ ‚ xÂt
 d |	 ƒ D]±} | | | |
 |
 d … ƒ \ } } | | } | | | | | d … ƒ \ } } | | } | | k  o1 | | k  o$ | | | … } | | | … } n t	 d d | ƒ ‚ | d k o:d } } x-| j d j d ƒ ƒ D]} | j ƒ  j ƒ  } | p qén d | k oM | j d d ƒ \ } } | j ƒ  j ƒ  } | j ƒ  } | |  j | <| } n# | o |  j | c d | 7<n | d k o | j d ƒ d |  _ qé| d k o9 | j d ƒ } | d j d ƒ d } t | ƒ |  _ qéqéWn |  j p d } d | k om | j d ƒ \ } } | j d ƒ } t | | ƒ } xS t | ƒ D]% \ } } t | | ƒ | | | f <q]Wn t | | ƒ | t | | ƒ <|
 d 7}
 | d 7} q	Wd S(   u8   Override this method to support alternative .mo formats.u   nameu    c             S   s   t  |  d  k ƒ S(   i   (   u   int(   u   n(    (    u$   /mit/python/lib/python3.0/gettext.pyu   <lambda>û   s    u   <INi   i    u   <4Ii   u   <IIu   >4Iu   >IIu   Bad magic numberi   u   File is corruptu   
u   asciiu   :i   u   content-typeu   charset=u   plural-formsu   ;u   plural=s    (   u   structu   unpacku   getattru   _catalogu   pluralu   readu   lenu   LE_MAGICu   BE_MAGICu   IOErroru   rangeu   Noneu   splitu   encodeu   decodeu   stripu   loweru   _infou   _charsetu   c2pyu   stru	   enumerate(    u   selfu   fpu   unpacku   filenameu   catalogu   bufu   buflenu   magicu   versionu   msgcountu	   masteridxu   transidxu   iiu   iu   mlenu   moffu   mendu   tlenu   toffu   tendu   msgu   tmsgu   lastku   ku   b_itemu   itemu   vu   pluralu   charsetu   msgid1u   msgid2u   x(    (    u$   /mit/python/lib/python3.0/gettext.pyu   _parseô   sp    	%
%
 #
#

 

 !
c             C   sy   t  ƒ  } |  j j | | ƒ } | | k o  |  j o |  j j | ƒ S| S|  j o | j |  j ƒ S| j t j ƒ  ƒ S(   N(	   u   objectu   _catalogu   getu	   _fallbacku   lgettextu   _output_charsetu   encodeu   localeu   getpreferredencoding(   u   selfu   messageu   missingu   tmsg(    (    u$   /mit/python/lib/python3.0/gettext.pyu   lgettextA  s    	

c          
   C   s    yN |  j  | |  j | ƒ f } |  j o | j |  j ƒ S| j t j ƒ  ƒ SWnK t k
 o? |  j o |  j j | | | ƒ S| d k o | S| SYn Xd  S(   Ni   (	   u   _catalogu   pluralu   _output_charsetu   encodeu   localeu   getpreferredencodingu   KeyErroru	   _fallbacku	   lngettext(   u   selfu   msgid1u   msgid2u   nu   tmsg(    (    u$   /mit/python/lib/python3.0/gettext.pyu	   lngettextL  s    

c             C   sO   t  ƒ  } |  j j | | ƒ } | | k o  |  j o |  j j | ƒ S| S| S(   N(   u   objectu   _catalogu   getu	   _fallbacku   gettext(   u   selfu   messageu   missingu   tmsg(    (    u$   /mit/python/lib/python3.0/gettext.pyu   gettextZ  s    	
c          
   C   sy   y  |  j  | |  j | ƒ f } WnR t k
 oF |  j o |  j j | | | ƒ S| d k o
 | } n | } Yn X| S(   Ni   (   u   _catalogu   pluralu   KeyErroru	   _fallbacku   ngettext(   u   selfu   msgid1u   msgid2u   nu   tmsg(    (    u$   /mit/python/lib/python3.0/gettext.pyu   ngettextc  s     

N(	   u   __name__u
   __module__u   LE_MAGICu   BE_MAGICu   _parseu   lgettextu	   lngettextu   gettextu   ngettext(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/gettext.pyu   GNUTranslationsï   s   
	M				c             C   sf  | d  k o
 t } n | d  k of g  } x; d D]3 } t j j | ƒ } | o | j d ƒ } Pq1 q1 Wd | k o | j d ƒ qŠ n g  } xC | D]; } x2 t | ƒ D]$ } | | k o | j | ƒ qª qª Wq— W| o
 g  }	 n d  }	 xr | D]j } | d k o Pn t j j	 | | d d |  ƒ }
 t j j
 |
 ƒ o  | o |	 j |
 ƒ q^|
 Sqô qô W|	 S(	   Nu   LANGUAGEu   LC_ALLu   LC_MESSAGESu   LANGu   :u   Cu   %s.mo(   u   LANGUAGEu   LC_ALLu   LC_MESSAGESu   LANG(   u   Noneu   _default_localediru   osu   environu   getu   splitu   appendu   _expand_langu   pathu   joinu   exists(   u   domainu	   localediru	   languagesu   allu   envaru   valu   nelangsu   langu   nelangu   resultu   mofile(    (    u$   /mit/python/lib/python3.0/gettext.pyu   findq  s@    
 	  
 c             C   s  | d  k o
 t } n t |  | | d d ƒ} | p% | o t ƒ  St t d |  ƒ ‚ n d  } x¬ | D]¤ } t j j | ƒ }	 t	 j
 |	 ƒ }
 |
 d  k o% t	 j |	 | t | d ƒ ƒ ƒ }
 n t j |
 ƒ }
 | o |
 j | ƒ n | d  k o
 |
 } qh | j |
 ƒ qh W| S(   Nu   alli   u$   No translation file found for domainu   rb(   u   Noneu   GNUTranslationsu   findu   NullTranslationsu   IOErroru   ENOENTu   osu   pathu   abspathu   _translationsu   getu
   setdefaultu   openu   copyu   set_output_charsetu   add_fallback(   u   domainu	   localediru	   languagesu   class_u   fallbacku   codesetu   mofilesu   resultu   mofileu   keyu   t(    (    u$   /mit/python/lib/python3.0/gettext.pyu   translation™  s*    
 %
c             C   s,   t  |  | d d d | ƒ} | j | ƒ d  S(   Nu   fallbacku   codesetT(   u   translationu   Trueu   install(   u   domainu	   localediru   codesetu   namesu   t(    (    u$   /mit/python/lib/python3.0/gettext.pyu   install¸  s    u   messagesc             C   s   |  d  k	 o
 |  a n t S(   N(   u   Noneu   _current_domain(   u   domain(    (    u$   /mit/python/lib/python3.0/gettext.pyu
   textdomainÆ  s    
c             C   s+   | d  k	 o | t |  <n t j |  t ƒ S(   N(   u   Noneu   _localedirsu   getu   _default_localedir(   u   domainu	   localedir(    (    u$   /mit/python/lib/python3.0/gettext.pyu   bindtextdomainÍ  s    c             C   s(   | d  k	 o | t |  <n t j |  ƒ S(   N(   u   Noneu   _localecodesetsu   get(   u   domainu   codeset(    (    u$   /mit/python/lib/python3.0/gettext.pyu   bind_textdomain_codesetÔ  s    c             C   sV   y. t  |  t j |  d  ƒ d t j |  ƒ ƒ} Wn t k
 o | SYn X| j | ƒ S(   Nu   codeset(   u   translationu   _localedirsu   getu   Noneu   _localecodesetsu   IOErroru   gettext(   u   domainu   messageu   t(    (    u$   /mit/python/lib/python3.0/gettext.pyu   dgettextÛ  s    
c             C   sV   y. t  |  t j |  d  ƒ d t j |  ƒ ƒ} Wn t k
 o | SYn X| j | ƒ S(   Nu   codeset(   u   translationu   _localedirsu   getu   Noneu   _localecodesetsu   IOErroru   lgettext(   u   domainu   messageu   t(    (    u$   /mit/python/lib/python3.0/gettext.pyu	   ldgettextã  s    
c             C   sn   y. t  |  t j |  d  ƒ d t j |  ƒ ƒ} Wn* t k
 o | d k o | S| SYn X| j | | | ƒ S(   Nu   codeseti   (   u   translationu   _localedirsu   getu   Noneu   _localecodesetsu   IOErroru   ngettext(   u   domainu   msgid1u   msgid2u   nu   t(    (    u$   /mit/python/lib/python3.0/gettext.pyu	   dngettextë  s    
c             C   sn   y. t  |  t j |  d  ƒ d t j |  ƒ ƒ} Wn* t k
 o | d k o | S| SYn X| j | | | ƒ S(   Nu   codeseti   (   u   translationu   _localedirsu   getu   Noneu   _localecodesetsu   IOErroru	   lngettext(   u   domainu   msgid1u   msgid2u   nu   t(    (    u$   /mit/python/lib/python3.0/gettext.pyu
   ldngettextö  s    
c             C   s   t  t |  ƒ S(   N(   u   dgettextu   _current_domain(   u   message(    (    u$   /mit/python/lib/python3.0/gettext.pyu   gettext  s    c             C   s   t  t |  ƒ S(   N(   u	   ldgettextu   _current_domain(   u   message(    (    u$   /mit/python/lib/python3.0/gettext.pyu   lgettext  s    c             C   s   t  t |  | | ƒ S(   N(   u	   dngettextu   _current_domain(   u   msgid1u   msgid2u   n(    (    u$   /mit/python/lib/python3.0/gettext.pyu   ngettext  s    c             C   s   t  t |  | | ƒ S(   N(   u
   ldngettextu   _current_domain(   u   msgid1u   msgid2u   n(    (    u$   /mit/python/lib/python3.0/gettext.pyu	   lngettext
  s    F((   u   __doc__u   localeu   copyu   osu   reu   structu   sysu   errnou   ENOENTu   __all__u   pathu   joinu   prefixu   _default_localediru   testu   c2pyu   _expand_langu   NullTranslationsu   GNUTranslationsu   Noneu   findu   _translationsu   Falseu   translationu   installu   _localedirsu   _localecodesetsu   _current_domainu
   textdomainu   bindtextdomainu   bind_textdomain_codesetu   dgettextu	   ldgettextu	   dngettextu
   ldngettextu   gettextu   lgettextu   ngettextu	   lngettextu   Catalog(    (    (    u$   /mit/python/lib/python3.0/gettext.pyu   <module>   s>   &H			3	+F‚&								