Current Dir: /snap/core22/2437/usr/lib/python3.10/__pycache__/

[FILE] abc.cpython-310.pyc [ edit | delete | rename ]
[FILE] aifc.cpython-310.pyc [ edit | delete | rename ]
[FILE] antigravity.cpython-310.pyc [ edit | delete | rename ]
[FILE] argparse.cpython-310.pyc [ edit | delete | rename ]
[FILE] ast.cpython-310.pyc [ edit | delete | rename ]
[FILE] asynchat.cpython-310.pyc [ edit | delete | rename ]
[FILE] asyncore.cpython-310.pyc [ edit | delete | rename ]
[FILE] base64.cpython-310.pyc [ edit | delete | rename ]
[FILE] bdb.cpython-310.pyc [ edit | delete | rename ]
[FILE] binhex.cpython-310.pyc [ edit | delete | rename ]
[FILE] bisect.cpython-310.pyc [ edit | delete | rename ]
[FILE] bz2.cpython-310.pyc [ edit | delete | rename ]
[FILE] calendar.cpython-310.pyc [ edit | delete | rename ]
[FILE] cgi.cpython-310.pyc [ edit | delete | rename ]
[FILE] cgitb.cpython-310.pyc [ edit | delete | rename ]
[FILE] chunk.cpython-310.pyc [ edit | delete | rename ]
[FILE] cmd.cpython-310.pyc [ edit | delete | rename ]
[FILE] code.cpython-310.pyc [ edit | delete | rename ]
[FILE] codecs.cpython-310.pyc [ edit | delete | rename ]
[FILE] codeop.cpython-310.pyc [ edit | delete | rename ]
[FILE] colorsys.cpython-310.pyc [ edit | delete | rename ]
[FILE] compileall.cpython-310.pyc [ edit | delete | rename ]
[FILE] configparser.cpython-310.pyc [ edit | delete | rename ]
[FILE] contextlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] contextvars.cpython-310.pyc [ edit | delete | rename ]
[FILE] copy.cpython-310.pyc [ edit | delete | rename ]
[FILE] copyreg.cpython-310.pyc [ edit | delete | rename ]
[FILE] cProfile.cpython-310.pyc [ edit | delete | rename ]
[FILE] crypt.cpython-310.pyc [ edit | delete | rename ]
[FILE] csv.cpython-310.pyc [ edit | delete | rename ]
[FILE] dataclasses.cpython-310.pyc [ edit | delete | rename ]
[FILE] datetime.cpython-310.pyc [ edit | delete | rename ]
[FILE] decimal.cpython-310.pyc [ edit | delete | rename ]
[FILE] difflib.cpython-310.pyc [ edit | delete | rename ]
[FILE] dis.cpython-310.pyc [ edit | delete | rename ]
[FILE] doctest.cpython-310.pyc [ edit | delete | rename ]
[FILE] enum.cpython-310.pyc [ edit | delete | rename ]
[FILE] filecmp.cpython-310.pyc [ edit | delete | rename ]
[FILE] fileinput.cpython-310.pyc [ edit | delete | rename ]
[FILE] fnmatch.cpython-310.pyc [ edit | delete | rename ]
[FILE] fractions.cpython-310.pyc [ edit | delete | rename ]
[FILE] ftplib.cpython-310.pyc [ edit | delete | rename ]
[FILE] functools.cpython-310.pyc [ edit | delete | rename ]
[FILE] genericpath.cpython-310.pyc [ edit | delete | rename ]
[FILE] getopt.cpython-310.pyc [ edit | delete | rename ]
[FILE] getpass.cpython-310.pyc [ edit | delete | rename ]
[FILE] gettext.cpython-310.pyc [ edit | delete | rename ]
[FILE] glob.cpython-310.pyc [ edit | delete | rename ]
[FILE] graphlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] gzip.cpython-310.pyc [ edit | delete | rename ]
[FILE] hashlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] heapq.cpython-310.pyc [ edit | delete | rename ]
[FILE] hmac.cpython-310.pyc [ edit | delete | rename ]
[FILE] imaplib.cpython-310.pyc [ edit | delete | rename ]
[FILE] imghdr.cpython-310.pyc [ edit | delete | rename ]
[FILE] imp.cpython-310.pyc [ edit | delete | rename ]
[FILE] inspect.cpython-310.pyc [ edit | delete | rename ]
[FILE] io.cpython-310.pyc [ edit | delete | rename ]
[FILE] ipaddress.cpython-310.pyc [ edit | delete | rename ]
[FILE] keyword.cpython-310.pyc [ edit | delete | rename ]
[FILE] linecache.cpython-310.pyc [ edit | delete | rename ]
[FILE] locale.cpython-310.pyc [ edit | delete | rename ]
[FILE] lzma.cpython-310.pyc [ edit | delete | rename ]
[FILE] mailbox.cpython-310.pyc [ edit | delete | rename ]
[FILE] mailcap.cpython-310.pyc [ edit | delete | rename ]
[FILE] mimetypes.cpython-310.pyc [ edit | delete | rename ]
[FILE] modulefinder.cpython-310.pyc [ edit | delete | rename ]
[FILE] netrc.cpython-310.pyc [ edit | delete | rename ]
[FILE] nntplib.cpython-310.pyc [ edit | delete | rename ]
[FILE] ntpath.cpython-310.pyc [ edit | delete | rename ]
[FILE] nturl2path.cpython-310.pyc [ edit | delete | rename ]
[FILE] numbers.cpython-310.pyc [ edit | delete | rename ]
[FILE] opcode.cpython-310.pyc [ edit | delete | rename ]
[FILE] operator.cpython-310.pyc [ edit | delete | rename ]
[FILE] optparse.cpython-310.pyc [ edit | delete | rename ]
[FILE] os.cpython-310.pyc [ edit | delete | rename ]
[FILE] pathlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] pdb.cpython-310.pyc [ edit | delete | rename ]
[FILE] pickle.cpython-310.pyc [ edit | delete | rename ]
[FILE] pickletools.cpython-310.pyc [ edit | delete | rename ]
[FILE] pipes.cpython-310.pyc [ edit | delete | rename ]
[FILE] pkgutil.cpython-310.pyc [ edit | delete | rename ]
[FILE] platform.cpython-310.pyc [ edit | delete | rename ]
[FILE] plistlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] poplib.cpython-310.pyc [ edit | delete | rename ]
[FILE] posixpath.cpython-310.pyc [ edit | delete | rename ]
[FILE] pprint.cpython-310.pyc [ edit | delete | rename ]
[FILE] profile.cpython-310.pyc [ edit | delete | rename ]
[FILE] pstats.cpython-310.pyc [ edit | delete | rename ]
[FILE] pty.cpython-310.pyc [ edit | delete | rename ]
[FILE] pyclbr.cpython-310.pyc [ edit | delete | rename ]
[FILE] pydoc.cpython-310.pyc [ edit | delete | rename ]
[FILE] py_compile.cpython-310.pyc [ edit | delete | rename ]
[FILE] queue.cpython-310.pyc [ edit | delete | rename ]
[FILE] quopri.cpython-310.pyc [ edit | delete | rename ]
[FILE] random.cpython-310.pyc [ edit | delete | rename ]
[FILE] re.cpython-310.pyc [ edit | delete | rename ]
[FILE] reprlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] rlcompleter.cpython-310.pyc [ edit | delete | rename ]
[FILE] runpy.cpython-310.pyc [ edit | delete | rename ]
[FILE] sched.cpython-310.pyc [ edit | delete | rename ]
[FILE] secrets.cpython-310.pyc [ edit | delete | rename ]
[FILE] selectors.cpython-310.pyc [ edit | delete | rename ]
[FILE] shelve.cpython-310.pyc [ edit | delete | rename ]
[FILE] shlex.cpython-310.pyc [ edit | delete | rename ]
[FILE] shutil.cpython-310.pyc [ edit | delete | rename ]
[FILE] signal.cpython-310.pyc [ edit | delete | rename ]
[FILE] site.cpython-310.pyc [ edit | delete | rename ]
[FILE] sitecustomize.cpython-310.pyc [ edit | delete | rename ]
[FILE] smtpd.cpython-310.pyc [ edit | delete | rename ]
[FILE] smtplib.cpython-310.pyc [ edit | delete | rename ]
[FILE] sndhdr.cpython-310.pyc [ edit | delete | rename ]
[FILE] socket.cpython-310.pyc [ edit | delete | rename ]
[FILE] socketserver.cpython-310.pyc [ edit | delete | rename ]
[FILE] sre_compile.cpython-310.pyc [ edit | delete | rename ]
[FILE] sre_constants.cpython-310.pyc [ edit | delete | rename ]
[FILE] sre_parse.cpython-310.pyc [ edit | delete | rename ]
[FILE] ssl.cpython-310.pyc [ edit | delete | rename ]
[FILE] stat.cpython-310.pyc [ edit | delete | rename ]
[FILE] statistics.cpython-310.pyc [ edit | delete | rename ]
[FILE] string.cpython-310.pyc [ edit | delete | rename ]
[FILE] stringprep.cpython-310.pyc [ edit | delete | rename ]
[FILE] struct.cpython-310.pyc [ edit | delete | rename ]
[FILE] subprocess.cpython-310.pyc [ edit | delete | rename ]
[FILE] sunau.cpython-310.pyc [ edit | delete | rename ]
[FILE] symtable.cpython-310.pyc [ edit | delete | rename ]
[FILE] sysconfig.cpython-310.pyc [ edit | delete | rename ]
[FILE] tabnanny.cpython-310.pyc [ edit | delete | rename ]
[FILE] tarfile.cpython-310.pyc [ edit | delete | rename ]
[FILE] telnetlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] tempfile.cpython-310.pyc [ edit | delete | rename ]
[FILE] textwrap.cpython-310.pyc [ edit | delete | rename ]
[FILE] this.cpython-310.pyc [ edit | delete | rename ]
[FILE] threading.cpython-310.pyc [ edit | delete | rename ]
[FILE] timeit.cpython-310.pyc [ edit | delete | rename ]
[FILE] token.cpython-310.pyc [ edit | delete | rename ]
[FILE] tokenize.cpython-310.pyc [ edit | delete | rename ]
[FILE] trace.cpython-310.pyc [ edit | delete | rename ]
[FILE] traceback.cpython-310.pyc [ edit | delete | rename ]
[FILE] tracemalloc.cpython-310.pyc [ edit | delete | rename ]
[FILE] tty.cpython-310.pyc [ edit | delete | rename ]
[FILE] turtle.cpython-310.pyc [ edit | delete | rename ]
[FILE] types.cpython-310.pyc [ edit | delete | rename ]
[FILE] typing.cpython-310.pyc [ edit | delete | rename ]
[FILE] uu.cpython-310.pyc [ edit | delete | rename ]
[FILE] uuid.cpython-310.pyc [ edit | delete | rename ]
[FILE] warnings.cpython-310.pyc [ edit | delete | rename ]
[FILE] wave.cpython-310.pyc [ edit | delete | rename ]
[FILE] weakref.cpython-310.pyc [ edit | delete | rename ]
[FILE] webbrowser.cpython-310.pyc [ edit | delete | rename ]
[FILE] xdrlib.cpython-310.pyc [ edit | delete | rename ]
[FILE] zipapp.cpython-310.pyc [ edit | delete | rename ]
[FILE] zipfile.cpython-310.pyc [ edit | delete | rename ]
[FILE] zipimport.cpython-310.pyc [ edit | delete | rename ]
[FILE] _aix_support.cpython-310.pyc [ edit | delete | rename ]
[FILE] _bootsubprocess.cpython-310.pyc [ edit | delete | rename ]
[FILE] _collections_abc.cpython-310.pyc [ edit | delete | rename ]
[FILE] _compat_pickle.cpython-310.pyc [ edit | delete | rename ]
[FILE] _compression.cpython-310.pyc [ edit | delete | rename ]
[FILE] _distutils_system_mod.cpython-310.pyc [ edit | delete | rename ]
[FILE] _markupbase.cpython-310.pyc [ edit | delete | rename ]
[FILE] _osx_support.cpython-310.pyc [ edit | delete | rename ]
[FILE] _pydecimal.cpython-310.pyc [ edit | delete | rename ]
[FILE] _pyio.cpython-310.pyc [ edit | delete | rename ]
[FILE] _py_abc.cpython-310.pyc [ edit | delete | rename ]
[FILE] _sitebuiltins.cpython-310.pyc [ edit | delete | rename ]
[FILE] _strptime.cpython-310.pyc [ edit | delete | rename ]
[FILE] _sysconfigdata__linux_x86_64-linux-gnu.cpython-310.pyc [ edit | delete | rename ]
[FILE] _sysconfigdata__x86_64-linux-gnu.cpython-310.pyc [ edit | delete | rename ]
[FILE] _threading_local.cpython-310.pyc [ edit | delete | rename ]
[FILE] _weakrefset.cpython-310.pyc [ edit | delete | rename ]
[FILE] __future__.cpython-310.pyc [ edit | delete | rename ]
[FILE] __phello__.foo.cpython-310.pyc [ edit | delete | rename ]

