mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
Fix local polyglossia switch for Arabic
We need to lowercase the language again (it's \begin{Arabic}, but \textarabic) Fixes: #11057.
This commit is contained in:
parent
1dcb2a0976
commit
27584f5f70
@ -142,11 +142,16 @@ string const getPolyglossiaEnvName(Language const * lang)
|
|||||||
|
|
||||||
|
|
||||||
string const getPolyglossiaBegin(string const & lang_begin_command,
|
string const getPolyglossiaBegin(string const & lang_begin_command,
|
||||||
string const & lang, string const & opts)
|
string const & lang, string const & opts,
|
||||||
|
bool const localswitch = false)
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
if (!lang.empty())
|
if (!lang.empty()) {
|
||||||
result = subst(lang_begin_command, "$$lang", lang);
|
// we need to revert the upcasing done in getPolyglossiaEnvName()
|
||||||
|
// in case we have a local polyglossia command (\textarabic).
|
||||||
|
string language = localswitch ? ascii_lowercase(lang) : lang;
|
||||||
|
result = subst(lang_begin_command, "$$lang", language);
|
||||||
|
}
|
||||||
string options = opts.empty() ?
|
string options = opts.empty() ?
|
||||||
string() : "[" + opts + "]";
|
string() : "[" + opts + "]";
|
||||||
result = subst(result, "$$opts", options);
|
result = subst(result, "$$opts", options);
|
||||||
@ -903,7 +908,9 @@ void TeXOnePar(Buffer const & buf,
|
|||||||
&& (par_lang != openLanguageName(state) || localswitch)
|
&& (par_lang != openLanguageName(state) || localswitch)
|
||||||
&& !par_lang.empty()) {
|
&& !par_lang.empty()) {
|
||||||
string bc = use_polyglossia ?
|
string bc = use_polyglossia ?
|
||||||
getPolyglossiaBegin(lang_begin_command, par_lang, par_language->polyglossiaOpts())
|
getPolyglossiaBegin(lang_begin_command, par_lang,
|
||||||
|
par_language->polyglossiaOpts(),
|
||||||
|
localswitch)
|
||||||
: subst(lang_begin_command, "$$lang", par_lang);
|
: subst(lang_begin_command, "$$lang", par_lang);
|
||||||
os << bc;
|
os << bc;
|
||||||
os << lang_command_termination;
|
os << lang_command_termination;
|
||||||
@ -962,11 +969,13 @@ void TeXOnePar(Buffer const & buf,
|
|||||||
if (runparams.encoding->package() == Encoding::CJK
|
if (runparams.encoding->package() == Encoding::CJK
|
||||||
&& par_lang != openLanguageName(state)
|
&& par_lang != openLanguageName(state)
|
||||||
&& !par_lang.empty()) {
|
&& !par_lang.empty()) {
|
||||||
os << from_ascii(subst(
|
string bc = use_polyglossia ?
|
||||||
lang_begin_command,
|
getPolyglossiaBegin(lang_begin_command, par_lang,
|
||||||
"$$lang",
|
par_language->polyglossiaOpts(),
|
||||||
par_lang))
|
localswitch)
|
||||||
<< lang_command_termination;
|
: subst(lang_begin_command, "$$lang", par_lang);
|
||||||
|
os << bc
|
||||||
|
<< lang_command_termination;
|
||||||
if (using_begin_end)
|
if (using_begin_end)
|
||||||
pushLanguageName(par_lang, localswitch);
|
pushLanguageName(par_lang, localswitch);
|
||||||
}
|
}
|
||||||
@ -1133,7 +1142,8 @@ void TeXOnePar(Buffer const & buf,
|
|||||||
&& current_lang != openLanguageName(state)) {
|
&& current_lang != openLanguageName(state)) {
|
||||||
string bc = use_polyglossia ?
|
string bc = use_polyglossia ?
|
||||||
getPolyglossiaBegin(lang_begin_command, current_lang,
|
getPolyglossiaBegin(lang_begin_command, current_lang,
|
||||||
current_language->polyglossiaOpts())
|
current_language->polyglossiaOpts(),
|
||||||
|
localswitch)
|
||||||
: subst(lang_begin_command, "$$lang", current_lang);
|
: subst(lang_begin_command, "$$lang", current_lang);
|
||||||
os << bc;
|
os << bc;
|
||||||
pending_newline = !localswitch;
|
pending_newline = !localswitch;
|
||||||
|
Loading…
Reference in New Issue
Block a user