Author: nextgens
Date: 2008-09-01 22:08:50 +0000 (Mon, 01 Sep 2008)
New Revision: 22324

Modified:
   trunk/freenet/src/freenet/clients/http/TranslationToadlet.java
   trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
Log:
solve issue #2529: Streamline the translation toadlet

Modified: trunk/freenet/src/freenet/clients/http/TranslationToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/TranslationToadlet.java      
2008-09-01 21:55:17 UTC (rev 22323)
+++ trunk/freenet/src/freenet/clients/http/TranslationToadlet.java      
2008-09-01 22:08:50 UTC (rev 22324)
@@ -32,6 +32,7 @@
                this.core = core;
        }

+       @Override
        public void handleGet(URI uri, HTTPRequest request, ToadletContext ctx) 
throws ToadletContextClosedException, IOException {
                if(!ctx.isAllowedFullAccess()) {
                        super.sendErrorPage(ctx, 403, "Unauthorized", 
L10n.getString("Toadlet.unauthorized"));
@@ -40,6 +41,7 @@

                boolean showEverything = 
!request.isParameterSet("toTranslateOnly");

+               
                if (request.isParameterSet("getOverrideTranlationFile")) {
                        SimpleFieldSet sfs = 
L10n.getOverrideForCurrentLanguageTranslation();
                        if(sfs == null) {
@@ -86,6 +88,7 @@
                        this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;                         
                } else if (request.isParameterSet("translate")) {
+                       boolean gotoNext = request.isParameterSet("gotoNext");
                        String key = request.getParam("translate");
                        HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("translationUpdateTitle"), true, ctx);
                        HTMLNode contentNode = 
ctx.getPageMaker().getContentNode(pageNode);
@@ -122,6 +125,7 @@
                                        new String[] { "type", "name", "value" 
}, 
                                        new String[] { "submit", 
"translation_update", l10n("updateTranslationCommand")
                        });
+                       updateForm.addChild("input", new String[] { "type", 
"name" , (gotoNext ? "checked" : "unchecked") } , new String[] { "checkbox", 
"gotoNext", ""}, l10n("gotoNext"));
                        if(!showEverything)
                                updateForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "hidden", "toTranslateOnly", key });

@@ -191,6 +195,7 @@
                this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

+       @Override
        public void handlePost(URI uri, HTTPRequest request, ToadletContext 
ctx) throws ToadletContextClosedException, IOException {
                if(!ctx.isAllowedFullAccess()) {
                        super.sendErrorPage(ctx, 403, "Unauthorized", 
L10n.getString("Toadlet.unauthorized"));
@@ -206,17 +211,33 @@
                        return;
                }

+               boolean toTranslateOnly = request.isPartSet("toTranslateOnly");
+               
                if(request.getPartAsString("translation_update", 32).length() > 
0){
                        String key = request.getPartAsString("key", 256);
                        L10n.setOverride(key, new 
String(BucketTools.toByteArray(request.getPart("trans")), "UTF-8").trim());

-                       redirectTo(ctx, 
TOADLET_URL+"?translation_updated="+key+ (request.isPartSet("toTranslateOnly") 
? "&toTranslateOnly" : ""));
+                       
if("on".equalsIgnoreCase(request.getPartAsString("gotoNext", 7))) {
+                               KeyIterator it = 
DEFAULT_TRANSLATION.keyIterator("");
+                               
+                               while(it.hasNext()) {
+                                       String newKey = it.nextKey();
+                                       boolean isOverriden = 
L10n.isOverridden(newKey);
+                                       System.out.println("newkey:"+newKey);
+                                       if(isOverriden || 
(L10n.getString(newKey, true) != null))
+                                               continue;
+                                       redirectTo(ctx, 
TOADLET_URL+"?gotoNext&translate="+newKey+ (toTranslateOnly ? 
"&toTranslateOnly" : ""));
+                                       return;
+                               }
+                       }
+                       
+                       redirectTo(ctx, 
TOADLET_URL+"?translation_updated="+key+ (toTranslateOnly ? "&toTranslateOnly" 
: ""));
                        return;
                } else if(request.getPartAsString("remove_confirmed", 
32).length() > 0) {
                        String key = request.getPartAsString("remove_confirm", 
256).trim();
                        L10n.setOverride(key, "");

-                       redirectTo(ctx, 
TOADLET_URL+"?translation_updated="+key+ (request.isPartSet("toTranslateOnly") 
? "&toTranslateOnly" : ""));
+                       redirectTo(ctx, 
TOADLET_URL+"?translation_updated="+key+ (toTranslateOnly ? "&toTranslateOnly" 
: ""));
                        return;
                }else // Shouldn't reach that point!
                        redirectTo(ctx, "/");

Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-09-01 
21:55:17 UTC (rev 22323)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-09-01 
22:08:50 UTC (rev 22324)
@@ -1188,6 +1188,7 @@
 TranslationToadlet.contributingToLabelWithLang=You are currently contributing 
to the ${lang} translation:
 TranslationToadlet.currentTranslationLabel=Current translation
 TranslationToadlet.downloadTranslationsFile=Download your translations file
+TranslationToadlet.gotoNext=Go to next untranslated String?
 TranslationToadlet.hideAlreadyTranslated=Hide already translated strings
 TranslationToadlet.noCustomTranslations=There is no custom translation 
available.
 TranslationToadlet.originalVersionLabel=Original (English version)


Reply via email to