Kuruluş modunda içindekiler başlığını belge diline göre değiştirme


14

Kuruluş modunda içindekiler tablosunun varsayılan başlığını değiştiren bir seçenek var mı?
Belgem İngilizce değil, bu nedenle içindekiler başlığının çevirisini istiyorum.


Cevap

JeanPierre'nin dediği gibi, İhracat ayarları ile ilgili. Belgenizin LANGUAGEüst kısmına şu şekilde ayarlayabilirsiniz org:

#+LANGUAGE: fr

Ve Fransızca, orgdışa aktarma sırasında üretilen tüm dizelerin varsayılan dili olarak kullanılacaktır .
Çeviri eşleştirmeleri sorumlu sabittir org-export-dictionaryiçinde ox.elve dil desteklenmiyorsa, onun orada ve sonra bırakabilirsiniz eval-defundeğişiklik almak yerleştirmesine izin vermek. Benim durumumda:

(defconst org-export-dictionary 
    ...   
    ("Table of Contents"
         ...
         ("sr" :html "Sadržaj" :utf-8 "Sadržaj")
         ...)
    ...)

Ben yararlı olabilir naif bir fonksiyon yazdım init.el:

(defun org-export-translate-to-lang (term-translations &optional lang)
  "Adds desired translations to `org-export-dictionary'.
   TERM-TRANSLATIONS is alist consisted of term you want to translate
   and its corresponding translation, first as :default then as :html and
   :utf-8. LANG is language you want to translate to."
  (dolist (term-translation term-translations)
    (let* ((term (car term-translation))
           (translation-default (nth 1 term-translation))
           (translation-html (nth 2 term-translation))
           (translation-utf-8 (nth 3 term-translation))
           (term-list (assoc term org-export-dictionary))
           (term-langs (cdr term-list)))
      (setcdr term-list (append term-langs
                                (list
                                 (list lang
                                       :default translation-default
                                       :html translation-html
                                       :utf-8 translation-utf-8)))))))

(org-export-translate-to-lang '(("Table of Contents"
                                 "Sadržaj"
                                 "Sadržaj"
                                 "Sadržaj")
                                ("Another term"
                                 "coilogji"))
                              "sr")

feragat

