diff options
| author | jfbu <jfbu@free.fr> | 2018-11-06 18:30:21 +0100 |
|---|---|---|
| committer | jfbu <jfbu@free.fr> | 2018-11-06 18:30:21 +0100 |
| commit | 16f47cded956bfba55380034ff30988d2ab5ee7c (patch) | |
| tree | 8978e882ce71083fdf65a5a5a82ddedc68e8b35e /sphinx/transforms | |
| parent | c307787dc84e2ff9a3c5cb1f67c21e585228712d (diff) | |
| parent | c9999b12087ce4a0f9ea2ebcfb2efd2d71897733 (diff) | |
| download | sphinx-git-16f47cded956bfba55380034ff30988d2ab5ee7c.tar.gz | |
Merge branch '1.8'
Diffstat (limited to 'sphinx/transforms')
| -rw-r--r-- | sphinx/transforms/i18n.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py index 727a12be6..52add24ed 100644 --- a/sphinx/transforms/i18n.py +++ b/sphinx/transforms/i18n.py @@ -354,7 +354,7 @@ class Locale(SphinxTransform): is_refnamed_footnote_ref = NodeMatcher(nodes.footnote_reference, refname=Any) old_foot_refs = node.traverse(is_refnamed_footnote_ref) new_foot_refs = patch.traverse(is_refnamed_footnote_ref) - refname_ids_map = {} + refname_ids_map = {} # type: Dict[unicode, List[unicode]] if len(old_foot_refs) != len(new_foot_refs): old_foot_ref_rawsources = [ref.rawsource for ref in old_foot_refs] new_foot_ref_rawsources = [ref.rawsource for ref in new_foot_refs] @@ -363,11 +363,11 @@ class Locale(SphinxTransform): .format(old_foot_ref_rawsources, new_foot_ref_rawsources), location=node) for old in old_foot_refs: - refname_ids_map[old["refname"]] = old["ids"] + refname_ids_map.setdefault(old["refname"], []).append(old["ids"]) for new in new_foot_refs: refname = new["refname"] - if refname in refname_ids_map: - new["ids"] = refname_ids_map[refname] + if refname_ids_map.get(refname): + new["ids"] = refname_ids_map[refname].pop(0) # citation should use original 'ids'. is_citation_ref = NodeMatcher(nodes.citation_reference, refname=Any) @@ -382,11 +382,11 @@ class Locale(SphinxTransform): .format(old_cite_ref_rawsources, new_cite_ref_rawsources), location=node) for old in old_cite_refs: - refname_ids_map[old["refname"]] = old["ids"] + refname_ids_map.setdefault(old["refname"], []).append(old["ids"]) for new in new_cite_refs: refname = new["refname"] - if refname in refname_ids_map: - new["ids"] = refname_ids_map[refname] + if refname_ids_map.get(refname): + new["ids"] = refname_ids_map[refname].pop() # Original pending_xref['reftarget'] contain not-translated # target name, new pending_xref must use original one. |
