o
    >I¼cã  ã                   @   sP   d dl Z d dlZdZdZdd„ Zdadd„ Zdd	„ Zd
d„ Z	dd„ Zdd„ Z
dS )é    NÚgettextÚngettextc                 C   s0   |   d¡|   d¡ }|  d¡|  d¡ }||kS )zz 
    helper that verifies that the message and the translated 
    message have the same number (and type) of % args
    ú%z\%)Úcount)ÚmessageÚ
translatedÚarguments_in_messageÚarguments_in_translation© r
   ú@/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeGettext.pyÚ_verify   s   r   c                  C   s*   t du rt ¡ } tj| t | ¡dd�a t S )z1Return a suitable gettext.*Translations instance.NT)Úfallback)Ú_translation_singletonÚ	mygettextÚ
textdomainÚtranslationÚbindtextdomain)Údomainr
   r
   r   Ú_translation)   s   ÿr   c                 C   s   t | tƒ|ƒS ©N)ÚgetattrÚ_gettext_method)r   r   r
   r
   r   Úunicode_gettext3   s   r   c                 C   s   t | tƒ|||ƒS r   )r   Ú_ngettext_method)r   ÚsingularÚpluralÚnr
   r
   r   Úunicode_ngettext7   s   r   c                 C   s<   | dkrdS t tƒ | ƒ}t| |ƒst d| |f ¡ | S |S )ze
    version of gettext that logs errors but does not crash on incorrect
    number of arguments
    Ú zJincorrect translation for message '%s' to '%s' (wrong number of arguments))r   r   r   ÚloggingÚerror)r   Útranslated_msgr
   r
   r   r   ;   s   
ÿÿc                 C   sB   t tƒ | ||ƒ}t| |ƒst d| ||f ¡ |dkr| S |S |S )zf
    version of ngettext that logs errors but does not crash on incorrect
    number of arguments
    z`incorrect translation for ngettext message '%s' plural: '%s' to '%s' (wrong number of arguments)é   )r   r   r   r   r    )Úmsgid1Úmsgid2r   r!   r
   r
   r   r   K   s   
ÿÿÿ)r   r   r   r   r   r   r   r   r   r   r   r
   r
   r
   r   Ú<module>   s   

