%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib/python3.7/site-packages/babel/messages/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib/python3.7/site-packages/babel/messages/__pycache__/mofile.cpython-37.pyc

B

4\0X~�@sRdZddlZddlZddlmZmZddlmZmZdZ	dZ
dd�Zdd
d�ZdS)
z�
    babel.messages.mofile
    ~~~~~~~~~~~~~~~~~~~~~

    Writing of files in the ``gettext`` MO (machine object) format.

    :copyright: (c) 2013 by the Babel Team.
    :license: BSD, see LICENSE for more details.
�N)�Catalog�Message)�
range_type�
array_tobytesl�*l�$<csxt��i}t|dd�}|��}t|�}tj}|d|dd��d}|tkrj|d|dd��\}}}	}
d	}n4|tkr�|d
|dd��\}}}	}
d}ntdd|���x�t	d|�D�]�}||||	|	d
��\}
}||
}||||
|
d
��\}}||}||k�r$||k�r$|||�}|||�}ntdd|��|
dk�r�d}}xv|�
�D]j}|��}|�sb�qLd|k�r�|�dd�\}}|���
�}}|��||<n|�rL||d|7<�qLWd|k�r�|�d�\}}nd}d|k�r$|�d�}|�d�}�j�rD�fdd�|D�}�fdd�|D�}n �j�rD|��j�}|��j�}t|||d��|<|	d
7}	|
d
7}
q�W|���_�S)aaRead a binary MO file from the given file-like object and return a
    corresponding `Catalog` object.

    :param fileobj: the file-like object to read the MO file from

    :note: The implementation of this function is heavily based on the
           ``GNUTranslations._parse`` method of the ``gettext`` module in the
           standard library.
    �name�z<IN�rz<4I�z<IIz>4Iz>IIzBad magic number�zFile is corrupt�:��
��csg|]}|��j��qS�)�decode�charset)�.0�x)�catalogr�F/opt/alt/python37/lib/python3.7/site-packages/babel/messages/mofile.py�
<listcomp>[szread_mo.<locals>.<listcomp>csg|]}|��j��qSr)rr)rr)rrrr\s)�context)r�getattr�read�len�struct�unpack�LE_MAGIC�BE_MAGIC�IOErrorr�
splitlines�strip�split�lowerrrr�itemsZmime_headers)�fileobjZheaders�filenameZbufZbuflenr�magic�versionZmsgcountZorigidxZtransidxZii�iZmlenZmoffZmendZtlenZtoffZtend�msgZtmsgZlastkey�key�item�valueZctxtr)rr�read_mosh







r/Fcs
t��}|s*dd�|dd�D�|dd�<|��d}}g}�x|D�]}|jr�d��fdd�|jD��}g}	x@t|j�D]2\}
}|s�|	�|jtt	|
�d��q||	�|�q|Wd��fdd�|	D��}n2|j�
�j�}|js�|j�
�j�}n|j�
�j�}|j�rd	�|j�
�j�|g�}|�t
|�t
|�t
|�t
|�f�||d7}||d7}qFWd
dt
|�}
|
t
|�}g}g}x6|D].\}}}}||||
g7}||||g7}�q�W||}|�t�dtd
t
|�d
d
t
|�dd
d
�tt�d|��||�dS)a�Write a catalog to the specified file-like object using the GNU MO file
    format.

    >>> import sys
    >>> from babel.messages import Catalog
    >>> from gettext import GNUTranslations
    >>> from babel._compat import BytesIO

    >>> catalog = Catalog(locale='en_US')
    >>> catalog.add('foo', 'Voh')
    <Message ...>
    >>> catalog.add((u'bar', u'baz'), (u'Bahr', u'Batz'))
    <Message ...>
    >>> catalog.add('fuz', 'Futz', flags=['fuzzy'])
    <Message ...>
    >>> catalog.add('Fizz', '')
    <Message ...>
    >>> catalog.add(('Fuzz', 'Fuzzes'), ('', ''))
    <Message ...>
    >>> buf = BytesIO()

    >>> write_mo(buf, catalog)
    >>> x = buf.seek(0)
    >>> translations = GNUTranslations(fp=buf)
    >>> if sys.version_info[0] >= 3:
    ...     translations.ugettext = translations.gettext
    ...     translations.ungettext = translations.ngettext
    >>> 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
    cSsg|]}|js|�qSr)Zfuzzy)r�mrrrr�szwrite_mo.<locals>.<listcomp>rN�rcsg|]}|��j��qSr)�encoder)r�msgid)rrrr�scsg|]}|��j��qSr)r2r)r�msgstr)rrrr�sr��ZIiiiiiirr
r*)�list�sortZpluralizable�join�id�	enumerate�string�append�min�intr2rrr�writer�packrr�array)r&rZ	use_fuzzyZmessagesZidsZstrsZoffsets�messager3Zmsgstrs�idxr<r4ZkeystartZ
valuestartZkoffsetsZvoffsetsZo1�l1Zo2�l2r)rr�write_moksJ0"rG)F)
�__doc__rBrZbabel.messages.catalogrrZ
babel._compatrrrrr/rGrrrr�<module>
sT

Zerion Mini Shell 1.0