o >Ic @sPddlZddlZdZdZddZdaddZdd Zd d Z d dZd dZ dS)NgettextngettextcCs0|d|d}|d|d}||kS)zz helper that verifies that the message and the translated message have the same number (and type) of % args %z\%)count)message translatedarguments_in_messagearguments_in_translationr @/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeGettext.py_verifysr cCs*tdurt}tj|t|ddatS)z1Return a suitable gettext.*Translations instance.NT)fallback)_translation_singleton mygettext textdomain translationbindtextdomain)domainr r r _translation)s  rcCst|t|SN)getattr_gettext_method)rrr r r unicode_gettext3srcCst|t|||Sr)r_ngettext_method)rsingularpluralnr r r unicode_ngettext7srcCs<|dkrdStt|}t||std||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))rrr loggingerror)rtranslated_msgr r r r;s  cCsBtt|||}t||std|||f|dkr|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))rrr rr )msgid1msgid2rr!r r r rKs ) rrrrrr rrrrrr r r r s