दस्तावेज़ भाषा के अनुसार ऑर्ग मोड में सामग्री शीर्षक की तालिका बदलें


14

क्या कोई विकल्प है जो ऑर्ग मोड में सामग्री की तालिका के डिफ़ॉल्ट शीर्षक को बदलता है?
मेरा दस्तावेज़ अंग्रेजी में नहीं है इसलिए मैं सामग्री के शीर्षक की तालिका का अनुवाद करना चाहता हूं।


उत्तर

जैसा कि जीनपियर ने कहा, यह निर्यात सेटिंग्स के बारे में है। आप LANGUAGEअपने orgदस्तावेज़ के शीर्ष पर इस तरह सेट कर सकते हैं :

#+LANGUAGE: fr

और फ्रांसीसी orgनिर्यात के दौरान उत्पन्न होने वाले सभी तारों की डिफ़ॉल्ट भाषा के रूप में उपयोग किया जाएगा ।
लगातार अनुवाद मैपिंग के लिए जिम्मेदार है org-export-dictionaryमें ox.elऔर यदि आपकी भाषा समर्थित नहीं है आप इसे वहाँ और फिर ड्रॉप कर सकते हैं eval-defunजाने के लिए जगह परिवर्तन ले। मेरे मामले में:

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

मैंने एक भोली क्रिया लिखी है जो इसमें उपयोगी हो सकती है 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")

अस्वीकरण

यदि आप लेटेक्स के माध्यम से निर्यात करना चाहते हैं तो यह काम नहीं करता है (जब ऑर्ग पीडीएफ में निर्यात होता है तो लेटेक्स का उपयोग किया जाता है)। टायलर के जवाब और टिप्पणियों को देखें।


आप किस प्रारूप में निर्यात कर रहे हैं? पीडीएफ, HTML, या?
टायलर

@TylerI मैं ज्यादातर ODT और HTML को निर्यात कर रहा हूं।
फोकी

जवाबों:


3

ऑर्ग मैनुअल एक्सपोर्ट सेटिंग्स के बारे में यह कहता है (आपको इसे एमएसीएस जानकारी में ब्राउज़ करने में सक्षम होना चाहिए C-h i m Org m exporting):

'भाषा: हिन्दी'

कुछ स्ट्रिंग्स ('ऑर्ग-एक्सपोर्ट-डिफॉल्ट-लैंग्वेज') के अनुवाद के लिए इस्तेमाल की जाने वाली भाषा। जैसे, '# + भाषा: fr' ऑर्ग को फाइल (इंग्लिश) को फिचियर (फ्रेंच) में क्लॉकटेबल में ट्रांसलेट करने के लिए कहेगा।

मैंने इसकी कोशिश नहीं की है, लेकिन मुझे उम्मीद है कि आपको वही करना चाहिए जो आप चाहते हैं।


1
सभी निर्यातकों के लिए पर्याप्त नहीं है, लेटेक्स निर्यात के लिए, आप @ रेने उत्तर को देखना चाह सकते हैं।
जोसेलिन delalande

10

जैसा कि जीनपियर जवाब देता है, आपको भाषा निर्यात सेटिंग निर्दिष्ट करने की आवश्यकता है। फ्रेंच के लिए अगली पंक्ति काम करती है:

#+LANGUAGE: fr

सभी भाषाएं समर्थित नहीं हैं और जैसा कि आपने कहा, यह देखना संभव है कि कौन सा org-latex-export-dictionaryचर देख रहे हैं (आप emacs कमांड का उपयोग कर सकते हैं C-h vफिर चर नाम लिख सकते हैं )। कुछ भाषाएँ सर्बियाई की तरह केवल आंशिक रूप से समर्थित या समर्थित नहीं हो सकती हैं। यदि आप चाहते हैं कि यह एक असमर्थित भाषा के साथ काम करे तो अनुवादित स्ट्रिंग्स को वेरिएबल में जोड़ें और अधिमानतः उन्हें देवताओं को भेजें ताकि यह ऑर्ग-मोड समाप्त हो जाए।

LaTex और पीडीएफ

यदि आप LaTex को निर्यात कर रहे हैं और बाबेल को पाठ का उपयोग बदलने देना चाहते हैं:

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

यह HTML और लेटेक्स दोनों में काम करेगा क्योंकि AUTO कीवर्ड को संबंधित बैबेल भाषा के नाम से प्रतिस्थापित किया जाएगा। यह देखने के लिए कि कौन सी भाषाएं समर्थित हैं org-latex-babel-language-alistचर देखें। बैबेल में सभी भाषाएँ उपलब्ध नहीं हैं लेकिन सर्बियाई है और काम करता है (इसका परीक्षण किया और "सामग्री" "सदृश" के रूप में प्रकट होता है)।

यदि आपकी भाषा में नहीं है, org-latex-babel-language-alistलेकिन बेबीलोन में उपलब्ध है, जैसे कि ब्रेटन, उपयोग करें:

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

