commit e100536d59170a1c99437ea22b6fd1bea864bcf0
Author: Juergen Spitzmueller <[email protected]>
Date:   Sat Sep 14 13:11:10 2013 +0200

    Fix 'Export As...' in non-English localizations
    
    It is always a bad idea to compare a localized string. I think the whole 
method Formats::getFormatFromPrettyName (which is now unused) should be 
ditched. This is bound to fail.

diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp
index 3f1cf75..6cf97a8 100644
--- a/src/frontends/qt4/GuiView.cpp
+++ b/src/frontends/qt4/GuiView.cpp
@@ -2394,10 +2394,15 @@ bool GuiView::exportBufferAs(Buffer & b)
        PrettyNameComparator cmp;
        sort(export_formats.begin(), export_formats.end(), cmp);
        vector<Format const *>::const_iterator fit = export_formats.begin();
-       for (; fit != export_formats.end(); ++fit)
+       map<docstring, string> fmap;
+       for (; fit != export_formats.end(); ++fit) {
+               docstring const loc_prettyname =
+                       translateIfPossible(from_utf8((*fit)->prettyname()));
                types << toqstr(bformat(_("%1$s (*.%2$s)"),
-                                       
translateIfPossible(from_utf8((*fit)->prettyname())),
+                                       loc_prettyname,
                                        from_ascii((*fit)->extension())));
+               fmap[loc_prettyname] = (*fit)->name();
+       }
        QString filter;
        FileDialog::Result result =
                dlg.save(toqstr(fname.onlyPath().absFileName()),
@@ -2416,7 +2421,7 @@ bool GuiView::exportBufferAs(Buffer & b)
        if (fmt_prettyname == "Any supported format")
                fmt_name = formats.getFormatFromExtension(fname.extension());
        else
-               fmt_name = formats.getFormatFromPrettyName(fmt_prettyname);
+               fmt_name = fmap[from_utf8(fmt_prettyname)];
        LYXERR(Debug::FILES, "fmt_prettyname=" << fmt_prettyname
               << ", fmt_name=" << fmt_name << ", fname=" << 
fname.absFileName());
 

Reply via email to