mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merged in mschlenker/cs-sphinx/fix-nested-figure-caption-i18n (pull request #190)
I18n does not always extract figure captions for figures nested inside other blocks
This commit is contained in:
commit
615fe64847
@ -41,6 +41,23 @@ IGNORED_NODES = (
|
|||||||
nodes.doctest_block,
|
nodes.doctest_block,
|
||||||
#XXX there are probably more
|
#XXX there are probably more
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def find_source_node(node):
|
||||||
|
if node.source:
|
||||||
|
return node.source
|
||||||
|
|
||||||
|
current = node
|
||||||
|
while 1:
|
||||||
|
parent = current.parent
|
||||||
|
if parent.source:
|
||||||
|
return parent.source
|
||||||
|
else:
|
||||||
|
current = parent
|
||||||
|
|
||||||
|
if not current:
|
||||||
|
break
|
||||||
|
return None
|
||||||
|
|
||||||
def extract_messages(doctree):
|
def extract_messages(doctree):
|
||||||
"""Extract translatable messages from a document tree."""
|
"""Extract translatable messages from a document tree."""
|
||||||
for node in doctree.traverse(nodes.TextElement):
|
for node in doctree.traverse(nodes.TextElement):
|
||||||
@ -58,8 +75,8 @@ def extract_messages(doctree):
|
|||||||
# this issue was filed to Docutils tracker:
|
# this issue was filed to Docutils tracker:
|
||||||
# sf.net/tracker/?func=detail&aid=3599485&group_id=38414&atid=422032
|
# sf.net/tracker/?func=detail&aid=3599485&group_id=38414&atid=422032
|
||||||
# sourceforge.net/p/docutils/patches/108/
|
# sourceforge.net/p/docutils/patches/108/
|
||||||
if isinstance(node, (nodes.caption, nodes.title)) and not node.source:
|
if isinstance(node, (nodes.caption, nodes.title, nodes.rubric)) and not node.source:
|
||||||
node.source = node.parent.source
|
node.source = find_source_node(node)
|
||||||
node.line = 0 #need fix docutils to get `node.line`
|
node.line = 0 #need fix docutils to get `node.line`
|
||||||
|
|
||||||
if not node.source:
|
if not node.source:
|
||||||
|
Loading…
Reference in New Issue
Block a user