ब्रेटन में नहीं है के रूप में चर HTML निर्यात के लिए कुछ नहीं करेंगे, यह अंग्रेज़ी में हो जाएगा, लेकिन आवश्यक है। ऐसा इसलिए है क्योंकि LaTex फाइल में क्या खत्म होगा, जहां मौजूद नहीं होने पर अंग्रेजी होगी और अंतिम भाषा को बबैल के लिए डिफ़ॉल्ट माना जाता है। जैसा कि हम में नहीं है , ब्रेटन डिफ़ॉल्ट है।org-latex-export-dictionaryLANGUAGE\usepackage[breton, <default-lang>]{babel}default-langLANGUAGEbrorg-latex-babel-language-alist\usepackage[breton, ]{babel}

यदि ब्रेटन को इसमें जोड़ा जाता है, तो org-latex-babel-language-alistयह वैसे भी काम करेगा ( \usepackage[breton, breton]{babel})। यदि ब्रेटन को इसमें शामिल किया org-latex-export-dictionaryजाता है, तो अब यह HTML में भी काम करेगा। अगर ब्रेटन को बाबेल का समर्थन नहीं था, तो यह वैसे भी काम करेगा, लेकिन अंग्रेजी में होगा, इसलिए यह कॉन्फ़िगरेशन वह है जो आपको एक निर्दिष्ट भाषा में उतना ही देता है जितना संभव हो सकता है। मैं उपयोग करता हूं AUTOयदि उपलब्ध है क्योंकि भाषा लगाने के लिए केवल एक ही जगह है।

यदि आपको "कॉन्टेंट्स" के रूप में बैबेल क्या पसंद नहीं करता है लेकिन फिर भी आप इसका उपयोग करना चाहते हैं तो आप कुछ ऐसा कर सकते हैं:

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

यह टायलर के जवाब की तरह है लेकिन बेबल के लिए।


धन्यवाद! यह मानक पीडीएफ निर्यात के लिए काम करता है लेकिन बीमर स्लाइड निर्यात के साथ काम नहीं करता है।
फोकी

4

यदि आप पीडीएफ को निर्यात कर रहे हैं, तो ऑर्ग-मोड रूपांतरण करने के लिए लाटेक को कॉल करेगा। उस स्थिति में, आपको निम्न पंक्ति के साथ TOC शीर्षक को बदलने के लिए LaTeX कमांड सम्मिलित करने में सक्षम होना चाहिए:

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

अपनी फ़ाइल के शीर्ष पर रखें और निर्यात का प्रयास करें।


वर्तमान में मेरे पास LATEX वातावरण सेट नहीं है इसलिए मैं इसे PDF के साथ आज़मा नहीं सकता। अब मैं ODT और HTML को निर्यात करना चाहता हूं इसलिए LATEX कमांड यहां मदद नहीं करता है (मुझे बताएं कि क्या मैं गलत हूं)।
फोकी

1
जब LaTeX को निर्यात करते हैं, तो आप बेहतर रूप से LaTeX की भाषाओं की अपनी हैंडलिंग का उपयोग करेंगे \usepackage[mylanguage]{babel}
जीनपियर

@ जीनपायर मैंने एक अजीब व्यवहार देखा है। टायलर का दृष्टिकोण मेरे लिए काम नहीं करता है, लेकिन जीनपियर के उपयोग से प्रकट व्यवहार और भी दिलचस्प है - मैंने दोनों की घोषणा की है, #+LANGUAGE: frऔर #+LATEX_HEADER: \usepackage[english]{babel}इस मामले में लेटेक्स निर्यात पहली सेटिंग का सम्मान करता है और फ्रांसीसी समकक्षों में तार का अनुवाद करता है। अगर मैं घोषणा deपहले में और frenchया frenchbदूसरे में - deप्रयोग किया जाता है। मैंने यह भी देखा है कि वर्णित मामलों में निर्यातक उपयोग नहीं करते हैं org-export-dictionary, अधिक संभावना है कि यह लेटेक्स भाषाओं का उपयोग करता है। कोई विचार है?
फोकी

@ फोकी सॉरी, मुझे एक कोलोन याद आ रहा था :। मैंने अपना उत्तर ठीक कर लिया है।
टायलर

2
अजीब बात है, अगर मैं इसका #+LANGUAGE: frखुद का उपयोग करता हूं, तो इसे नजरअंदाज कर दिया जाता है - आउटपुट लाटेक्स अंग्रेजी में है। अगर मैं इसका उपयोग करता हूं और #+LATEX_HEADER: \usepackage[english]{babel}, परिणामी LaTeX में लाइन शामिल है \usepackage[english, frenchb]{babel}। और अगर मैं केवल #+LATEX_HEADER: \usepackage[french]{babel}सेटिंग के बिना उपयोग करता हूं LANGUAGE:, तो वास्तव में डाला जाता है \usepackage[frenchb, english]{babel}। उनमें से कोई भी पीडीएफ नहीं बदलता है, यह हमेशा अंग्रेजी है।
टायलर

0

संक्षिप्त उत्तर: पीडीएफ निर्यात के लिए, टेक्सलिव-लैंग-फ्रेंच पैकेज की आवश्यकता है

org 9.1.9: #+LANGUAGE: frअकेले सेट करने का कोई असर नहीं होता।

इसके साथ हो

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

या

#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[AUTO]{babel}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.