Your IP : 3.141.167.128
Current Path : /lib64/python2.7/ |
|
Current File : //lib64/python2.7/gettext.pyc |
�
_Ofc@sIdZddlZddlZddlZddlZddlZddlZddlmZdddddd d
ddd
dddddddgZ ej
jejdd�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//cCsMd}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��nXdS(
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"RItRuntimeError(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 �Zd
�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(Rhtadd_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__RRR
R( t__builtin__RqRt__dict__thasattrRsRR
R(RiRrtnamesRy((s/usr/lib64/python2.7/gettext.pyR=sN(RHt
__module__ReRkR7RlRR
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
scontent-typescharset=splural-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;RhRRgtencodeRf(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�R7RR
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
RRRRR
RRR(((s/usr/lib64/python2.7/gettext.pyt<module>s\&H 1 $ +T�&