File: //proc/self/root/usr/lib/python2.7/site-packages/babel/messages/mofile.pyo
�
��Mc           @   s=   d  Z  d d l Z d d l Z d g Z d Z e d � Z d S(   s�   Writing of files in the ``gettext`` MO (machine object) format.
:since: version 0.9
:see: `The Format of MO Files
       <http://www.gnu.org/software/gettext/manual/gettext.html#MO-Files>`_
i����Nt   write_mos   restructuredtext enc      
   C   s�  t  | � } | s? g  | d D] } | j s | ^ q | d )n  | j �  d } } g  } xp| D]h} | j r0d j g  | j D] }	 |	 j | j � ^ q � }	 g  }
 xV t | j	 � D]E \ } } | s� |
 j
 | j t t | � d � � q� |
 j
 | � q� Wd j g  |
 D] }
 |
 j | j � ^ q� }
 nK | j j | j � }	 | j	 sf| j j | j � }
 n | j	 j | j � }
 | j
 t
 | � t
 |	 � t
 | � t
 |
 � f � | |	 d 7} | |
 d 7} q` Wd
 d t
 | � } | t
 | � } g  } g  } xB | D]: \ } } } } | | | | g 7} | | | | g 7} qW| | } |  j t j d d d	 t
 | � d d t
 | � d
 d	 d	 � t j d | � j �  | | � d S(   s�  Write a catalog to the specified file-like object using the GNU MO file
    format.
    
    >>> from babel.messages import Catalog
    >>> from gettext import GNUTranslations
    >>> from StringIO import StringIO
    
    >>> catalog = Catalog(locale='en_US')
    >>> catalog.add('foo', 'Voh')
    >>> catalog.add((u'bar', u'baz'), (u'Bahr', u'Batz'))
    >>> catalog.add('fuz', 'Futz', flags=['fuzzy'])
    >>> catalog.add('Fizz', '')
    >>> catalog.add(('Fuzz', 'Fuzzes'), ('', ''))
    >>> buf = StringIO()
    
    >>> write_mo(buf, catalog)
    >>> buf.seek(0)
    >>> translations = GNUTranslations(fp=buf)
    >>> translations.ugettext('foo')
    u'Voh'
    >>> translations.ungettext('bar', 'baz', 1)
    u'Bahr'
    >>> translations.ungettext('bar', 'baz', 2)
    u'Batz'
    >>> translations.ugettext('fuz')
    u'fuz'
    >>> translations.ugettext('Fizz')
    u'Fizz'
    >>> translations.ugettext('Fuzz')
    u'Fuzz'
    >>> translations.ugettext('Fuzzes')
    u'Fuzzes'
    
    :param fileobj: the file-like object to write to
    :param catalog: the `Catalog` instance
    :param use_fuzzy: whether translations marked as "fuzzy" should be included
                      in the output
    i   t    t    i   i   i   t   Iiiiiiil   �* i    i   t   iNi   i   i   (   t   listt   fuzzyt   sortt   pluralizablet   joint   idt   encodet   charsett	   enumeratet   stringt   appendt   mint   intt   lent   writet   structt   packt   arrayt   tostring(   t   fileobjt   catalogt	   use_fuzzyt   messagest   mt   idst   strst   offsetst   messaget   msgidt   msgstrst   idxR   t   msgstrt   keystartt
   valuestartt   koffsetst   voffsetst   o1t   l1t   o2t   l2(    (    s9   /usr/lib/python2.7/site-packages/babel/messages/mofile.pyR       sD    '-
	+&+	1
(   t   __doc__R   R   t   __all__t
   __docformat__t   FalseR    (    (    (    s9   /usr/lib/python2.7/site-packages/babel/messages/mofile.pyt   <module>   s