mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-22 19:10:43 +00:00
Merge branch 'master' of orgmode.org:org-mode
This commit is contained in:
commit
a265b15f12
|
@ -116,109 +116,6 @@ structure of the values.")
|
|||
See `org-export-filters-alist' for more information.")
|
||||
|
||||
|
||||
|
||||
;;; Internal Variables
|
||||
|
||||
(defconst org-e-ascii-dictionary
|
||||
'(("Footnotes\n"
|
||||
("en"
|
||||
:ascii "Footnotes\n"
|
||||
:latin1 "Footnotes\n"
|
||||
:utf-8 "Footnotes\n")
|
||||
("fr"
|
||||
:ascii "Notes de bas de page\n"
|
||||
:latin1 "Notes de bas de page\n"
|
||||
:utf-8 "Notes de bas de page\n"))
|
||||
("Listing %d: %s"
|
||||
("en"
|
||||
:ascii "Listing %d: %s"
|
||||
:latin1 "Listing %d: %s"
|
||||
:utf-8 "Listing %d: %s")
|
||||
("fr"
|
||||
:ascii "Programme %d : %s"
|
||||
:latin1 "Programme %d : %s"
|
||||
:utf-8 "Programme nº %d : %s"))
|
||||
("List Of Listings\n"
|
||||
("en"
|
||||
:ascii "List Of Listings\n"
|
||||
:latin1 "List Of Listings\n"
|
||||
:utf-8 "List Of Listings\n")
|
||||
("fr"
|
||||
:ascii "Liste des programmes\n"
|
||||
:latin1 "Liste des programmes\n"
|
||||
:utf-8 "Liste des programmes\n"))
|
||||
("List Of Tables\n"
|
||||
("en"
|
||||
:ascii "List Of Tables\n"
|
||||
:latin1 "List Of Tables\n"
|
||||
:utf-8 "List Of Tables\n")
|
||||
("fr"
|
||||
:ascii "Liste des tableaux\n"
|
||||
:latin1 "Liste des tableaux\n"
|
||||
:utf-8 "Liste des tableaux\n"))
|
||||
("Listing %d: "
|
||||
("en"
|
||||
:ascii "Listing %d: "
|
||||
:latin1 "Listing %d: "
|
||||
:utf-8 "Listing %d: ")
|
||||
("fr"
|
||||
:ascii "Programme %d : "
|
||||
:latin1 "Programme %d : "
|
||||
:utf-8 "Programme nº %d : "))
|
||||
("Table Of Contents\n"
|
||||
("en"
|
||||
:ascii "Table Of Contents\n"
|
||||
:latin1 "Table Of Contents\n"
|
||||
:utf-8 "Table Of Contents\n")
|
||||
("fr"
|
||||
:ascii "Sommaire\n"
|
||||
:latin1 "Table des matières\n"
|
||||
:utf-8 "Table des matières\n"))
|
||||
("Table %d: %s"
|
||||
("en"
|
||||
:ascii "Table %d: %s"
|
||||
:latin1 "Table %d: %s"
|
||||
:utf-8 "Table %d: %s")
|
||||
("fr"
|
||||
:ascii "Tableau %d : %s"
|
||||
:latin1 "Tableau %d : %s"
|
||||
:utf-8 "Tableau nº %d : %s"))
|
||||
("See section %s"
|
||||
("en"
|
||||
:ascii "See section %s"
|
||||
:latin1 "See section %s"
|
||||
:utf-8 "See section %s")
|
||||
("fr"
|
||||
:ascii "cf. section %s"
|
||||
:latin1 "cf. section %s"
|
||||
:utf-8 "cf. section %s"))
|
||||
("Table %d: "
|
||||
("en"
|
||||
:ascii "Table %d: "
|
||||
:latin1 "Table %d: "
|
||||
:utf-8 "Table %d: ")
|
||||
("fr"
|
||||
:ascii "Tableau %d : "
|
||||
:latin1 "Tableau %d : "
|
||||
:utf-8 "Tableau nº %d : "))
|
||||
("Unknown reference"
|
||||
("en"
|
||||
:ascii "Unknown reference"
|
||||
:latin1 "Unknown reference"
|
||||
:utf-8 "Unknown reference")
|
||||
("fr"
|
||||
:ascii "Destination inconnue"
|
||||
:latin1 "Référence inconnue"
|
||||
:utf-8 "Référence inconnue")))
|
||||
"Dictionary for ASCII back-end.
|
||||
|
||||
Alist whose car is the string to translate and cdr is an alist
|
||||
whose car is the language string and cdr is a plist whose
|
||||
properties are possible charsets and value the translated term.
|
||||
|
||||
It is used as a database for `org-e-ascii--translate'.")
|
||||
|
||||
|
||||
|
||||
;;; User Configurable Variables
|
||||
|
||||
|
@ -686,10 +583,10 @@ depth of the table.
|
|||
|
||||
Optional argument KEYWORD specifies the TOC keyword, if any, from
|
||||
which the table of contents generation has been initiated."
|
||||
(let ((title (org-e-ascii--translate "Table Of Contents\n" info)))
|
||||
(let ((title (org-e-ascii--translate "Table of Contents" info)))
|
||||
(concat
|
||||
title
|
||||
(make-string (1- (length title))
|
||||
title "\n"
|
||||
(make-string (length title)
|
||||
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
||||
"\n\n"
|
||||
(let ((text-width
|
||||
|
@ -711,10 +608,10 @@ which the table of contents generation has been initiated."
|
|||
|
||||
KEYWORD is the keyword that initiated the list of listings
|
||||
generation. INFO is a plist used as a communication channel."
|
||||
(let ((title (org-e-ascii--translate "List Of Listings\n" info)))
|
||||
(let ((title (org-e-ascii--translate "List of Listings" info)))
|
||||
(concat
|
||||
title
|
||||
(make-string (1- (length title))
|
||||
title "\n"
|
||||
(make-string (length title)
|
||||
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
||||
"\n\n"
|
||||
(let ((text-width
|
||||
|
@ -729,10 +626,10 @@ generation. INFO is a plist used as a communication channel."
|
|||
;; used to properly align caption right to it in case of
|
||||
;; filling (like contents of a description list item).
|
||||
(let ((initial-text
|
||||
(format (org-e-ascii--translate "Listing %d: " info)
|
||||
(format (org-e-ascii--translate "Listing %d:" info)
|
||||
(incf count))))
|
||||
(concat
|
||||
initial-text
|
||||
initial-text " "
|
||||
(org-trim
|
||||
(org-e-ascii--indent-string
|
||||
(org-e-ascii--fill-string
|
||||
|
@ -748,10 +645,10 @@ generation. INFO is a plist used as a communication channel."
|
|||
|
||||
KEYWORD is the keyword that initiated the list of listings
|
||||
generation. INFO is a plist used as a communication channel."
|
||||
(let ((title (org-e-ascii--translate "List Of Tables\n" info)))
|
||||
(let ((title (org-e-ascii--translate "List of Tables" info)))
|
||||
(concat
|
||||
title
|
||||
(make-string (1- (length title))
|
||||
title "\n"
|
||||
(make-string (length title)
|
||||
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
||||
"\n\n"
|
||||
(let ((text-width
|
||||
|
@ -766,10 +663,10 @@ generation. INFO is a plist used as a communication channel."
|
|||
;; used to properly align caption right to it in case of
|
||||
;; filling (like contents of a description list item).
|
||||
(let ((initial-text
|
||||
(format (org-e-ascii--translate "Table %d: " info)
|
||||
(format (org-e-ascii--translate "Table %d:" info)
|
||||
(incf count))))
|
||||
(concat
|
||||
initial-text
|
||||
initial-text " "
|
||||
(org-trim
|
||||
(org-e-ascii--indent-string
|
||||
(org-e-ascii--fill-string
|
||||
|
@ -952,11 +849,11 @@ holding export options."
|
|||
(when definitions
|
||||
(concat
|
||||
"\n\n\n"
|
||||
(let ((title (org-e-ascii--translate "Footnotes\n" info)))
|
||||
(let ((title (org-e-ascii--translate "Footnotes" info)))
|
||||
(concat
|
||||
title
|
||||
title "\n"
|
||||
(make-string
|
||||
(1- (length title))
|
||||
(length title)
|
||||
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))))
|
||||
"\n\n"
|
||||
(mapconcat
|
||||
|
@ -993,17 +890,10 @@ holding export options."
|
|||
org-e-ascii-global-margin)))
|
||||
|
||||
(defun org-e-ascii--translate (s info)
|
||||
"Translate string S.
|
||||
|
||||
INFO is a plist used as a communication channel.
|
||||
|
||||
Translation depends on `:language' property and allowed charset.
|
||||
If no translation in found for a given language and a given
|
||||
charset, fall-back to S."
|
||||
(let* ((charset (intern (format ":%s" (plist-get info :ascii-charset))))
|
||||
(lang (plist-get info :language))
|
||||
(translations (cdr (assoc s org-e-ascii-dictionary))))
|
||||
(or (plist-get (cdr (assoc lang translations)) charset) s)))
|
||||
"Translate string S according to specified language and charset.
|
||||
INFO is a plist used as a communication channel."
|
||||
(let ((charset (intern (format ":%s" (plist-get info :ascii-charset)))))
|
||||
(org-export-translate s charset info)))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -4020,6 +4020,88 @@ a string, or nil."
|
|||
(cadr (memq blob (org-element-contents parent)))))
|
||||
|
||||
|
||||
;;;; Translation
|
||||
;;
|
||||
;; `org-export-translate' translates a string according to language
|
||||
;; specified by LANGUAGE keyword or `org-export-language-setup'
|
||||
;; variable and a specified charset. `org-export-dictionary' contains
|
||||
;; the dictionary used for the translation.
|
||||
|
||||
(defun org-export-translate (s encoding info)
|
||||
"Translate string S according to language specification.
|
||||
|
||||
ENCODING is a symbol among `:ascii', `:html', `:latex', `:latin1'
|
||||
and `:utf8'. INFO is a plist used as a communication channel.
|
||||
|
||||
Translation depends on `:language' property. If no translation
|
||||
in found for a given language and a given encoding, return S."
|
||||
(let ((lang (plist-get info :language))
|
||||
(translations (cdr (assoc s org-export-dictionary))))
|
||||
(or (plist-get (cdr (assoc lang translations)) encoding) s)))
|
||||
|
||||
(defconst org-export-dictionary
|
||||
'(("Footnotes"
|
||||
("fr"
|
||||
:ascii "Notes de bas de page"
|
||||
:latin1 "Notes de bas de page"
|
||||
:utf-8 "Notes de bas de page"))
|
||||
("Listing %d: %s"
|
||||
("fr"
|
||||
:ascii "Programme %d : %s"
|
||||
:latin1 "Programme %d : %s"
|
||||
:utf-8 "Programme nº %d : %s"))
|
||||
("List of Listings"
|
||||
("fr"
|
||||
:ascii "Liste des programmes"
|
||||
:latin1 "Liste des programmes"
|
||||
:utf-8 "Liste des programmes"))
|
||||
("List of Tables"
|
||||
("fr"
|
||||
:ascii "Liste des tableaux"
|
||||
:latin1 "Liste des tableaux"
|
||||
:utf-8 "Liste des tableaux"))
|
||||
("Listing %d:"
|
||||
("fr"
|
||||
:ascii "Programme %d :"
|
||||
:latin1 "Programme %d :"
|
||||
:utf-8 "Programme nº %d :"))
|
||||
("Table of Contents"
|
||||
("fr"
|
||||
:ascii "Sommaire"
|
||||
:latin1 "Table des matières"
|
||||
:utf-8 "Table des matières"))
|
||||
("Table %d: %s"
|
||||
("fr"
|
||||
:ascii "Tableau %d : %s"
|
||||
:latin1 "Tableau %d : %s"
|
||||
:utf-8 "Tableau nº %d : %s"))
|
||||
("See section %s"
|
||||
("fr"
|
||||
:ascii "cf. section %s"
|
||||
:latin1 "cf. section %s"
|
||||
:utf-8 "cf. section %s"))
|
||||
("Table %d:"
|
||||
("fr"
|
||||
:ascii "Tableau %d :"
|
||||
:latin1 "Tableau %d :"
|
||||
:utf-8 "Tableau nº %d :"))
|
||||
("Unknown reference"
|
||||
("fr"
|
||||
:ascii "Destination inconnue"
|
||||
:latin1 "Référence inconnue"
|
||||
:utf-8 "Référence inconnue")))
|
||||
"Dictionary for export engine.
|
||||
|
||||
Alist whose CAR is the string to translate and CDR is an alist
|
||||
whose CAR is the language string and CDR is a plist whose
|
||||
properties are possible charsets and values translated terms.
|
||||
|
||||
It is used as a database for `org-export-translate'. Since this
|
||||
function returns the string as-is if no translation was found,
|
||||
the variable only needs to record values different from the
|
||||
entry.")
|
||||
|
||||
|
||||
|
||||
;;; The Dispatcher
|
||||
;;
|
||||
|
|
Loading…
Reference in a new issue