|
21 | 21 |
|
22 | 22 | from sphinx import addnodes |
23 | 23 | from sphinx.builders import Builder |
| 24 | +from sphinx.locale import translators |
24 | 25 | from sphinx.util.nodes import split_explicit_title |
25 | 26 | from sphinx.util.compat import Directive |
26 | 27 | from sphinx.writers.html import HTMLTranslator |
@@ -103,16 +104,25 @@ class ImplementationDetail(Directive): |
103 | 104 | optional_arguments = 1 |
104 | 105 | final_argument_whitespace = True |
105 | 106 |
|
| 107 | + # This text is copied to templates/dummy.html |
| 108 | + label_text = 'CPython implementation detail:' |
| 109 | + |
106 | 110 | def run(self): |
107 | 111 | pnode = nodes.compound(classes=['impl-detail']) |
| 112 | + label = translators['sphinx'].gettext(self.label_text) |
108 | 113 | content = self.content |
109 | | - add_text = nodes.strong('CPython implementation detail:', |
110 | | - 'CPython implementation detail:') |
| 114 | + add_text = nodes.strong(label, label) |
111 | 115 | if self.arguments: |
112 | 116 | n, m = self.state.inline_text(self.arguments[0], self.lineno) |
113 | 117 | pnode.append(nodes.paragraph('', '', *(n + m))) |
114 | 118 | self.state.nested_parse(content, self.content_offset, pnode) |
115 | 119 | if pnode.children and isinstance(pnode[0], nodes.paragraph): |
| 120 | + content = nodes.inline(pnode[0].rawsource, translatable=True) |
| 121 | + content.source = pnode[0].source |
| 122 | + content.line = pnode[0].line |
| 123 | + content += pnode[0].children |
| 124 | + pnode[0].replace_self(nodes.paragraph('', '', content, |
| 125 | + translatable=False)) |
116 | 126 | pnode[0].insert(0, add_text) |
117 | 127 | pnode[0].insert(1, nodes.Text(' ')) |
118 | 128 | else: |
|
0 commit comments