3
X'íc ã D @ sØ d Z ddlmZmZ ddlmZ edZd!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdCZddZG dd de Z
efddZd S )ez¸
babel.messages.plurals
~~~~~~~~~~~~~~~~~~~~~~
Plural form definitions.
:copyright: (c) 2013-2022 by the Babel Team.
:license: BSD, see LICENSE for more details.
é )Údefault_localeÚLocale)Ú
itemgetterÚLC_CTYPEé ú(n != 1)é ú[(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5)é úR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)é Ú0á& (n==1 ? 0 : n%10==1 && n%100!=11 && n%100!=71 && n%100!=91 ? 1 : n%10==2 && n%100!=12 && n%100!=72 && n%100!=92 ? 2 : (n%10==3 || n%10==4 || n%10==9) && n%100!=13 && n%100!=14 && n%100!=19 && n%100!=73 && n%100!=74 && n%100!=79 && n%100!=93 && n%100!=94 && n%100!=99 ? 3 : n%1000000==0 ? 4 : 5)ú%((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2)é ú/(n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 0)ú(n > 1)ú@(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)ú(n%10==1 && n%100!=11 ? 0 : 1)úG(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)ú+(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)é úS(n==1 ? 0 : n==0 || ( n%100>=1 && n%100<=10) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)úB(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)ú8(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2)ú<(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3))CÚafÚarÚbeÚbgZbnZboÚbrÚbsÚcaÚcsZcvÚcyÚdaÚdeZdzÚelÚenÚeoÚesÚetÚeuÚfaÚfiÚfrZfurÚgaÚglZhaÚheÚhiÚhrÚhuZhyÚisÚitÚjaÚkaZkgÚkmÚkoZkuÚloÚltÚlvÚmtÚnbÚnlÚnnÚnoÚpaÚplÚptÚpt_BRÚroÚruÚskÚslÚsrÚstÚsvÚthÚtrÚukÚveÚviÚxhÚzhc @ sL e Zd ZdZf ZeedddZeedddZedd d dZ d
d Z
dS )
Ú_PluralTuplez A tuple with plural information.r z.
The number of plurals used by the locale.)Údocr z.
The plural expression used by the locale.c C s d| S )Nznplurals=%s; plural=%s;© )ÚxrX rX ú7/tmp/pip-build-gk9425m9/babel/babel/messages/plurals.pyÚ<lambda>× s z_PluralTuple.<lambda>z9
The plural expression used by the catalog or locale.c C s | j S )N)Úplural_forms)ÚselfrX rX rZ Ú__str__Ú s z_PluralTuple.__str__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú __slots__Úpropertyr Znum_pluralsZplural_exprr\ r^ rX rX rX rZ rV Ï s rV c C s` t j| } ytt| }W n< tk
rV yt| j }W n tk
rP t}Y nX Y nX t|S )a¸ A tuple with the information catalogs need to perform proper
pluralization. The first item of the tuple is the number of plural
forms, the second the plural expression.
>>> get_plural(locale='en')
(2, '(n != 1)')
>>> get_plural(locale='ga')
(5, '(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)')
The object returned is a special tuple with additional members:
>>> tup = get_plural("ja")
>>> tup.num_plurals
1
>>> tup.plural_expr
'0'
>>> tup.plural_forms
'nplurals=1; plural=0;'
Converting the tuple into a string prints the plural forms for a
gettext catalog:
>>> str(tup)
'nplurals=1; plural=0;'
)r ÚparseÚPLURALSÚstrÚKeyErrorÚlanguageÚDEFAULT_PLURALrV )ÚlocaleÚtuprX rX rZ Ú
get_pluralÞ s
rm N)r r )r r )r