HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Tools/i18n/__pycache__/msgfmt.cpython-312.pyc
�

�X�f����dZddlZddlZddlZddlZddlZddlZddlmZdZ	ia
dd�Zd�Zd�Z
d�Zd	�Zed
k(re�yy)a�Generate binary message catalog from textual translation description.

This program converts a textual Uniforum-style message catalog (.po file) into
a binary GNU catalog (.mo file).  This is essentially the same function as the
GNU msgfmt program, however, it is a simpler implementation.  Currently it
does not handle plural forms but it does handle message contexts.

Usage: msgfmt.py [OPTIONS] filename.po

Options:
    -o file
    --output-file=file
        Specify the output file to write to.  If omitted, output will go to a
        file named filename.mo (based off the input file name).

    -h
    --help
        Print this message and exit.

    -V
    --version
        Display version information and exit.
�N)�HeaderParserz1.2c��tttj��|rt|tj��tj|�y)N��file)�print�__doc__�sys�stderr�exit)�code�msgs  �Tools\i18n\msgfmt.py�usager)s,��	�'��
�
�#�
�
�c��
�
�#��H�H�T�N�c�D�|s|r|�
|t|<y|td||fz<yyy)z.Add a non-fuzzy translation to the dictionary.Ns%b%b)�MESSAGES)�ctxt�id�str�fuzzys    r�addr0s1���S��<��H�R�L�14�H�[�D�"�:�-�.�	�5rc�f�ttj��}g}dx}}|D]Y}|jt	|�t	|�t	|�t	t|�f�||dzz
}|t|dzz
}�[d}ddt	|�zz}|t	|�z}g}g}	|D]\}
}}}
|||
|zgz
}|	|
||zgz
}	�||	z}tjdddt	|�ddt	|�d	zzdd�}|tjd
|�j�z
}||z
}||z
}|S)zReturn the generated output.r�����Iiiiiiil�*r��i)	�sortedr�keys�append�len�struct�pack�array�tobytes)r!�offsets�ids�strsr�output�keystart�
valuestart�koffsets�voffsets�o1�l1�o2�l2s              r�generater4:s^���(�-�-�/�"�D��G���C�$���	����C��#�b�'�3�t�9�c�(�2�,�6G�H�I��r�E�z�������u�$�$����F��2�c�$�i�<��H��C��H�$�J��H��H�"���B��B��R��H��%�%���R��J��'�'��"���!�G�
�[�[��#���T����S��Y�q�[���A�
�F��e�k�k�#�w�'�/�/�1�1�F�
�c�M�F�
�d�N�F��Mrc�X�d}d}d}|jd�r|}n|dz}|�%tjj|�ddz}	t	|d�5}|j�}ddd�dx}	}
d}d	}d}
D�]�}|j|�}|
dz
}
|dd
k(r|	|k(rt|
|�dx}	}
d}|dddk(rd|vrd}|dd
k(r�R|jd
�r|	|k(rt|
|�|}	|dd}d}
�n�|jd�rq|jd�s`|	|k(rLt|
|�|s<t�}|j|j|��j!�}|r|}|}	|dd}dx}}d}�n|jd�rG|	|k7r5td||
fztj��tjd�|dd}dz
}d}n�|jd�r�|}	|jd�rTs5td||
fztj��tjd�|j#dd�d}rB|dz
}n<r5td||
fztj��tjd�|dd}|j%�}|s��#t'j(|�}|	|k(r|
|j+|�z
}
��S|	|k(r|j+|�z
}��n|	|k(r|j+|�z
}���td||
fzdtj��t|tj��tjd����|	|k(rt|
|�t-�}	t	|d �5}|j/|�ddd�y#1swY��8xYw#t$r;}t|tj��tjd�Yd}~��zd}~wwxYw#1swYyxYw#t$r%}t|tj��Yd}~yd}~wwxYw)!N���z.porz.mo�rbrzlatin-1�#z#,r�msgctxt�r�msgid�msgid_plural�Fz+msgid_plural not preceded by msgid on %s:%d�rT�msgstrzmsgstr[z$plural without msgid_plural on %s:%d�]z,indexed msgstr required for plural on  %s:%d�zSyntax error on %s:%dzbefore:�wb)�endswith�os�path�splitext�open�	readlines�IOErrorrr	r
r�decoder�
startswithr�parsestr�get_content_charset�split�strip�ast�literal_eval�encoder4�write)�filename�outfile�ID�STR�CTXT�infile�f�linesr
�sectionr;r�encoding�lno�lr=rA�p�charset�	is_pluralr+s                     r�makerecs���	
�B�
�C��D���������E�!�����'�'�"�"�6�*�1�-��5���
�&�$�
�1��K�K�M�E� ���G�g�
�E��H��C�
��
�H�H�X����q����Q�4�3�;�7�c�>������.� $�$�G�g��E��R�a�5�D�=�W��\��E��Q�4�3�;���<�<�	�"��#�~��G�U�F�E�2��G��!�"��A��G�
�\�\�'�
"�1�<�<��+G��#�~��G�U�F�E�2��$��A��j�j����x�)@�A�U�U�W�G��#*���G��!�"��A� � �E�F��I�
�\�\�.�
)��"�}��C�v�s�m�S��:�:�'�������"�#��A��U�N�E��I�
�\�\�(�
#��G��|�|�I�&� ��@�F�C�=�P�"�z�z�+��H�H�Q�K��G�G�C��O�A�&����e�O�F���H�F�TW�=�X�"�z�z�+��H�H�Q�K��a�b�E��
�G�G�I�������Q����d�?��q�x�x��)�)�G�
��]��Q�X�X�h�'�'�E�
��^��a�h�h�x�(�(�F��)�V�S�M�9��#�*�*�
.��!�#�*�*�%��H�H�Q�K�W�Z�#�~��G�U�F�E�*��Z�F�$�
�'�$�
�1�
�G�G�F�O� �
�G �
����
�c��
�
�#����������B �
���$�
�c��
�
�#�#��$�sf�N(�N�%N(�4O;�O/�O;�N%� N(�(	O,�10O'�'O,�/O8�4O;�8O;�;	P)�P$�$P)c���	tjtjdddgd��\}}d}D]F\}}|dvrt	d��|dvr&tdt�tjd��@|dvs�E|}�Hs7td	tj�
�tdtj�
�y|D]}t||��y#tj$r}t	d|�Yd}~��d}~wwxYw)Nr6zhVo:)�help�versionzoutput-file=)z-hz--helpr)z-Vz	--versionz	msgfmt.py)z-oz
--output-filezNo input file givenrz)Try `msgfmt --help' for more information.)
�getoptr	�argv�errorrr�__version__rr
re)�opts�argsr
rW�opt�argrVs       r�mainrq�s�����]�]�3�8�8�A�B�<��#F�H�
��d�
�G����S��"�"��!�H�
�'�
'��+�{�+��H�H�Q�K�
�+�
+��G���
�#�#�*�*�5�
�9��
�
�K�����X�w����'�<�<��
�a��
�
���s�-C	�	C2�C-�-C2�__main__)r)rrFr	rRrir$r&�email.parserrrlrrrr4rerq�__name__�rr�<module>rvs[���0
�
�
�
�
��%���
���5�&�Rt$�n �6�z���F�r