Author: spitz
Date: Sun Mar 20 12:39:02 2011
New Revision: 37975
URL: http://www.lyx.org/trac/changeset/37975

Log:
* LaTeXFeatures.cpp (getI18nPreamble):
        addition to r37974: if English is used as a secondary language, we have 
to propose an English translation,
        since the original string is in the document's main language!

Modified:
   lyx-devel/trunk/src/LaTeXFeatures.cpp

Modified: lyx-devel/trunk/src/LaTeXFeatures.cpp
==============================================================================
--- lyx-devel/trunk/src/LaTeXFeatures.cpp       Sun Mar 20 11:50:43 2011        
(r37974)
+++ lyx-devel/trunk/src/LaTeXFeatures.cpp       Sun Mar 20 12:39:02 2011        
(r37975)
@@ -1215,13 +1215,20 @@
                                        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 = translateIfPossible(flname, code);
+                               // 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())));

Reply via email to