]> git.lyx.org Git - lyx.git/blob - src/language.C
remove some very old dead code
[lyx.git] / src / language.C
1 /* This file is part of
2  * ======================================================
3  *
4  *           LyX, The Document Processor
5  *
6  *           Copyright 1995 Matthias Ettrich
7  *           Copyright 1995-2001 The LyX Team.
8  *
9  * ====================================================== */
10
11 #include <config.h>
12
13 #include "language.h"
14 #include "gettext.h"
15 #include "encoding.h"
16 #include "lyxrc.h"
17 #include "lyxlex.h"
18 #include "debug.h"
19
20 using std::endl;
21
22 Languages languages;
23 Language const * english_language;
24 Language const * default_language;
25 Language ignore_lang("ignore", "ignore", "Ignore", false, 0, "ignore", "");
26 Language const * ignore_language = &ignore_lang;
27 Language latex_lang("latex", "latex", "Latex", false, 0, "latex", "");
28 Language const * latex_language = &latex_lang;
29
30 void Languages::setDefaults()
31 {
32         // We need to set the encoding of latex_lang
33         latex_lang = Language("latex", "latex", "Latex", false,
34                               encodings.getEncoding("iso8859-1"),
35                               "latex", "");
36
37         languagelist["english"] = Language("english", "english", N_("English"),
38                                            false,
39                                            encodings.getEncoding("iso8859-1"),
40                                            "en", "");
41         english_language = default_language = &languagelist["english"];
42 }
43
44 void Languages::read(string const & filename)
45 {
46         // We need to set the encoding of latex_lang
47         latex_lang = Language("latex", "latex", "Latex", false,
48                               encodings.getEncoding("iso8859-1"),
49                               "latex", "");
50
51         LyXLex lex(0, 0);
52         lex.setFile(filename);
53         while (lex.isOK()) {
54                 string lang;
55                 string babel;
56                 string display;
57                 string encoding_str;
58                 string code;
59                 string latex_options;
60                 bool rtl = false;
61
62                 if (lex.next())
63                         lang = lex.getString();
64                 else
65                         break;
66                 lyxerr[Debug::INIT] << "Reading language " << lang << endl;
67
68                 if (lex.next())
69                         babel = lex.getString();
70                 if (lex.next())
71                         display = lex.getString();
72                 if (lex.next())
73                         rtl = lex.getBool();
74                 if (lex.next())
75                         encoding_str = lex.getString();
76                 if (lex.next())
77                         code = lex.getString();
78                 if (lex.next())
79                         latex_options = lex.getString();
80
81                 Encoding const * encoding = encodings.getEncoding(encoding_str);
82                 if (!encoding) {
83                         encoding = encodings.getEncoding("iso8859-1");
84                         lyxerr << "Unknown encoding " << encoding_str << endl;
85                 }
86
87                 languagelist[lang] = Language(lang, babel, display, rtl,
88                                               encoding, code, latex_options);
89         }
90
91         default_language = getLanguage(lyxrc.default_language);
92         if (!default_language) {
93                 lyxerr << "Default language \"" << lyxrc.default_language
94                        << "\" not found!" << endl;
95                 default_language = getLanguage("english");
96                 if (!default_language)
97                         default_language = &(*languagelist.begin()).second;
98                 lyxerr << "Using \"" << default_language->lang()
99                        << "\" instead!" << endl;
100         }
101         english_language = getLanguage("english");
102         if (!english_language)
103                 english_language = default_language;
104 }
105
106 Language const * Languages::getLanguage(string const & language) const
107 {
108         const_iterator it = languagelist.find(language);
109         if (it != languagelist.end())
110                 return &it->second;
111         else
112                 return 0;
113 }