]> git.lyx.org Git - lyx.git/blobdiff - src/language.C
Small formatting and comment cleanup.
[lyx.git] / src / language.C
index 9a1d26c9452c63343b7b418443dad0ff89fb8fdc..e2523b5021210f8fffae6d4d5ba3986f71041e12 100644 (file)
@@ -1,83 +1,89 @@
-/* This file is part of
- * ====================================================== 
- * 
- *           LyX, The Document Processor
- *        
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
+/**
+ * \file language.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- * ====================================================== */
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ * \author Dekel Tsur
+ *
+ * Full author contact details are available in file CREDITS.
+ */
 
 #include <config.h>
 
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
 #include "language.h"
-#include "gettext.h"
+
+#include "debug.h"
 #include "encoding.h"
-#include "lyxrc.h"
-#include "lyx_gui_misc.h"
 #include "lyxlex.h"
-#include "debug.h"
+#include "lyxrc.h"
+
+#include "support/filename.h"
+
+
+namespace lyx {
 
 using std::endl;
+using std::string;
+
 
 Languages languages;
 Language const * english_language;
 Language const * default_language;
-Language ignore_lang("ignore", "ignore", "Ignore", false, 0, "ignore");
+Language ignore_lang("ignore", "ignore", "Ignore", false, "", 0, "ignore", "");
 Language const * ignore_language = &ignore_lang;
+Language latex_lang("latex", "latex", "Latex", false, "", 0, "latex", "");
+Language const * latex_language = &latex_lang;
 
-void Languages::setDefaults()
-{
-       languagelist["english"] = Language("english", "english", N_("English"),
-                                          false, 
-                                          encodings.getEncoding("iso8859-1"),
-                                          "en");
-       english_language = default_language = &languagelist["english"];
-}
 
-void Languages::read(string const & filename)
+void Languages::read(support::FileName const & filename)
 {
+       // We need to set the encoding of latex_lang
+       latex_lang = Language("latex", "latex", "Latex", false, "iso8859-1",
+                             encodings.getFromLyXName("iso8859-1"),
+                             "latex", "");
+
        LyXLex lex(0, 0);
        lex.setFile(filename);
-       while (lex.IsOK()) {
-               string lang, babel, display, encoding_str, code;
+       while (lex.isOK()) {
+               string lang;
+               string babel;
+               string display;
+               string encoding_str;
+               string code;
+               string latex_options;
                bool rtl = false;
 
                if (lex.next())
-                       lang = lex.GetString();
+                       lang = lex.getString();
                else
                        break;
-               lyxerr[Debug::INIT] << "Reading language " << lang << endl;
+               lyxerr[Debug::INFO] << "Reading language " << lang << endl;
 
                if (lex.next())
-                       babel = lex.GetString();
+                       babel = lex.getString();
                if (lex.next())
-                       display = lex.GetString();
+                       display = lex.getString();
                if (lex.next())
-                       rtl = lex.GetBool();
+                       rtl = lex.getBool();
                if (lex.next())
-                       encoding_str = lex.GetString();
+                       encoding_str = lex.getString();
                if (lex.next())
-                       code = lex.GetString();
+                       code = lex.getString();
+               if (lex.next())
+                       latex_options = lex.getString();
 
-               Encoding const * encoding = encodings.getEncoding(encoding_str);
+               Encoding const * encoding = encodings.getFromLyXName(encoding_str);
                if (!encoding) {
-                       encoding = encodings.getEncoding("iso8859-1");
-                       lyxerr << "Unknown encoding " << encoding_str << endl; 
+                       encoding = encodings.getFromLyXName("iso8859-1");
+                       lyxerr << "Unknown encoding " << encoding_str << endl;
                }
 
-               languagelist[lang] = Language(lang, babel, display, rtl, encoding, code);
+               languagelist[lang] = Language(lang, babel, display, rtl,
+                                             encoding_str, encoding, code, latex_options);
        }
 
-#ifdef DO_USE_DEFAULT_LANGUAGE
-       languagelist["default"] = Language("default", "default",
-                                          N_("Document wide language"),
-                                          false, &iso8859_1, "");
-#endif
        default_language = getLanguage(lyxrc.default_language);
        if (!default_language) {
                lyxerr << "Default language \"" << lyxrc.default_language
@@ -93,11 +99,12 @@ void Languages::read(string const & filename)
                english_language = default_language;
 }
 
+
 Language const * Languages::getLanguage(string const & language) const
 {
-               const_iterator it = languagelist.find(language);
-       if (it != languagelist.end())
-               return &(*it).second;
-       else
-               return 0;
+       const_iterator it = languagelist.find(language);
+       return it == languagelist.end() ? 0 : &it->second;
 }
+
+
+} // namespace lyx