diff options
author | kou <kou@cozmixng.org> | 2012-07-26 00:40:40 +0900 |
---|---|---|
committer | kou <kou@cozmixng.org> | 2012-07-26 00:40:40 +0900 |
commit | 01ee24b63c680a0f67b0a656fc8f11545388af6e (patch) | |
tree | e4a0b61cdcbc7cba7f3def78f5a924353f7e5e21 /sphinx/util | |
parent | b5c6afa4ce5407ff5ece5de1207bc615cb6a0476 (diff) | |
download | sphinx-01ee24b63c680a0f67b0a656fc8f11545388af6e.tar.gz |
Use term in description list as translation message
Here is a .rst that reproduces the problem fixed by this changes:
term-word
description-paragraph
"description-paragraph" is extracted as translation message by
"sphinx-build -b gettext" but "term-word" isn't.
It's because nodes.term node doesn't have source information.
Source information should be added by Docutils instead of Sphinx.
A patch that fix this problem in Doctuils had been submitted:
https://sourceforge.net/tracker/?func=detail&aid=3548418&group_id=38414&atid=422032
This changes are workarond to work with docutils-0.9.1 or earlier.
Diffstat (limited to 'sphinx/util')
-rw-r--r-- | sphinx/util/nodes.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py index dbedb7f2..8b8dd2bc 100644 --- a/sphinx/util/nodes.py +++ b/sphinx/util/nodes.py @@ -43,6 +43,14 @@ IGNORED_NODES = ( def extract_messages(doctree): """Extract translatable messages from a document tree.""" for node in doctree.traverse(nodes.TextElement): + # workaround: nodes.term doesn't have source, line and rawsource + # It should be fixed in Docutils. There is a patch for it in Docutils + # tracker: https://sourceforge.net/tracker/?func=detail&aid=3548418&group_id=38414&atid=422032 + if isinstance(node, nodes.term) and not node.source: + definition_list_item = node.parent; + node.source = definition_list_item.source + node.line = definition_list_item.line - 1 + node.rawsource = definition_list_item.rawsource.split("\n", 2)[0] if not node.source: continue # built-in message if isinstance(node, IGNORED_NODES): |