U
    B]                     @   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)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 } tj| t| 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 r   )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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   )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   

