Author: nextgens
Date: 2007-04-28 11:04:51 +0000 (Sat, 28 Apr 2007)
New Revision: 13023

Modified:
   trunk/freenet/src/freenet/clients/http/TranslationToadlet.java
Log:
Implement a new feature on /translate/ : hide already translated strings

Modified: trunk/freenet/src/freenet/clients/http/TranslationToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/TranslationToadlet.java      
2007-04-27 23:15:27 UTC (rev 13022)
+++ trunk/freenet/src/freenet/clients/http/TranslationToadlet.java      
2007-04-28 11:04:51 UTC (rev 13023)
@@ -38,6 +38,8 @@
                        return;
                }

+               boolean showEverything = 
!request.isParameterSet("toTranslateOnly");
+               
                if (request.isParameterSet("getOverrideTranlationFile")) {
                        SimpleFieldSet sfs = 
L10n.getOverrideForCurrentLanguageTranslation();
                        if(sfs == null) {
@@ -77,9 +79,9 @@
                        HTMLNode footer = translationNode.addChild("div", 
"class", "warning");
                        footer.addChild("a", "href", 
TOADLET_URL+"?getOverrideTranlationFile").addChild("#", "Download the override 
translation file");
                        footer.addChild("%", "  ");
-                       footer.addChild("a", "href", 
TOADLET_URL+"?translate="+key).addChild("#", "Re-edit the translation");
+                       footer.addChild("a", "href", 
TOADLET_URL+"?translate="+key+ (showEverything ? "" : 
"&toTranslateOnly")).addChild("#", "Re-edit the translation");
                        footer.addChild("%", "  ");
-                       footer.addChild("a", "href", TOADLET_URL).addChild("#", 
"Return to the translation page");
+                       footer.addChild("a", "href", TOADLET_URL + 
(showEverything ? "" : "?toTranslateOnly")).addChild("#", "Return to the 
translation page");

                        this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
                        return;                         
@@ -120,6 +122,9 @@
                                        new String[] { "type", "name", "value" 
}, 
                                        new String[] { "submit", 
"translation_update", "Update the translation!"
                        });
+                       if(!showEverything)
+                               updateForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "hidden", "toTranslateOnly", key });
+                       
                        updateForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", "Cancel" });
                        this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
                        return;
@@ -132,6 +137,8 @@
                        HTMLNode content = 
ctx.getPageMaker().getContentNode(infobox);
                        content.addChild("p").addChild("#", "Are you sure that 
you want to remove the following translation key : (" + key + " - " + 
L10n.getString(key) + ") ?");
                        HTMLNode removeForm = 
ctx.addFormChild(content.addChild("p"), TOADLET_URL, "remove_confirmed");
+                       if(!showEverything)
+                               removeForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "hidden", "toTranslateOnly", key });
                        removeForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "hidden", "remove_confirm", key });
                        removeForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "remove_confirmed", "Remove" });
                        removeForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", "Cancel" });
@@ -147,6 +154,10 @@
                HTMLNode translationHeaderNode = translationNode.addChild("p");
                translationHeaderNode.addChild("#", "You are currently 
contributing to the " + L10n.getSelectedLanguage() + " translation :");
                translationHeaderNode.addChild("a", "href", 
TOADLET_URL+"?getOverrideTranlationFile").addChild("#", " Download the override 
translation file");
+               if(showEverything)
+                       translationHeaderNode.addChild("a", "href", 
TOADLET_URL+"?toTranslateOnly").addChild("#", " Hide already translated 
strings");
+               else
+                       translationHeaderNode.addChild("a", "href", 
TOADLET_URL).addChild("#", " Show everything, including already translated 
strings");
                HTMLNode legendTable = translationNode.addChild("table", 
"class", "translation");

                HTMLNode legendRow = legendTable.addChild("tr");
@@ -160,7 +171,8 @@

                        while(it.hasNext()) {
                                String key = it.nextKey();
-
+                               boolean isOverriden = L10n.isOverridden(key);
+                               if(!showEverything && isOverriden) continue;
                                HTMLNode contentRow = 
legendTable.addChild("tr");
                                contentRow.addChild("td", "class", 
"translation-key",
                                                key
@@ -169,7 +181,7 @@
                                                L10n.getDefaultString(key)
                                );

-                               contentRow.addChild("td", "class", 
"translation-new").addChild(_setOrRemoveOverride(key));
+                               contentRow.addChild("td", "class", 
"translation-new").addChild(_setOrRemoveOverride(key, isOverriden, 
showEverything));
                        }
                }

@@ -195,13 +207,13 @@
                        String key = request.getPartAsString("key", 256);
                        L10n.setOverride(key, new 
String(BucketTools.toByteArray(request.getPart("trans")), "UTF-8"));

-                       redirectTo(ctx, 
TOADLET_URL+"?translation_updated="+key);
+                       redirectTo(ctx, 
TOADLET_URL+"?translation_updated="+key+ (request.isPartSet("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);
+                       redirectTo(ctx, 
TOADLET_URL+"?translation_updated="+key+ (request.isPartSet("toTranslateOnly") 
? "&toTranslateOnly" : ""));
                        return;
                }else // Shouldn't reach that point!
                        redirectTo(ctx, "/");
@@ -218,18 +230,18 @@
                return "GET, POST";
        }

-       private HTMLNode _setOrRemoveOverride(String key) {
+       private HTMLNode _setOrRemoveOverride(String key, boolean isOverriden, 
boolean showEverything) {
                String value = L10n.getString(key, true);

                HTMLNode translationField = new HTMLNode("span", "class", 
"translate_it");
                if(value == null) {
                        translationField.addChild("#", 
L10n.getDefaultString(key));
-                       translationField.addChild("a", "href", 
TranslationToadlet.TOADLET_URL+"?translate=" + key).addChild("small", " 
(translate it in your native language!)");
+                       translationField.addChild("a", "href", 
TranslationToadlet.TOADLET_URL+"?translate=" + key + (showEverything ? "" : 
"&toTranslateOnly")).addChild("small", " (translate it in your native 
language!)");
                } else {
                        translationField.addChild("#", L10n.getString(key));
-                       translationField.addChild("a", "href", 
TranslationToadlet.TOADLET_URL+"?translate=" + key).addChild("small", " (update 
the translation)");
-                       if(L10n.isOverridden(key))
-                               translationField.addChild("a", "href", 
TranslationToadlet.TOADLET_URL+"?remove=" + key).addChild("small", " (Remove 
the translation override!)");
+                       translationField.addChild("a", "href", 
TranslationToadlet.TOADLET_URL+"?translate=" + key + (showEverything ? "" : 
"&toTranslateOnly")).addChild("small", " (update the translation)");
+                       if(isOverriden)
+                               translationField.addChild("a", "href", 
TranslationToadlet.TOADLET_URL+"?remove=" + key + (showEverything ? "" : 
"&toTranslateOnly")).addChild("small", " (Remove the translation override!)");
                }

                return translationField;


Reply via email to