X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLanguage.cpp;h=1ff2cf71892a8e010177c0c33b757495c5be6559;hb=77713af55868140483a1a7f5704dd93b97dbe116;hp=0c734d56cd2bc4de39a0ce8e97632398d8cc44a2;hpb=0e5945667aa2e1c2508955df450c30eec8316d07;p=lyx.git diff --git a/src/Language.cpp b/src/Language.cpp index 0c734d56cd..1ff2cf7189 100644 --- a/src/Language.cpp +++ b/src/Language.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes * \author Dekel Tsur * @@ -20,8 +20,7 @@ #include "support/debug.h" #include "support/FileName.h" - -#include +#include "support/lstrings.h" using namespace std; using namespace lyx::support; @@ -32,10 +31,10 @@ namespace lyx { Languages languages; Language ignore_lang; Language latex_lang; -Language const * english_language; Language const * default_language; Language const * ignore_language = &ignore_lang; Language const * latex_language = &latex_lang; +Language const * reset_language = 0; bool Language::read(Lexer & lex) @@ -46,11 +45,13 @@ bool Language::read(Lexer & lex) lex >> display_; lex >> rightToLeft_; lex >> encodingStr_; - lex >> code_; + lex >> codeStr_; lex >> latex_options_; if (!lex) return false; + variety_ = split(codeStr_, code_, '-'); + encoding_ = encodings.fromLyXName(encodingStr_); if (!encoding_ && !encodingStr_.empty()) { encoding_ = encodings.fromLyXName("iso8859-1"); @@ -59,6 +60,16 @@ bool Language::read(Lexer & lex) return true; } +bool Language::internalFontEncoding() const +{ + // FIXME: list incomplete + // FIXME: instead of hardcoding, this + // should go to the languages file + return lang_ == "hebrew" + || lang_ == "greek" + || lang_ == "polutonikogreek"; +} + void Languages::read(FileName const & filename) { @@ -88,16 +99,17 @@ void Languages::read(FileName const & filename) default_language = &(*languagelist.begin()).second; LYXERR0("Using \"" << default_language->lang() << "\" instead!"); } - english_language = getLanguage("english"); - if (!english_language) - english_language = default_language; } Language const * Languages::getLanguage(string const & language) const { + if (language == "reset") + return reset_language; + if (language == "ignore") + return ignore_language; const_iterator it = languagelist.find(language); - return it == languagelist.end() ? 0 : &it->second; + return it == languagelist.end() ? reset_language : &it->second; }