;
?c           @   sW  d  Z  d k Z d k Z d k Z d k Z d k Z d k l Z d d d d d d d	 d
 d d d d g Z e i	 i
 e i d d  Z d   Z d   Z d   Z d f  d     YZ d e f d     YZ e e d d  Z h  Z e e e e d  Z e e d  Z h  a d a e d  Z e d  Z d   Z d   Z d   Z d    Z e Z  d S(!   s  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.

N(   s   ENOENTs   NullTranslationss   GNUTranslationss   Catalogs   finds   translations   installs
   textdomains   bindtextdomains   dgettexts	   dngettexts   gettexts   ngettexts   shares   localec         C   s   |  o | Sn | Sd S(   sy   
    Implements the C expression:

      condition ? true : false

    Required to correctly interpret plural forms.
    N(   s	   conditions   trues   false(   s	   conditions   trues   false(    (    s$   /mit/python/lib/python2.3/gettext.pys   test=   s     c            s  d k  l  } d k }	 d k } | i | |   i  } yT g  i } | D]9 } | d |	 i
 j o | d d j o | |  qH qH ~ } Wn | i j
 o t d  n X| o t d  n |  i d d	  }  |  i d
 d  }  t i d      i d |   }  t i d       d    d g } x |  D] } | d j o | i d  q4| d j oP t |  d j o t d  n   i  | i    } | d c d | 7<q4| d c | 7<q4W  i  | i    }  t d |   Sd S(   s   Gets a C expression as used in PO files for plural forms and returns a
    Python lambda function that implements an equivalent expression.
    (   s   StringIONi    i   s   ns;   plural forms expression error, maybe unbalanced parenthesiss*   plural forms expression could be dangerouss   &&s    and s   ||s    or s   \!([^=])s    not \1s   (.*?)\?(.*?):(.*)c            s<   d |  i d  |  i d   i   |  i d   f Sd  S(   Ns   test(%s, %s, %s)i   i   i   (   s   xs   groups   exprs   subs   repl(   s   x(   s   repls   expr(    s$   /mit/python/lib/python2.3/gettext.pys   replf   s    s    s   (s   )s%   unbalanced parenthesis in plural formis   (%s)s   lambda n: int(%s)(   s   StringIOs   tokens   tokenizes   generate_tokenss   plurals   readlines   tokenss   appends   _[1]s   xs   NAMEs   dangers
   TokenErrors
   ValueErrors   replaces   res   compiles   exprs   subs   repls   stacks   cs   lens   pops   ss   eval(   s   plurals   _[1]s   cs   dangers   exprs   StringIOs   ss   stacks   tokenss   tokens   repls   tokenizes   x(    (   s   exprs   repls$   /mit/python/lib/python2.3/gettext.pys   c2pyK   s:     T	 c         C   s  d k  l } | |   }  d d >}	 d d >} d d >}
 d } |  i d  } | d j o" |  | } |  |  }  | |
 O} n d } |  i d  } | d j o" |  | } |  |  }  | |	 O} n d } |  i d  } | d j o" |  | } |  |  }  | | O} n d } |  } g  } x t | d  D]u } | | @ob | } | | @o | | 7} n | |	 @o | | 7} n | |
 @o | | 7} n | i |  q&q&W| i   | Sd  S(	   N(   s	   normalizei   i    i   s   @s    s   .s   _(   s   locales	   normalizes   COMPONENT_CODESETs   COMPONENT_TERRITORYs   COMPONENT_MODIFIERs   masks   finds   poss   modifiers   codesets	   territorys   languages   rets   ranges   is   vals   appends   reverse(   s   locales	   normalizes	   territorys   is   languages   COMPONENT_TERRITORYs   masks   poss   rets   COMPONENT_CODESETs   COMPONENT_MODIFIERs   vals   codesets   modifier(    (    s$   /mit/python/lib/python2.3/gettext.pys   _expand_lang   sN    








    
c           B   sh   t  Z e d  Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z e d
  Z RS(   Nc         C   s=   h  |  _ t |  _ t |  _ | t j	 o |  i |  n d  S(   N(   s   selfs   _infos   Nones   _charsets	   _fallbacks   fps   _parse(   s   selfs   fp(    (    s$   /mit/python/lib/python2.3/gettext.pys   __init__   s
    			c         C   s   d  S(   N(    (   s   selfs   fp(    (    s$   /mit/python/lib/python2.3/gettext.pys   _parse   s    c         C   s+   |  i o |  i i |  n
 | |  _ d  S(   N(   s   selfs	   _fallbacks   add_fallbacks   fallback(   s   selfs   fallback(    (    s$   /mit/python/lib/python2.3/gettext.pys   add_fallback   s    
c         C   s&   |  i o |  i i |  Sn | Sd  S(   N(   s   selfs	   _fallbacks   gettexts   message(   s   selfs   message(    (    s$   /mit/python/lib/python2.3/gettext.pys   gettext   s    
c         C   sA   |  i o |  i i | | |  Sn | d j o | Sn | Sd  S(   Ni   (   s   selfs	   _fallbacks   ngettexts   msgid1s   msgid2s   n(   s   selfs   msgid1s   msgid2s   n(    (    s$   /mit/python/lib/python2.3/gettext.pys   ngettext   s
    
c         C   s,   |  i o |  i i |  Sn t |  Sd  S(   N(   s   selfs	   _fallbacks   ugettexts   messages   unicode(   s   selfs   message(    (    s$   /mit/python/lib/python2.3/gettext.pys   ugettext   s    
c         C   sM   |  i o |  i i | | |  Sn | d j o t |  Sn t |  Sd  S(   Ni   (   s   selfs	   _fallbacks	   ungettexts   msgid1s   msgid2s   ns   unicode(   s   selfs   msgid1s   msgid2s   n(    (    s$   /mit/python/lib/python2.3/gettext.pys	   ungettext   s
    
c         C   s   |  i Sd  S(   N(   s   selfs   _info(   s   self(    (    s$   /mit/python/lib/python2.3/gettext.pys   info   s    c         C   s   |  i Sd  S(   N(   s   selfs   _charset(   s   self(    (    s$   /mit/python/lib/python2.3/gettext.pys   charset   s    c         C   s.   d  k  } | o |  i p |  i | i d <d  S(   Ns   _(   s   __builtin__s   unicodes   selfs   ugettexts   gettexts   __dict__(   s   selfs   unicodes   __builtin__(    (    s$   /mit/python/lib/python2.3/gettext.pys   install   s    	(   s   __name__s
   __module__s   Nones   __init__s   _parses   add_fallbacks   gettexts   ngettexts   ugettexts	   ungettexts   infos   charsets   Falses   install(    (    (    s$   /mit/python/lib/python2.3/gettext.pys   NullTranslations   s   								c           B   sA   t  Z d Z d Z d   Z d   Z d   Z d   Z d   Z RS(   Nl   * l   $< c         C   s  t  i } t | d d  }	 h  |  _ } d   |  _ | i	   } t |  } | d | d   d } | |  i j o, | d | d d ! \ } } } } d	 } nO | |  i j o, | d
 | d d ! \ } } } } d } n t d d |	   xt d |  D]} | | | | | d ! \ } } | | } | | | | | d ! \ } } | | } | | j  o
 | | j  o | | | !} | | | !} n t d d |	   | d j o)t  } } x| i#   D]
} | i%   } | o qn d | j oM | i& d d  \ } } | i%   i(   } | i%   } | |  i) | <| } n# | o |  i) | c d | 7<n | d j o | i& d  d |  _* q| d j o9 | i& d  } | d i& d  d } t+ |  |  _ qqWn | i, d  d j o | i& d  \ } }
 | i& d  } |  i* oI t/ | |  i*  } g  i0 } | D] } | t/ | |  i*   q;~ } n xn t3 t |   D] } | | | | | f <qwWn= |  i* o( t/ | |  i*  } t/ | |  i*  } n | | | <| d 7} | d 7} q Wd S(   s8   Override this method to support alternative .mo formats.s   names    c         C   s   t  |  d j  S(   Ni   (   s   ints   n(   s   n(    (    s$   /mit/python/lib/python2.3/gettext.pys   <lambda>   s    s   <Ii   i    s   <4Ii   s   <IIs   >4Is   >IIs   Bad magic numberi   s   File is corrupts   :i   s   
s   content-types   charset=s   plural-formss   ;s   plural=s    N(4   s   structs   unpacks   getattrs   fps   filenames   selfs   _catalogs   catalogs   plurals   reads   bufs   lens   buflens   magics   LE_MAGICs   versions   msgcounts	   masteridxs   transidxs   iis   BE_MAGICs   IOErrors   xranges   is   mlens   moffs   mends   tlens   toffs   tends   msgs   tmsgs   Nones   lastks   ks
   splitliness   items   strips   splits   vs   lowers   _infos   _charsets   c2pys   finds   msgid1s   msgid2s   unicodes   appends   _[1]s   xs   range(   s   selfs   fps   msgcounts   tmsgs   iis   tends   toffs   unpacks   msgid1s   filenames   msgid2s   versions   mends	   masteridxs   plurals   mlens   buflens   msgs   catalogs   lastks   bufs   magics   transidxs   is   ks   _[1]s   items   tlens   vs   moffs   x(    (    s$   /mit/python/lib/python2.3/gettext.pys   _parse   sz     	"
"
  
 

 


7 


c         C   sw   t    } |  i i | |  } | | j o& |  i o |  i i |  Sn | Sn |  i	 o | i
 |  i	  Sn | Sd  S(   N(   s   objects   missings   selfs   _catalogs   gets   messages   tmsgs	   _fallbacks   gettexts   _charsets   encode(   s   selfs   messages   tmsgs   missing(    (    s$   /mit/python/lib/python2.3/gettext.pys   gettext6  s    	

c         C   s   yB |  i | |  i |  f } |  i o | i |  i  Sn | SWnP t j
 oD |  i	 o |  i	 i
 | | |  Sn | d j o | Sq | Sn Xd  S(   Ni   (   s   selfs   _catalogs   msgid1s   plurals   ns   tmsgs   _charsets   encodes   KeyErrors	   _fallbacks   ngettexts   msgid2(   s   selfs   msgid1s   msgid2s   ns   tmsg(    (    s$   /mit/python/lib/python2.3/gettext.pys   ngettextB  s    

c         C   s_   t    } |  i i | |  } | | j o, |  i o |  i i |  Sn t	 |  Sn | Sd  S(   N(
   s   objects   missings   selfs   _catalogs   gets   messages   tmsgs	   _fallbacks   ugettexts   unicode(   s   selfs   messages   tmsgs   missing(    (    s$   /mit/python/lib/python2.3/gettext.pys   ugettextP  s    	
c         C   s   y  |  i | |  i |  f } Wn` t j
 oT |  i o |  i i | | |  Sn | d j o t
 |  } q t
 |  } n X| Sd  S(   Ni   (   s   selfs   _catalogs   msgid1s   plurals   ns   tmsgs   KeyErrors	   _fallbacks	   ungettexts   msgid2s   unicode(   s   selfs   msgid1s   msgid2s   ns   tmsg(    (    s$   /mit/python/lib/python2.3/gettext.pys	   ungettextY  s     
(	   s   __name__s
   __module__s   LE_MAGICs   BE_MAGICs   _parses   gettexts   ngettexts   ugettexts	   ungettext(    (    (    s$   /mit/python/lib/python2.3/gettext.pys   GNUTranslations   s   	Q				i    c         C   sv  | t j o
 t } n | t j or g  } xG d d d d f D]3 } t i i |  } | o | i	 d  } Pq= q= Wd | j o | i
 d  q n g  } xC | D]; } x2 t |  D]$ }
 |
 | j o | i
 |
  q q Wq W| o
 g  }	 n t }	 xr | D]j } | d j o Pn t i i | | d d |   } t i i |  o  | o |	 i
 |  qj| Sq q W|	 Sd  S(   Ns   LANGUAGEs   LC_ALLs   LC_MESSAGESs   LANGs   :s   Cs   %s.mo(   s	   localedirs   Nones   _default_localedirs	   languagess   envars   oss   environs   gets   vals   splits   appends   nelangss   langs   _expand_langs   nelangs   alls   results   paths   joins   domains   mofiles   exists(   s   domains	   localedirs	   languagess   alls   langs   vals   nelangss   mofiles   envars   results   nelang(    (    s$   /mit/python/lib/python2.3/gettext.pys   findg  s@    
 	  
 c   
      C   s  | t j o
 t } n t |  | | d d } | o( | o t	   Sn t
 t d |    n t }	 x | D] } t i i |  } t i |  } | t j o% t i | | t | d    } n t i |  } |	 t j o
 | }	 ql |	 i |  ql W|	 Sd  S(   Ns   alli   s$   No translation file found for domains   rb(   s   class_s   Nones   GNUTranslationss   finds   domains	   localedirs	   languagess   mofiless   fallbacks   NullTranslationss   IOErrors   ENOENTs   results   mofiles   oss   paths   abspaths   keys   _translationss   gets   ts
   setdefaults   opens   copys   add_fallback(
   s   domains	   localedirs	   languagess   class_s   fallbacks   ts   keys   mofiles   mofiless   result(    (    s$   /mit/python/lib/python2.3/gettext.pys   translation  s&    
 %
c         C   s    t  |  | d t i |  d  S(   Ns   fallback(   s   translations   domains	   localedirs   Trues   installs   unicode(   s   domains	   localedirs   unicode(    (    s$   /mit/python/lib/python2.3/gettext.pys   install  s    s   messagesc         C   s   |  t j	 o
 |  a n t Sd  S(   N(   s   domains   Nones   _current_domain(   s   domain(    (    s$   /mit/python/lib/python2.3/gettext.pys
   textdomain  s     
c         C   s/   | t j	 o | t |  <n t i |  t  Sd  S(   N(   s	   localedirs   Nones   _localedirss   domains   gets   _default_localedir(   s   domains	   localedir(    (    s$   /mit/python/lib/python2.3/gettext.pys   bindtextdomain  s     c         C   sJ   y t  |  t i |  t   } Wn t j
 o | Sn X| i |  Sd  S(   N(	   s   translations   domains   _localedirss   gets   Nones   ts   IOErrors   messages   gettext(   s   domains   messages   t(    (    s$   /mit/python/lib/python2.3/gettext.pys   dgettext  s
    	c         C   se   y t  |  t i |  t   } Wn, t j
 o  | d j o | SqN | Sn X| i
 | | |  Sd  S(   Ni   (   s   translations   domains   _localedirss   gets   Nones   ts   IOErrors   ns   msgid1s   msgid2s   ngettext(   s   domains   msgid1s   msgid2s   ns   t(    (    s$   /mit/python/lib/python2.3/gettext.pys	   dngettext  s    	c         C   s   t  t |   Sd  S(   N(   s   dgettexts   _current_domains   message(   s   message(    (    s$   /mit/python/lib/python2.3/gettext.pys   gettext  s    c         C   s   t  t |  | |  Sd  S(   N(   s	   dngettexts   _current_domains   msgid1s   msgid2s   n(   s   msgid1s   msgid2s   n(    (    s$   /mit/python/lib/python2.3/gettext.pys   ngettext  s    (!   s   __doc__s   copys   oss   res   structs   syss   errnos   ENOENTs   __all__s   paths   joins   prefixs   _default_localedirs   tests   c2pys   _expand_langs   NullTranslationss   GNUTranslationss   Nones   finds   _translationss   Falses   translations   installs   _localedirss   _current_domains
   textdomains   bindtextdomains   dgettexts	   dngettexts   gettexts   ngettexts   Catalog(   s   bindtextdomains   finds   structs   __all__s	   dngettexts   GNUTranslationss   gettexts   res   Catalogs   NullTranslationss   tests   ngettexts   syss   ENOENTs   _default_localedirs   translations   copys   c2pys   _expand_langs   _translationss
   textdomains   installs   oss   dgettext(    (    s$   /mit/python/lib/python2.3/gettext.pys   ?   s,   &-*		4	+6&				