commit 6725541e200862f18886ca0750d69be6f46a3ed4
Author: Juergen Spitzmueller <[email protected]>
Date: Tue Apr 1 15:40:37 2025 +0200
Localize simple (\ref and \prettyref) crossref lists
---
src/insets/InsetRef.cpp | 41 ++++++++++++++++++++++++++++++-----------
1 file changed, 30 insertions(+), 11 deletions(-)
diff --git a/src/insets/InsetRef.cpp b/src/insets/InsetRef.cpp
index 02daa51053..8f6f540719 100644
--- a/src/insets/InsetRef.cpp
+++ b/src/insets/InsetRef.cpp
@@ -360,21 +360,32 @@ void InsetRef::latex(otexstream & os, OutputParams const
& rp) const
os << "[" << opts << "]";
}
os << "{";
- for (auto const & l : label) {
+ vector<docstring>::const_iterator it = labels.begin();
+ vector<docstring>::const_iterator en = labels.end();
+ for (size_t i = 0; it != en; ++it, ++i) {
if (!first) {
- if (buffer().masterParams().xref_package ==
"prettyref")
- os << "}, \\ref{";
- else if (useRange())
+ if (buffer().masterParams().xref_package ==
"prettyref") {
+ if (!first) {
+ os << "}";
+ if (labels.size() == 2)
+ os <<
buffer().B_("[[reference 1]] and [[reference2]]");
+ else if (i > 0 && i ==
labels.size() - 1)
+ os <<
buffer().B_("[[reference 1, ...]], and [[reference n]]");
+ else
+ os <<
buffer().B_("[[reference 1]], [[reference2, ...]]");
+ }
+ os << "\\ref{";
+ } else if (useRange())
os << "}{";
else
os << ",";
}
- if (contains(l, ' '))
+ if (contains(*it, ' '))
// refstyle bug: labels with blanks need to be
grouped
// otherwise the blanks will be gobbled
- os << "{" << l << "}";
+ os << "{" << *it << "}";
else
- os << l;
+ os << *it;
first = false;
}
os << "}";
@@ -526,13 +537,21 @@ void InsetRef::latex(otexstream & os, OutputParams const
& rp) const
os << p.getCommand(rp, use_nolink);
} else {
bool first = true;
- for (auto const & label : labels) {
- if (!first)
- os << ", ";
+ vector<docstring>::const_iterator it = labels.begin();
+ vector<docstring>::const_iterator en = labels.end();
+ for (size_t i = 0; it != en; ++it, ++i) {
+ if (!first) {
+ if (labels.size() == 2)
+ os << buffer().B_("[[reference 1]] and
[[reference2]]");
+ else if (i > 0 && i == labels.size() - 1)
+ os << buffer().B_("[[reference 1,
...]], and [[reference n]]");
+ else
+ os << buffer().B_("[[reference 1]],
[[reference2, ...]]");
+ }
os << "\\" << cmd;
if (use_nolink)
os << "*";
- os << '{' << label << '}';
+ os << '{' << *it << '}';
first = false;
}
}
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs