X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flanguage.C;h=c656f22992fd1a78a883ba0fe5c5387a57264e32;hb=ae348f8af96100a154b3792d27732d621d44ec89;hp=909768ba079a3e840dee4664c84a72931134a140;hpb=bd659b25fb6e2df5d02273ee1ce4699aa5723e2e;p=lyx.git diff --git a/src/language.C b/src/language.C index 909768ba07..c656f22992 100644 --- a/src/language.C +++ b/src/language.C @@ -1,82 +1,84 @@ -/* 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 -#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" 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"); - default_language = &languagelist["english"]; -} void Languages::read(string const & filename) { + // We need to set the encoding of latex_lang + latex_lang = Language("latex", "latex", "Latex", false, "iso8859-1", + encodings.getEncoding("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(); if (lex.next()) - display = lex.GetString(); + rtl = lex.getBool(); if (lex.next()) - rtl = lex.GetBool(); + encoding_str = lex.getString(); if (lex.next()) - encoding_str = lex.GetString(); + code = lex.getString(); if (lex.next()) - code = lex.GetString(); + latex_options = lex.getString(); Encoding const * encoding = encodings.getEncoding(encoding_str); if (!encoding) { encoding = encodings.getEncoding("iso8859-1"); - lyxerr << "Unknown encoding " << encoding_str << endl; + 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 @@ -87,13 +89,14 @@ void Languages::read(string const & filename) lyxerr << "Using \"" << default_language->lang() << "\" instead!" << endl; } + english_language = getLanguage("english"); + if (!english_language) + 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; }