Viewing: /snap/core22/2437/usr/lib/python3.10/__pycache__/gettext.cpython-310.pyc

o

p̦i-l�@s�dZddlZddlZddlZgd�Zej�ejdd�Ze�	dej
ejB�Zdd�Z
d	d
�ZdZdd
�eed�D�Zdddd�ZdGdd�Zdd�Zdd�Zdd�ZGdd�d�ZGdd�de�ZdHd!d"�ZiZd#gZdddd efd$d%�Zdedfd&d'�Ziaiad(adId)d*�Z dId+d,�Z!dId-d.�Z"d/d0�Z#d1d2�Z$d3d4�Z%d5d6�Z&d7d8�Z'd9d:�Z(d;d<�Z)d=d>�Z*d?d@�Z+dAdB�Z,dCdD�Z-dEdF�Z.eZ/dS)Ja�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)�NullTranslations�GNUTranslations�Catalog�find�translation�install�
textdomain�bindtextdomain�bind_textdomain_codeset�dgettext�	dngettext�gettext�lgettext�	ldgettext�
ldngettext�	lngettext�ngettext�pgettext�	dpgettext�	npgettext�
dnpgettext�share�localea�
        (?P<WHITESPACES>[ \t]+)                    | # spaces and horizontal tabs
        (?P<NUMBER>[0-9]+\b)                       | # decimal integer
        (?P<NAME>n\b)                              | # only n is allowed
        (?P<PARENTHESIS>[()])                      |
        (?P<OPERATOR>[-*/%+?:]|[><!]=?|==|&&|\|\|) | # !, *, /, %, +, -, <, >,
                                                     # <=, >=, ==, !=, &&, ||,
                                                     # ? :
                                                     # unary and bitwise ops
                                                     # not allowed
        (?P<INVALID>\w+|.)                           # invalid token
    ccsR�t�t|�D]}|j}|dkrq|�|�}|dkr td|��|VqdVdS)N�WHITESPACES�INVALIDz invalid token in plural form: %s�)�re�finditer�_token_pattern�	lastgroup�group�
