gh-98366: use sphinx.locale._ as gettext() in pyspecific.py (#98437)

fix(doc-tools): use sphinx.locale._ as gettext() for backward-compatibility in pyspecific.py

[why] spinix 5.3 changed locale.translators from a defaultdict(gettext.NullTranslations) to a dict, which leads to failure of pyspecific.py. Use sphinx.locale._ as gettext to fix the issue.
This commit is contained in:
Wei-Hsiang (Matt) Wang 2022-11-11 09:18:11 +08:00 committed by GitHub
parent 3a1dde8f29
commit d26ee8a0a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -26,7 +26,7 @@ try:
from sphinx.errors import NoUri
except ImportError:
from sphinx.environment import NoUri
from sphinx.locale import translators
from sphinx.locale import _ as sphinx_gettext
from sphinx.util import status_iterator, logging
from sphinx.util.nodes import split_explicit_title
from sphinx.writers.text import TextWriter, TextTranslator
@ -104,7 +104,7 @@ class ImplementationDetail(Directive):
def run(self):
self.assert_has_content()
pnode = nodes.compound(classes=['impl-detail'])
label = translators['sphinx'].gettext(self.label_text)
label = sphinx_gettext(self.label_text)
content = self.content
add_text = nodes.strong(label, label)
self.state.nested_parse(content, self.content_offset, pnode)
@ -252,7 +252,7 @@ class AuditEvent(Directive):
else:
args = []
label = translators['sphinx'].gettext(self._label[min(2, len(args))])
label = sphinx_gettext(self._label[min(2, len(args))])
text = label.format(name="``{}``".format(name),
args=", ".join("``{}``".format(a) for a in args if a))
@ -431,7 +431,7 @@ class DeprecatedRemoved(Directive):
else:
label = self._removed_label
label = translators['sphinx'].gettext(label)
label = sphinx_gettext(label)
text = label.format(deprecated=self.arguments[0], removed=self.arguments[1])
if len(self.arguments) == 3:
inodes, messages = self.state.inline_text(self.arguments[2],