3
\                 @   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   | 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r&tj } tj| tj| dda t S )z1Return a suitable gettext.*Translations instance.NT)Zfallback)_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   s<   | dkrdS t t | }t| |s8t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   sB   t t | ||}t| |s>tj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   )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   

