]> granicus.if.org Git - python/commitdiff
bpo-28331: fix impl-detail label is removed when content is translated. (GH-195)
authorINADA Naoki <methane@users.noreply.github.com>
Wed, 8 Mar 2017 10:07:13 +0000 (19:07 +0900)
committerGitHub <noreply@github.com>
Wed, 8 Mar 2017 10:07:13 +0000 (19:07 +0900)
Doc/tools/extensions/pyspecific.py
Doc/tools/templates/dummy.html [new file with mode: 0644]

index 4d4fb8fc8350bea97536eaa60f5ae1b213c3e14a..1b9125949ddce230302cdf2d4adfb99d35b7085c 100644 (file)
@@ -21,6 +21,7 @@ from docutils import nodes, utils
 
 from sphinx import addnodes
 from sphinx.builders import Builder
+from sphinx.locale import translators
 from sphinx.util.nodes import split_explicit_title
 from sphinx.util.compat import Directive
 from sphinx.writers.html import HTMLTranslator
@@ -103,16 +104,25 @@ class ImplementationDetail(Directive):
     optional_arguments = 1
     final_argument_whitespace = True
 
+    # This text is copied to templates/dummy.html
+    label_text = 'CPython implementation detail:'
+
     def run(self):
         pnode = nodes.compound(classes=['impl-detail'])
+        label = translators['sphinx'].gettext(self.label_text)
         content = self.content
-        add_text = nodes.strong('CPython implementation detail:',
-                                'CPython implementation detail:')
+        add_text = nodes.strong(label, label)
         if self.arguments:
             n, m = self.state.inline_text(self.arguments[0], self.lineno)
             pnode.append(nodes.paragraph('', '', *(n + m)))
         self.state.nested_parse(content, self.content_offset, pnode)
         if pnode.children and isinstance(pnode[0], nodes.paragraph):
+            content = nodes.inline(pnode[0].rawsource, translatable=True)
+            content.source = pnode[0].source
+            content.line = pnode[0].line
+            content += pnode[0].children
+            pnode[0].replace_self(nodes.paragraph('', '', content,
+                                                  translatable=False))
             pnode[0].insert(0, add_text)
             pnode[0].insert(1, nodes.Text(' '))
         else:
diff --git a/Doc/tools/templates/dummy.html b/Doc/tools/templates/dummy.html
new file mode 100644 (file)
index 0000000..6e43be2
--- /dev/null
@@ -0,0 +1,6 @@
+This file is not an actual template, but used to add some
+texts in extensions to sphinx.pot file.
+
+In extensions/pyspecific.py:
+
+{% trans %}CPython implementation detail:{% endtrans %}