
    Evg5)                         d dl Z d dlmZ d dlmZmZ d dlmZ ddlm	Z	m
Z
 dZ ed          Zd	 Z ed
          Z ed          Z ed          Z ed          Z ed          Z ed          ZddZdS )    N)StringIO)Lexer	TokenType)_lazy_re_compile   )TranslatorCommentWarningtrim_whitespaceTranslatorsz\Sc                 8    t                               ||           S )zg
    Change every non-whitespace character to the given char.
    Used in the templatize function.
    )dot_resub)srcchars     ^/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/utils/translation/template.pyblankoutr      s    
 ::dC       z.^\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?'))\s*z^\s*trans(?:late)?\s+((?:"[^"]*?")|(?:'[^']*?'))(?:\s*\|\s*[^\s:]+(?::(?:[^\s'":]+|(?:"[^"]*?")|(?:'[^']*?')))?)*(\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?')))?\s*zM^\s*blocktrans(?:late)?(\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?')))?(?:\s+|$)z^\s*endblocktrans(?:late)?$z^\s*plural$z_\(((?:".*?")|(?:'.*?'))\)c                 p   t          d          }d}d}d}d}g }g }d}	g }
i }d}d}d)d}t          |                                           D ]}|	r|j        t          j        k    r|j        dk    rd                    |
          }d}t          |	                    d                    D ]3\  }}|
                                                    t                    r|}4t          |	                    d                    D ];\  }}|||k    r|                    d|z             &|                    d	           <d}	g }
|
                    |j                   |r|j        t          j        k    rt                              |j                  }t"                              |j                  }|ru|r|rA|                    d
                    | |||           |||          |                     n?|                    d                     |||           |||          |                     |D ]%}|                    t'          |d                     &|D ]%}|                    t'          |d                     &n|r6|                    d                    | |||          |                     n4|                    d                     |||          |                     |D ]%}|                    t'          |d                     &d}d}d}g }g }|rd}d}|rd|z  }t)          d|j        ||j        fz            |j        t          j        k    r@|r|                    d|j        z             E|                    d|j        z             d|j        t          j        k    rI|j                            dd          }|r|                    |           |                    |           ||j        |j                            d          z   }||k    rQ|j        t          j        k    r;||         D ]-}d}|rd|z  }d|||fz  }t7          j        |t:                     .g ||<   n1|                    dd                    ||                   z             d}|j        t          j        k    rt<                              |j                  }t>                              |j                  }t@          !                    |j                  }|r/|d         }|d         dk    r|"                    d          }n!|d         dk    r|"                    d          }|                    dd          }|d         rtF                              |d                   } | d         }|d         dk    r|"                    d          }n!|d         dk    r|"                    d          }|                    d                    |||                     d}|                    d                    ||                     |rt@          !                    |j                  D ]}!|                    d|!z             |d         rktF                              |d                   } | d         }|d         dk    r|"                    d          }n!|d         dk    r|"                    d          }d}d}d |$                                v }g }g }|r|D ]}"|                    d|"z             |j        d!k    rd}	|                    t'          |j        d"                     @|j        t          j        k    r|j        %                    d#          }#t@                              |#d                   }"|"r|                    d|"d         z             |#dd         D ]q}$|$&                    d$          dk    r3|                    d%|$%                    d&d          d         z             N|                    t'          |$d'                     r-|j        t          j        k    rm|j        
                                                    t                    r:|'                    |j        g                               |j                   |j        }|                    t'          |j        d(                     |(                                S )*z
    Turn a Django template into something that is understood by xgettext. It
    does so by translating the Django translation tags into standard gettext
    function invocations.
     NFuc                 R    d                     |           }|rt          |          }|S )Nr   )joinr	   )tokenstrimmessages      r   join_tokensztemplatize.<locals>.join_tokens;   s+    ''&// 	/%g..Gr   
endcommentTz # %sz #
z, npgettext({p}{!r}, {p}{!r}, {p}{!r},count) )pz# ngettext({p}{!r}, {p}{!r}, count) SPz pgettext({p}{!r}, {p}{!r}) z gettext({p}{!r}) z	file %s, zDTranslation blocks must not include other block tags: %s (%sline %d)z%%(%s)s%z%%
zjThe translator-targeted comment '%s' (%sline %d) was ignored, because it wasn't the last item on the line.z# %sz | r   r   "'   z _(%s) trimmedcommentB|z:_(z %s :FX)F))r   r   tokenize
token_typer   BLOCKcontentsr   	enumerate
splitlineslstrip
startswithTRANSLATOR_COMMENT_MARKwriteappendendblock_rematch	plural_reformatr   SyntaxErrorlinenoVARTEXTreplacecountCOMMENTwarningswarnr   	inline_reblock_reconstant_refindallstrip
context_resplit_contentssplitfind
setdefaultgetvalue)%r   originoutmessage_contextintransinpluralr%   singularplural	incommentr&   lineno_comment_mapcomment_lineno_cache
raw_prefixr   tcontenttranslators_comment_startr<   line	endbmatchpluralmatchpartfilemsgr/   
cur_linenocwarn_msgimatchbmatchcmatchesgcontext_matchfmatchcmatchpartsr   s%                                        r   
templatizerm   '   s	    2,,COGHGHFIGJ    3ZZ  "" t5 t5 s	5|y..1:3M3M'''**,0)$-g.@.@.F.F$G$G ; ;LFD{{}}//0GHH ;4:1$-g.@.@.F.F$G$G * *LFD1="&???		'D.1111		&))))!	qz**** `	5|y..'--aj99	'ooaj99 7 ';* II N U U$3$/K'$B$B$/K$@$@&0	 !V !" !"     II E L L$/K'$B$B$/K$@$@&0 !M !" !"   %- ; ;DIIhtS&9&9::::$* ; ;DIIhtS&9&9::::; + II > E E$3$/K'$B$B&0 !F !" !"     II 4 ; ;$/K'$B$B&0 !< !" !"   %- ; ;DIIhtS&9&9::::&*O#G$H!HFF  	#HH G 7"-"6%),-J+JK   .. <MM)aj"89999OOI
$:;;;;//:--c488 .MM(++++OOH--- $/X
(8(8(>(>>
':55|y'888!34H!I 	N 	NA&(G% ?*5*>!= "#G-A B	(CH
 %M(4LMMMMCE*+?@II,>?S,T!U!UU   (,$|y.."44!
33&..qz:: -9q	Ats{{GGCLL1GGCLL		#t,,Aay P(2(8(8(C(C*7*:*1-44.=.C.CC.H.HOO,Q/366.=.C.CC.H.HO		:AA /j B    
 +/		"6"="=a:"="N"NOOOO 9"-"5"5aj"A"A 6 6		)f"45555ay I(2(8(8(C(C*7*:*1-44.=.C.CC.H.HOO,Q/366.=.C.CC.H.HO"G$H'1+;+;+=+==G!HFF 9"* 6 6		)f"455556Z9,, $IIIIhqz3778888..
((--$**5844 5IIi&)3444qrr 4 4Avve}}))		&1773??1+="=>>>>		(1c"2"23333	4
 !222:$$&&112IJJ 4&11!(B??FFqzRRR+,8(		(1:s334444<<>>r   )N)rB   ior   django.template.baser   r   django.utils.regex_helperr   r   r   r	   r4   r   r   rI   rD   rE   r7   r9   rF   rm    r   r   <module>rr      s!          1 1 1 1 1 1 1 1 6 6 6 6 6 6 7 7 7 7 7 7 7 7' 		%	 	 ! ! ! STT
< 	 X  ABB/00	@AAO O O O O Or   