Lateks üzerinden dışa aktarmak istiyorsanız (Org PDF'ye dışa aktarırken Lateks kullanılır) çalışmaz. Tyler'ın cevabına ve yorumlarına bakın.


Hangi formata aktarıyorsunuz? PDF, html veya?
Tyler

@TylerI Çoğunlukla ODT ve HTML'ye dışa aktarıyorum.
foki

Yanıtlar:


3

Kuruluş kılavuzu , dışa aktarma ayarları hakkında bunu söylüyor (emacs bilgisinde göz atabilmeniz gerekir C-h i m Org m exporting):

'DİL'

Bazı dizeleri çevirmek için kullanılan dil ('org-export-default-language'). Örneğin, '# + DİL: fr' çevirmek Org söyleyecektir Dosya içine (ingilizce) Fichier clocktable içinde (Fransız).

Denemedim ama istediğini yapmasını bekliyorum.


1
Tüm ihracatçılar için yeterli değil, Lateks ihracatları için @ rené cevabına bakmak isteyebilirsiniz.
Jocelyn delalande

10

JeanPierre cevabının işaret ettiği gibi, dil dışa aktarma ayarını belirtmeniz gerekir. Fransızca için bir sonraki satır işe yarar:

#+LANGUAGE: fr

Tüm diller desteklenmez ve sizin de söylediğin gibi, hangisinin org-latex-export-dictionarydeğişkeni görüntülediğini görmek mümkündür (emacs komutunu kullanabilir C-h vve değişken adını yazabilirsiniz). Bazı diller Sırpça gibi yalnızca kısmen desteklenebilir veya desteklenmeyebilir. Desteklenmeyen bir dille çalışmasını istiyorsanız, çevrilen dizeleri değişkene ekleyin ve tercihen bunları org-modunu bitirmek için geliştiricilere gönderin.

LaTex ve PDF

LaTex'e dışa aktarıyorsanız ve Babel'in metin kullanımını değiştirmesine izin vermek istiyorsanız:

#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[AUTO]{babel}

AUTO anahtar sözcüğü karşılık gelen Babel dil adıyla değiştirilecek olduğundan, bu hem HTML hem de lateks içinde çalışacaktır. Hangi dillerin desteklendiğini görüntülemek için org-latex-babel-language-alistdeğişkeni görüntüleyin . Babil'de mevcut olan tüm diller mevcut değildir, ancak Sırpça vardır ve çalışır (test edilmiştir ve "İçindekiler" "Sadržaj" olarak görünür).

org-latex-babel-language-alistDiliniz değilse, ancak Breton gibi babilce mevcutsa, şunu kullanın:

#+LANGUAGE: br
#+LATEX_HEADER: \usepackage[breton]{babel}

Breton değil gibi HTML ihracat için hiçbir şey yapmayacağım değişken, bu İngilizce olması, ancak gerekli olduğunu olacaktır. Çünkü LaTex dosyasında son bulacak olan şey , eğer mevcut değilse İngilizce olacak ve son dil Babel tarafından varsayılan olarak kabul edilecektir. Sonunda olmadığı gibi , orada Breton varsayılan var.org-latex-export-dictionaryLANGUAGE\usepackage[breton, <default-lang>]{babel}default-langLANGUAGEbrorg-latex-babel-language-alist\usepackage[breton, ]{babel}

Breton eklenirse org-latex-babel-language-alistyine de çalışır ( \usepackage[breton, breton]{babel}). Breton dahil edilirse org-latex-export-dictionary, artık HTML'de de çalışacaktır. Breton babil tarafından desteklenmediyse, yine de çalışacak, ancak İngilizce olacak, bu yüzden bu yapılandırma, bir düşüş olarak İngilizce ile mümkün olduğunca belirtilen dilde veren modüldür. AUTODili koymak için tek bir yer olduğu için mevcutsa kullanmayı tercih ederim .

Babel'in "İçindekiler" olarak koyduğu şeylerden hoşlanmıyorsanız, ancak yine de kullanmak istiyorsanız, şöyle bir şey yapabilirsiniz:

#+LANGUAGE: en
#+LATEX_HEADER: \usepackage[AUTO]{babel}
#+LATEX_HEADER: \addto\captionsenglish{\renewcommand\contentsname{Outline}}

Bu Tyler'ın cevabı gibi ama Babil için.


Teşekkürler! Standart pdf dışa aktarma için çalışır, ancak Beamer slayt dışa aktarma ile çalışmaz.
foki

4

PDF'ye dışa aktarıyorsanız, kuruluş modu dönüştürme işlemi için LaTeX'i çağırır. Bu durumda, TOK başlığını aşağıdaki satırla değiştirmek için LaTeX komutunu ekleyebilmeniz gerekir:

#+LATEX_HEADER: \renewcommand*{\contentsname}{My Table of Contents Header}

Bunu dosyanızın en üstüne koyun ve dışa aktarmayı deneyin.


Şu anda LATEX ortamım ayarlanmadı, bu yüzden PDF ile deneyemiyorum. Şimdi LATEX komutunun burada yardımcı olmaması için ODT ve HTML'ye dışa aktarmak istiyorum (yanlış olup olmadığımı söyle).
foki

1
LaTeX'e dışa aktarırken, LaTeX'in kendi dil yönetimini kullanmanız daha iyi olur \usepackage[mylanguage]{babel}.
JeanPierre

@JeanPierre Garip bir davranış fark ettim. Tyler'ın yaklaşımı benim için işi yok ama davranış jeanpierre en çok daha ilginç kullanarak tecelli - Ben ikisini de ilan var #+LANGUAGE: frve #+LATEX_HEADER: \usepackage[english]{babel}bu durumda Lateks ihracat saygı İlk ayar ve Fransız meslektaşları dizeleri çevirir. deİlk ve / frenchveya frenchbikinci olarak ilan edersem - dekullanılır. Ayrıca tarif edilen durumlarda ihracatçının kullanmadığını org-export-dictionary, daha büyük olasılıkla Lateks dillerini kullandığını fark ettim . Bir fikrin var mı?
foki

@ foki üzgünüm, iki nokta üst üste eksikti :. Cevabımı düzelttim.
Tyler

2
Garip, eğer #+LANGUAGE: frkendi başına kullanırsam , göz ardı edilir - LaTeX çıktısı İngilizce'dir. Eğer kullanırsam ve #+LATEX_HEADER: \usepackage[english]{babel}ortaya çıkan LaTeX hattı içerir \usepackage[english, frenchb]{babel}. Ve eğer sadece #+LATEX_HEADER: \usepackage[french]{babel}ayar yapmadan kullanırsam , LANGUAGE:gerçekte takılan şeydir \usepackage[frenchb, english]{babel}. Hiçbiri PDF'yi değiştirmez, her zaman İngilizcedir.
Tyler

0

Kısa cevap: pdf dışa aktarma için texlive-lang-french paketi gereklidir

org 9.1.9: #+LANGUAGE: frYalnız kalmanın bir etkisi yoktur.

ile gerçekleştir

#+LATEX_HEADER: \usepackage[frenchb]{babel}

veya

#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[AUTO]{babel}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.