Your IP : 3.139.86.74


Current Path : /usr/lib64/python2.7/
Upload File :
Current File : //usr/lib64/python2.7/gettext.pyc

�
zfc@sIdZddlZddlZddlZddlZddlZddlZddlmZdddddd	d
ddd
dddddddgZ	ej
jejdd�Z
ejdejejB�Zd�Zd�ZdBdCdDdEdFdGfZd'�eed(�D�Zid)d6d*d6d+d%6Zdd,�Zd-�Zd.�Zd/�ZddHd0��YZdefd1��YZddd2d3�ZiZddde dd4�Z!de ddd5�Z"ia#ia$d6a%dd7�Z&dd8�Z'dd9�Z(d:�Z)d;�Z*d<�Z+d=�Z,d>�Z-d?�Z.d@�Z/dA�Z0e!Z1dS(Is�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.

i����N(tENOENTtNullTranslationstGNUTranslationstCatalogtfindttranslationtinstallt
textdomaintbindtextdomaintbind_textdomain_codesettdgettextt	dngettexttgettexttlgettextt	ldgettextt
ldngettextt	lngettexttngettexttsharetlocales�
        (?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
    ccstxhtjt|�D]T}|j}|dkr4qn|j|�}|dkrbtd|��n|VqWdVdS(NtWHITESPACEStINVALIDs invalid token in plural form: %st(tretfinditert_token_patternt	lastgrouptgroupt
ValueError(tpluraltmotkindtvalue((s/usr/lib64/python2.7/gettext.pyt	_tokenizeTs		cCs"|rtd|�Std�SdS(Ns#unexpected token in plural form: %ssunexpected end of plural form(R(R ((s/usr/lib64/python2.7/gettext.pyt_error_ss||s&&s==s!=t<t>s<=s>=t+t-t*t/t%cCs,i|]"\}}|D]}||�qqS(((t.0titopstop((s/usr/lib64/python2.7/gettext.pys
<dictcomp>ms	itortands//cCsMd}t|�}x&|dkr:|d7}t|�}qW|dkr�t|�\}}d||f}|dkr�td��q�nb|dkr�d	||f}nCyt|d
�}Wntk
r�t|��nXd||f}t|�}d}x�|tkr�t|}||kr$Pn|dkrI|dkrId|}ntj||�}t||d�\}	}d|||	f}|}q�W||ko�dknr�d|}n|dkrC|dkrCt|d�\}
}|dkrt|��nt|�\}}d|
||f}|dkrCd|}qCn||fS(NRt!snot t(s%s(%s)t)s%unbalanced parenthesis in plural formtns%s%si
s%s%didiis(%s)is%s %s %st?it:s%s if %s else %s(ii(ii(tnextt_parseRtintR"t_binary_opst	_c2py_opstget(ttokenstprioritytresulttnexttoktsubR tjR+R-trighttif_truetif_false((s/usr/lib64/python2.7/gettext.pyR7psP





cCsAyt|�}Wn*tk
r<td|jjf��nX|S(Ns'Plural value must be an integer, got %s(troundt	TypeErrort	__class__t__name__(R3R+((s/usr/lib64/python2.7/gettext.pyt_as_int�s
cBs�e|�dkr!ed��ny�ee|��\}}|rQe|��nd}x[|D]S}|dkr�|d7}|dkr�ed��q�q^|dkr^|d8}q^q^Wied	6}d
||U|dSWnek
r�ed��nXdS(
s�Gets a C expression as used in PO files for plural forms and returns a
    Python function that implements an equivalent expression.
    i�s"plural form expression is too longiR1iis%plural form expression is too complexR2RIs�if 1:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            tfuncN(tlenRR7R!R"RItRuntimeError(RR>R?tdepthtctns((s/usr/lib64/python2.7/gettext.pytc2py�s&



cCs�ddlm}||�}d
}d}d}d}|jd�}|dkrp||}|| }||O}nd}|jd�}|dkr�||}|| }||O}nd}|jd	�}|dkr�||}	|| }||O}nd}	|}
g}x~t|d�D]l}||@s|
}
||@rE|
|	7}
n||@r\|
|7}
n||@rs|
|7}
n|j|
�qqW|j�|S(
Ni����(t	normalizeiiit@Rt.t_iii(RRQRtrangetappendtreverse(RRQtCOMPONENT_CODESETtCOMPONENT_TERRITORYtCOMPONENT_MODIFIERtmasktpostmodifiertcodesett	territorytlanguagetretR+tval((s/usr/lib64/python2.7/gettext.pyt_expand_lang�sL















cBs�eZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zedd
�ZRS(cCsDi|_d|_d|_d|_|dk	r@|j|�ndS(N(t_infotNonet_charsett_output_charsett	_fallbackR7(tselftfp((s/usr/lib64/python2.7/gettext.pyt__init__�s				cCsdS(N((RiRj((s/usr/lib64/python2.7/gettext.pyR7scCs)|jr|jj|�n	||_dS(N(Rhtadd_fallback(Ritfallback((s/usr/lib64/python2.7/gettext.pyRls	cCs|jr|jj|�S|S(N(RhR(Ritmessage((s/usr/lib64/python2.7/gettext.pyR
s	cCs|jr|jj|�S|S(N(RhR
(RiRn((s/usr/lib64/python2.7/gettext.pyR
s	cCs7|jr|jj|||�S|dkr/|S|SdS(Ni(RhR(Ritmsgid1tmsgid2R3((s/usr/lib64/python2.7/gettext.pyRs
	cCs7|jr|jj|||�S|dkr/|S|SdS(Ni(RhR(RiRoRpR3((s/usr/lib64/python2.7/gettext.pyRs
	cCs#|jr|jj|�St|�S(N(Rhtugettexttunicode(RiRn((s/usr/lib64/python2.7/gettext.pyRq$s	cCsC|jr|jj|||�S|dkr5t|�St|�SdS(Ni(Rht	ungettextRr(RiRoRpR3((s/usr/lib64/python2.7/gettext.pyRs)s
	
cCs|jS(N(Rd(Ri((s/usr/lib64/python2.7/gettext.pytinfo1scCs|jS(N(Rf(Ri((s/usr/lib64/python2.7/gettext.pytcharset4scCs|jS(N(Rg(Ri((s/usr/lib64/python2.7/gettext.pytoutput_charset7scCs
||_dS(N(Rg(RiRu((s/usr/lib64/python2.7/gettext.pytset_output_charset:scCs�ddl}|r|jp!|j|jd<t|d�r�d|kr]|jd|jd<nd|kr�|rx|jp~|j|jd<nd|kr�|j|jd<nd|kr�|j|jd<q�ndS(Ni����RTt__contains__RRR
R(	t__builtin__RqRt__dict__thasattrRsRR
R(RiRrtnamesRy((s/usr/lib64/python2.7/gettext.pyR=sN(RHt
__module__ReRkR7RlRR
RRRqRsRtRuRvRwtFalseR(((s/usr/lib64/python2.7/gettext.pyR�s												cBsSeZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	l�*l�$<cCs�tj}t|dd�}i|_}d�|_|j�}t|�}|d|d �d}||jkr�|d|dd!�\}}	}
}d	}nL||jkr�|d
|dd!�\}}	}
}d}nt	dd|��x�t
d|	�D]�}
||||
|
d
!�\}}||}|||||d
!�\}}||}||kr�||kr�|||!}|||!}nt	dd|��|dkr�d}x/|j�D]}|j
�}|s�q�n|jd�r�q�nd}}d|krN|jdd�\}}|j
�j�}|j
�}||j|<|}n |rn|j|cd|7<n|dkr�|jd�d|_q�|dkr�|jd�}|djd�d}t|�|_q�q�Wnd|kr�|jd�\}}|jd�}|jrQt||j�}g|D]}t||j�^q0}nxktt|��D]}
||
|||
f<qdWn:|jr�t||j�}t||j�}n|||<|
d
7}
|d
7}q�WdS(s8Override this method to support alternative .mo formats.tnameRcSst|dk�S(Ni(R8(R3((s/usr/lib64/python2.7/gettext.pyt<lambda>XRs<Iiis<4Iis<IIs>4Is>IIsBad magic numberisFile is corruptt#R5is
scontent-typescharset=splural-formst;splural=sN(tstructtunpacktgetattrt_catalogRtreadRKtLE_MAGICtBE_MAGICtIOErrortxrangeRet
splitlineststript
startswithtsplittlowerRdRfRPRrRU(RiRjR�tfilenametcatalogtbuftbuflentmagictversiontmsgcountt	masteridxttransidxtiiR+tmlentmofftmendttlenttoffttendtmsgttmsgtlastktitemtktvRRoRptx((s/usr/lib64/python2.7/gettext.pyR7Qsx	
"	"	 
 



	
	(	

cCs}t�}|jj||�}||krG|jrC|jj|�S|S|jr`|j|j�S|jry|j|j�S|S(N(tobjectR�R;RhRRgtencodeRf(RiRntmissingR�((s/usr/lib64/python2.7/gettext.pyR�s				cCsst�}|jj||�}||krG|jrC|jj|�S|S|jr`|j|j�S|jtj��S(N(	R�R�R;RhR
RgR�Rtgetpreferredencoding(RiRnR�R�((s/usr/lib64/python2.7/gettext.pyR
�s			cCs�yV|j||j|�f}|jr8|j|j�S|jrQ|j|j�S|SWnDtk
r�|jr�|jj|||�S|dkr�|S|SnXdS(Ni(R�RRgR�RftKeyErrorRhR(RiRoRpR3R�((s/usr/lib64/python2.7/gettext.pyR�s		
	cCs�yL|j||j|�f}|jr8|j|j�S|jtj��SWnDtk
r�|jr{|jj|||�S|dkr�|S|SnXdS(Ni(	R�RRgR�RR�R�RhR(RiRoRpR3R�((s/usr/lib64/python2.7/gettext.pyR�s	
	cCsQt�}|jj||�}||krM|jrC|jj|�St|�S|S(N(R�R�R;RhRqRr(RiRnR�R�((s/usr/lib64/python2.7/gettext.pyRq�s		
cCs~y |j||j|�f}WnWtk
ry|jrO|jj|||�S|dkrjt|�}qzt|�}nX|S(Ni(R�RR�RhRsRr(RiRoRpR3R�((s/usr/lib64/python2.7/gettext.pyRs�s 
	(RHR}R�R�R7RR
RRRqRs(((s/usr/lib64/python2.7/gettext.pyRLs	T						icCsT|dkrt}n|dkr�g}x9dD]1}tjj|�}|r.|jd�}Pq.q.Wd|kr�|jd�q�ng}xA|D]9}x0t|�D]"}||kr�|j|�q�q�Wq�W|r�g}	nd}	xl|D]d}|dkr�Pntjj	||dd|�}
tjj
|
�r�|rE|	j|
�qL|
Sq�q�W|	S(	NtLANGUAGEtLC_ALLtLC_MESSAGEStLANGR5tCs%s.mo(R�R�R�R�(Ret_default_localedirtostenvironR;R�RVRctpathtjointexists(tdomaint	localedirt	languagestalltenvarRbtnelangstlangtnelangR>tmofile((s/usr/lib64/python2.7/gettext.pyR�s8	

	
c	Cs|dkrt}nt|||dd�}|sU|r@t�Sttd|��nd}x�|D]�}|tjj|�f}	t	j
|	�}
|
dkr�t|d��}t	j|	||��}
WdQXnt
j
|
�}
|r�|
j|�n|dkr|
}qb|j|
�qbW|S(NR�is$No translation file found for domaintrb(ReRRRR�RR�R�tabspatht
_translationsR;topent
setdefaulttcopyRwRl(R�R�R�tclass_RmR^tmofilesR>R�tkeyttRj((s/usr/lib64/python2.7/gettext.pyRs*	
!	cCs/t||dtd|�}|j||�dS(NRmR^(RtTrueR(R�R�RrR^R|R�((s/usr/lib64/python2.7/gettext.pyR:stmessagescCs|dk	r|antS(N(Ret_current_domain(R�((s/usr/lib64/python2.7/gettext.pyRHs	cCs)|dk	r|t|<ntj|t�S(N(Ret_localedirsR;R�(R�R�((s/usr/lib64/python2.7/gettext.pyROs
cCs&|dk	r|t|<ntj|�S(N(Ret_localecodesetsR;(R�R^((s/usr/lib64/python2.7/gettext.pyR	Vs
cCsPy.t|tj|d�dtj|��}Wntk
rB|SX|j|�S(NR^(RR�R;ReR�R�R(R�RnR�((s/usr/lib64/python2.7/gettext.pyR
]s
cCsPy.t|tj|d�dtj|��}Wntk
rB|SX|j|�S(NR^(RR�R;ReR�R�R
(R�RnR�((s/usr/lib64/python2.7/gettext.pyRes
cCsiy.t|tj|d�dtj|��}Wn%tk
rU|dkrN|S|SnX|j|||�S(NR^i(RR�R;ReR�R�R(R�RoRpR3R�((s/usr/lib64/python2.7/gettext.pyRms
cCsiy.t|tj|d�dtj|��}Wn%tk
rU|dkrN|S|SnX|j|||�S(NR^i(RR�R;ReR�R�R(R�RoRpR3R�((s/usr/lib64/python2.7/gettext.pyRxs
cCs
tt|�S(N(R
R�(Rn((s/usr/lib64/python2.7/gettext.pyR�scCs
tt|�S(N(RR�(Rn((s/usr/lib64/python2.7/gettext.pyR
�scCstt|||�S(N(RR�(RoRpR3((s/usr/lib64/python2.7/gettext.pyR�scCstt|||�S(N(RR�(RoRpR3((s/usr/lib64/python2.7/gettext.pyR�s(s||(s&&(s==s!=(R#R$s<=s>=(R%R&(R'R(R)((2t__doc__RR�R�RR�tsysterrnoRt__all__R�R�tprefixR�tcompiletVERBOSEtDOTALLRR!R"R9t	enumerateR:R7RIRPRcRRReRR�R~RRR�R�R�RRR	R
RRRRR
RRR(((s/usr/lib64/python2.7/gettext.pyt<module>s\&H				1		$	+T�&								

?>