ValueError)�plural�mo�kind�value�r&�/usr/lib/python3.10/gettext.py�	_tokenizeVs�

r(cCs|rtd|�Std�S)Nz#unexpected token in plural form: %szunexpected end of plural form)r!)r%r&r&r'�_errorasr)))�||)�&&)z==z!=)�<�>z<=z>=)�+�-)�*�/�%cCs i|]\}}|D]}||�qqSr&r&)�.0�i�ops�opr&r&r'�
<dictcomp>os r7��or�andz//)r*r+r1���cCs�d}t|�}|dkr|d7}t|�}|dks
|dkr/t|�\}}d||f}|dkr.td��n%|dkr:d	||f}nzt|d
�}WntyMt|�d�wd||f}t|�}d}|tvr�t|}||krgn(|d
vrs|d
vrsd|}t�||�}t||d�\}	}d|||	f}|}|tvs^||kr�dkr�nnd|}|dkr�|dkr�t|d�\}
}|dkr�t|��t|�\}}d|
||f}|dkr�d|}||fS)Nr�!znot �(z%s(%s)�)z%unbalanced parenthesis in plural form�nz%s%s�
z%s%d�d)��z(%s)r8z%s %s %srC�?r�:z%s if %s else %s)�next�_parser!�intr)�_binary_ops�	_c2py_ops�get)�tokens�priority�result�nexttok�subr%�jr4r6�right�if_true�if_falser&r&r'rGrsX��
��rGcCsTzt|�}Wntytd|jjf�d�wddl}|�d|jjftd�|S)Nz'Plural value must be an integer, got %srrC)�round�	TypeError�	__class__�__name__�warnings�warn�DeprecationWarning)r?r4rYr&r&r'�_as_int�s �����r\cCs�t|�dkr
td��z>tt|��\}}|rt|��d}|D]}|dkr0|d7}|dkr/td��q|dkr8|d8}qd	ti}td
||�|dWStyStd��w)z�Gets a C expression as used in PO files for plural forms and returns a
    Python function that implements an equivalent expression.
    i�z"plural form expression is too longrr=r8�z%plural form expression is too complexr>r\z�if True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            �func)�lenr!rGr(r)r\�exec�RecursionError)r"rNrO�depth�c�nsr&r&r'�c2py�s4����
