�
��Mc@s=dZddlZddlZdgZdZed�ZdS(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����Ntwrite_mosrestructuredtext enc
Cs�t|�}|s?g|dD]}|js|^q|d)n|j�d}}g}xp|D]h}|jr0djg|jD]} | j|j�^q�} g}
xVt|j �D]E\}}|s�|
j
|jtt|�d��q�|
j
|�q�Wdjg|
D]}
|
j|j�^q�}
nK|jj|j�} |j sf|jj|j�}
n|j j|j�}
|j
t
|�t
| �t
|�t
|
�f�|| d7}||
d7}q`Wd
dt
|�}|t
|�}g}g}xB|D]:\}}}}||||g7}||||g7}qW||}|jtjddd t
|�ddt
|�d
d d �tjd|�j�||�dS(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
ittiiitIiiiiiil�*iitiNiii(tlisttfuzzytsorttpluralizabletjointidtencodetcharsett enumeratetstringtappendtmintinttlentwritetstructtpacktarrayttostring(tfileobjtcatalogt use_fuzzytmessagestmtidststrstoffsetstmessagetmsgidtmsgstrstidxRtmsgstrtkeystartt
valuestarttkoffsetstvoffsetsto1tl1to2tl2((s9/usr/lib/python2.7/site-packages/babel/messages/mofile.pyRsD'-
+&+ 1
(t__doc__RRt__all__t
__docformat__tFalseR(((s9/usr/lib/python2.7/site-packages/babel/messages/mofile.pyt<module>s
|