missing = object()
tmsg = self._catalog.get(ctxt_msg_id, missing)
if tmsg is missing:
- if self._fallback:
- return self._fallback.pgettext(context, message)
- return message
- return tmsg
+ tmsg = self._catalog.get((ctxt_msg_id, self.plural(1)), missing)
+ if tmsg is not missing:
+ return tmsg
+ if self._fallback:
+ return self._fallback.pgettext(context, message)
+ return message
def lpgettext(self, context: str, message: str) -> str | bytes | object:
"""Equivalent to ``pgettext()``, but the translation is returned in the
self.assertEqualTypeToo('Voh', self.translations.gettext('foo'))
self.assertEqualTypeToo('VohCTX', self.translations.pgettext('foo',
'foo'))
+ self.assertEqualTypeToo('VohCTX1', self.translations.pgettext('foo',
+ 'foo1'))
+
+ def test_pgettext_fallback(self):
+ fallback = self.translations._fallback
+ self.translations._fallback = support.NullTranslations()
+ assert self.translations.pgettext('foo', 'bar') == 'bar'
+ self.translations._fallback = fallback
def test_upgettext(self):
self.assertEqualTypeToo('Voh', self.translations.ugettext('foo'))