�recCs8ddl}|�|�}d}d}d}d}|�d�}|dkr+||d�}|d|�}||O}nd}|�d�}|dkrG||d�}|d|�}||O}nd}|�d�}|dkrc||d�}	|d|�}||O}nd}	|}
g}t|d�D]&}||@s�|
}
||@r�|
|	7}
||@r�|
|7}
||@r�|
|7}
|�|
�qo|��|S)	Nrr8�rC�@r�.�_)r�	normalizer�range�append�reverse)�locr�COMPONENT_CODESET�COMPONENT_TERRITORY�COMPONENT_MODIFIER�mask�pos�modifier�codeset�	territory�language�retr4�valr&r&r'�_expand_lang�sH








�rzc@s�eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zddd�ZdS)rNcCs2i|_d|_d|_d|_|dur|�|�dSdS�N)�_info�_charset�_output_charset�	_fallbackrG��self�fpr&r&r'�__init__�s�zNullTranslations.__init__cCsdSr{r&r�r&r&r'rGszNullTranslations._parsecCs |jr|j�|�dS||_dSr{)r�add_fallback)r��fallbackr&r&r'r�
s
zNullTranslations.add_fallbackcCs|jr	|j�|�S|Sr{)rr
)r��messager&r&r'r
szNullTranslations.gettextcCs�ddl}|�dtd�ddl}|jr3|���|�ddt�|j�|�Wd�S1s.wY|jr<|�	|j�S|�	|�
��S)Nr�/lgettext() is deprecated, use gettext() insteadrf�ignore�.*\blgettext\b.*)rYrZr[rr�catch_warnings�filterwarningsrr~�encode�getpreferredencoding)r�r�rYrr&r&r'rs�
�
 �zNullTranslations.lgettextcCs&|jr|j�|||�S|dkr|S|S�Nr8)rr)r��msgid1�msgid2r?r&r&r'r#s
