string const BufferParams::babelCall(string const & lang_opts) const
{
- string tmp = lyxrc.language_package;
- if (!lyxrc.language_global_options && tmp == "\\usepackage{babel}")
- tmp = string("\\usepackage[") + lang_opts + "]{babel}";
- // suppress the babel call when there is no babel language defined
- // in the lib/languages file
- if (lyxrc.language_global_options && tmp == "\\usepackage{babel}" &&
- language->babel().empty() ) {
- // if the armscii8 or a CJK encoding is used, babel has to be called
- // for foreign languages
- if (!lang_opts.empty())
- tmp = string("\\usepackage[") + lang_opts + "]{babel}";
- else
- tmp.clear();
+ string lang_pack = lyxrc.language_package;
+ if (lang_pack == "\\usepackage{babel}") {
+ // suppress the babel call when there is no babel language defined
+ // for the document language in the lib/languages file and if no
+ // other languages are used
+ if (language->babel().empty() && lang_opts.empty())
+ lang_pack.clear();
+ if (!lyxrc.language_global_options && !lang_opts.empty())
+ lang_pack = string("\\usepackage[") + lang_opts + "]{babel}";
+ if (lyxrc.language_global_options)
+ return lang_pack;
}
- return tmp;
+ return lang_pack;
}