From 957811be3e525b65e07e13854f8b18c99e8ddefa Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 18 Jun 2018 00:50:47 +0000 Subject: [PATCH 45/54] Python 3 preparation: update ugettext, ungettext uses. --- roundup/cgi/TranslationService.py | 24 +++++++++++++++++++++--- roundup/i18n.py | 14 ++++++++++++-- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/roundup/cgi/TranslationService.py b/roundup/cgi/TranslationService.py index 712d346..45d3947 100644 --- a/roundup/cgi/TranslationService.py +++ b/roundup/cgi/TranslationService.py @@ -32,13 +32,25 @@ class TranslationServiceMixin: def gettext(self, msgid): msgid = us2u(msgid) - msgtrans=self.ugettext(msgid) + try: + # Python 2. + ugfn = self.ugettext + except AttributeError: + # Python 3. + ugfn = self.gettext + msgtrans=ugfn(msgid) return u2s(msgtrans) def ngettext(self, singular, plural, number): singular = us2u(singular) plural = us2u(plural) - msgtrans=self.ungettext(singular, plural, number) + try: + # Python 2. + ungfn = self.ungettext + except AttributeError: + # Python 3. + ungfn = self.ngettext + msgtrans=ungfn(singular, plural, number) return u2s(msgtrans) class TranslationService(TranslationServiceMixin, i18n.RoundupTranslations): @@ -48,7 +60,13 @@ class NullTranslationService(TranslationServiceMixin, i18n.RoundupNullTranslations): def ugettext(self, message): if self._fallback: - return self._fallback.ugettext(message) + try: + # Python 2. + ugfn = self._fallback.ugettext + except AttributeError: + # Python 3. + ugfn = self._fallback.gettext + return ugfn(message) # Sometimes the untranslatable message is a UTF-8 encoded string # (thanks to PageTemplate's internals). message = us2u(message) diff --git a/roundup/i18n.py b/roundup/i18n.py index 80e331c..a1f9c60 100644 --- a/roundup/i18n.py +++ b/roundup/i18n.py @@ -203,8 +203,18 @@ def get_translation(language=None, tracker_home=None, translation = get_translation() # static translation functions _ = gettext = translation.gettext -ugettext = translation.ugettext +try: + # Python 2. + ugettext = translation.ugettext +except AttributeError: + # Python 3. + ugettext = translation.gettext ngettext = translation.ngettext -ungettext = translation.ungettext +try: + # Python 2. + ungettext = translation.ungettext +except AttributeError: + # Python 3. + ungettext = translation.ngettext # vim: set filetype=python sts=4 sw=4 et si : -- 2.7.4