summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAarni Koskela <akx@iki.fi>2022-01-28 17:44:42 +0200
committerAarni Koskela <akx@iki.fi>2022-01-28 17:44:42 +0200
commit248fa358dd17f89f72a2cbc5bc29175dcc15be58 (patch)
treeeb7e51a1a1de7de2f34907330e63992419538750
parent7533914882b601475258ea0cdb0dfb3f056000be (diff)
downloadbabel-248fa358dd17f89f72a2cbc5bc29175dcc15be58.tar.gz
Don't assume `_output_charset` is a thing (it's not on Python 3.11)
Fixes #819
-rw-r--r--babel/support.py18
1 files changed, 5 insertions, 13 deletions
diff --git a/babel/support.py b/babel/support.py
index 021c0b1..5b5f8b9 100644
--- a/babel/support.py
+++ b/babel/support.py
@@ -387,16 +387,9 @@ class NullTranslations(gettext.NullTranslations, object):
import warnings
warnings.warn('lpgettext() is deprecated, use pgettext() instead',
DeprecationWarning, 2)
- ctxt_msg_id = self.CONTEXT_ENCODING % (context, message)
- missing = object()
- tmsg = self._catalog.get(ctxt_msg_id, missing)
- if tmsg is missing:
- if self._fallback:
- return self._fallback.lpgettext(context, message)
- return message
- if self._output_charset:
- return tmsg.encode(self._output_charset)
- return tmsg.encode(locale.getpreferredencoding())
+ tmsg = self.pgettext(context, message)
+ encoding = getattr(self, "_output_charset", None) or locale.getpreferredencoding()
+ return tmsg.encode(encoding)
def npgettext(self, context, singular, plural, num):
"""Do a plural-forms lookup of a message id. `singular` is used as the
@@ -432,9 +425,8 @@ class NullTranslations(gettext.NullTranslations, object):
ctxt_msg_id = self.CONTEXT_ENCODING % (context, singular)
try:
tmsg = self._catalog[(ctxt_msg_id, self.plural(num))]
- if self._output_charset:
- return tmsg.encode(self._output_charset)
- return tmsg.encode(locale.getpreferredencoding())
+ encoding = getattr(self, "_output_charset", None) or locale.getpreferredencoding()
+ return tmsg.encode(encoding)
except KeyError:
if self._fallback:
return self._fallback.lnpgettext(context, singular, plural, num)