X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLanguage.cpp;h=31212cba2894c1e624d45fb7ec9cbbd6eabe4553;hb=cc033cbd2124d77cdc526cdc5dc05b87c69e03b0;hp=13e43c29686c36004dac55c2b370bad531e21f6e;hpb=a86de5d3c06b44feb56d697877d96be114e11f09;p=lyx.git diff --git a/src/Language.cpp b/src/Language.cpp index 13e43c2968..31212cba28 100644 --- a/src/Language.cpp +++ b/src/Language.cpp @@ -38,6 +38,18 @@ Language const * latex_language = 0; Language const * reset_language = 0; +bool Language::isPolyglossiaExclusive() const +{ + return babel().empty() && !polyglossia().empty() && requires().empty(); +} + + +bool Language::isBabelExclusive() const +{ + return !babel().empty() && polyglossia().empty() && requires().empty(); +} + + docstring const Language::translateLayout(string const & m) const { if (m.empty()) @@ -66,7 +78,9 @@ bool Language::readLanguage(Lexer & lex) LA_BABELNAME, LA_ENCODING, LA_END, + LA_FONTENC, LA_GUINAME, + LA_HAS_GUI_SUPPORT, LA_INTERNAL_ENC, LA_LANG_CODE, LA_LANG_VARIETY, @@ -85,7 +99,9 @@ bool Language::readLanguage(Lexer & lex) { "babelname", LA_BABELNAME }, { "encoding", LA_ENCODING }, { "end", LA_END }, + { "fontencoding", LA_FONTENC }, { "guiname", LA_GUINAME }, + { "hasguisupport", LA_HAS_GUI_SUPPORT }, { "internalencoding", LA_INTERNAL_ENC }, { "langcode", LA_LANG_CODE }, { "langvariety", LA_LANG_VARIETY }, @@ -114,7 +130,7 @@ bool Language::readLanguage(Lexer & lex) error = true; continue; - default: + default: break; } switch (static_cast(le)) { @@ -139,9 +155,15 @@ bool Language::readLanguage(Lexer & lex) case LA_ENCODING: lex >> encodingStr_; break; + case LA_FONTENC: + lex >> fontenc_; + break; case LA_GUINAME: lex >> display_; break; + case LA_HAS_GUI_SUPPORT: + lex >> has_gui_support_; + break; case LA_INTERNAL_ENC: lex >> internal_enc_; break; @@ -153,11 +175,11 @@ bool Language::readLanguage(Lexer & lex) break; case LA_POSTBABELPREAMBLE: babel_postsettings_ = - lex.getLongString("EndPostBabelPreamble"); + lex.getLongString(from_ascii("EndPostBabelPreamble")); break; case LA_PREBABELPREAMBLE: babel_presettings_ = - lex.getLongString("EndPreBabelPreamble"); + lex.getLongString(from_ascii("EndPreBabelPreamble")); break; case LA_REQUIRES: lex >> requires_; @@ -196,10 +218,6 @@ bool Language::read(Lexer & lex) encoding_ = encodings.fromLyXName("iso8859-1"); LYXERR0("Unknown encoding " << encodingStr_); } - // cache translation status. Calling getMessages() directly in - // PrefLanguage::PrefLanguage() did only work if the gui language - // was set to auto (otherwise all languages would be marked as available). - translated_ = getMessages(code()).available(); return true; } @@ -311,7 +329,7 @@ Match match(string const & code, Language const & lang) return NoMatch; } -} +} // namespace void Languages::readLayoutTranslations(support::FileName const & filename)