zNullTranslations.ngettextcCs�ddl}|�dtd�ddl}|jr5|���|�ddt�|j�|||�Wd�S1s0wY|dkr<|}n|}|jrG|�	|j�S|�	|�
��S)Nr�1lngettext() is deprecated, use ngettext() insteadrfr��.*\blngettext\b.*r8)rYrZr[rrr�r�rr~r�r��r�r�r�r?rYr�tmsgr&r&r'r+s$�
� �zNullTranslations.lngettextcCs|jr
|j�||�S|Sr{)rr)r��contextr�r&r&r'r=szNullTranslations.pgettextcCs(|jr|j�||||�S|dkr|S|Sr�)rr)r�r�r�r�r?r&r&r'rBs
zNullTranslations.npgettextcC�|jSr{)r|�r�r&r&r'�infoJ�zNullTranslations.infocCr�r{)r}r�r&r&r'�charsetMr�zNullTranslations.charsetcCsddl}|�dtd�|jS)Nrzoutput_charset() is deprecatedrf�rYrZr[r~)r�rYr&r&r'�output_charsetPs
�zNullTranslations.output_charsetcCs ddl}|�dtd�||_dS)Nrz"set_output_charset() is deprecatedrfr�)r�r�rYr&r&r'�set_output_charsetVs
�
z#NullTranslations.set_output_charsetcCsNddl}|j|jd<|dur#hd�}|t|�@D]}t||�|j|<qdSdS)Nrri>r
rrrrr)�builtinsr
�__dict__�set�getattr)r��namesr��allowed�namer&r&r'r\s�zNullTranslations.installr{)rX�
__module__�__qualname__r�rGr�r
rrrrrr�r�r�r�rr&r&r&r'r�s
rc@s\eZdZdZdZdZdZdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�ZdS)rl�*l�$<z%s%s)rr8cCs|d?|d@fS)z/Returns a tuple of major version, minor version�i��r&)r��versionr&r&r'�
_get_versionsrszGNUTranslations._get_versionsc"Cs�ddlm}t|dd�}i|_}dd�|_|��}t|�}|d|dd	��d}||jkr>|d
|d	d��\}}	}
}d}n||jkrS|d
|d	d��\}}	}
}d}nt	dd|��|�
|�\}
}|
|jvrot	ddt|
�|��t
d|	�D]�}||||
|
d��\}}||}|||||d��\}}||}||kr�||kr�|||�}|||�}nt	dd|��|dk�r,d}|�d�D]l}|����}|s�q�|�d�r�|�d�r�q�d}}d|vr�|�dd�\}}|����}|��}||j|<|}n|�r|j|d|7<|dk�r|�d�d|_q�|dk�r+|�d�}|d�d�d}t|�|_q�|j�p1d}d|v�r\|�d�\}} |�d�}t||�}t|�D]\}}!t|!|�|||f<�qLn
t||�|t||�<|
d7}
|d7}qtdS)z8Override this method to support alternative .mo formats.r)�unpackr�rcSst|dk�Sr�)rH)r?r&r&r'�<lambda>sz(GNUTranslations._parse.<locals>.<lambda>z<INrCz<4Ir]z<IIz>4Iz>IIzBad magic numberzBad version number �zFile is corrupt�
z	#-#-#-#-#rEr8�
zcontent-typezcharset=zplural-forms�;zplural=�ascii�)�structr�r��_catalogr"�readr_�LE_MAGIC�BE_MAGIC�OSErrorr��VERSIONS�strrk�split�decode�strip�
startswith�endswith�lowerr|r}re�	enumerate)"r�r�r��filename�catalog�buf�buflen�magicr��msgcount�	masteridx�transidx�ii�
major_version�
minor_versionr4�mlen�moff�mend�tlen�toff�tend�msgr��lastk�b_item�item�k�vr"r�r�r��xr&r&r'rGvs|










