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,
|
||||
#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):
|
||||
"""Extract translatable messages from a document tree."""
|
||||
for node in doctree.traverse(nodes.TextElement):
|
||||
@ -58,8 +75,8 @@ def extract_messages(doctree):
|
||||
# this issue was filed to Docutils tracker:
|
||||
# sf.net/tracker/?func=detail&aid=3599485&group_id=38414&atid=422032
|
||||
# sourceforge.net/p/docutils/patches/108/
|
||||
if isinstance(node, (nodes.caption, nodes.title)) and not node.source:
|
||||
node.source = node.parent.source
|
||||
if isinstance(node, (nodes.caption, nodes.title, nodes.rubric)) and not node.source:
|
||||
node.source = find_source_node(node)
|
||||
node.line = 0 #need fix docutils to get `node.line`
|
||||
|
||||
if not node.source:
|
||||
|
Loading…
Reference in New Issue
Block a user