o
    >Ic                     @   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   

