
Y¯”]ã  ã               @   sv   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   sB   |  j  d ƒ |  j  d ƒ } | j  d ƒ | j  d ƒ } | | k S)zz 
    helper that verifies that the message and the translated 
    message have the same number (and type) of % args
    ú%z\%)Úcount)ÚmessageZ
translatedZarguments_in_messageZarguments_in_translation© r   ú@/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeGettext.pyÚ_verify   s    r	   c              C   s=   t  d k r9 t j ƒ  }  t j |  t j |  ƒ d d ƒa  t  S)z1Return a suitable gettext.*Translations instance.NZfallbackT)Ú_translation_singletonÚ	mygettextÚ
textdomainÚtranslationÚbindtextdomain)Z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)N)r   Ú_ngettext_method)r   ZsingularZpluralÚnr   r   r   Úunicode_ngettext7   s    r   c             C   sP   |  d k r d St  t ƒ  |  ƒ } t |  | ƒ sL t j 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   sY   t  t ƒ  |  | | ƒ } t |  | ƒ sU t j d |  | | f ƒ | d k rQ |  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   )Zmsgid1Z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   

