X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FLanguage.cpp;h=dc38bfcf242fb8d50a208a0037a813339faf4ac5;hb=77ab3017d0bc759ff8f69cec5cb5b7d9eae122c6;hp=a7845f51d32a4f42f4242bf370d11be546cad839;hpb=b9f6712d77cd565e25c866fba77623f7bbf314b6;p=lyx.git diff --git a/src/Language.cpp b/src/Language.cpp index a7845f51d3..dc38bfcf24 100644 --- a/src/Language.cpp +++ b/src/Language.cpp @@ -38,6 +38,12 @@ Language const * latex_language = 0; Language const * reset_language = 0; +bool Language::isPolyglossiaExclusive() const +{ + return babel().empty() && !polyglossia().empty() && requires().empty(); +} + + docstring const Language::translateLayout(string const & m) const { if (m.empty()) @@ -53,7 +59,9 @@ docstring const Language::translateLayout(string const & m) const if (it != layoutTranslations_.end()) return it->second; - return from_ascii(m); + docstring t = from_ascii(m); + cleanTranslation(t); + return t; } @@ -64,14 +72,18 @@ 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, LA_POLYGLOSSIANAME, LA_POLYGLOSSIAOPTS, LA_POSTBABELPREAMBLE, + LA_QUOTESTYLE, LA_PREBABELPREAMBLE, + LA_REQUIRES, LA_RTL }; @@ -81,7 +93,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 }, @@ -89,6 +103,8 @@ bool Language::readLanguage(Lexer & lex) { "polyglossiaopts", LA_POLYGLOSSIAOPTS }, { "postbabelpreamble", LA_POSTBABELPREAMBLE }, { "prebabelpreamble", LA_PREBABELPREAMBLE }, + { "quotestyle", LA_QUOTESTYLE }, + { "requires", LA_REQUIRES }, { "rtl", LA_RTL } }; @@ -108,7 +124,7 @@ bool Language::readLanguage(Lexer & lex) error = true; continue; - default: + default: break; } switch (static_cast(le)) { @@ -127,12 +143,21 @@ bool Language::readLanguage(Lexer & lex) case LA_POLYGLOSSIAOPTS: lex >> polyglossia_opts_; break; + case LA_QUOTESTYLE: + lex >> quote_style_; + break; 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; @@ -150,6 +175,9 @@ bool Language::readLanguage(Lexer & lex) babel_presettings_ = lex.getLongString("EndPreBabelPreamble"); break; + case LA_REQUIRES: + lex >> requires_; + break; case LA_RTL: lex >> rightToLeft_; break; @@ -184,10 +212,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; } @@ -239,13 +263,10 @@ void Languages::read(FileName const & filename) languagelist[l.lang()] = l; } - default_language = getLanguage(lyxrc.default_language); + default_language = getLanguage("english"); if (!default_language) { - LYXERR0("Default language \"" << lyxrc.default_language - << "\" not found!"); - default_language = getLanguage("english"); - if (!default_language) - default_language = &(*languagelist.begin()).second; + LYXERR0("Default language \"english\" not found!"); + default_language = &(*languagelist.begin()).second; LYXERR0("Using \"" << default_language->lang() << "\" instead!"); }