�



�
�zGNUTranslations._parsecCspddl}|�dtd�ddl}t�}|j�||�}||ur(|jr&|j�|�S|}|j	r1|�
|j	�S|�
|���S)Nrr�rf)rYrZr[r�objectr�rKrrr~r�r�)r�r�rYr�missingr�r&r&r'r�s�zGNUTranslations.lgettextcCs�ddl}|�dtd�ddl}z|j||�|�f}Wnty:|jr/|j�|||�YS|dkr6|}n|}Ynw|j	rD|�
|j	�S|�
|���S)Nrr�rfr8)rYrZr[rr�r"�KeyErrorrrr~r�r�r�r&r&r'r�s$���zGNUTranslations.lngettextcCs6t�}|j�||�}||ur|jr|j�|�S|S|Sr{)r�r�rKrr
)r�r�r�r�r&r&r'r
�szGNUTranslations.gettextcCs`z
|j||�|�f}W|Sty/|jr!|j�|||�YS|dkr*|}Y|S|}Y|Swr�)r�r"r�rr)r�r�r�r?r�r&r&r'r�s���zGNUTranslations.ngettextcCsF|j||f}t�}|j�||�}||ur!|jr|j�||�S|S|Sr{)�CONTEXTr�r�rKrr)r�r�r��ctxt_msg_idr�r�r&r&r'rszGNUTranslations.pgettextc	Csp|j||f}z
|j||�|�f}W|Sty7|jr)|j�||||�YS|dkr2|}Y|S|}Y|Swr�)r�r�r"r�rr)r�r�r�r�r?r�r�r&r&r'rs���zGNUTranslations.npgettextN)rXr�r�r�r�r�r�r�rGrrr
rrrr&r&r&r'rfsY	
rFcCs|durt}|dur)g}dD]}tj�|�}|r|�d�}nqd|vr)|�d�g}|D]}t|�D]}||vr>|�|�q3q-|rEg}	nd}	|D]C}|dkrR|	Stj�||dd|�}
tj�d|dd|�}tj�	|
�rz|rv|	�|
�n|
Stj�	|�r�|r�|	�|�qI|SqI|	S)N)�LANGUAGE�LC_ALL�LC_MESSAGES�LANGrE�Cr�z%s.moz/usr/share/locale-langpack)
�_default_localedir�os�environrKr�rlrz�path�join�exists)�domain�	localedir�	languages�all�envarry�nelangs�lang�nelangrN�mofile�	mofile_lpr&r&r'rsP
�

���
��r�unspecifiedc	Cs<|durt}t|||dd�}|s!|rt�Sddlm}t|d|��d}|D]v}	|tj�|	�f}
t	�
|
�}|durUt|	d��}t	�|
||��}Wd�n1sPwYddl
}
|
�
|�}|tur�ddl}|�dtd�|r�|���|�d	d
t�|�|�Wd�n1s�wY|dur�|}q%|�|�q%|S)NT)r�r)�ENOENTz$No translation file found for domain�rbzparameter codeset is deprecatedrfr�z.*\bset_output_charset\b.*)rrr�errnor��FileNotFoundErrorr�r��abspath�
_translationsrK�open�
setdefault�copy�_unspecifiedrYrZr[r�r�r�r�)r�r�r��class_r�ru�mofilesr�rNr��key�tr�r�rYr&r&r'rVsH�
�
�
��rcCst||d|d�}|�|�dS)NT)r�ru)rr)r�r�rur�rr&r&r'r�sr�messagescCs|dur|atSr{)�_current_domain)r�r&r&r'r�srcCs|dur|t|<t�|t�Sr{)�_localedirsrKr�)r�r�r&r&r'r	�sr	cCs0ddl}|�dtd�|dur|t|<t�|�S)Nrz'bind_textdomain_codeset() is deprecatedrf)rYrZr[�_localecodesetsrK)r�rurYr&r&r'r
�s�
r
cCs8zt|t�|d��}Wnty|YSw|�|�Sr{)rrrKr�r
)r�r�rr&r&r'r�s�
rcCs�ddl}|�dtd�ddl}t�|�}z(|���|�ddt�t|t	�|d�|d�}Wd�n1s6wYWnt
yN|�|pJ|���YSw|���|�ddt�|�
|�Wd�S1sjwYdS)Nrz1ldgettext() is deprecated, use dgettext() insteadrfr��.*\bparameter codeset\b.*�rur�)rYrZr[rrrKr�r�rrr�r�r�r)r�r�rYrrurr&r&r'r�s.�

����
�$�rcCsLzt|t�|d��}Wnty|dkr|YS|YSw|�|||�Sr�)rrrKr�r)r�r�r�r?rr&r&r'r�s�rc	Cs�ddl}|�dtd�ddl}t�|�}z(|���|�ddt�t|t	�|d�|d�}Wd�n1s6wYWnt
yW|dkrJ|}n|}|�|pS|���YSw|���|�ddt�|�
|||�Wd�S1suwYdS)	Nrz3ldngettext() is deprecated, use dngettext() insteadrfr�rrr8r�)rYrZr[rrrKr�r�rrr�r�r�r)	r�r�r�r?rYrrurr�r&r&r'r�s4�

����
�$�rcCs:zt|t�|d��}Wnty|YSw|�||�Sr{)rrrKr�r)r�r�r�rr&r&r'r�s�rcCsNzt|t�|d��}Wnty|dkr|YS|YSw|�||||�Sr�)rrrKr�r)r�r�r�r�r?rr&r&r'r�s�rcCs
tt|�Sr{)rr)r�r&r&r'r
�s
r
cCsZddl}|�dtd�|���|�ddt�tt|�Wd�S1s&wYdS)Nrr�rfr�z.*\bldgettext\b.*)rYrZr[r�r�rr)r�rYr&r&r'r�s�
�$�rcCstt|||�Sr{)rr)r�r�r?r&r&r'rsrcCs^ddl}|�dtd�|���|�ddt�tt|||�Wd�S1s(wYdS)Nrr�rfr�z.*\bldngettext\b.*)rYrZr[r�r�rr)r�r�r?rYr&r&r'rs�
�$�rcCstt||�Sr{)rr)r�r�r&r&r'r
srcCstt||||�Sr{)rr)r�r�r�r?r&r&r'rsr)r;)NNFr{)0�__doc__r�r�sys�__all__r�r��base_prefixr��compile�VERBOSE�DOTALLrr(r)rIr�rJrGr\rerzrrrr�r�rrrrrrr	r
rrrrrrr
rrrrrrr&r&r&r'�<module>s^0
�

1$+h
95
�+




	

Upload File: