diff --git a/contrib/lisp/org-e-odt.el b/contrib/lisp/org-e-odt.el
index 5b65ff590..b766d43d3 100644
--- a/contrib/lisp/org-e-odt.el
+++ b/contrib/lisp/org-e-odt.el
@@ -1171,17 +1171,23 @@ See `org-e-odt--build-date-styles' for implementation details."
;;
;; FIXME-2: Are there any other objects that need to be suppressed
;; within TOC?
- (setq info (org-e-odt--suppress-some-translators info (list 'radio-target)))
(let* ((title (org-export-translate "Table of Contents" :utf-8 info))
(headlines (org-export-collect-headlines
- info (and (wholenump depth) depth))))
+ info (and (wholenump depth) depth)))
+ (translations (nconc (mapcar
+ (lambda (type)
+ (cons type (lambda (data contents info)
+ contents)))
+ (list 'radio-target))
+ (plist-get info :translate-alist))))
(when headlines
(concat
(org-e-odt-begin-toc title depth)
(mapconcat
(lambda (headline)
(let* ((entry (org-e-odt-format-headline--wrap
- headline info 'org-e-odt-format-toc-headline))
+ headline translations info
+ 'org-e-odt-format-toc-headline))
(level (org-export-get-relative-level headline info))
(style (format "Contents_20_%d" level)))
(format "\n%s"
@@ -1782,12 +1788,13 @@ CONTENTS is nil. INFO is a plist holding contextual information."
"%s"
"OrgTag" tag)) tags " : "))))))
-(defun org-e-odt-format-headline--wrap (headline info
+(defun org-e-odt-format-headline--wrap (headline translations info
&optional format-function
&rest extra-keys)
"Transcode an HEADLINE element from Org to ODT.
CONTENTS holds the contents of the headline. INFO is a plist
holding contextual information."
+ (setq translations (or translations (plist-get info :translate-alist)))
(let* ((level (+ (org-export-get-relative-level headline info)))
(headline-number (org-export-get-headline-number headline info))
(section-number (and (org-export-numbered-headline-p headline info)
@@ -1795,11 +1802,13 @@ holding contextual information."
headline-number ".")))
(todo (and (plist-get info :with-todo-keywords)
(let ((todo (org-element-property :todo-keyword headline)))
- (and todo (org-export-data todo info)))))
+ (and todo (org-export-data-with-translations
+ todo translations info)))))
(todo-type (and todo (org-element-property :todo-type headline)))
(priority (and (plist-get info :with-priority)
(org-element-property :priority headline)))
- (text (org-export-data (org-element-property :title headline) info))
+ (text (org-export-data-with-translations
+ (org-element-property :title headline) translations info))
(tags (and (plist-get info :with-tags)
(org-export-get-tags headline info)))
(headline-label (concat "sec-" (mapconcat 'number-to-string
@@ -1826,7 +1835,7 @@ holding contextual information."
(unless (org-element-property :footnote-section-p headline)
(let* ((text (org-export-data (org-element-property :title headline) info))
;; Create the headline text.
- (full-text (org-e-odt-format-headline--wrap headline info))
+ (full-text (org-e-odt-format-headline--wrap headline nil info))
;; Get level relative to current parsed data.
(level (org-export-get-relative-level headline info))
;; Get canonical label for the headline.
@@ -1942,7 +1951,7 @@ holding contextual information."
(funcall org-e-odt-format-inlinetask-function
todo todo-type priority text tags contents)))))
(org-e-odt-format-headline--wrap
- inlinetask info format-function :contents contents)))
+ inlinetask nil info format-function :contents contents)))
;; Otherwise, use a default template.
(t
(format "\n%s"
@@ -1951,8 +1960,7 @@ holding contextual information."
(concat
(format "\n%s"
"OrgInlineTaskHeading"
- (org-e-odt-format-headline--wrap
- inlinetask info))
+ (org-e-odt-format-headline--wrap inlinetask nil info))
contents)
nil nil "OrgInlineTaskFrame" " style:rel-width=\"100%\"")))))
@@ -2150,11 +2158,16 @@ CONTENTS is nil. INFO is a plist holding contextual information."
;; elements in `org-element-all-objects', but for now this
;; will do.
(short-caption
- (let ((short-caption (or short-caption caption)))
+ (let ((short-caption (or short-caption caption))
+ (translations (nconc (mapcar
+ (lambda (type)
+ (cons type (lambda (data contents info)
+ contents)))
+ org-element-all-objects)
+ (plist-get info :translate-alist))))
(when short-caption
- (org-export-data short-caption
- (org-e-odt--suppress-some-translators
- info org-element-all-objects))))))
+ (org-export-data-with-translations short-caption
+ translations info)))))
(when (or label caption)
(let* ((default-category
(case (org-element-type element)