X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLanguage.cpp;h=9801668846b998b1377535eff9f77cd01eb4f6ef;hb=d9c52c7a3f06ec892cd2e36d0d20998bc99b2fd8;hp=9f8c57e6f4e659d656cf29220cb5d0bb20320616;hpb=ed1515ef69d0381e9b0657cf1966f9d86e0cb25f;p=lyx.git diff --git a/src/Language.cpp b/src/Language.cpp index 9f8c57e6f4..9801668846 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()) @@ -66,7 +72,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 +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 }, @@ -114,7 +124,7 @@ bool Language::readLanguage(Lexer & lex) error = true; continue; - default: + default: break; } switch (static_cast(le)) { @@ -139,9 +149,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 +169,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_; @@ -247,23 +263,16 @@ 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!"); } // Read layout translations - FileName path = libFileSearch(string(), "layouttranslations"); + FileName const path = libFileSearch(string(), "layouttranslations"); readLayoutTranslations(path); - - // Read installed translations - path = libFileSearch(string(), "installed_translations"); - readInstalledTranslations(path); } @@ -372,32 +381,6 @@ void Languages::readLayoutTranslations(support::FileName const & filename) } -void Languages::readInstalledTranslations(support::FileName const & filename) -{ - Lexer lex; - lex.setFile(filename); - lex.setContext("Languages::read"); - - // 1) read all installed gmo files names - set installed_translations; - string lang_code; - while (lex.isOK()) { - lex >> lang_code; - installed_translations.insert(lang_code); - } - - // 2) mark all corresponding languages as translated. - LanguageList::iterator lit = languagelist.begin(); - LanguageList::iterator const lend = languagelist.end(); - for ( ; lit != lend ; ++lit) { - if (installed_translations.count(lit->second.code()) - || installed_translations.count(token(lit->second.code(), '_', 0))) - lit->second.translated(true); - } - -} - - Language const * Languages::getLanguage(string const & language) const { if (language == "reset")