diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py index 719f0631d63..83fa77aa180 100644 --- a/sphinx/transforms/i18n.py +++ b/sphinx/transforms/i18n.py @@ -512,11 +512,6 @@ def apply(self, **kwargs: Any) -> None: node['raw_entries'] = entries node['entries'] = new_entries - # remove translated attribute that is used for avoiding double translation. - matcher = NodeMatcher(translated=Any) - for translated in self.document.findall(matcher): # type: nodes.Element - translated.delattr('translated') - class RemoveTranslatableInline(SphinxTransform): """ diff --git a/tests/test_intl.py b/tests/test_intl.py index bcb602c819c..a6e68cbffdf 100644 --- a/tests/test_intl.py +++ b/tests/test_intl.py @@ -615,6 +615,21 @@ def test_gettext_buildr_ignores_only_directive(app): assert expect_msg.id in [m.id for m in actual if m.id] +@sphinx_intl +@pytest.mark.test_params(shared_result='test_intl_gettext') +def test_node_translated_attribute(app): + app.build() + + expected = 23 + translated_nodes = 0 + + doctree = app.env.get_doctree('admonitions') + for node in doctree.traverse(): + if hasattr(node, 'get') and node.get('translated', False): + translated_nodes += 1 + assert translated_nodes == expected + + @sphinx_intl # use individual shared_result directory to avoid "incompatible doctree" error @pytest.mark.sphinx(testroot='builder-gettext-dont-rebuild-mo')