Author: nextgens
Date: 2007-04-02 18:56:11 +0000 (Mon, 02 Apr 2007)
New Revision: 12529

Modified:
   trunk/plugins/TranslationHelper/TranslationHelper.java
Log:
TranslationHelper: now translation files will be downloaded to disk.

Modified: trunk/plugins/TranslationHelper/TranslationHelper.java
===================================================================
--- trunk/plugins/TranslationHelper/TranslationHelper.java      2007-04-02 
18:54:57 UTC (rev 12528)
+++ trunk/plugins/TranslationHelper/TranslationHelper.java      2007-04-02 
18:56:11 UTC (rev 12529)
@@ -16,6 +16,7 @@
 import freenet.pluginmanager.PluginHTTPException;
 import freenet.pluginmanager.PluginRespirator;
 import freenet.support.HTMLNode;
+import freenet.support.MultiValueTable;
 import freenet.support.api.HTTPRequest;

 /**
@@ -113,12 +114,16 @@
                        contentRow.addChild("a", "href", 
PLUGIN_BASE_URL).addChild("#", "Return to the plugin's main page");

                        return pageNode.generate();
+                       // It doesn't help: we need to decode unicode 
characters!
+                       //throw new PluginHTTPException(200, "text/html; 
charset=ISO-8859-1", "Found", pageNode.generate());
                } else if(request.isParameterSet("getTranlationFile")) {
                        OutputStream os = new ByteArrayOutputStream();
                        try {
                                editedProperties.store(os, "Translation file 
for "+editedLang);
                        } catch (IOException e) {} // huh ?
-                       return os.toString();
+                       MultiValueTable headers = new MultiValueTable();
+                       headers.put("Content-Disposition", "attachment; 
filename=\"" + "freenet.l10n."+editedLang+".properties" + '"');
+                       throw new PluginHTTPException(200, "Ok", headers, 
"text/plain", os.toString());
                }

                HTMLNode pageNode = pr.getPageMaker().getPageNode(PLUGIN_NAME+" 
page", false, null);
@@ -151,7 +156,6 @@
 //                                                             "a new one"
 //             );

-
                return pageNode.generate();
        }

@@ -163,10 +167,15 @@
                                editedProperties.setProperty(key, 
request.getPartAsString(key, 256));
                        }

-                       throw new PluginHTTPException(302, "", "Found", 
PLUGIN_BASE_URL+"?lang="+editedLang);
+                       MultiValueTable headers = new MultiValueTable();
+                       headers.put("Location", 
PLUGIN_BASE_URL+"?lang="+editedLang);
+                       throw new PluginHTTPException(302, "Found", headers, 
null, null);
                }else if(request.isPartSet("reload")) {
                        editedProperties = L10n.loadProperties(editedLang);
-                       throw new PluginHTTPException(302, "", "Found", 
PLUGIN_BASE_URL+"?lang="+editedLang);
+                       
+                       MultiValueTable headers = new MultiValueTable();
+                       headers.put("Location", 
PLUGIN_BASE_URL+"?lang="+editedLang);
+                       throw new PluginHTTPException(302, "Found", headers, 
null, null);
                }
                return null;
        }


Reply via email to