f DddlZddlZdZdZdZdadZdZdZ dZd Z y) Ngettextngettextc|jd|jdz }|jd|jdz }||k(S)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_translations @/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeGettext.py_verifyr sN #==.u1EE)//5 8H8H8OO #; ;;ct?tj}tj|tj|datS)z1Return a suitable gettext.*Translations instance.T)fallback)_translation_singleton mygettext textdomain translationbindtextdomain)domains r _translationr)sB%%%'!*!6!6 I,,V4t"E !!rc.t|t|SN)getattr_gettext_method)rrs r unicode_gettextr3s 07; 0 99rc2t|t|||Sr)r_ngettext_method)rsingularpluralns r unicode_ngettextr"7s 17; 0 1(FA FFrc|dk(rytt|}t||stjd|d|d|S|S)ze version of gettext that logs errors but does not crash on incorrect number of arguments z#incorrect translation for message '' to '' (wrong number of arguments))rrr loggingerror)rtranslated_msgs r rr;sK "}$\^W=N 7N + -4n F G rc tt|||}t||s(tjd|d|d|d|dk(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 'z ' plural: 'r%r&)r"rr r'r()msgid1msgid2r!r)s r rrKsS &lnffaHN 6> *  0 1 6M r) r'rrrrr rrrr"rrr r/s?,<":G  r