]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.cpp
Fairly trivial change here: Just protect against inheriting limits to
[lyx.git] / src / LaTeXFeatures.cpp
index 39076324334b2d8f70554baef9b585c72669ad60..61bd0a7a03da8ae4b5e004bb1049b65065e32a63 100644 (file)
@@ -1202,8 +1202,7 @@ docstring const LaTeXFeatures::getTClassI18nPreamble(bool use_babel, bool use_po
                                continue;
                        docstring const type = from_ascii(fl.floattype());
                        docstring const flname = from_utf8(fl.name());
-                       docstring name = translateIfPossible(flname,
-                               buffer().language()->code());
+                       docstring name = buffer().language()->translateLayout(fl.name());
                        // only request translation if we have a real translation
                        // (that differs from the source)
                        if (use_polyglossia && flname != name)
@@ -1215,13 +1214,20 @@ docstring const LaTeXFeatures::getTClassI18nPreamble(bool use_babel, bool use_po
                                        type, name,
                                        from_ascii(buffer().language()->babel())));
                        for (lang_it lit = lbeg; lit != lend; ++lit) {
-                               name = translateIfPossible(flname,
-                                       (*lit)->code());
-                               if (use_polyglossia && flname != name)
+                               string const code = (*lit)->code();
+                               name = (*lit)->translateLayout(fl.name());
+                               // we assume we have a suitable translation if
+                               // either the language is English (we need to
+                               // translate into English if English is a secondary
+                               // language) or if translateIfPossible returns
+                               // something different to the English source.
+                               bool const have_translation =
+                                       (flname != name || contains(code, "en"));
+                               if (use_polyglossia && have_translation)
                                        snippets.insert(getFloatI18nPreamble(
                                                type, name,
                                                from_ascii((*lit)->polyglossia())));
-                               else if (flname != name)
+                               else if (have_translation)
                                        snippets.insert(getFloatI18nPreamble(
                                                type, name,
                                                from_ascii((*lit)->babel())));
@@ -1341,9 +1347,8 @@ void LaTeXFeatures::getFloatDefinitions(odocstream & os) const
                        docstring const ext = from_ascii(fl.ext());
                        docstring const within = from_ascii(fl.within());
                        docstring const style = from_ascii(fl.style());
-                       docstring const name = translateIfPossible(
-                                       from_utf8(fl.name()),
-                                       buffer().language()->code());
+                       docstring const name =
+                               buffer().language()->translateLayout(fl.name());
                        os << "\\floatstyle{" << style << "}\n"
                           << "\\newfloat{" << type << "}{" << placement
                           << "}{" << ext << '}';