3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
6 * \author Lars Gullik Bjønnes
7 * \author Jean-Marc Lasgouttes
10 * Full author contact details are available in file CREDITS.
22 #include "support/FileName.h"
32 Language
const * english_language
;
33 Language
const * default_language
;
34 Language
ignore_lang("ignore", "ignore", "Ignore", false, "", 0, "ignore", "");
35 Language
const * ignore_language
= &ignore_lang
;
36 Language
latex_lang("latex", "latex", "Latex", false, "", 0, "latex", "");
37 Language
const * latex_language
= &latex_lang
;
40 void Languages::read(support::FileName
const & filename
)
42 // We need to set the encoding of latex_lang
43 latex_lang
= Language("latex", "latex", "Latex", false, "iso8859-1",
44 encodings
.getFromLyXName("iso8859-1"),
48 lex
.setFile(filename
);
59 lang
= lex
.getString();
62 LYXERR(Debug::INFO
) << "Reading language " << lang
<< endl
;
65 babel
= lex
.getString();
67 display
= lex
.getString();
71 encoding_str
= lex
.getString();
73 code
= lex
.getString();
75 latex_options
= lex
.getString();
77 Encoding
const * encoding
= encodings
.getFromLyXName(encoding_str
);
79 encoding
= encodings
.getFromLyXName("iso8859-1");
80 lyxerr
<< "Unknown encoding " << encoding_str
<< endl
;
83 languagelist
[lang
] = Language(lang
, babel
, display
, rtl
,
84 encoding_str
, encoding
, code
, latex_options
);
87 default_language
= getLanguage(lyxrc
.default_language
);
88 if (!default_language
) {
89 lyxerr
<< "Default language \"" << lyxrc
.default_language
90 << "\" not found!" << endl
;
91 default_language
= getLanguage("english");
92 if (!default_language
)
93 default_language
= &(*languagelist
.begin()).second
;
94 lyxerr
<< "Using \"" << default_language
->lang()
95 << "\" instead!" << endl
;
97 english_language
= getLanguage("english");
98 if (!english_language
)
99 english_language
= default_language
;
103 Language
const * Languages::getLanguage(string
const & language
) const
105 const_iterator it
= languagelist
.find(language
);
106 return it
== languagelist
.end() ? 0 : &it
->second
;