Author: j16sdiz
Date: 2008-06-16 12:45:45 +0000 (Mon, 16 Jun 2008)
New Revision: 20360
Modified:
branches/saltedhashstore/freenet/README
branches/saltedhashstore/freenet/src/freenet/client/ArchiveContext.java
branches/saltedhashstore/freenet/src/freenet/client/Metadata.java
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
branches/saltedhashstore/freenet/src/freenet/client/async/USKFetcher.java
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectivityToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/PageMaker.java
branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/StatisticsToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
branches/saltedhashstore/freenet/src/freenet/node/Node.java
branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
branches/saltedhashstore/freenet/src/freenet/node/ProbeCallback.java
branches/saltedhashstore/freenet/src/freenet/node/RequestScheduler.java
branches/saltedhashstore/freenet/src/freenet/node/RequestStarter.java
branches/saltedhashstore/freenet/src/freenet/node/UptimeEstimator.java
branches/saltedhashstore/freenet/src/freenet/node/Version.java
branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientGet.java
branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPut.java
branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdateManager.java
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
branches/saltedhashstore/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
branches/saltedhashstore/freenet/src/freenet/support/Serializer.java
Log:
Merge from trunk (build #1152, r20269)
Modified: branches/saltedhashstore/freenet/README
===================================================================
--- branches/saltedhashstore/freenet/README 2008-06-15 19:53:33 UTC (rev
20359)
+++ branches/saltedhashstore/freenet/README 2008-06-16 12:45:45 UTC (rev
20360)
@@ -11,7 +11,7 @@
- Mantissa is under the modified BSD license. See README.Mantissa. According
to the FSF, modified BSD is compatible with GPL; we must include both
licenses.
-
+
The installer creates a firefox profile. If you don't use it, you should have
a
look at user.js in the firefox_profile directory for some useful settings for
browsing Freenet (both for performance and security).
Modified:
branches/saltedhashstore/freenet/src/freenet/client/ArchiveContext.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/client/ArchiveContext.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/client/ArchiveContext.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -8,6 +8,7 @@
/**
* @author amphibian (Matthew Toseland)
+ *
* Object passed down a full fetch, including all the recursion.
* Used, at present, for detecting archive fetch loops, hence the
* name.
@@ -23,11 +24,11 @@
/**
* Check for a loop.
+ *
* The URI provided is expected to be a reasonably unique identifier
for the archive.
*/
public synchronized void doLoopDetection(FreenetURI key) throws
ArchiveFailureException {
if(soFar.size() > maxArchiveLevels)
throw new
ArchiveFailureException(ArchiveFailureException.TOO_MANY_LEVELS);
}
-
}
Modified: branches/saltedhashstore/freenet/src/freenet/client/Metadata.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/client/Metadata.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/client/Metadata.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -33,7 +33,7 @@
static final long FREENET_METADATA_MAGIC = 0xf053b2842d91482bL;
static final int MAX_SPLITFILE_PARAMS_LENGTH = 32768;
/** Soft limit, to avoid memory DoS */
- static final int MAX_SPLITFILE_BLOCKS = 100*1000;
+ static final int MAX_SPLITFILE_BLOCKS = 1000*1000;
// URI at which this Metadata has been/will be inserted.
FreenetURI resolvedURI;
Modified:
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -538,21 +538,21 @@
for(int j=0;j<getsLength;j++) {
if(gets[j] == getter) {
found = true;
+ dropped = true;
continue;
}
- if(j == newGets.length) {
+ if(x == newGets.length) {
if(!found) {
if(complain)
Logger.normal(this, "Not found: "+getter+" for "+key+" removing ("+getsLength+"
getters)");
return; // not here
- }
+ } // else is a contradiction,
let it get an ArrayIndexOutOfBounds.
}
if(gets[j] == null ||
gets[j].isCancelled()) continue;
newGets[x++] = gets[j];
}
if(x == 0) {
pendingKeys.remove(key);
- dropped = true;
} else if(x == 1) {
pendingKeys.put(key, newGets[0]);
} else {
Modified:
branches/saltedhashstore/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/client/async/USKFetcher.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/client/async/USKFetcher.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -295,25 +295,12 @@
LinkedList l = null;
final long lastEd = uskManager.lookup(origUSK);
long curLatest;
+ boolean decode = false;
synchronized(this) {
runningAttempts.remove(att);
curLatest = att.number;
if(completed || cancelled) return;
- if(curLatest >= lastEd && !(dontUpdate && block ==
null)) {
- try {
- Bucket data = lastRequestData =
block.decode(ctx.bucketFactory, 1025 /* it's an SSK */, true);
- lastCompressionCodec =
block.getCompressionCodec();
- lastWasMetadata = block.isMetadata();
- if(keepLastData)
- lastRequestData = data;
- else
- data.free();
- } catch (KeyDecodeException e) {
- lastRequestData = null;
- } catch (IOException e) {
- lastRequestData = null;
- }
- }
+ decode = curLatest >= lastEd && !(dontUpdate && block
== null);
curLatest = Math.max(lastEd, curLatest);
if(logMINOR) Logger.minor(this, "Latest: "+curLatest);
long addTo = curLatest + minFailures;
@@ -328,6 +315,26 @@
}
cancelBefore(curLatest);
}
+ Bucket data = null;
+ if(decode) {
+ try {
+ data = lastRequestData =
block.decode(ctx.bucketFactory, 1025 /* it's an SSK */, true);
+ } catch (KeyDecodeException e) {
+ data = null;
+ } catch (IOException e) {
+ data = null;
+ }
+ }
+ synchronized(this) {
+ if (decode) {
+ lastCompressionCodec =
block.getCompressionCodec();
+ lastWasMetadata = block.isMetadata();
+ if(keepLastData)
+ lastRequestData = data;
+ else
+ data.free();
+ }
+ }
if(!dontUpdate)
uskManager.update(origUSK, curLatest);
if(l == null) return;
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/ConfigToadlet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -29,8 +29,6 @@
public class ConfigToadlet extends Toadlet {
// If a setting has to be more than a meg, something is seriously wrong!
private static final int MAX_PARAM_VALUE_SIZE = 1024*1024;
- private static final int MODE_SIMPLE = 1;
- private static final int MODE_ADVANCED = 2;
private final Config config;
private final NodeClientCore core;
private final Node node;
@@ -142,30 +140,9 @@
contentNode.addChild(core.alerts.createSummary());
- // Mode can be changed by a link, not just by the default
+ final int mode =
ctx.getPageMaker().drawModeSelectionArray(core, req, contentNode);
- int mode = core.isAdvancedModeEnabled() ? MODE_ADVANCED :
MODE_SIMPLE;
-
- if(req.isParameterSet("mode")) {
- mode = req.getIntParam("mode", mode);
- }
-
- // FIXME style this properly
- HTMLNode table = contentNode.addChild("table", "border", "1");
- HTMLNode row = table.addChild("tr");
- HTMLNode cell = row.addChild("td");
-
- if(mode != MODE_SIMPLE)
- cell.addChild("a", new String[] { "href", "title" },
new String[] { "/config/?mode=1", l10n("modeSimpleTooltip") },
l10n("modeSimple"));
- else
- cell.addChild("b", "title", l10n("modeSimpleTooltip"),
l10n("modeSimple"));
- cell = row.addChild("td");
- if(mode != MODE_ADVANCED)
- cell.addChild("a", new String[] { "href", "title" },
new String[] { "/config/?mode=2", l10n("modeAdvancedTooltip") },
l10n("modeAdvanced"));
- else
- cell.addChild("b", "title",
l10n("modeAdvancedTooltip"), l10n("modeAdvanced"));
-
- if(mode >= MODE_ADVANCED){
+ if(mode >= PageMaker.MODE_ADVANCED){
HTMLNode navigationBar =
ctx.getPageMaker().getInfobox("navbar", l10n("configNavTitle"));
HTMLNode navigationContent =
ctx.getPageMaker().getContentNode(navigationBar).addChild("ul");
if(!L10n.getSelectedLanguage().equals(L10n.FALLBACK_DEFAULT))
@@ -207,13 +184,13 @@
HTMLNode configGroupUlNode = new HTMLNode("ul",
"class", "config");
for(int j=0; j<o.length; j++){
- if(! (mode == MODE_SIMPLE && o[j].isExpert())){
+ if(! (mode == PageMaker.MODE_SIMPLE &&
o[j].isExpert())){
displayedConfigElements++;
String configName = o[j].getName();
HTMLNode configItemNode =
configGroupUlNode.addChild("li");
configItemNode.addChild("span", new
String[]{ "class", "title", "style" },
- new String[]{
"configshortdesc", L10n.getString("ConfigToadlet.defaultIs", new String[] {
"default" }, new String[] { o[j].getDefault() }) + (mode >= MODE_ADVANCED ? "
["+sc[i].getPrefix() + '.' + o[j].getName() + ']' : ""),
+ new String[]{
"configshortdesc", L10n.getString("ConfigToadlet.defaultIs", new String[] {
"default" }, new String[] { o[j].getDefault() }) + (mode >=
PageMaker.MODE_ADVANCED ? " ["+sc[i].getPrefix() + '.' + o[j].getName() + ']' :
""),
"cursor: help;"
}).addChild(L10n.getHTMLNode(o[j].getShortDesc()));
HTMLNode configItemValueNode =
configItemNode.addChild("span", "class", "config");
if(o[j].getValueString() == null){
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectionsToadlet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -163,7 +163,6 @@
return;
}
- final boolean advancedModeEnabled =
node.isAdvancedModeEnabled();
final boolean fProxyJavascriptEnabled =
node.isFProxyJavascriptEnabled();
boolean drawMessageTypes =
path.endsWith("displaymessagetypes.html");
@@ -189,7 +188,7 @@
int numberOfSimpleConnected = numberOfConnected +
numberOfRoutingBackedOff;
int numberOfNotConnected = numberOfTooNew + numberOfTooOld +
numberOfDisconnected + numberOfNeverConnected + numberOfDisabled +
numberOfBursting + numberOfListening + numberOfListenOnly +
numberOfClockProblem + numberOfConnError;
String titleCountString = null;
- if(advancedModeEnabled) {
+ if(node.isAdvancedModeEnabled()) {
titleCountString = "(" + numberOfConnected + '/' +
numberOfRoutingBackedOff + '/' + numberOfTooNew + '/' + numberOfTooOld + '/' +
numberOfRoutingDisabled + '/' + numberOfNotConnected + ')';
} else {
titleCountString = (numberOfNotConnected +
numberOfSimpleConnected)>0 ? String.valueOf(numberOfSimpleConnected) : "";
@@ -203,6 +202,7 @@
if(ctx.isAllowedFullAccess())
contentNode.addChild(core.alerts.createSummary());
+ final int mode =
ctx.getPageMaker().drawModeSelectionArray(core, request, contentNode);
if(peerNodeStatuses.length>0){
@@ -226,7 +226,7 @@
HTMLNode nextTableCell =
overviewTableRow.addChild("td", "class", "first");
/* node status overview box */
- if(advancedModeEnabled) {
+ if(mode >= PageMaker.MODE_ADVANCED) {
HTMLNode overviewInfobox =
nextTableCell.addChild("div", "class", "infobox");
overviewInfobox.addChild("div", "class",
"infobox-header", "Node status overview");
HTMLNode overviewInfoboxContent =
overviewInfobox.addChild("div", "class", "infobox-content");
@@ -251,21 +251,21 @@
activityInfobox.addChild("div", "class",
"infobox-header", l10n("activityTitle"));
HTMLNode activityInfoboxContent =
activityInfobox.addChild("div", "class", "infobox-content");
HTMLNode activityList =
StatisticsToadlet.drawActivity(activityInfoboxContent, node);
- if (advancedModeEnabled && activityList != null) {
+ if ((mode >= PageMaker.MODE_ADVANCED) && (activityList
!= null)) {
if (numARKFetchers > 0) {
activityList.addChild("li",
"ARK\u00a0Fetch\u00a0Requests:\u00a0" + numARKFetchers);
}
- StatisticsToadlet.drawBandwidth(activityList,
node, nodeUptimeSeconds, advancedModeEnabled);
+ StatisticsToadlet.drawBandwidth(activityList,
node, nodeUptimeSeconds, mode >= PageMaker.MODE_ADVANCED);
}
- nextTableCell = advancedModeEnabled ?
overviewTableRow.addChild("td") : overviewTableRow.addChild("td", "class",
"last");
+ nextTableCell = (mode >= PageMaker.MODE_ADVANCED) ?
overviewTableRow.addChild("td") : overviewTableRow.addChild("td", "class",
"last");
// Peer statistics box
HTMLNode peerStatsInfobox =
nextTableCell.addChild("div", "class", "infobox");
- StatisticsToadlet.drawPeerStatsBox(peerStatsInfobox,
advancedModeEnabled, numberOfConnected, numberOfRoutingBackedOff,
numberOfTooNew, numberOfTooOld, numberOfDisconnected, numberOfNeverConnected,
numberOfDisabled, numberOfBursting, numberOfListening, numberOfListenOnly, 0,
0, numberOfRoutingDisabled, numberOfClockProblem, numberOfConnError,
numberOfDisconnecting);
+ StatisticsToadlet.drawPeerStatsBox(peerStatsInfobox,
mode >= PageMaker.MODE_ADVANCED, numberOfConnected, numberOfRoutingBackedOff,
numberOfTooNew, numberOfTooOld, numberOfDisconnected, numberOfNeverConnected,
numberOfDisabled, numberOfBursting, numberOfListening, numberOfListenOnly, 0,
0, numberOfRoutingDisabled, numberOfClockProblem, numberOfConnError,
numberOfDisconnecting);
// Peer routing backoff reason box
- if(advancedModeEnabled) {
+ if(mode >= PageMaker.MODE_ADVANCED) {
nextTableCell = overviewTableRow.addChild("td",
"class", "last");
HTMLNode backoffReasonInfobox =
nextTableCell.addChild("div", "class", "infobox");
backoffReasonInfobox.addChild("div", "class",
"infobox-header", "Peer backoff reasons");
@@ -322,7 +322,7 @@
HTMLNode peerTableInfobox = contentNode.addChild("div",
"class", "infobox infobox-normal");
HTMLNode peerTableInfoboxHeader =
peerTableInfobox.addChild("div", "class", "infobox-header");
peerTableInfoboxHeader.addChild("#",
getPeerListTitle());
- if (advancedModeEnabled) {
+ if (mode >= PageMaker.MODE_ADVANCED) {
if (!path.endsWith("displaymessagetypes.html"))
{
peerTableInfoboxHeader.addChild("#", "
");
peerTableInfoboxHeader.addChild("a",
"href", "displaymessagetypes.html", "(more detailed)");
@@ -348,11 +348,11 @@
peerTableHeaderRow.addChild("th").addChild("a",
"href", sortString(isReversed, "status")).addChild("#", l10n("statusTitle"));
if(hasNameColumn())
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"name")).addChild("span", new String[] { "title", "style" }, new String[] {
l10n("nameClickToMessage"), "border-bottom: 1px dotted; cursor: help;" },
l10n("nameTitle"));
- if (advancedModeEnabled) {
+ if (mode >= PageMaker.MODE_ADVANCED) {
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"address")).addChild("span", new String[] { "title", "style" }, new String[] {
l10n("ipAddress"), "border-bottom: 1px dotted; cursor: help;" },
l10n("ipAddressTitle"));
}
peerTableHeaderRow.addChild("th").addChild("a",
"href", sortString(isReversed, "version")).addChild("#", l10n("versionTitle"));
- if (advancedModeEnabled) {
+ if (mode >= PageMaker.MODE_ADVANCED) {
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"location")).addChild("#", "Location");
peerTableHeaderRow.addChild("th").addChild("span", new String[] { "title",
"style" }, new String[] { "Other node busy? Display: Percentage of time the
node is overloaded, Current wait time remaining (0=not overloaded)/total/last
overload reason", "border-bottom: 1px dotted; cursor: help;" }, "Backoff");
@@ -362,7 +362,7 @@
if(hasPrivateNoteColumn())
peerTableHeaderRow.addChild("th").addChild("a", "href", sortString(isReversed,
"privnote")).addChild("span", new String[] { "title", "style" }, new String[] {
l10n("privateNote"), "border-bottom: 1px dotted; cursor: help;" },
l10n("privateNoteTitle"));
- if(advancedModeEnabled) {
+ if(mode >= PageMaker.MODE_ADVANCED) {
peerTableHeaderRow.addChild("th",
"%\u00a0Time Routable");
peerTableHeaderRow.addChild("th",
"Total\u00a0Traffic\u00a0(in/out/resent)");
peerTableHeaderRow.addChild("th",
"Congestion\u00a0Control");
@@ -370,7 +370,7 @@
peerTableHeaderRow.addChild("th",
"Reported\u00a0Uptime");
}
- SimpleColumn[] endCols =
endColumnHeaders(advancedModeEnabled);
+ SimpleColumn[] endCols = endColumnHeaders(mode
>= PageMaker.MODE_ADVANCED);
if(endCols != null) {
for(int i=0;i<endCols.length;i++) {
SimpleColumn col = endCols[i];
@@ -385,19 +385,19 @@
for (int peerIndex = 0, peerCount =
peerNodeStatuses.length; peerIndex < peerCount; peerIndex++) {
PeerNodeStatus peerNodeStatus =
peerNodeStatuses[peerIndex];
- drawRow(peerTable, peerNodeStatus,
advancedModeEnabled, fProxyJavascriptEnabled, now, path, enablePeerActions,
endCols, drawMessageTypes);
+ drawRow(peerTable, peerNodeStatus, mode
>= PageMaker.MODE_ADVANCED, fProxyJavascriptEnabled, now, path,
enablePeerActions, endCols, drawMessageTypes);
}
if(peerForm != null) {
- drawPeerActionSelectBox(peerForm,
advancedModeEnabled);
+ drawPeerActionSelectBox(peerForm, mode
>= PageMaker.MODE_ADVANCED);
}
}
// END PEER TABLE
}
// our reference
- if(shouldDrawNoderefBox(advancedModeEnabled)) {
+ if(shouldDrawNoderefBox(mode >= PageMaker.MODE_ADVANCED)) {
drawAddPeerBox(contentNode, ctx);
drawNoderefBox(contentNode, ctx);
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectivityToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectivityToadlet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/ConnectivityToadlet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -63,6 +63,7 @@
/* add alert summary box */
if(ctx.isAllowedFullAccess())
contentNode.addChild(core.alerts.createSummary());
+ final int mode =
ctx.getPageMaker().drawModeSelectionArray(core, request, contentNode);
// Add connection type box.
@@ -84,7 +85,7 @@
row.addChild("td",
AddressTracker.statusString(tracker.getPortForwardStatus()));
}
- if(node.isAdvancedModeEnabled()) {
+ if(mode >= PageMaker.MODE_ADVANCED) {
// One box per port
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/FProxyToadlet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -336,7 +336,12 @@
}
if(logMINOR) Logger.minor(this, "Redirecting to
FreenetURI: "+newURI);
- headers.put("Location", "/"+newURI);
+ String type = httprequest.getParam("type");
+ if (type != null) {
+ headers.put("Location", "/"+newURI +
"?type=" + type);
+ } else {
+ headers.put("Location", "/"+newURI);
+ }
ctx.sendReplyHeaders(302, "Found", headers,
null, 0);
return;
}
@@ -523,7 +528,7 @@
option = optionList.addChild("li");
option.addChild(ctx.getPageMaker().createBackLink(ctx, l10n("goBackToPrev")));
- this.writeHTMLReply(ctx, 500 /* close enough -
FIXME probably should depend on status code */,
+ this.writeHTMLReply(ctx, (e.mode == 10) ? 404 :
500 /* close enough - FIXME probably should depend on status code */,
"Internal Error",
pageNode.generate());
}
} catch (SocketException e) {
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/PageMaker.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/clients/http/PageMaker.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/clients/http/PageMaker.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -16,8 +16,10 @@
import java.util.jar.JarFile;
import freenet.l10n.L10n;
+import freenet.node.NodeClientCore;
import freenet.support.HTMLNode;
import freenet.support.Logger;
+import freenet.support.api.HTTPRequest;
import freenet.support.io.FileUtil;
/** Simple class to output standard heads and tail for web interface pages.
@@ -25,6 +27,8 @@
public final class PageMaker {
public static final String DEFAULT_THEME = "clean";
+ public static final int MODE_SIMPLE = 1;
+ public static final int MODE_ADVANCED = 2;
private String theme;
private File override;
private final List navigationLinkTexts = new ArrayList();
@@ -258,4 +262,35 @@
return result;
}
+
+ protected int drawModeSelectionArray(NodeClientCore core, HTTPRequest
req, HTMLNode contentNode) {
+ // Mode can be changed by a link, not just by the default
+
+ int mode = core.isAdvancedModeEnabled() ? MODE_ADVANCED :
MODE_SIMPLE;
+
+ if(req.isParameterSet("mode")) {
+ mode = req.getIntParam("mode", mode);
+ }
+
+ // FIXME style this properly
+ HTMLNode table = contentNode.addChild("table", "border", "1");
+ HTMLNode row = table.addChild("tr");
+ HTMLNode cell = row.addChild("td");
+
+ if(mode != MODE_SIMPLE)
+ cell.addChild("a", new String[] { "href", "title" },
new String[] { "?mode=1", l10n("modeSimpleTooltip") }, l10n("modeSimple"));
+ else
+ cell.addChild("b", "title", l10n("modeSimpleTooltip"),
l10n("modeSimple"));
+ cell = row.addChild("td");
+ if(mode != MODE_ADVANCED)
+ cell.addChild("a", new String[] { "href", "title" },
new String[] { "?mode=2", l10n("modeAdvancedTooltip") }, l10n("modeAdvanced"));
+ else
+ cell.addChild("b", "title",
l10n("modeAdvancedTooltip"), l10n("modeAdvanced"));
+
+ return mode;
+ }
+
+ private static final String l10n(String string) {
+ return L10n.getString("PageMaker." + string);
+ }
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/clients/http/QueueToadlet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -54,6 +54,7 @@
import freenet.support.io.BucketTools;
import freenet.support.io.Closer;
import freenet.support.io.FileBucket;
+import java.util.StringTokenizer;
public class QueueToadlet extends Toadlet implements RequestCompletionCallback
{
@@ -221,6 +222,60 @@
}
writePermanentRedirect(ctx, "Done", "/queue/");
return;
+ }else if(request.isPartSet("bulkDownloads")) {
+ String bulkDownloadsAsString =
request.getPartAsString("bulkDownloads", Integer.MAX_VALUE);
+ String[] keys =
bulkDownloadsAsString.split("\n");
+ if(("".equals(bulkDownloadsAsString)) ||
(keys.length < 1)) {
+ writePermanentRedirect(ctx, "Done",
"/queue/");
+ return;
+ }
+ LinkedList success = new LinkedList(), failure
= new LinkedList();
+
+ for(int i=0; i<keys.length; i++) {
+ String currentKey = keys[i];
+ try {
+ FreenetURI fetchURI = new
FreenetURI(currentKey);
+
fcp.makePersistentGlobalRequest(fetchURI, null, "forever", "disk");
+ success.add(currentKey);
+ } catch (Exception e) {
+ failure.add(currentKey);
+ Logger.error(this, "An error
occured while attempting to download key("+i+") : "+currentKey+ " :
"+e.getMessage());
+ }
+ }
+
+ boolean displayFailureBox = failure.size() > 0;
+ boolean displaySuccessBox = success.size() > 0;
+
+ HTMLNode pageNode =
ctx.getPageMaker().getPageNode(L10n.getString("QueueToadlet.downloadFiles"),
ctx);
+ HTMLNode contentNode =
ctx.getPageMaker().getContentNode(pageNode);
+ HTMLNode alertNode =
contentNode.addChild(ctx.getPageMaker().getInfobox((displayFailureBox ?
"infobox-warning" : "infobox-info"),
L10n.getString("QueueToadlet.downloadFiles")));
+ HTMLNode alertContent =
ctx.getPageMaker().getContentNode(alertNode);
+ Iterator it;
+ if(displaySuccessBox) {
+ HTMLNode successDiv =
alertContent.addChild("ul");
+ successDiv.addChild("#",
L10n.getString("QueueToadlet.enqueuedSuccessfully", "number",
String.valueOf(success.size())));
+ it = success.iterator();
+ while(it.hasNext()) {
+ HTMLNode line =
successDiv.addChild("li");
+ line.addChild("#", (String)
it.next());
+ }
+ successDiv.addChild("br");
+ }
+ if(displayFailureBox) {
+ HTMLNode failureDiv =
alertContent.addChild("ul");
+ if(displayFailureBox) {
+ failureDiv.addChild("#",
L10n.getString("QueueToadlet.enqueuedFailure", "number",
String.valueOf(failure.size())));
+ it = failure.iterator();
+ while(it.hasNext()) {
+ HTMLNode line =
failureDiv.addChild("li");
+ line.addChild("#",
(String) it.next());
+ }
+ }
+ failureDiv.addChild("br");
+ }
+ alertContent.addChild("a", "href", "/queue/",
L10n.getString("Toadlet.returnToQueuepage"));
+ writeHTMLReply(ctx, 200, "OK",
pageNode.generate());
+ return;
} else if (request.isPartSet("change_priority")) {
String identifier =
request.getPartAsString("identifier", MAX_IDENTIFIER_LENGTH);
short newPriority =
Short.parseShort(request.getPartAsString("priority", 32));
@@ -494,6 +549,7 @@
HTMLNode infoboxContent =
pageMaker.getContentNode(infobox);
infoboxContent.addChild("#",
L10n.getString("QueueToadlet.noTaskOnGlobalQueue"));
contentNode.addChild(createInsertBox(pageMaker, ctx,
core.isAdvancedModeEnabled()));
+ contentNode.addChild(createBulkDownloadForm(ctx,
pageMaker));
writeHTMLReply(ctx, 200, "OK", pageNode.generate());
return;
}
@@ -610,8 +666,9 @@
/* add alert summary box */
if(ctx.isAllowedFullAccess())
contentNode.addChild(core.alerts.createSummary());
+ final int mode = pageMaker.drawModeSelectionArray(core,
request, contentNode);
/* add file insert box */
- contentNode.addChild(createInsertBox(pageMaker, ctx,
core.isAdvancedModeEnabled()));
+ contentNode.addChild(createInsertBox(pageMaker, ctx, mode >=
PageMaker.MODE_ADVANCED));
/* navigation bar */
HTMLNode navigationBar = pageMaker.getInfobox("navbar",
L10n.getString("QueueToadlet.requestNavigation"));
@@ -672,7 +729,7 @@
L10n.getString("QueueToadlet.priority6")
};
- boolean advancedModeEnabled = core.isAdvancedModeEnabled();
+ boolean advancedModeEnabled = (mode >= PageMaker.MODE_ADVANCED);
HTMLNode legendBox =
contentNode.addChild(pageMaker.getInfobox("legend",
L10n.getString("QueueToadlet.legend")));
HTMLNode legendContent = pageMaker.getContentNode(legendBox);
@@ -797,6 +854,8 @@
}
}
+ contentNode.addChild(createBulkDownloadForm(ctx, pageMaker));
+
MultiValueTable pageHeaders = new MultiValueTable();
writeHTMLReply(ctx, 200, "OK", pageHeaders,
pageNode.generate());
}
@@ -1005,6 +1064,18 @@
return insertBox;
}
+ private HTMLNode createBulkDownloadForm(ToadletContext ctx, PageMaker
pageMaker) {
+ HTMLNode downloadBox =
pageMaker.getInfobox(L10n.getString("QueueToadlet.downloadFiles"));
+ HTMLNode downloadBoxContent =
pageMaker.getContentNode(downloadBox);
+ HTMLNode downloadForm = ctx.addFormChild(downloadBoxContent,
"/queue/", "queueDownloadForm");
+ downloadForm.addChild("#",
L10n.getString("QueueToadlet.downloadFilesInstructions"));
+ downloadForm.addChild("br");
+ downloadForm.addChild("textarea", new String[] { "id", "name",
"cols", "rows" }, new String[] { "bulkDownloads", "bulkDownloads", "120", "8"
});
+ downloadForm.addChild("br");
+ downloadForm.addChild("input", new String[] { "type", "name",
"value" }, new String[] { "submit", "insert",
L10n.getString("QueueToadlet.download") });
+ return downloadBox;
+ }
+
private HTMLNode createRequestTable(PageMaker pageMaker, ToadletContext
ctx, List requests, int[] columns, String[] priorityClasses, boolean
advancedModeEnabled, boolean isUpload) {
HTMLNode table = new HTMLNode("table", "class", "requests");
HTMLNode headerRow = table.addChild("tr", "class",
"table-header");
@@ -1268,6 +1339,10 @@
}
} else if(req instanceof ClientPut) {
FreenetURI uri = ((ClientPut)req).getFinalURI();
+ if(uri == null) {
+ Logger.error(this, "No URI for supposedly
finished request "+req);
+ return;
+ }
long size = ((ClientPut)req).getDataSize();
String name = uri.getPreferredFilename();
String title = l10n("uploadSucceededTitle", "filename",
name);
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/StatisticsToadlet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/StatisticsToadlet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -125,8 +125,6 @@
super.sendErrorPage(ctx, 403,
L10n.getString("Toadlet.unauthorizedTitle"),
L10n.getString("Toadlet.unauthorized"));
return;
}
-
- final boolean advancedModeEnabled =
node.isAdvancedModeEnabled();
final SubConfig nodeConfig = node.config.get("node");
/* gather connection statistics */
@@ -169,6 +167,7 @@
if(ctx.isAllowedFullAccess())
contentNode.addChild(core.alerts.createSummary());
+ final int mode =
ctx.getPageMaker().drawModeSelectionArray(core, request, contentNode);
double swaps = (double)node.getSwaps();
double noSwaps = (double)node.getNoSwaps();
@@ -204,7 +203,7 @@
logsList.addChild("li").addChild("a", new String[]{
"href", "target"}, new String[]{ "/?latestlog", "_new"}, l10n("getLogs"));
logsList.addChild("li").addChild("a", "href",
TranslationToadlet.TOADLET_URL+"?getOverrideTranlationFile").addChild("#",
L10n.getString("TranslationToadlet.downloadTranslationsFile"));
- if(advancedModeEnabled) {
+ if(mode >= PageMaker.MODE_ADVANCED) {
// store size box
HTMLNode storeSizeInfobox =
nextTableCell.addChild("div", "class", "infobox");
@@ -237,16 +236,16 @@
}
}
- if(advancedModeEnabled || numberOfConnected +
numberOfRoutingBackedOff > 0) {
+ if(mode >= PageMaker.MODE_ADVANCED || numberOfConnected +
numberOfRoutingBackedOff > 0) {
// Activity box
nextTableCell = overviewTableRow.addChild("td",
"class", "last");
HTMLNode activityInfobox =
nextTableCell.addChild("div", "class", "infobox");
- drawActivityBox(activityInfobox, advancedModeEnabled);
+ drawActivityBox(activityInfobox, mode >=
PageMaker.MODE_ADVANCED);
/* node status overview box */
- if(advancedModeEnabled) {
+ if(mode >= PageMaker.MODE_ADVANCED) {
HTMLNode overviewInfobox =
nextTableCell.addChild("div", "class", "infobox");
drawOverviewBox(overviewInfobox,
nodeUptimeSeconds, now, swaps, noSwaps);
}
@@ -254,7 +253,7 @@
// Peer statistics box
HTMLNode peerStatsInfobox =
nextTableCell.addChild("div", "class", "infobox");
- drawPeerStatsBox(peerStatsInfobox, advancedModeEnabled,
numberOfConnected, numberOfRoutingBackedOff,
+ drawPeerStatsBox(peerStatsInfobox, mode >=
PageMaker.MODE_ADVANCED, numberOfConnected, numberOfRoutingBackedOff,
numberOfTooNew, numberOfTooOld,
numberOfDisconnected, numberOfNeverConnected, numberOfDisabled,
numberOfBursting, numberOfListening,
numberOfListenOnly, numberOfSeedServers, numberOfSeedClients,
numberOfRoutingDisabled,
numberOfClockProblem, numberOfConnError, numberOfDisconnecting);
@@ -262,10 +261,10 @@
// Bandwidth box
HTMLNode bandwidthInfobox =
nextTableCell.addChild("div", "class", "infobox");
- drawBandwidthBox(bandwidthInfobox, nodeUptimeSeconds,
advancedModeEnabled);
+ drawBandwidthBox(bandwidthInfobox, nodeUptimeSeconds,
mode >= PageMaker.MODE_ADVANCED);
}
- if(advancedModeEnabled) {
+ if(mode >= PageMaker.MODE_ADVANCED) {
// Peer routing backoff reason box
HTMLNode backoffReasonInfobox =
nextTableCell.addChild("div", "class", "infobox");
@@ -749,7 +748,7 @@
}
if (numberOfDisconnecting > 0) {
HTMLNode peerStatsListenOnlyListItem =
peerStatsList.addChild("li").addChild("span");
- peerStatsListenOnlyListItem.addChild("span", new
String[] { "class", "title", "style" }, new String[] { "peer_disconnecting",
l10n("disconnecting"), "border-bottom: 1px dotted; cursor: help;" },
l10nDark("disconnectingShort"));
+ peerStatsListenOnlyListItem.addChild("span", new
String[] { "class", "title", "style" }, new String[] { "peer_disconnecting",
l10nDark("disconnecting"), "border-bottom: 1px dotted; cursor: help;" },
l10nDark("disconnectingShort"));
peerStatsListenOnlyListItem.addChild("span", ":\u00a0"
+ numberOfDisconnecting);
}
if (numberOfSeedServers > 0) {
@@ -766,7 +765,7 @@
}
if (numberOfRoutingDisabled > 0) {
HTMLNode peerStatsRoutingDisabledListItem =
peerStatsList.addChild("li").addChild("span");
- peerStatsRoutingDisabledListItem.addChild("span", new
String[] { "class", "title", "style" }, new String[] { "peer_routing_disabled",
l10n("routingDisabled"), "border-bottom: 1px dotted; cursor: help;" },
l10n("routingDisabledShort"));
+ peerStatsRoutingDisabledListItem.addChild("span", new
String[] { "class", "title", "style" }, new String[] { "peer_routing_disabled",
l10nDark("routingDisabled"), "border-bottom: 1px dotted; cursor: help;" },
l10nDark("routingDisabledShort"));
peerStatsRoutingDisabledListItem.addChild("span",
":\u00a0" + numberOfRoutingDisabled);
}
}
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/WelcomeToadlet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -388,7 +388,12 @@
}, 1);
return;
} else if(request.isPartSet("dismiss-events")) {
- String alertsToDump = request.getPartAsString("events", 4096);
+ if(noPassword) {
+ redirectToRoot(ctx);
+ return;
+ }
+
+ String alertsToDump = request.getPartAsString("events",
Integer.MAX_VALUE);
String[] alertAnchors = alertsToDump.split(",");
HashSet toDump = new HashSet();
for(int i=0;i<alertAnchors.length;i++)
toDump.add(alertAnchors[i]);
Modified:
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/clients/http/staticfiles/defaultbookmarks.dat
2008-06-16 12:45:45 UTC (rev 20360)
@@ -7,19 +7,19 @@
BookmarkCategory0.Content.Bookmark0.Name=The Ultimate FreeNet Index
BookmarkCategory0.Content.Bookmark0.Description=A new one-page index with a
menu including categories
BookmarkCategory0.Content.Bookmark0.hasAnActivelink=true
-BookmarkCategory0.Content.Bookmark0.URI=USK at
0I8gctpUE32CM0iQhXaYpCMvtPPGfT4pjXm01oid5Zc,3dAcn4fX2LyxO6uCnWFTx-2HKZ89uruurcKwLSCxbZ4,AQACAAE/Ultimate-Freenet-Index/22/
+BookmarkCategory0.Content.Bookmark0.URI=USK at
0I8gctpUE32CM0iQhXaYpCMvtPPGfT4pjXm01oid5Zc,3dAcn4fX2LyxO6uCnWFTx-2HKZ89uruurcKwLSCxbZ4,AQACAAE/Ultimate-Freenet-Index/24/
BookmarkCategory0.Content.Bookmark3.Name=Index des sites Fran?ais
BookmarkCategory0.Content.Bookmark3.Description=A small French index with
descriptions
BookmarkCategory0.Content.Bookmark3.hasAnActivelink=true
-BookmarkCategory0.Content.Bookmark3.URI=USK at
RJnh1EnvOSPwOWVRS2nyhC4eIQkKoNE5hcTv7~yY-sM,pOloLxnKWM~AL24iDMHOAvTvCqMlB-p2BO9zK96TOZA,AQACAAE/index_fr/47/
+BookmarkCategory0.Content.Bookmark3.URI=USK at
RJnh1EnvOSPwOWVRS2nyhC4eIQkKoNE5hcTv7~yY-sM,pOloLxnKWM~AL24iDMHOAvTvCqMlB-p2BO9zK96TOZA,AQACAAE/index_fr/50/
BookmarkCategory0.Content.Bookmark2.Name=Freenet Activelink Index (SLOW:
graphical index, preloads all the sites, so takes *ages* to load)
BookmarkCategory0.Content.Bookmark2.hasAnActivelink=true
BookmarkCategory0.Content.Bookmark2.Description=A graphical freenet index
(this will take a long time to load as it preloads the sites)
-BookmarkCategory0.Content.Bookmark2.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index/53/
+BookmarkCategory0.Content.Bookmark2.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index/60/
BookmarkCategory0.Content.Bookmark1.Name=Freenet Activelink Index Text Version
(a quick-loading non-graphical index site, no porn)
BookmarkCategory0.Content.Bookmark1.hasAnActivelink=true
BookmarkCategory0.Content.Bookmark1.Description=Text version of the Activelink
Index
-BookmarkCategory0.Content.Bookmark1.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index-text/17/
+BookmarkCategory0.Content.Bookmark1.URI=USK at
qd-hk0vHYg7YvK2BQsJMcUD5QSF0tDkgnnF6lnWUH0g,xTFOV9ddCQQk6vQ6G~jfL6IzRUgmfMcZJ6nuySu~NUc,AQACAAE/activelink-index-text/23/
BookmarkCategory1.Name=Freenet devel's flogs
BookmarkCategory1.Content.BookmarkCategory=0
BookmarkCategory1.Content.Bookmark=5
@@ -34,7 +34,7 @@
BookmarkCategory1.Content.Bookmark2.Name=Bombe
BookmarkCategory1.Content.Bookmark2.Description=Bombe's flog
BookmarkCategory1.Content.Bookmark2.hasAnActivelink=true
-BookmarkCategory1.Content.Bookmark2.URI=USK at
e3myoFyp5avg6WYN16ImHri6J7Nj8980Fm~aQe4EX1U,QvbWT0ImE0TwLODTl7EoJx2NBnwDxTbLTE6zkB-eGPs,AQACAAE/bombe/35/
+BookmarkCategory1.Content.Bookmark2.URI=USK at
e3myoFyp5avg6WYN16ImHri6J7Nj8980Fm~aQe4EX1U,QvbWT0ImE0TwLODTl7EoJx2NBnwDxTbLTE6zkB-eGPs,AQACAAE/bombe/38/
BookmarkCategory1.Content.Bookmark1.Name=Nextgen$
BookmarkCategory1.Content.Bookmark1.Description=NextGen$' flog
BookmarkCategory1.Content.Bookmark1.hasAnActivelink=true
@@ -45,29 +45,25 @@
BookmarkCategory1.Content.Bookmark0.URI=USK at
yGvITGZzrY1vUZK-4AaYLgcjZ7ysRqNTMfdcO8gS-LY,-ab5bJVD3Lp-LXEQqBAhJpMKrKJ19RnNaZMIkusU79s,AQACAAE/toad/12/
BookmarkCategory2.Name=Freenet related software and documentation
BookmarkCategory2.Content.BookmarkCategory=0
-BookmarkCategory2.Content.Bookmark=6
-BookmarkCategory2.Content.Bookmark0.Name=Frost
-BookmarkCategory2.Content.Bookmark0.Description=The official freesite of
Frost, a message board system for Freenet
+BookmarkCategory2.Content.Bookmark=5
+BookmarkCategory2.Content.Bookmark0.Name=Freenet Message System
+BookmarkCategory2.Content.Bookmark0.Description=The official freesite of FMS,
a spam resistant message board system for Freenet
BookmarkCategory2.Content.Bookmark0.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark0.URI=USK at
QRZAI1nSm~dAY2hTdzVWXmEhkaI~dso0OadnppBR7kE,wq5rHGBI7kpChBe4yRmgBChIGDug7Xa5SG9vYGXdxR0,AQACAAE/frost/7/
-BookmarkCategory2.Content.Bookmark1.Name=Freenet Message System
-BookmarkCategory2.Content.Bookmark1.Description=The official freesite of FMS,
a spam resistant message board system for Freenet
+BookmarkCategory2.Content.Bookmark0.URI=USK at
0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/55/
+BookmarkCategory2.Content.Bookmark1.Name=Freemail
+BookmarkCategory2.Content.Bookmark1.Description=The official site for Freemail
- email over Freenet
BookmarkCategory2.Content.Bookmark1.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark1.URI=USK at
0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fms/50/
-BookmarkCategory2.Content.Bookmark2.Name=Freemail
-BookmarkCategory2.Content.Bookmark2.Description=The official site for Freemail
- email over Freenet
+BookmarkCategory2.Content.Bookmark1.URI=USK at
xOg49GNltumTJJzj0fVzuGDpo4hJUsy2UsGQkjE7NY4,EtUH5b9gGpp8JiY-Bm-Y9kHX1q-yDjD-9oRzXn21O9k,AQACAAE/freemail/4/
+BookmarkCategory2.Content.Bookmark2.Name=Publish!
+BookmarkCategory2.Content.Bookmark2.Description=Simple guide to publishing web
sites to Freenet
BookmarkCategory2.Content.Bookmark2.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark2.URI=USK at
xOg49GNltumTJJzj0fVzuGDpo4hJUsy2UsGQkjE7NY4,EtUH5b9gGpp8JiY-Bm-Y9kHX1q-yDjD-9oRzXn21O9k,AQACAAE/freemail/3/
-BookmarkCategory2.Content.Bookmark3.Name=Publish!
-BookmarkCategory2.Content.Bookmark3.Description=Simple guide to publishing web
sites to Freenet
+BookmarkCategory2.Content.Bookmark2.URI=USK at
940RYvj1-aowEHGsb5HeMTigq8gnV14pbKNsIvUO~-0,FdTbR3gIz21QNfDtnK~MiWgAf2kfwHe-cpyJXuLHdOE,AQACAAE/publish/1/
+BookmarkCategory2.Content.Bookmark3.URI=USK at
8r-uSRcJPkAr-3v3YJR16OCx~lyV2XOKsiG4MOQQBMM,P42IgNemestUdaI7T6z3Og6P-Hi7g9U~e37R3kWGVj8,AQACAAE/freesite-HOWTO/4/
+BookmarkCategory2.Content.Bookmark3.Name=Freesite HOWTO
+BookmarkCategory2.Content.Bookmark3.Description=A more detailed explanation of
publishing freesites
BookmarkCategory2.Content.Bookmark3.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark3.URI=USK at
940RYvj1-aowEHGsb5HeMTigq8gnV14pbKNsIvUO~-0,FdTbR3gIz21QNfDtnK~MiWgAf2kfwHe-cpyJXuLHdOE,AQACAAE/publish/1/
-BookmarkCategory2.Content.Bookmark4.URI=USK at
8r-uSRcJPkAr-3v3YJR16OCx~lyV2XOKsiG4MOQQBMM,P42IgNemestUdaI7T6z3Og6P-Hi7g9U~e37R3kWGVj8,AQACAAE/freesite-HOWTO/3/
-BookmarkCategory2.Content.Bookmark4.Name=Freesite HOWTO
-BookmarkCategory2.Content.Bookmark4.Description=A more detailed explanation of
publishing freesites
+BookmarkCategory2.Content.Bookmark4.URI=USK at
F-BKUq9vNTrvp7D90r5edQ4MfZCrx3pP7TofdDlCRoU,YFUeosm79Z3KZxC62qQCteCCUI3D-LYyRk6P9auVpPA,AQACAAE/freenetapps/22/
BookmarkCategory2.Content.Bookmark4.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark5.URI=USK at
F-BKUq9vNTrvp7D90r5edQ4MfZCrx3pP7TofdDlCRoU,YFUeosm79Z3KZxC62qQCteCCUI3D-LYyRk6P9auVpPA,AQACAAE/freenetapps/15/
-BookmarkCategory2.Content.Bookmark5.hasAnActivelink=true
-BookmarkCategory2.Content.Bookmark5.Name=The Freenet Applications Freesite
-BookmarkCategory2.Content.Bookmark5.Description=Various links to Freenet
applications, and instructions for using them
+BookmarkCategory2.Content.Bookmark4.Name=The Freenet Applications Freesite
+BookmarkCategory2.Content.Bookmark4.Description=Various links to Freenet
applications, and instructions for using them
End
Modified: branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/io/comm/Peer.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -20,12 +20,12 @@
package freenet.io.comm;
import java.io.DataInput;
-import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import freenet.io.WritableToDataOutputStream;
import freenet.support.transport.ip.HostnameSyntaxException;
import freenet.support.transport.ip.IPUtil;
@@ -35,7 +35,7 @@
* To change the template for this generated type comment go to Window -
Preferences - Java - Code Generation - Code and
* Comments
*/
-public class Peer {
+public class Peer implements WritableToDataOutputStream {
public static class LocalAddressException extends Exception {
private static final long serialVersionUID = -1;
Modified: branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java 2008-06-15
19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/l10n/L10n.java 2008-06-16
12:45:45 UTC (rev 20360)
@@ -24,9 +24,6 @@
*
* TODO: Maybe base64 the override file ?
*
-* comment(mario): for www interface we might detect locale from http requests?
-* for other access (telnet) using system locale would probably be good, but
-* it would be nice to have a command to switch locale on the fly.
*/
public class L10n {
public static final String CLASS_NAME = "L10n";
@@ -35,8 +32,22 @@
public static final String OVERRIDE_SUFFIX = ".override" + SUFFIX;
public static final String FALLBACK_DEFAULT = "en";
- public static final String[] AVAILABLE_LANGUAGES = { "en", "es", "da",
"de", "fi", "fr", "it", "no", "pl", "se",
- "zh-cn", "zh-tw", "unlisted" };
+ /** @see http://www.omniglot.com/language/names.htm */
+ public static final String[][] AVAILABLE_LANGUAGES = {
+ new String[] { "en", "English" },
+ new String[] { "es", "Espa?ol" },
+ new String[] { "da", "Dansk" },
+ new String[] { "de", "Deutsch" },
+ new String[] { "fi", "Suomi" },
+ new String[] { "fr", "Fran?ais" },
+ new String[] { "it", "Italiano" },
+ new String[] { "no", "Norsk" },
+ new String[] { "pl", "Polski" },
+ new String[] { "se", "Svenska" },
+ new String[] { "zh-cn", "??(??)" },
+ new String[] { "zh-tw", "??(??)" },
+ new String[] { "unlisted", "unlisted"},
+ };
private final String selectedLanguage;
private static SimpleFieldSet currentTranslation = null;
@@ -84,25 +95,13 @@
*/
public static void setLanguage(String selectedLanguage) throws
MissingResourceException {
synchronized (sync) {
- for(int i=0; i<AVAILABLE_LANGUAGES.length; i++){
-
if(selectedLanguage.equalsIgnoreCase(AVAILABLE_LANGUAGES[i])){
- selectedLanguage =
AVAILABLE_LANGUAGES[i];
- Logger.normal(CLASS_NAME, "Changing the
current language to : " + selectedLanguage);
-
- currentClass = new
L10n(selectedLanguage);
-
- if(currentTranslation == null) {
- currentClass = new
L10n(FALLBACK_DEFAULT);
- throw new
MissingResourceException("Unable to load the translation file for
"+selectedLanguage, "l10n", selectedLanguage);
- }
-
- return;
- }
+ Logger.normal(CLASS_NAME, "Changing the current
language to : " + selectedLanguage);
+ currentClass = new L10n(selectedLanguage);
+ if(currentClass == null) {
+ currentClass = new L10n(FALLBACK_DEFAULT);
+ Logger.error(CLASS_NAME, "The requested
translation is not available!" + selectedLanguage);
+ throw new MissingResourceException("The
requested translation (" + selectedLanguage + ") hasn't been found!",
CLASS_NAME, selectedLanguage);
}
-
- currentClass = new L10n(FALLBACK_DEFAULT);
- Logger.error(CLASS_NAME, "The requested translation is
not available!" + selectedLanguage);
- throw new MissingResourceException("The requested
translation ("+selectedLanguage+") hasn't been found!", CLASS_NAME,
selectedLanguage);
}
}
@@ -325,6 +324,12 @@
* @return the Properties object or null if not found
*/
public static SimpleFieldSet loadTranslation(String name) {
+ String shortCountryCode = mapLanguageNameToShortCode(name);
+ if(shortCountryCode == null) {
+ Logger.error("L10n", "Can't map "+name+" to a country
code!");
+ return null;
+ } else
+ name = shortCountryCode;
name = PREFIX.replace ('.',
'/').concat(PREFIX.concat(name.concat(SUFFIX)));
SimpleFieldSet result = null;
@@ -345,6 +350,23 @@
return result;
}
+
+ /**
+ * Map a full string language name to the corresponding country short
code
+ *
+ * @param The name to look for
+ * @return The two letters short code OR null if not found
+ */
+ public static String mapLanguageNameToShortCode(String name) {
+ for(int i=0; i<AVAILABLE_LANGUAGES.length; i++) {
+ String currentShortCode = AVAILABLE_LANGUAGES[i][0];
+ String currentLongName = AVAILABLE_LANGUAGES[i][1];
+
+ if(currentShortCode.equalsIgnoreCase(name) ||
currentLongName.equalsIgnoreCase(name))
+ return currentShortCode;
+ }
+ return null;
+ }
public static boolean isOverridden(String key) {
synchronized(sync) {
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.properties
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.de.properties
2008-06-16 12:45:45 UTC (rev 20360)
@@ -85,10 +85,6 @@
ConfigToadlet.fproxy=FProxy
ConfigToadlet.fullTitle=Freenet-Knoten-Konfiguration von ${name}
ConfigToadlet.logger=Logger
-ConfigToadlet.modeAdvanced=Erweiterte Einstellungen
-ConfigToadlet.modeAdvancedTooltip=Optionen, die nur erfahrene Freenet-Benutzer
und -Entwickler benutzen m?ssen
-ConfigToadlet.modeSimple=Einfache Einstellungen
-ConfigToadlet.modeSimpleTooltip=Optionen, die alle Benutzer kennen sollten
ConfigToadlet.node=Knoten
ConfigToadlet.pluginmanager=Plugin-Manager
ConfigToadlet.pluginmanager2=Plugin-Manager 2
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.en.properties
2008-06-16 12:45:45 UTC (rev 20360)
@@ -86,10 +86,10 @@
ConfigToadlet.fproxy=fproxy
ConfigToadlet.fullTitle=Freenet Node Configuration of ${name}
ConfigToadlet.logger=logger
-ConfigToadlet.modeSimple=Simple config options
-ConfigToadlet.modeSimpleTooltip=Config options that all users should know about
-ConfigToadlet.modeAdvanced=Advanced config options
-ConfigToadlet.modeAdvancedTooltip=Config options that only experienced freenet
users and developers will need to use
+PageMaker.modeSimple=Simple interface
+PageMaker.modeSimpleTooltip=A simple interface all users can use
+PageMaker.modeAdvanced=Advanced interface
+PageMaker.modeAdvancedTooltip=An advanced interface that only experienced
freenet users and developers will need to use
ConfigToadlet.node=node
ConfigToadlet.node.load=node.load
ConfigToadlet.node.opennet=node.opennet
@@ -662,6 +662,9 @@
Node.inBWLimit=Input bandwidth limit (bytes per second)
Node.inBWLimitLong=Input bandwidth limit (bytes/sec); the node will try not to
exceed this; -1 = 4x set outputBandwidthLimit
Node.invalidStoreSize=Store size must be at least 32MB
+Node.java14Title=Java 1.4 no longer supported
+Node.java14Text=You are running Freenet on a 1.4 version of Java. Please
upgrade to at least java 1.5. Auto-update has been temporarily disabled as
future builds may not load at all.
+Node.java14ShortText=Java 1.4 will not be supported for much longer, please
upgrade to 1.5.
Node.l10nLanguage=The language the node will use to display messages
Node.l10nLanguageLong=This setting will change the language used to display
messages. Keep in mind that some strings won't be translated until next node
startup though.
Node.maxHTL=Maximum HTL
@@ -903,8 +906,12 @@
QueueToadlet.completedU=Completed uploads (${size})
QueueToadlet.completedUDirectory=Completed directory uploads (${size})
QueueToadlet.download=Download
+QueueToadlet.downloadFiles=Bulk downloads
+QueueToadlet.downloadFilesInstructions=You can paste a list of keys to
download in the box below (one per line)
QueueToadlet.downloadSucceededTitle=Download succeeded: ${filename}
QueueToadlet.downloadSucceeded=The file ${origlink}${filename}${/origlink} has
been downloaded successfully. ${link}Click here${/link} to open the file
(${size}).
+QueueToadlet.enqueuedSuccessfully=The following ${number} keys have been
enqueued sucessfully:
+QueueToadlet.enqueuedFailure=The following ${number} keys couldn't have been
enqueued:
QueueToadlet.errorAccessDenied=Error: Access Denied!
QueueToadlet.errorAccessDeniedFile=The current configuration of the node
prohibits you from uploading the file "${file}".
QueueToadlet.errorDToDisk=Cannot download to disk
@@ -1125,6 +1132,7 @@
Toadlet.ok=Ok
Toadlet.permRedirectWithReason=Permanent redirect: ${reason}
Toadlet.returnToNodeHomepage=Return to node homepage
+Toadlet.returnToQueuepage=Return to queue page
Toadlet.returnToPrevPage=Return to the previous page
Toadlet.tempRedirectWithReason=Temporary redirect: ${reason}
Toadlet.unauthorizedTitle=Unauthorized
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.fr.properties
2008-06-16 12:45:45 UTC (rev 20360)
@@ -85,10 +85,6 @@
ConfigToadlet.fproxy=fproxy
ConfigToadlet.fullTitle=Configuration du noeud ${name}
ConfigToadlet.logger=enregistreur de logs
-ConfigToadlet.modeAdvanced=Options de configuration avanc?es
-ConfigToadlet.modeAdvancedTooltip=Options de configuration utiles uniquement
aux utilisateurs exp?riment?s et aux d?veloppeurs
-ConfigToadlet.modeSimple=Options de configuration simple
-ConfigToadlet.modeSimpleTooltip=Options de configuration utiles ? tous les
utilisateurs
ConfigToadlet.node=noeud
ConfigToadlet.pluginmanager=gestionnaire de plugins
ConfigToadlet.pluginmanager2=gestionnaire de plugins 2
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.it.properties
2008-06-16 12:45:45 UTC (rev 20360)
@@ -1,12 +1,12 @@
Announcer.announceAlertIntro=Il nodo sta cercando di connettersi con i
seednode ed annunciare s? stesso all' OpenNet (network di Sconosciuti). Possono
essere necessari alcuni minuti per completare l'operazione.
Announcer.announceAlertNoSeednodes=Non e' stato trovato il file seednodes.fref
e quindi il nodo non pu? connettersi automaticamente ad Opennet. Aggiungere
alcuni nodi manualmente o scaricare il file seednodes da
http://downloads.freenetproject.org/alpha/opennet/ .
Announcer.announceAlertShort=Il nodo sta cercando di connettersi alla rete,
nel frattempo sar? pi? lento.
-Announcer.announceAlertTitle=Announce Nodo
+Announcer.announceAlertTitle=Annuncio Nodo in corso
Announcer.announceDetails=Il nodo ha recentemente inoltrato
${recentSentAnnouncements} annunci, ${runningAnnouncements} dei quali ancora in
corso, ed aggiunto ${addedNodes} nodi (${refusedNodes} nodi hanno rifiutato la
connessione). In questo momento il nodo ? connesso a ${connectedSeednodes}
seednode e sta cercando di connettersi ad altri ${disconnectedSeednodes}.
-Announcer.announceDisabledTooOld=Il nodo ? oodo obsoleto ed inadatto alla
connessione con la rete Freenet attuale. L'annuncio ? stato diabilitato in
quanto comunque inutile. Si prega di aggiornare il nodo appena possibile
(auto-aggiornamento potrebbe essere in attesa di input o disabilitato)
+Announcer.announceDisabledTooOld=Il software utilizzato dal nodo ? obsoleto ed
inadatto alla connessione con la version corrente della rete Freenet.
L'annuncio ? stato diabilitato in quanto comunque inutile. Si prega di
aggiornare il nodo appena possibile (auto-aggiornamento potrebbe essere in
attesa di input o disabilitato)
Announcer.announceDisabledTooOldShort=Il nodo non riesce a connettersi alla
rete perch? la versione di Freenet utilizzata ? obsoleta. Si prega di eseguire
l'aggiornamento.
Announcer.announceDisabledTooOldTitle=Annuncio disabilitato (obsoleto)
-Announcer.announceLoading=Il nodo sta caricando il file seednodes in modo da
poter provare ad annunciare al resto della rete. Announcement pu? richiedere
alcuni minuti.
+Announcer.announceLoading=Il nodo sta caricando il file seednodes per
annunciarsi al resto della rete. Il completamento dell' operazione potrebbe
richiedere diversi minuti.
Announcer.coolingOff=per i prossimi ${time} secondi, il nodo aspetter? che i
nodi che ha annunciato si connettano; se non ci saranno abbastanza nodi prover?
con un altro nodo.
BookmarkEditorToadlet.addBookmark=Aggiungi Segnalibro
BookmarkEditorToadlet.addCategory=Aggiungi Categoria
@@ -60,7 +60,7 @@
BookmarkManager.malformedBookmark=Segnalibro malformato
BooleanOption.parseError=Booleano non riconosciuto: ${val} - prova "vero o
falso"
BuildOldAgeUserAlert.tooOld=Il software di questo nodo ? antecedente alla pi?
vecchia versione (Build #${lastgood}) utilizzabile dai peer aggiornati ai quali
si cerca di connettersi. E' necessario aggiornare il nodo al pi? presto
possibile; non sar? possibile connettersi ai peer etichettati "TROPPO RECENTE"
finch? il nodo non sar? stato aggiornato (il nodo va tenuto aggiornato o si
rischia di essere esclusi dalla rete Freenet)
-BuildOldAgeUserAlert.tooOldShort=Il nodo sta utilizzando una versione obsoleta
di Freenet, che rende imossibile collegarsi alla rete. Si prega di eseguire
l'aggiornamento al pi? presto possibile.
+BuildOldAgeUserAlert.tooOldShort=Il nodo sta utilizzando una versione di
Freenet obsoleta al punto da rendere impossibile il collegamento alla rete. Si
prega di eseguire l'aggiornamento al pi? presto possibile.
BuildOldAgeUserAlert.tooOldTitle=Versione obsoleta
CSSTokenizerFilter.deletedDisallowedString=Stringa non permessa eliminata
CSSTokenizerFilter.deletedUnmatchedChar=Ignorato char non corrispondente:
@@ -87,10 +87,6 @@
ConfigToadlet.fullTitle=Configurazione del Nodo Freenet di ${name}
ConfigToadlet.homepage=Homepage del Nodo
ConfigToadlet.logger=log
-ConfigToadlet.modeAdvanced=Opzionni di configurazione avanzate
-ConfigToadlet.modeAdvancedTooltip=Opzioni di configurazione che dovrebbero
usare solo gli utenti avanzati di Freenet e gli sviluppatori.
-ConfigToadlet.modeSimple=Opzioni di configurazione Semplici
-ConfigToadlet.modeSimpleTooltip=Opzioni di configurazione che tutti gli utenti
dovrebbero conoscere.
ConfigToadlet.node=nodo
ConfigToadlet.pluginmanager=pluginmanager
ConfigToadlet.pluginmanager2=pluginmanager2
@@ -125,7 +121,7 @@
ConnectionsToadlet.nodeStatus.LISTEN ONLY=SOLO ASCOLTO
ConnectionsToadlet.nodeStatus.LISTENING=IN ASCOLTO
ConnectionsToadlet.nodeStatus.NEVER CONNECTED=MAI CONNESSO
-ConnectionsToadlet.nodeStatus.ROUTING DISABLED=NON STA INSTRADANDO TRAFFICO
+ConnectionsToadlet.nodeStatus.ROUTING DISABLED=NON INSTRADA TRAFFICO
ConnectionsToadlet.nodeStatus.TOO NEW=TROPPO RECENTE
ConnectionsToadlet.nodeStatus.TOO OLD=OBSOLETO
ConnectionsToadlet.nodeStatus.UNKNOWN STATUS=STATUS NON DETERMINATO
@@ -143,7 +139,7 @@
ConnectivityToadlet.sentReceivedTitle=Pacchetti ricevuti/trasmessi
ConnectivityToadlet.summaryTitle=Connettivit?
ConnectivityToadlet.title=Connettivit? internet di ${nodeName}
-ContentDataFilter.unknownCharset=La pagina che sta per essere visualizzata
utilizza un formato di caratteri (chaset) di tipo sconosciuto. Questo rende
impossibile filtrare la pagina, il che potrebbe a sua volta compromettere
l'anonimato dell'utente.
+ContentDataFilter.unknownCharset=La pagina che sta per essere visualizzata
utilizza un formato di caratteri (charset) di tipo sconosciuto. Ci? rende
impossibile filtrare la pagina, il che potrebbe a sua volta compromettere
l'anonimato dell'utente.
ContentDataFilter.unknownCharsetTitle=Charset sconosciuto!
ContentDataFilter.warningUnknownCharsetTitle=Attenzione: charset sconosciuto
(${charset})
ContentFilter.applicationPdfReadAdvice=Documento Adobe(R) PDF - MOLTO
PERICOLOSO!
@@ -167,7 +163,7 @@
DarknetConnectionsToadlet.activityTitle=Attivit? Corrente
DarknetConnectionsToadlet.add=Aggiungi
DarknetConnectionsToadlet.addPeerTitle=Aggiungi un peer
-DarknetConnectionsToadlet.alreadyInReferences=Questa referenza ? gi? in lista.
+DarknetConnectionsToadlet.alreadyInReferences=La referenza data ? gi? presente
in lista.
DarknetConnectionsToadlet.backedOff=Connesso ma respinto: Il nodo ? connesso a
questi peer ma la la connessione viene rifiutata e quindi i peer in questione
non vengono al momento utilizzati per l'instradamento delle richieste
DarknetConnectionsToadlet.backedOffShort=Respinti
DarknetConnectionsToadlet.bursting=Non connesso e bursting: per un breve
periodo, il nodo sta tentando di connettersi a questi peer perch? l'utenete ha
impostato burstOnly su di essi
@@ -176,11 +172,11 @@
DarknetConnectionsToadlet.busyShort=Occupati
DarknetConnectionsToadlet.cancel=Cancella
DarknetConnectionsToadlet.cantFetchNoderefURL=Non ? stato possibile richiamare
la referenza di un nodo da ${url}. Riprovare.
-DarknetConnectionsToadlet.cantParseTryAgain=Non ? stato possibile interpretare
it testo come refernza di un nodo: (${error}).
+DarknetConnectionsToadlet.cantParseTryAgain=Non ? stato possibile interpretare
it testo dato come refernza di un nodo: (${error}).
DarknetConnectionsToadlet.cantParseWrongEnding=Non ? stato possibile
interpretare le referenza: L'ultimo rigo dovrebbe contenere solo la parola End,
esso contiene invece: ${end}
-DarknetConnectionsToadlet.clockProblem=L'orologio di sitema e l'orologio del
nodo differiscono di oltre 24 ore. La connessione ? stata disabilitata perch?
questo pu? causare problemi con l'aggiornamento e con i client.
+DarknetConnectionsToadlet.clockProblem=L'orologio di sitema e l'orologio del
nodo differiscono di oltre 24 ore. Ci? potrebbe causare problemi con
l'aggiornamento e con i client. La connessione ? stata pertanto disabilitata,
DarknetConnectionsToadlet.clockProblemShort=Problema di sincronizzazione
orologio
-DarknetConnectionsToadlet.confirmRemoveNode=Conferma rimozione di
"+peerNodes[i].getName()+" ? Rimuovere un nodo che ? stato disconnesso per meno
di una settimana non ? consigliabile; si consiglia attendere ancora un po',
considerando che potrebbe trattarsi di un problema temporaneo, e che ci sono
utenti che non hanno la possibilit? lasciar girare il proprio nodo giorno e
notte.
+DarknetConnectionsToadlet.confirmRemoveNode=Conferma rimozione di "${name}" ?
Rimuovere un nodo che ? stato disconnesso per meno di una settimana non ?
consigliabile. L'azione pi? appropriata sarebbe di attendere ancora un po',
considerando che potrebbe trattarsi di un problema temporaneo, e che ci sono
utenti che non hanno la possibilit? lasciar girare il proprio nodo giorno e
notte.
DarknetConnectionsToadlet.confirmRemoveNodeTitle=Conferma
DarknetConnectionsToadlet.confirmRemoveNodeWarningTitle=Rimozione Nodo
DarknetConnectionsToadlet.connError=Connessione fallita (il nodo ha un 'bug'?)
@@ -190,12 +186,12 @@
DarknetConnectionsToadlet.darknetFnpPort=Darknet FNP: ${port}/UDP (usata per
connessioni a peer affidabili. Forwardare se possibile)
DarknetConnectionsToadlet.disabled=Non connesso e disabilitato: L'utente ha
configurato il nodo in maniera da non connettersi a questo peer.
DarknetConnectionsToadlet.disabledShort=Disabilitato
-DarknetConnectionsToadlet.disconnecting=Disconnessione in corso (si sta
procedendo alla rimozione del nodo; ? necessario informare il nodo in questione
e questo richiede un po' di tempo)
+DarknetConnectionsToadlet.disconnecting=Disconnessione in corso (si sta
procedendo alla rimozione del nodo; ? necessario informare il nodo in questione
e ci? potrebbe richiedere un po' di tempo)
DarknetConnectionsToadlet.disconnectingShort=Disconnessione in corso
DarknetConnectionsToadlet.enterDescription=Inserisci descrizione:
DarknetConnectionsToadlet.failedToAddNodeInternalError=Impossibile
interpretare il testo dato comereferenza di un nodo Freenet. Si prega di
riportare agli sviluppatori quanto segue:
-DarknetConnectionsToadlet.failedToAddNodeInternalErrorTitle=Tentativo di
aggiungere nodo fallito: Errore interno.
-DarknetConnectionsToadlet.failedToAddNodeTitle=Non ? Stato Possibile
Aggiungere il Nodo
+DarknetConnectionsToadlet.failedToAddNodeInternalErrorTitle=Aggiunta nuovo
nodo fallita: Errore interno.
+DarknetConnectionsToadlet.failedToAddNodeTitle=Aggiunta Nodo Fallita
DarknetConnectionsToadlet.fcpDisabled=FCP non ? abilitato (per applicazioni
client di Freenet come Frost e Thaw)
DarknetConnectionsToadlet.fcpPort=FCP: ${port}/tcp (per le applicazioni client
di Freenet, per esempio Frost e Thaw)
DarknetConnectionsToadlet.fileReference=Seleziona il file contenente la
referenza:
@@ -208,7 +204,7 @@
DarknetConnectionsToadlet.idleTime=Tempo trascorso da quando il nodo ?
connesso o da quando lo ? stato per l'ultima volta
DarknetConnectionsToadlet.idleTimeTitle=Connesso / Inattivo
DarknetConnectionsToadlet.invalidSignature=Non ? stato possibile verificare le
firma elettronica della refernza (${error}).
-DarknetConnectionsToadlet.ipAddress=L'indirizzo network del nodo nel formato
IP:porta
+DarknetConnectionsToadlet.ipAddress=Indirizzo del nodo in formato IP:porta
DarknetConnectionsToadlet.ipAddressTitle=Indirizzo
DarknetConnectionsToadlet.listenOnly=Non connesso e solo ascolto: il nodo non
cercher? di connettersi a questo peer perch? l'utente l'ha impostato su solo
ascolto (listenOnly)
DarknetConnectionsToadlet.listenOnlyShort=Solo ascolto
@@ -223,7 +219,7 @@
DarknetConnectionsToadlet.noPeersFirstHalf=Freenet non pu? funzionare perch?
non sono stati ancora aggiunti dei peer ai quali connettersi.
DarknetConnectionsToadlet.noPeersSecondHalf=Leggi l'infobox in alto per vedere
come si fa.
DarknetConnectionsToadlet.noPeersWithHomepageLink=Freenet non pu? funzionare
perch? non sono ancora stati aggiunti dei peer ai quali collegarsi. Alla pagina
${link}node homepage${/link}, in alto, si pu? leggere come fare.
-DarknetConnectionsToadlet.noRefOrURL=Non ? stato possibile rilevare una
referenza nodo o una URL: riprovare.
+DarknetConnectionsToadlet.noRefOrURL=Non ? stato possibile rilevare una
referenza nodo o una URL. Si prega di riprovare.
DarknetConnectionsToadlet.noRequests=Al momento, il nodo non sta elaborando
alcuna richiesta.
DarknetConnectionsToadlet.nodeHomepage=homepage del nodo
DarknetConnectionsToadlet.nodePortsTitle=Porte utilizzate dal Nodo
@@ -231,13 +227,13 @@
DarknetConnectionsToadlet.notConnectedShort=Disconnessi
DarknetConnectionsToadlet.opennetFnpPort=Opennet FNP: ${port}/UDP (usata per
connessioni a peer non affidabili, cio? Sconosciuti. Forwardare se possibile)
DarknetConnectionsToadlet.pasteReference=Incolla la referenza qui (il nodo
elliminer? automaticamente le parti aggiunte da chat clients, p.es. <toad_>) :
-DarknetConnectionsToadlet.privateNote=Nota privata relativa a questo nodo:
+DarknetConnectionsToadlet.privateNote=Un commento privato relativo a questo
nodo:
DarknetConnectionsToadlet.privateNoteTitle=Nota Privata
-DarknetConnectionsToadlet.referenceCopyWarning=La referenza del nodo va
copiata ${bold}COSI' COME E'${/bold}. Qualsiasi modificazione la render?
${bold}inutilizzabile${/bold}..
-DarknetConnectionsToadlet.remove=Elimina!
-DarknetConnectionsToadlet.removePeers=Elimina i peer selezionati
+DarknetConnectionsToadlet.referenceCopyWarning=La referenza del nodo va
copiata ${bold}SENZA VARIAZIONI${/bold}. Qualsiasi modificazione la render?
${bold}inutilizzabile${/bold}..
+DarknetConnectionsToadlet.remove=Elimina
+DarknetConnectionsToadlet.removePeers=Elimina peer selezionati
DarknetConnectionsToadlet.routingDisabled=Non sta instradando traffico: (la
connessione tra nodo locale e remoto ? attiva ma uno dei due rifiuta di
instradare traffico)
-DarknetConnectionsToadlet.routingDisabledShort=Non sta instradando traffico
+DarknetConnectionsToadlet.routingDisabledShort=Non instrada traffico
DarknetConnectionsToadlet.seedClients=Nodi per i quali il nodo locale sta
facendo da seednode.
DarknetConnectionsToadlet.seedClientsShort=Seeding per
DarknetConnectionsToadlet.seedServers=Nodi attualmente usati come seednode.
@@ -248,7 +244,7 @@
DarknetConnectionsToadlet.separator=-- -- --
DarknetConnectionsToadlet.statusTitle=Status
DarknetConnectionsToadlet.tmciDisabled=TMCI non ? abilitato (semplice
interfaccia a comandi testuali simile a telnet)
-DarknetConnectionsToadlet.tmciPort=TMCI: ${port}/tcp (una semplice interfaccia
a comandi testuali simile a telnet)
+DarknetConnectionsToadlet.tmciPort=TMCI: ${port}/tcp (semplice interfaccia a
comandi testuali simile a telnet)
DarknetConnectionsToadlet.tooNew=Connesso ma troppo recente: La versione
obbligatoria minima di questo peer e' maggiore della versione che stiamo
utilizzando.
DarknetConnectionsToadlet.tooNewShort=Troppo recente
DarknetConnectionsToadlet.tooOld=Connesso ma obsoleto: Questo peer sta usando
una versione obsoleta di Freenet. Esso non sar? utilizzato per l'instradamento
delle richieste.
@@ -257,14 +253,14 @@
DarknetConnectionsToadlet.triedToAddSelf=Non ? possibile aggiungere il proprio
stesso nodo ad una lista di peer remoti.
DarknetConnectionsToadlet.unauthorized=L'accesso a questa pagina ? interedetto.
DarknetConnectionsToadlet.unknownAddress=(indirizzo sconosciuto)
-DarknetConnectionsToadlet.updateChangedPrivnotes=Aggiorna i commenti
+DarknetConnectionsToadlet.updateChangedPrivnotes=Aggiorna commenti
DarknetConnectionsToadlet.urlReference=Inserire qui la URL della referenza:
DarknetConnectionsToadlet.versionTitle=Versione
-ExtOldAgeUserAlert.extTooOld=Il file freenet-ext.jar sembra essere corrotto o
obsoleto: Per l'aggiornamento usare
http://downloads.freenetproject.org/alpha/freenet-ext.jar.
+ExtOldAgeUserAlert.extTooOld=Il file freenet-ext.jar sembra essere corrotto od
obsoleto: Per l'aggiornamento usare
http://downloads.freenetproject.org/alpha/freenet-ext.jar
ExtOldAgeUserAlert.extTooOldShort=Il file freenet-ext.jar ? obsoleto. Si prega
di aggiornarlo.
-ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext troppo vecchio
+ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext obsoleto
FProxyToadlet.abortToHomepage=Interrompi e ritorna alla homepage di FProxy
-FProxyToadlet.alerts=Messaggi di stato dettagliati
+FProxyToadlet.alerts=Messaggi dettagliati sullo stato del nodo
FProxyToadlet.alertsTitle=Avvertenze
FProxyToadlet.backToFProxy=${link}Clicca qui${/link} per andare alla homepage
di FProxy
FProxyToadlet.backToReferrer=${link}Clicka qui${/link} per tornare alla pagina
referente.
@@ -374,13 +370,13 @@
FetchException.longError.21=Troppo grande
FetchException.longError.22=Volume dei metadati troppo grande
FetchException.longError.23=Troppi blocchi per segmento
-FetchException.longError.24=Sono necessarie pi? metastrings (componenti di
percorso) nella URI
+FetchException.longError.24=Sono necessarie pi? metastringhe (componenti di
percorso) nella URI
FetchException.longError.25=Annullato
FetchException.longError.26=Archivio riavviato
FetchException.longError.27=Redirezione permanente: usare la nuova URI
-FetchException.longError.28=Non sono stati trovati dati sufficienti; alcuni
dati sono stati richiamati ma il redirect potrebbe puntare su localit? non
valide
-FetchException.longError.29=MIME Type sbagliato: la chiave non era nella lista
dei MIME type permessi fornita dal client.
-FetchException.longError.3=Il nodo non sa cosa fare dei metadati
+FetchException.longError.28=Non ? stato possibile raccogliere dati in quantit?
sufficiente; dati parziali sono stati richiamati ma il redirect potrebbe
puntare su localit? non valide
+FetchException.longError.29=MIME Type non valido: chiave non presente in lista
di MIME type permessi fornita dal client.
+FetchException.longError.3=Metadati non utilizzabili
FetchException.longError.30=La richiesta ? stata terminata da un nodo perch?
esso aveva da poco ricevuto un'altra richiesta per la stessa chiave e quella
richiesta non era andata a buon fine.
FetchException.longError.4=Non ? stato possibile interpretare i metadati.
FetchException.longError.5=Fallimento durante l'estrazione di file da un
archivio
@@ -402,9 +398,9 @@
FetchException.shortError.2=Splitfile metadati sconosciuto
FetchException.shortError.20=URI non valida
FetchException.shortError.21=Troppo grande
-FetchException.shortError.22=Volume di metadati troppo grande
+FetchException.shortError.22=Volume metadati eccessivo
FetchException.shortError.23=Troppi blocchi per segmento
-FetchException.shortError.24=Non abbastanza meta-strings
+FetchException.shortError.24=Quantit? meta-strings insufficiente
FetchException.shortError.25=Annullato da caller
FetchException.shortError.26=Archivio riavviato
FetchException.shortError.27=Nuova URI
@@ -434,7 +430,7 @@
FileOffer.succeededReceiveHeader=Il trasferimento del file ${filename} da
${node} ? stato completato.
FileOffer.succeededReceiveShort=${filename} ? stato ricevuto da ${node}.
FileOffer.succeededReceiveTitle=Trasferimento file completato
-FirstTimeWizardToadlet.bandwidthLimit=Limitazioni dell'ampiezza di banda
+FirstTimeWizardToadlet.bandwidthLimit=Limitazione banda
FirstTimeWizardToadlet.bandwidthLimitLong=Scegliere il tipo di connessione e
la velocit? dal drop-down menu.
FirstTimeWizardToadlet.bwlimitHigherSpeed=Velocit? maggiore
FirstTimeWizardToadlet.bwlimitLowerSpeed=Velocit? minore
@@ -444,7 +440,7 @@
FirstTimeWizardToadlet.congratz=Benvenuto a bordo!
FirstTimeWizardToadlet.congratzLong=Congratulazioni, la configurazione di base
del nodo Freenet ? completa. E' possibile cambiare e modificare ognuno dei
parametri appena impostati usando la pagina "configurazione" che ?
raggiungibile attraverso il menu sulla sinistra dell'interfaccia. Vi auguriamo
una piacevole esperienza con Freenet.
FirstTimeWizardToadlet.connectToStrangers=Connetti a sconosciuti?
-FirstTimeWizardToadlet.connectToStrangersLong=Permettendo connessioni con
sconosciuti, questo nodo Freenet sar? meno sicuro; chiunque port? determinare
che un nodo sta girando sul tuo computer e qualsiasi malintenzionato portebbe
connettersi ad esso. per non permettere che Freenet si connetta a chiunque,
bisogner? contattare almeno altre tre persone conosciute e fidate che gi?
stiano usando Freenet e conettersi a loro manualmente.
+FirstTimeWizardToadlet.connectToStrangersLong=In un mondo ideale, ogni utente
Freenet si connetterebbe esclusivamente con nodi gestiti da persone fid?te.
Qesto ? di gran lunga il sistema pi? sicuro, che rende molto difficile per un
osservatore esterno determinare se un nodo stia o meno girando sul computer
osservato. D'altra parte, non avendo a disposizione almeno cinque amici,
parenti o conoscenti fid?ti che gi? usano Freenet, ai quali connettersi, come
soluzione alternativa ? possibile lasciare che il nodo si connetta
automaticamente a nodi gestiti da sconosciuti. Questa opzione pu? essere
disattivata in qualsiasi momento.
FirstTimeWizardToadlet.continue=Continua
FirstTimeWizardToadlet.continueEnd=Clicca qui per cominciare ad usare Freenet!
FirstTimeWizardToadlet.datastoreSize=Dimensioni magazzino dati (datastore)
@@ -455,12 +451,12 @@
FirstTimeWizardToadlet.iDoTrust=Possiamo fidarci degli utenti connessi a
${interface} (${ip}) ?
FirstTimeWizardToadlet.isNetworkTrusted=La rete locale ? affidabile?
FirstTimeWizardToadlet.isNetworkTrustedLong=La rete locale ? affidabile?
Rispondendo di si a questa domanda, tutti i servizii forniti dal nodo Freenet
saranno pienamente accessibili da chiunque sul network suddetto. E' possibile
configurare un accesso pi? selettivo attraverso la pagina "configurazione" dopo
aver completato questo wizard.
-FirstTimeWizardToadlet.memoryLimit=Uso di memoria
+FirstTimeWizardToadlet.memoryLimit=Utilizzo memoria
FirstTimeWizardToadlet.memoryLimitLong=Specifica il valore massimo della
memoria utilizzabile da Freenet. Il nodo ha bisogno di pi? memoria se ci sono
molti file in coda per il download/upload. Si raccomanda di non impostare
questa opzione per un valore inferiore a 128MB tranne nel caso in cui la
memoria totale a disposizione sia veramente poca. Se il computer ha 1GB di
memoria RAM o pi?, si consiglia di usare almeno 256MB. Il cambiamento avr?
effetto dopo aver riavviato Freenet.
FirstTimeWizardToadlet.noNetworkIF=Non ? stata trovata nessuna interfaccia di
rete addizionale
FirstTimeWizardToadlet.noNetworkIFLong=Freenet non ha trovato altre interfacce
di rete, quindi dar? per scontato che l'utente si connetter? dal computer
locale e solo da quello.
FirstTimeWizardToadlet.opennetNo=Si, ho almeno 5 amici che usano Freenet e
aggiunger? i loro dati alla pagina degli Amici.
-FirstTimeWizardToadlet.opennetWarning=Freenet potrebbe essere illegale in
alcuni paesi perch? rende possibile comunicazione anonima e non censurabile
garantendo la libert? di espressione. In tal caso ? bene NON connettersi degli
sconosiuti in quanto ci? faciliterebbe la scoperta dell'esistenza del nodo;
connettersi invece ad amici (possibilmente fid?ti). Freenet ? ancora in corso
di sviluppo e gli autori non possono garantire la sicurezza degli utenti! In
particolare, i peer a cui ci si connette ${bold}potrebbero${/bold} essere
capaci di spiare le nostre richieste
+FirstTimeWizardToadlet.opennetWarning=In Paesi dove networking anonimo ?
illegale e/o se usa Freenet per accedere a materiale che potrebbe mettere nei
guai chi ne fosse trovato in possesso, un serio pericolo pu? risultare dal
configurare il nodo in modo da connettersi automaticamente a nodi gestiti da
sconosciuti, facilitando il il compito ad un avversario determinato. Freenet ?
ancora in fase sperimentale, gli autori non sono in grado di garatire sicurezza
assoluta.
FirstTimeWizardToadlet.opennetYes=No, voglio che il nodo trovi automaticamente
degli sconosciuti ai quali connettersi.
FirstTimeWizardToadlet.selectLanguage=Lingua
FirstTimeWizardToadlet.selectLanguageLong=Selezionare una lingua dalla lista
qui sotto:
@@ -479,7 +475,7 @@
FirstTimeWizardToadlet.memory.128M=128Mb - Il minimo indispensabile
FirstTimeWizardToadlet.memory.192M=192Mb - Default ragionevole.
FirstTimeWizardToadlet.memory.256M=256Mb - Per computer con almeno 1GB di RAM
-FirstTimeWizardToadlet.memory.512M=512Mb - per computer con moltissima memoria
RAM
+FirstTimeWizardToadlet.memory.512M=512Mb - per computer con molta memoria RAM
FirstTimeWizardToadlet.memory.64M=64MB - Usare solo in caso di estrema
necessit?
FproxyToadlet.dangerousRSSTitle=Contenuto potenzialmente pericoloso (RSS)
GIFFilter.invalidHeader=Il file non contiene un header GIF valido.
@@ -490,12 +486,12 @@
GenericReadFilterCallback.couldNotParseAbsoluteFreenetURI=Non ? stato
possibile interpretare come URI Freenet assoluta.
GenericReadFilterCallback.couldNotParseFormURIWithError=Il filtro non ?
riuscito ad interpretare ${error} dalla URI.
GenericReadFilterCallback.couldNotParseRelativeFreenetURI=Non ? stato
possibile interpretare come Freenet URI relativa.
-GenericReadFilterCallback.couldNotParseURIWithError=Il filtro non ? riuscito a
interpretare la URI: ${error}
-GenericReadFilterCallback.invalidFormURI=Forma URI non valida perch? punta ad
una risorsa esterna (non Freenet)
+GenericReadFilterCallback.couldNotParseURIWithError=Il filtro ha fallito
nell'analisi della URI: ${error}
+GenericReadFilterCallback.invalidFormURI=URI form non valida: punta a risorsa
esterna
GenericReadFilterCallback.invalidFormURIAttemptToEscape=Tentativo di evasione
dalla struttura delle directory
GenericReadFilterCallback.malformedAbsoluteURL=URL malformata (assoluto):
${error}
GenericReadFilterCallback.malformedRelativeURL=URL malformata (relativo):
${error}
-GenericReadFilterCallback.protocolNotEscaped=Non ? un protocollo fuggitivo:
${protocol}
+GenericReadFilterCallback.protocolNotEscaped=Non si tratta di un protocollo
fuggitivo: ${protocol}
HTMLFilter.couldNotParseStyle=Non ? stato possibile abbinare lo stile
dell'input
HTMLFilter.deletedUnknownStyle=stile sconosciuto eliminato
HTMLFilter.failedToParseLabel=Il filtro HTML non ? riuscito a interpretare la
pagina
@@ -506,8 +502,8 @@
IPDetectorPluginManager.direct=Il computer sembra essere direttamente connesso
a Internet, dovrebbe essere quindi possibile connettersi con qualunque nodo
Freenet.
IPDetectorPluginManager.directTitle=Rilevata connessione diretta a Internet
IPDetectorPluginManager.forwardPort=Il tuo nodo sembra essere dietro qualche
tipo di NAT (vedi la pagina connettivit? per dettagli). Se possibile, dovresti
forwardare le porte UDP (not TCP) ${port} per migliorare la connettivit?. E'
possibile comunque che tu abbia gi? provveduto; Serve del tempo a Freenet per
rilevare il port forward. Leggi ${link}qui${/link} per ulteriori informazioni.
-IPDetectorPluginManager.forwardPortMaybeForwarded=Sembra che il nodo si trovi
dietro una NAt di qualche tipo (vedi pagina connettivit? per i dettaglil). Se
possibile, bigognerebbe configurare il forward per la porta ${port} UDP (non
TCP) allo scopo di migliorare la connettivit?. E' possibile comunque che ci?
sia gi? stato fatto: occorre un po' di tempo perch? Freenet rilevi il port
forward. Clicca ${link}qui${/link} per maggiori informazioni.
-IPDetectorPluginManager.forwardPortNotForwarded=Sembra che il nodo si trovi
dietro una NAt di qualche tipo (vedi pagina connettivit? per i dettaglil). Se
possibile, bigognerebbe configurare il forward per la porta ${port} UDP (non
TCP) allo scopo di migliorare la connettivit?. Sembra che ci? non sia stato
fatto, anche occorre un po' di tempo perch? Freenet rilevi il port forward.
Clicca ${link}qui${/link} per maggiori informazioni
+IPDetectorPluginManager.forwardPortMaybeForwarded=Sembra che il nodo si trovi
dietro una NAT di qualche tipo (vedi pagina connettivit? per i dettaglil). Se
possibile, bigognerebbe configurare il forward per la porta ${port} UDP (non
TCP) allo scopo di migliorare la connettivit?. E' possibile comunque che ci?
sia gi? stato fatto: occorre un po' di tempo perch? Freenet rilevi il port
forward. Clicca ${link}qui${/link} per maggiori informazioni.
+IPDetectorPluginManager.forwardPortNotForwarded=Sembra che il nodo si trovi
dietro una NAT di qualche tipo (vedi pagina connettivit? per i dettaglil). Se
possibile, bigognerebbe configurare il forward per la porta ${port} UDP (non
TCP) allo scopo di migliorare la connettivit?. Sembra che ci? non sia stato
fatto, anche occorre un po' di tempo perch? Freenet rilevi il port forward.
Clicca ${link}qui${/link} per maggiori informazioni
IPDetectorPluginManager.forwardPortShort=Per favore, forwardare la porta UDP
${port}.
IPDetectorPluginManager.forwardPortShortMaybeForwarded=Si prega di configurare
il forward della porta ${port} UDP (questo potrebbe essere gi? stato fatto, ma
non ancora rilevato)
IPDetectorPluginManager.forwardPortShortNotForwarded=Si prega di configurare
il forward per la porta ${port} UDP .
@@ -515,10 +511,10 @@
IPDetectorPluginManager.forwardTwoPortsMaybeForwarded=Sembra che il nodo si
trovi dietro una NAt di qualche tipo (vedi pagina connettivit? per i
dettaglil). Se possibile, bigognerebbe configurare il forward per la porta
${port} UDP (non TCP) allo scopo di migliorare la connettivit?. E' possibile
comunque che ci? sia gi? stato fatto: occorre un po' di tempo perch? Freenet
rilevi il port forward. Clicca ${link}qui${/link} per maggiori informazioni
IPDetectorPluginManager.forwardTwoPortsNotForwarded=Pare che il nodo sia
dietro una NAT (controllare la pagina connettivit? per i dettagli). PSe
possibile si dovrebbe configurare il forward per le porte ${port1} e ${port2}
UDP (non TCP), allo scopo di migliorare la connettivit?. Sembra che il forward
delle porte non sia attivo, anche se Freenet non pu? determinarlo per certo.
Controllare ${link}qui${/link} per ulteriori informazioni.
IPDetectorPluginManager.forwardTwoPortsShort=Per favore, forwardare le porte
UDP ${port1} e ${port2}.
-IPDetectorPluginManager.forwardTwoPortsShortMaybeForwarded=Configurare il
forward perle porte ${port1} e ${port2} UDP (potrebbe essere gi? stato fatto).
+IPDetectorPluginManager.forwardTwoPortsShortMaybeForwarded=Configurare il
forward per porte ${port1} e ${port2} UDP (potrebbe essere gi? stato fatto).
IPDetectorPluginManager.forwardTwoPortsShortNotForwarded=Si prega di
configurare il forward per le porte ${port1} e ${port2} UDP.
-IPDetectorPluginManager.fullCone=La connessione a Internet sembra avvenire
attraverso un "cono completo" NAT. Il nodo Dovrebbe potersi connettere a
qualunque altro nodo Freenet.
-IPDetectorPluginManager.fullConeTitle=Rilevato full cone NAT
+IPDetectorPluginManager.fullCone=La connessione a Internet sembra avvenire
attraverso una "full cone" NAT. Il nodo dovrebbe riuscire connettersi con
qualunque altro nodo Freenet.
+IPDetectorPluginManager.fullConeTitle=Rilevata full cone NAT
IPDetectorPluginManager.maybeAlreadyForwarded=Potrebbe essere gi? stato fatto
(? difficile per Freenet determinarlo).
IPDetectorPluginManager.noConnectivity=La connessione a Internet non sembra
essere provvista di supporto UDP. A meno che non si tratti di un rilevamento
erroneo, non ? probabile che Freenet possa funzionare al momento.
IPDetectorPluginManager.noConnectivityTitle=Mancanza di connettivit? UDP
@@ -526,10 +522,10 @@
IPDetectorPluginManager.portForwardHelpURL=http://wiki.freenetproject.org/FirewallAndRouterIssues
IPDetectorPluginManager.portRestricted=La connessione a Internet sembra
avvenire attraverso una NAT a porte ristrette (router). Il nodo potr?
connettersi a quasi tutti gli altri nodi ma non a quelli dietro NAT simmetrica.
IPDetectorPluginManager.portRestrictedTitle=Port restricted cone NAT rilevata
-IPDetectorPluginManager.restricted=La connessione a Internet sembra avvenire
attraverso un "restricted cone" NAT (router). Dovrebbe essere comunque
possibile connettersi alla maggior parte dei nodi Freenet.
-IPDetectorPluginManager.restrictedTitle=E' stato rilevato un restricted cone
NAT
+IPDetectorPluginManager.restricted=La connessione a Internet sembra avvenire
attraverso una "restricted cone" NAT (router). Dovrebbe essere comunque
possibile connettersi alla maggior parte dei nodi Freenet.
+IPDetectorPluginManager.restrictedTitle=E' stata rilevata una restricted cone
NAT
IPDetectorPluginManager.seriousConnectionProblems=Gravi problemi di
connessione:
-IPDetectorPluginManager.suggestForwardPort=Potrebbe essere necessario
configurare il 'port forwarding' per la porta (Porta UDP numero ${port})
manualmente. Vedi: http://wiki.freenetproject.org/FirewallAndRouterIssues
(disponibile solo in inglese, per ora).
+IPDetectorPluginManager.suggestForwardPort=Potrebbe essere necessario
configurare manualmente il 'port forwarding' per la porta UDP numero ${port}.
Vedi: http://wiki.freenetproject.org/FirewallAndRouterIssues (disponibile solo
in inglese, per ora).
IPDetectorPluginManager.suggestForwardPortWithLink=Potrebbe essere necessario
${link}configurare il port forwarding${/link} (porta UDP numero ${port})
manualmente (oppure ci? ? gi? stato fatto: Freenet pu? avere delle difficolt?
in questo tipo di rilevazione).
IPDetectorPluginManager.suggestForwardTwoPorts=Sarebbe opportuno configurare
manualmente il port forward sul router per le porte ${port1} e ${port2} (UDP).
vedi http://wiki.freenetproject.org/FirewallAndRouterIssues (disponibile solo
in inglese, per ora).
IPDetectorPluginManager.suggestForwardTwoPortsWithLink=Potrebbe essere
necessario configurare manualmente ${link}il forward delle porte${/link} Per
porte nummero ${port1} e ${port2}, UDP. (questo messaggio pu? in alcuni casi
continuare ad apparire per un po' di tempo dopo aver configurato il forward)
@@ -548,13 +544,13 @@
InsertException.longError.1=Caller ha fornito una URI che non ? possibile
utilizzare"
InsertException.longError.10=Annullato dall'utente
InsertException.longError.11=Meta string (probabilmente '/') usata nella URI
-InsertException.longError.12=Binary blob format error
+InsertException.longError.12=Errore di formattazione nel blob binario
InsertException.longError.2=Errore bucket interno: potrebbe trattarsi di
mancanza di spazio sufficiente su disco rigido o di mancanza di autorizzazione.
InsertException.longError.3=Errore interno
InsertException.longError.4=Un nodo 'a valle' (downstream) ? andato in time
out o ? stato gravemente sovraccaricato
InsertException.longError.5=Non ? stato possibile propagare questa inserzione
su un numero sufficiente di nodi (questo e' normale su network di piccole
dimensioni: si pu? provare a richiamare il file comunque)
InsertException.longError.6=Errori fatali in un'inserzione di splitfiles
-InsertException.longError.7=Non ? stato possibile inserire gli splitfile:
numero di tentativi esaurito (errori nonfatali)
+InsertException.longError.7=Non ? stato possibile inserire splitfile: numero
di tentativi esaurito (errori nonfatali)
InsertException.longError.8=Non ? stato possibile far partire l'inserzione dal
nodo locale.
InsertException.longError.9=L' inserzione ? in conflitto con dati
pre-esistenti e differenti alla stessa chiave
InsertException.shortError.1=URI non valida
@@ -587,7 +583,7 @@
KnownUnsafeContentTypeException.dangerousScriptsLabel=Scripting pericoloso:
KnownUnsafeContentTypeException.knownUnsafe=Questo e' un MIME type
potenzialmente pericoloso. Se il nodo lo lascia passare, il browser potrebbe
fare qualcosa capace di compromettere l'anonimato dell'utente, esponendone
l'indirizzo IP in relazione a questa pagina. In particolare:
KnownUnsafeContentTypeException.noFilter=Non ? disponibile alcun filtro per
questo tipo di dati; ? necessario quindi prendere tutte le possibili
precauzioni.
-KnownUnsafeContentTypeException.title=Tipo conosciuto per essere pericoloso:
${type}
+KnownUnsafeContentTypeException.title=Conosciuto come pericoloso: Tipo ${type}
LocalFileInsertToadlet.checkPathExist=Accerta l'esistenza del percorso
specificato.
LocalFileInsertToadlet.checkPathIsDir=Controlla che il percorso specificato
sia una directory
LocalFileInsertToadlet.checkPathReadable=Controlla che il percorso specificato
sia leggibile dall'utente che sta utilizzando il nodo.
@@ -617,8 +613,8 @@
LoggerHook.unrecognizedPriority=Nome di priorit? non riconosciuto: ${name}.
LongOption.parseError=Il valore specificato non pu? essere interpretato come
64-bit integer : ${val}
MeaningfulNodeNameUserAlert.noNodeNick=Non ? stato possibile trovare il
nickname da utilizzare. Usare qui un indirizzo e-mail o un nickname IRC ?
generalmente una buona idea in quanto consente ai peer di identificare il nodo.
(nota che soltanto i peer darknet elencati alla pagina Amici potranno vedere il
nome del nodo, che resta invece invisibile ai peer Opennet)
-MeaningfulNodeNameUserAlert.noNodeNickShort=Non ? stato impostato il nome del
nodo.
-MeaningfulNodeNameUserAlert.noNodeNickTitle=Non ? stato impostato il nome del
nodo.
+MeaningfulNodeNameUserAlert.noNodeNickShort=Nome nodo non definito.
+MeaningfulNodeNameUserAlert.noNodeNickTitle=Nome nodo non definito.
N2NTMToadlet.composingMessageLabel=Messaggio N2NTM da inviare ai seguenti
nodi:
N2NTMToadlet.delayed=Il nodo interressato sta temporaneamente respingendo
richieste; il messaggio potrebbe giungere in lieve ritardo.
N2NTMToadlet.delayedTitle=Differito
@@ -631,13 +627,13 @@
N2NTMToadlet.peerNotFoundTitle=Peer non trovato
N2NTMToadlet.peerNotFoundWithHash=Non ? stato possibile trovare il peer con
hash code \u201c${hash}\u201d
N2NTMToadlet.processingSend=Invio messaggio in corso
-N2NTMToadlet.queued=Il peer interessato non ? connesso in questo momento. Il
messaggio ? stato messo in coda e verr? spedito il pi? presto possibile
+N2NTMToadlet.queued=In attesa: Il peer interessato non ? connesso in questo
momento. Il messaggio ? stato posto in attesa e verr? spedito al pi? presto
possibile
N2NTMToadlet.queuedTitle=Aggiunto alla Coda
N2NTMToadlet.returnToFriends=Torna alla lista degli Amici
N2NTMToadlet.returnToNodeHomepage=Torna alla homepage del nodo
N2NTMToadlet.sendMessage=Invia Messaggio di Testo da Nodo a Nodo (N2NTM)
N2NTMToadlet.sendMessageShort=Invia Messaggio
-N2NTMToadlet.sendStatus=Status N2NTM in uscita
+N2NTMToadlet.sendStatus=Stato N2NTM in uscita
N2NTMToadlet.sent=Messaggio inviato al peer
N2NTMToadlet.sentTitle=Inviato
N2NTMToadlet.tooLong=I messaggi N2NTM possono contenere fino a un massimo di
1024 caratteri
@@ -648,23 +644,23 @@
N2NTMUserAlert.headerShort=Messaggio da ${from}
N2NTMUserAlert.reply=Rispondi
N2NTMUserAlert.title=Messaggio di testo da nodo a nodo (N2NTM) ${number} da:
${peername} (${peer})
-Node.acceptSeedConnections=Se impostato su vero, il nodo accetter? connessioni
dai nodi che intendono usare la nuova modalit? insicura e li aiuter? a
connettersi alla rete Freenet. Questo permette la connessione a qualsiasi nodo
in possesso della referenza, ma limitata all'announcement: le richieste possono
essere fatte solo ai nodi ottenuti tramite l'announcement (cio' potrebbe
includere questo nodo, se non ha gi? molti Sconosiuti)
-Node.acceptSeedConnectionsShort=Essere un seednode?
-Node.alwaysAllowLocalAddresses=Sempre permettere la connessione a nodi via
indirizzi locali?
+Node.acceptSeedConnections=Selezionando "vero" il nodo accetter? connessioni
da nodi che intendono usare la modalit? insicura (opennet) e li aiuter? a
connettersi alla rete Freenet. Ci? rende possibile la connessione a qualsiasi
nodo in possesso della referenza ma limitata dall'annuncio: le richieste di
connessione sono indirizzate solo ai nodi aggiunti tramite annuncio. Il nodo
locale potrebbe essere incluso a meno che non abbia gi? molti peer opennet
(visibili alla pagina "Sconosciuti")
+Node.acceptSeedConnectionsShort=Abilita seednode
+Node.alwaysAllowLocalAddresses=Permettere sempre la connessione a nodi via
indirizzi locali?
Node.alwaysAllowLocalAddressesLong=Se impostato su "vero" il nodo cercher? di
connettersi ad altri nodi usando il loro indirizzo locale (localhost, LAN)
oltre al loro indirizzo IP pubblico. Se questa opzione non e' impostata, si pu?
comunque abilitarla separatamente per singoli peer darknet (ma non per i peer
opennet). Impostare questa opzione se ci si vuole connettere ad altri nodi
sulla stessa rete locale (LAN) o che girano sullo stesso computer, e non far
caso alle referenze "bogus" ("scr?use") che possono far mandare al nodo
pacchetti UDP alle macchine sulla rete locale.
Node.assumeNATed=Presumere che la porta non sia forwardata.
Node.assumeNATedLong=Dare per scontato che la porta sia dietro NAT e non
forwardata? In questo caso il nodo mander? handshake ogni 10-30 secondi.
Node.bandwidthLimitMustBePositiveOrMinusOne=Il valore dell'ampiezza di banda
deve essere positivo o -1
-Node.bindTo=Indirizzo IP collegato
-Node.bindToLong=Indirizzo IP collegato
-Node.buggyJVM=La JVM attualmente in uso (${version}) ? una versione
notoriamente afflitta da 'bug'. Pu? produrre OutOfMemoryError anche con molta
memoria ancora a disposizione. Si raccomanda di aggiornare il software Java,
usando come minimo Sun Java 1.4.2_13, 1.5.0_10 o 1.6 (quest'ultima ? la
versione raccomandata). Vedi
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795
+Node.bindTo=Indirizzo IP
+Node.bindToLong=Indirizzo IP
+Node.buggyJVM=La JVM attualmente in uso (${version}) ? una versione
notoriamente afflitta da 'bug' che pu? produrre OutOfMemoryError anche con
molta memoria ancora a disposizione. Si raccomanda di aggiornare Java. La
versione consigliata ? Sun Java 1.6, ma ? possibile usare anche 1.4.2 o 1.5.
Node.buggyJVMShort=Freenet sta attualmente utilizzando Java versione
${version}, che ? notoriamente afflitta da p'bug' pericolosi. Si prega di
aggiornare Java al pi? presto possibile.
Node.buggyJVMTitle=Avvertennza JVM soggetta a 'bug'
Node.buggyJVMWithLink=La JVM in uso (${version}) ? notoriamente
${link}difettosa${/link}. Pu? produrre errori tipo OutOfMemoryError anche con
molta memoria ancora disponibile. Sarebbe auspicabile aggiornare almeno a Sun
Java 1.4.2_13, 1.5.0_10 o 1.6 (quest'ultima ? la versione consigliata).
Node.bwlimitMustBePositive=Il limite dell'ampiezza di banda deve essere
positivo
-Node.databaseMemory=Memoria massima utilizzabile dal magazzino dati
+Node.databaseMemory=Memoria massima utilizzabile dal datastore
Node.databaseMemoryLong=Uso massimo della memoria del database contenente
indici del magazzino dati (datastore). 0 significa nessun limite (non supera
comunque il 30% circa della memoria massima)
-Node.deadlockTitle=Deadlocking probabilmente dovuto ad una combinazione
JVM/kernel particolarmente 'buggy'
+Node.deadlockTitle=Deadlocking probabilmente dovuto ad una combinazione di JVM
e kernel che da luogo a "bug".
Node.deadlockWarning=ATTENZIONE: E' stato rilevato l'uso di Sun JVM con NPTL.
Ci? pu? produrre il "congelamento" del nodo a causa della JVM che perde un
lock. Per ovviare a tale inconveniente ? necessatio disabilitare NPTL
impostando la variabile ambientale LD_ASSUME_KERNEL=2.4.1. Le versioni pi?
recenti di Freenet installer dovrebbero gi? esserne provviste; reinstallare, o
modificare il file run.sh
(https://emu.freenetproject.org/svn/trunk/apps/installer/installclasspath/run.sh).
Su alcuni sistemi pu? essere necessario installare le pthreads libraries
perch? questo funzioni. Nota che il nodo cercherebbe di riavviarsi
automaticamente se un tale deadlock occorresse, ma questa funzione non ? ancora
pienamente affidabile, e richiede tempo.
Node.disableHangCheckers=Disabilita tutti gli hang checker
Node.disableHangCheckersLong=Disabilita tutte le funzioni hang
checkers/watchdog. Impostare per fare il profiling di Fred.
@@ -691,19 +687,19 @@
Node.forceBigShrinkLong=Determina se eseguire immediatamente le riduzioni di
dimensione in misura superiore al 10% del magazzino (store), piuttosto che
aspettare il prossimo riavvio del nodo. Le riduzioni on-line non preservano i
dati utilizzati per ultimi quindi l'uso di questa opzione non ? raccomandato;
da usarsi solo nel caso in cui sia desiderabile un risultato immediato.
Node.inBWLimit=Limite ampiezza di banda in entrata (bytes per secondo)
Node.inBWLimitLong=Limite dell'ampiezza di banda in entrata (bytes/sec); il
nodo cerca di non eccedere tale limite; -1 siglifica quattro volte il limite
impostato per l'ampiezza di banda in uscita (outputBandwidthLimit)
-Node.invalidStoreSize=Il magazzino dati non pu? essere di dimensioni inferiori
a 32MB
+Node.invalidStoreSize=Il datastore (magazzino dati) deve essere di dimensioni
uguali o superiori a 32MB
Node.l10nLanguage=Lingua dell' interfaccia grafica
-Node.l10nLanguageLong=Cambia la lingua in cui messaggi sono visualizzati.
Alcune frasi e messaggi saranno visibili in versione tradotta dopo il prossimo
riavvio del nodo.
+Node.l10nLanguageLong=Cambia la lingua in cui messaggi sono visualizzati.
Alcune frasi e messaggi saranno visibili in versione tradotta solo dopo il
prossimo riavvio del nodo.
Node.maxHTL=HTL massimo
Node.maxHTLLong=HTL massimo (PER USO ESCLUSIVO DEGLI SVILUPPATORI!)
Node.maxOpennetPeers=Numero massimo di peer Opennet
-Node.maxOpennetPeersLong=Numero massimo di peer Opennet (deve essere compreso
tra zero e 20 incluso)
-Node.maxOpennetPeersMustBeTwentyOrLess=Deve essere venti o minore
-Node.mustBePositive=Il valore di config deve essere positivo
+Node.maxOpennetPeersLong=Numero massimo di peer Opennet (il valore
specificato minore o uguale a venti; le connessioni darknet verranno sottratte
dal limite totale)
+Node.maxOpennetPeersMustBeTwentyOrLess=Il valore deve essere uguale o
inferiore a 20
+Node.mustBePositive=Il valore deve essere positivo!
Node.nodeDir=Directory del nodo
Node.nodeDirLong=Directory contenente file relativi al nodo, per esempio la
lista dei peer
-Node.nodeName=Nickname di questo nodo Freenet
-Node.nodeNameLong=Nickname del nodo. Visibile solo agli Amici
+Node.nodeName=Nome del nodo
+Node.nodeNameLong=Nome del nodo. E' visibile solo agli Amici (darknet peer),
mentre gli Sconosciuti (opennet peer) non potranno vederlo.
Node.notUsingSunVM=E' stata rilevata una JVM ${vendor} ${version} che potrebbe
influire sul corretto funzionamento del nodo. Se possibile, installare Sun java
disponibile presso http://www.java.com/getjava
Node.notUsingSunVMShort=Freenet sta attualmente utilizzando JVM (Java Virtual
Machine) diversa da Sun, che ? quella raccomandata. Si prega di scaricare ed
installare la versione corrente di Sun Java JRE (Java Runtime Environment)
Node.notUsingSunVMTitle=Il nodo non sta usando una JVM della Sun
@@ -711,26 +707,26 @@
Node.notUsingWrapperShort=Freenet sta girando senza wrapper. Questo non ?
raccomandato.
Node.notUsingWrapperTitle=Il nodo non sta usando il wrapper!
Node.oneConnectionPerIP=Limita ad una connessione per indirizzo?
-Node.oneConnectionPerIPLong=Non permettere pi? di una connessione per
indirizzo? Questo render? leggermente pi? difficile eseguire un attacco
connettendosi al nodo pi? volte con diverse identit? in modo da dominare il
routing (instradamento) di questo nodo e rendere pi? facile raccogliere dati
con lo "harvesting" (lett: "il raccolto", in agricoltura). Abilitare questa
opzione rende anche impossibile che un peer sia connesso al nodo sia su darknet
che su opennet.
-Node.opennetEnabled=Abilita Modalit? Insicura (connette automaticamente a nodi
non gestiti da utenti conosciuti ed affidabili)
-Node.opennetEnabledLong=Abilita Modalit? Insicura? (detta anche Opennet)
Abilitando questa opzione il nodo scambier? automaticamente referenze on altri
nodi. Ma questo significa anche che il fatto che su questo computer gira un
nodo Freenet non sar? pi? un segreto e molti attacchi saranno pi? facili da
eseguire. Conoscendo abbastanza gente che usa Freenet, si consiglia di
continuare a connettersi soltanto ad utenti conosciuti ed addifabili (Amici)
+Node.oneConnectionPerIPLong=Non permettere pi? di una connessione per
indirizzo? Ci? rende leggermente pi? difficile un attacco eseguito
connettendosi al nodo pi? volte con diverse identit? in modo da dominarne il
routing (instradamento) e rendere pi? facile raccogliere dati con lo
"harvesting" (lett: "il raccolto", in agricoltura). Questa opzione impedisce
che un peer sia connesso al nodo sia su darknet che su opennet.
+Node.opennetEnabled=Abilita Modalit? Insicura (connette automaticamente a nodi
gestiti da Sconosciuti)
+Node.opennetEnabledLong=Abilita Modalit? Insicura? (detta anche Opennet)
Abilitando questa opzione il nodo scambier? automaticamente referenze on altri
nodi. Ci? rende facilmente osservabile dall'esterno il fatto che su questo
computer sta girando un nodo Freenet, facilitando attacchi di diversi tipi.
Avendone la possibilit?, l'opzione migiore ? quella di connettersi soltanto ad
utenti conosciuti ed addifabili (Darknet peer, vedi pagina Amici)
Node.outBWLimit=Limite dell'ampiezza di banda in uscita (bytes per secondo)
Node.outBWLimitLong=Limite "duro" dell' ampiezza di banda in uscita
(bytes/sec); di solito il nodo non eccede questo limite
-Node.passOpennetPeersThroughDarknet=Trasmettere referenze opennet attraverso
peer darknet?
+Node.passOpennetPeersThroughDarknet=Trasmetti referenze opennet attraverso
darknet peer
Node.passOpennetPeersThroughDarknetLong=Se impostata su "vero" referenze
opennet verranno trasmesse attraverso peer darknet (ma MAI la referenza del
nodo locale). In questo modo un nodo (nodo locale, o i suoi peer) pu? ottenere
peer opennet dai suoi peer darknet. Questo ? utile perch? permette di
riconnettersi in caso di perdita dei peer, per esempio dopo una lunga
disconnessione, ma rende l'analisi del traffico leggermente pi? facile, quindi
chi ? paranoico dovrebbe disabilitare questa opzione.
Node.port=Numero della porta FNP (UDP)
Node.portLong=Porta UDP per le comunicazioni da nodo a nodo (Freenet Node
Protocol)
Node.storeDirectory=Directory magazzino dati (store)
Node.storeDirectoryLong=Directory contenente gli store file
-Node.storeMaxMemTooHigh=Dare a BDB pi? dell' 80% della memoria RAM disponibile
non e' una buona idea!
+Node.storeMaxMemTooHigh=Impostare un valore superiore ad 80% della memoria RAM
da destinare a BDB ? generalmente una pessima idea.
Node.storeSize=Dimensioni in bytes del magazzino dati (store)
Node.storeSizeLong=Dimensioni del magazzino (store) in bytes
Node.storeType=Tipo di magazzino dati (store). NON TOCCARE!!
-Node.storeTypeLong=Tipo di datastore. Attualmente pu? essere un indice bdb
(usa un BerkeleyDBFreenetStore per l'indice, e mette i dati in dei file su
disco), o ram (indice e dati in RAM). Uso di ram riservato a persone
competenti, e solo se c'e' abbastanza memoria per metterci tutti i dati (NOTA:
in questo caso i dati NON verranno salvati all'arresto del nodo)
+Node.storeTypeLong=Tipo di datastore. Attualmente pu? essere un indice bdb
(usa un BerkeleyDBFreenetStore per l'indice, e mette i dati in dei file su
disco), o ram (indice e dati in RAM). L'uso di ram ? riservato a persone
competenti, e solo se c'e' memoria sufficiente a disposizione per tutti i dati
(NOTA: in questo caso i dati NON verranno salvati all'arresto del nodo)
Node.swapRInterval=Intervallo tra le richieste di scambio (swap) in
millisecondi
Node.swapRIntervalLong=Intervallo tra richieste di scambio (swap) in
millisecondi. Non toccare!
-Node.throttleLocalTraffic=Throttle traffico locale?
-Node.throttleLocalTrafficLong=Abilita throttle traffico locale? Abilitando
questa opzione anche LAN e traffico localhost saranno soggetti alla limitazione
di banda.
+Node.throttleLocalTraffic=Limitazione di banda su traffico locale
+Node.throttleLocalTrafficLong=Abilita limitazione di banda su traffico locale?
Abilitando questa opzione, la limitazione di banda avr? effetto anche sulla
rete locale (LAN) e su localhost.
Node.tooSmallMTU=MTU insufficiente
Node.tooSmallMTULong=L' MTU della connessione sembra essere ${mtu} bytes.
Freenet non pu? funzionare bene con un MTU minore di ${minMTU} bytes: le
connessioni saranno inaffidabili e forse rallentate. Se possibile, si dovrebbe
provvedere a risolvere il problema.
Node.tooSmallMTUShort=Problema di connessione: MTU di connessione troppo basso
per consentire a Freenet di funzionare correttamente. Potranno verificarsi dei
problemi.
@@ -750,17 +746,17 @@
NodeClientCore.persistentTempDir=Directory dei file temporanei persistenti
NodeClientCore.persistentTempDirLong=Nome della directory dei file temporanei
persistenti
NodeClientCore.startingUp=Si prega di concedere a Freenet alcuni minuti per
completare il processo di avviamento. Nel frattempo alcune funzioni non saranno
disponibili e il nodo potr? risultare pi? lento del normale.
-NodeClientCore.startingUpShort=Freenet si sta avviando, qualcosa potrebbe
ancora non funzionare e il nodo potrebbe essere lento.
+NodeClientCore.startingUpShort=L'avviamento di Freenet ? ancora in corso:
alcune funzioni potrebbero non essere ancora disponibili e il nodo potrebbe
operare ad una velocit? inferiore al normale.
NodeClientCore.startingUpTitle=Avviamento di Freenet in corso
NodeClientCore.tempDir=Directory file temporanei
NodeClientCore.tempDirLong=Nome della directory dei file temporanei
NodeClientCore.uploadAllowedDirs=Directory dalle quali l'upload e' consentito
NodeClientCore.uploadAllowedDirsLong=Si pu? usare una lista di directory dove
l'upload e' consentito, separate da 'punto e virgola' (;). Vuoto (nessuna
directory specificata) significa che l'upload non e' permesso, "all" significa
upload permesso da tutte le directory AVVERTENZA; Se impostato su "all"
("tutte"), ogni utente potr? inserire qualunque file da qualsiasi directory.
-NodeIPDectector.inclLocalAddress=Includi indirizzi locali nella referenza del
nodo
-NodeIPDectector.inclLocalAddressLong=Specifica se includere l'indirizzo locale
(LAN e localhost) nella referenza del nodo. Questo non ? utile a meno che
entrambi i lati abbiano impostato allowLocalAddresses=true per le rispettive
referenze (per impostare questa opzione, abilitare la modalit? avanzata e usare
la pagina Amici).
-NodeIPDectector.ipOverride=Imposta manualmente indirizzo IP
+NodeIPDectector.inclLocalAddress=Noderef include indirizzi locali
+NodeIPDectector.inclLocalAddressLong=Specifica se includere l'indirizzo locale
(LAN e localhost) nella referenza del nodo. Ci? non ? necessario a meno che
entrambi i nodi che si vogliono collegare abbiano impostato
allowLocalAddresses=true per le rispettive referenze (per impostare questa
opzione, abilitare la modalit? avanzata e usare le opzioni disponibili alla
pagina Amici).
+NodeIPDectector.ipOverride=Impostazione manuale indirizzo IP
NodeIPDectector.ipOverrideLong=Impostazione manuale dell'indirizzo IP (di
solito non ? necessario) - Utilizzare questa opzione se si ha un indirizzo IP
statico o un domain name (es. dyndns), e ci si trova dietro un firewall.
-NodeIPDectector.tempAddressHint=Suggerimento temporaneo dell'indirizzo IP
+NodeIPDectector.tempAddressHint=Suggerimento temporaneo indirizzo IP
NodeIPDectector.tempAddressHintLong=Suggerisce temporaneamente l'indirizzo IP;
viene eliminato dopo l'uso
NodeIPDetector.maybeSymmetric=Sembra che il nodo sia dietro una NAT
simmetrica. Potrebbe trattarsi di problemi di connessione: se ci si trova
dietro una NAT simmetrica ci si potr? probabilmente connettere soltanto con i
nodi che sono raggiungibili da interenet.
NodeIPDetector.maybeSymmetricShort=Problema di connessione: il nodo potrebbe
trovarsi dietro una NAT simmetrica.
@@ -771,17 +767,17 @@
NodeStat.freeHeapBytesThreshold=Soglia free heap bytes
NodeStat.freeHeapBytesThresholdLong=Il nodo respinge richieste per mantenere
la quota di free heap bytes impostata
NodeStat.freeHeapPercentThreshold=Soglia percentuale free heap
-NodeStat.freeHeapPercentThresholdLong=Respingendo nuove richieste, il nodo
mantiene al di sopra della soglia la percentuale di max heap bytes ammessa
-NodeStat.ignoreLocalVsRemoteBandwidthLiability=Gestire richieste locali allo
stesso modo di quelle remote, per limitazioni della disponibilit? di banda?
-NodeStat.ignoreLocalVsRemoteBandwidthLiabilityLong=Abilitare questa opzione
per ridurre notevolmente la banda utilizzata ed aumentare leggermente la
sicurezza contro i tentativi di attacchi di timing. Nella gran parte dei casi,
non devi preoccuparti di essi, in quanto sono pi? probabili i "correlation
attacks" (attacchi di correlazione).
-NodeStat.memCheck=Abilita la Verifica di Memoria
+NodeStat.freeHeapPercentThresholdLong=Respingendo nuove richieste, il nodo
mantiene la percentuale di di free heap (in rapporto a max heap bytes ammessi)
al di sopra della soglia
+NodeStat.ignoreLocalVsRemoteBandwidthLiability=Gestisi richieste locali allo
come quelle remote per limitazioni della disponibilit? di banda
+NodeStat.ignoreLocalVsRemoteBandwidthLiabilityLong=Abilitando questa opzione
si riduce notevolmente la banda utilizzata e si aumenta leggermente la
sicurezza nei confronti di attacchi di timing. Generalmente non c'? di che
preoccuparsi per questo tipo di attacchi in quanto gli attacchi di correlazione
sono pi? facili da eseguire.
+NodeStat.memCheck=Abilita Verifica di Memoria
NodeStat.memCheckLong=Abilita verifica della memoria (scrive un messaggio nel
log file. La verifica della memoria deve essere abilitata perche'
aggressiveGCModificator abbia effetto)
NodeStat.statsPersister=File contenente le statistiche del nodo
NodeStat.statsPersisterLong=File contenente statistiche: NON si tratta delle
statistiche del client. Queste statistiche servono al nodo per decidere se
accettare o rifiutare nuove richieste. Non eliminare!
NodeStat.threadLimit=Limite thread
NodeStat.threadLimitLong=Il nodo respinge richieste per limitare l'uso di
thread al valore specificato.
NodeStats.mustBePercentValueNotFull=Questo valore deve essere espresso in
precentuale, compresa tra 0 e 99.
-NodeStats.valueTooLow=Questo valore ? troppo basso per quella impostazione: ?
necessario aumentarlo.
+NodeStats.valueTooLow=Valore troppo basso per questa impostazione: ?
necessario aumentarlo.
NodeUpdateManager.enabled=Verifica disponibilit? e scarica nuove versioni
NodeUpdateManager.enabledLong=Verifica e scarica automaticamente nuove
versioni di Freenet. Se impostatos su 'vero', le nuove versioni verranno
scaricate ma non necessariamente installate. L'impostazione torna sempre su
'falso' se il nodo non gira all'interno del wrapper.
NodeUpdateManager.extURI=Dove cercare versioni aggiornate di freenet-ext.jar?
@@ -800,11 +796,11 @@
NodeUpdateManager.updateFailedTitle=Aggiornamento Fallito!
NodeUpdateManager.updateURI=Dove cercare aggiornamenti?
NodeUpdateManager.updateURILong=Dove cercare aggiornamenti?
-NotEnoughNiceLevelsUserAlert.content=Il nodo ha rilevato di stare operando ad
un alto livello di nice. In mancanza di un numero sufficiente di livelli di
nice, il nodo non potr? operare a pieno regime. Si prega di ridurre il livello
di nice. (cercare PRIORITY nel file run.sh e ridurne il valore). Attualmente il
nodo ha ${available} livelli a disposizione mentre avrebbe bisogno di
${required} livelli.
-NotEnoughNiceLevelsUserAlert.short=Non ci sono abbastanza "Nice levels"
disponibili. si prega assegnare a Freenet per un "Nice Level" inferiore.
-NotEnoughNiceLevelsUserAlert.title=Numero di livelli Nice insufficiente!
-OpennetConnectionsToadlet.fullTitle=${counts} Sconosciuti (Peers non
affidabili) di ${name}
-OpennetConnectionsToadlet.peersListTitle=I Miei Peer Opennet (nodi non
affidabili aggiunti dal nodo)
+NotEnoughNiceLevelsUserAlert.content=Il nodo ha rilevato di stare operando ad
un Nice level alto. In mancanza di un numero sufficiente di livelli di nice, il
nodo non potr? operare a pieno regime. Si prega di ridurre il livello di nice.
(cercare PRIORITY nel file run.sh e ridurne il valore). Attualmente il nodo ha
${available} livelli a disposizione mentre avrebbe bisogno di ${required}
livelli.
+NotEnoughNiceLevelsUserAlert.short=Non ci sono abbastanza Nice level
disponibili. si prega di assegnare a Freenet un Nice level inferiore.
+NotEnoughNiceLevelsUserAlert.title=Numero di Nice level insufficiente!
+OpennetConnectionsToadlet.fullTitle=${counts} Sconosciuti (Peer non fid?ti)
del nodo: ${name}
+OpennetConnectionsToadlet.peersListTitle=Peer Opennet (peer non fid?ti
aggiunti automaticamente dal nodo)
OpennetConnectionsToadlet.successTime=L'ultima volta che si ? riusciti a
richiamare una CHK dal nodo.
OpennetConnectionsToadlet.successTimeTitle=Ultimo successo
OpennetUserAlert.warning=Il nodo sta funzionando in modo "promiscuo". Ci?
significa che il nodo si connetter? con nodi operati da sconosiuti, e quindi
chiunque potr? facilmente determinare che l'utente Tal dei Tali sta usando
Freenet. Molti attacchi vengono facilitati da questa modalit?, bloccare il nodo
(per esempio con un firewall nazionale) diventa molto pi? facile, ed intoltre
l'utente non ha controllo su chi si connette al suo nodo. Si raccomanda
vivamente di procurarsi qualche connessione ad Amici (nodi operati da persone
conosciute); il modo promiscuo va considerato una misura temporanea da
utilizzarsi temporaneamente, in attesa di connessioni ad amici. Connettendosi
esclusivamente a nodi gestiti da persone conosciute, pur non essendo impossibli
degli attacchi da parte loro, risulter? comunque meno probabile l'esposizione
ad agenzie governative (tipo servizi segreti o che so io) o altri "cattivi".
Nota che aggiungere un peer alla sezione Amici non cambia molto la situazione,
a meno che tale nodo non sia gestito da qualcuno di consciuto e di cui ci si
fida (per ragioni sia di routing [instradamento] che di sicurezza)!
@@ -851,7 +847,7 @@
PluginManager.loadedOnStartup=Plugin da caricare all'avvio
PluginManager.loadedOnStartupLong=Classpath, nome e locazione dei plugin da
caricare all'avvio
PluginManager.loadedPlugins=Plugin da caricare all'avvio
-PluginManager.loadedPluginsLong=Lista dei plugin da avviare all'avvio del nodo
+PluginManager.loadedPluginsLong=Lista dei plugin da caricare all'avvio del nodo
PluginManager.pluginLoadingFailed=Non ? stato possibile caricare il plugin
specificato ${name}.
PluginManager.pluginLoadingFailedShort=Impossibile caricare il plugin ${name}!
PluginManager.pluginLoadingFailedTitle=Non ? stato possibile caricare il
plugin!
@@ -864,11 +860,11 @@
PluginToadlet.failedToLoadPluginTitle=Caricamento plugin fallito
PluginToadlet.internalNameTitle=Nome Interno
PluginToadlet.loadPluginCommand=Carica Plugin
-PluginToadlet.noWebInterface=Il plugin non ha interfaccia web quindi non c'?
nulla da mostrare
-PluginToadlet.noWebInterfaceTitle=Il plugin non ? provvisto di interfaccia web
+PluginToadlet.noWebInterface=Questo plugin non ha interfaccia web e pertanto
non c'? nulla da mostrare
+PluginToadlet.noWebInterfaceTitle=Plugin non provvisto di interfaccia web
PluginToadlet.pluginList=Lista plugin
-PluginToadlet.pluginListTitle=Lista dei Plugin
-PluginToadlet.pluginNameTitle=Nome del Plugin
+PluginToadlet.pluginListTitle=Lista Plugin
+PluginToadlet.pluginNameTitle=Nome Plugin
PluginToadlet.pluginNotFound=Non ? stato possibile trovare il plugin richiesto
PluginToadlet.pluginNotFoundTitle=Plugin non trovato
PluginToadlet.returnToPluginsWithLinks=${link}return${/link} alla lista di
plugins.
@@ -927,7 +923,7 @@
QueueToadlet.DinProgress=Download in corso
QueueToadlet.UinProgress=Upload in corso
QueueToadlet.change=Modifica
-QueueToadlet.completedDU=Upload directory completati
+QueueToadlet.completedDU=Upload di directory completati
QueueToadlet.completedDinDownloadDirectory=Download completati (directory dei
download) (${size})
QueueToadlet.completedDinTempDirectory=Download Completati (directory
temporanea) (${size})
QueueToadlet.completedDtoDisk=Download completati
@@ -955,10 +951,10 @@
QueueToadlet.errorNoKey=Non ? stata specificata alcuna chiave per il download
QueueToadlet.errorNoKeyToD=Non ? stata specificata una chiave per il download
QueueToadlet.failedD=Download falliti
-QueueToadlet.failedDU=Upload directory falliti
+QueueToadlet.failedDU=Upload di directory falliti
QueueToadlet.failedToRemove=Non ? stato possibile rimuovere ${id}: ${message}
-QueueToadlet.failedToRemoveId=Non ? stato possibile rimuovere: ${id}
-QueueToadlet.failedToRemoveRequest=Non ? stato possibile rimuovere la richiesta
+QueueToadlet.failedToRemoveId=Non ? stato possibile eliminare: ${id}
+QueueToadlet.failedToRemoveRequest=Non ? stato possibile eliminare la richiesta
QueueToadlet.failedToRestart=Non ? stato possibile riavviare: ${id}
QueueToadlet.failedToRestartRequest=Non e' stato possibile riavviare la
richiesta
QueueToadlet.failedU=Upload falliti
@@ -975,7 +971,7 @@
QueueToadlet.insertFileCompressLabel=Comprimi
QueueToadlet.insertFileInsertFileLabel=Inserisci File
QueueToadlet.insertFileLabel=File
-QueueToadlet.insertFileResetForm=Modulo Reset
+QueueToadlet.insertFileResetForm=Annulla
QueueToadlet.key=Chiave
QueueToadlet.legend=Legenda
QueueToadlet.low=bassa
@@ -986,7 +982,7 @@
QueueToadlet.notLoadedYet=Il nodo sta ancora caricando la lista delle
richieste persistenti. Si prega di pazientare.
QueueToadlet.notLoadedYetTitle=La Coda non ? stata ancora caricata.
QueueToadlet.panicButton=Bottone Emergenza
-QueueToadlet.panicButtonConfirmation=Elimina tutto senza chiedere conferma!
+QueueToadlet.panicButtonConfirmation=Elimina tutte le richieste senza chiedere
conferma
QueueToadlet.persistence=Persistenza
QueueToadlet.persistenceForever=illimitata
QueueToadlet.persistenceNone=nessuna
@@ -1007,16 +1003,16 @@
QueueToadlet.remove=Elimina
QueueToadlet.requestNavigation=Esplora Richieste
QueueToadlet.restart=Riavvia
-QueueToadlet.siteUploadSucceeded=I file ${filename} (${files} del tuo
freesite, ${size} total size) sono stati correttamente caricati su Freenet.
${link}Click qui${/link} per aprire l'homepage del freesite.
-QueueToadlet.siteUploadSucceededTitle=Inserimento del Freesite avvenuto:
${filename}
+QueueToadlet.siteUploadSucceeded=E' stato completato l'upload del freesite
${filename} (${files} files, dimensioni totali ${size}). ${link}Clicca
qui${/link} per aprire la homepage del sito.
+QueueToadlet.siteUploadSucceededTitle=Inserimento freesite completato:
${filename}
QueueToadlet.size=Dimensioni
QueueToadlet.starting=AVVIAMENTO IN CORSO
-QueueToadlet.title=Coda globale di ${nodeName}
+QueueToadlet.title=Coda globale del nodo: ${nodeName}
QueueToadlet.totalSize=Dimensioni Totali
QueueToadlet.unknown=Non Disp.
-QueueToadlet.uploadProgressbarNotAccurate=Il valore di questo indicatore
progresso pu? essere falsato quando l'upload codifica ulteriori blocchi.
+QueueToadlet.uploadProgressbarNotAccurate=Il valore di questo indicatore di
progresso pu? essere falsato quando l'upload codifica ulteriori blocchi.
QueueToadlet.uploadSucceeded=Il file ${filename} (size ${size}) ? stato
correttamente caricato su Freenet. ${link}Click qui${/link} per aprire il file.
-QueueToadlet.uploadSucceededTitle=upload avvenuto: ${filename}
+QueueToadlet.uploadSucceededTitle=Inserzione completata: ${filename}
QueueToadlet.veryhigh=molto alta
QueueToadlet.verylow=bassissima
QueueToadlet.warningUnsafeContent=Contenuto Potenzialmente Pericoloso
@@ -1088,15 +1084,15 @@
StatisticsToadlet.announceBytes=Output annuncio: ${total}
StatisticsToadlet.authBytes=Configura connessione: ${total} output
StatisticsToadlet.bandwidthTitle=Ampiezza di banda
-StatisticsToadlet.cpus=CPU disponibili: ${count}
+StatisticsToadlet.cpus=Numero CPU: ${count}
StatisticsToadlet.debuggingBytes=Debugging bytes: ${netColoring} colorazione
rete, ${ping} ping, ${probe} richieste probe, ${routed} messaggi di testo
instradati.
-StatisticsToadlet.fullTitle=Statistiche per ${name}
-StatisticsToadlet.getLogs=Ultimo logfile del nodo
+StatisticsToadlet.fullTitle=Statistiche del nodo: ${name}
+StatisticsToadlet.getLogs=Scarica l'ultimo logfile del nodo
StatisticsToadlet.inputRate=Input: ${rate}/second (of ${max}/second)
StatisticsToadlet.insertOutput=Output inserzione (carico utile escluso): CHK
${chk} SSK ${ssk}.
StatisticsToadlet.javaVersion=Versione Java: ${version}
StatisticsToadlet.jeDumpButton=Genera JE Dump
-StatisticsToadlet.jvmInfoTitle=Info JVM
+StatisticsToadlet.jvmInfoTitle=JVM
StatisticsToadlet.jvmVendor=JVM fornita da: ${vendor}
StatisticsToadlet.jvmVersion=Versione JVM: ${version}
StatisticsToadlet.maxMemory=Max Memoria Java: ${memory}
@@ -1113,13 +1109,13 @@
StatisticsToadlet.priority=Priorit?
StatisticsToadlet.requestOutput=Output richiesta (escluso carico utile): CHK
${chk} SSK ${ssk}.
StatisticsToadlet.resendBytes=Bytes rispediti: ${total}
-StatisticsToadlet.routingDisabled=Indirizzamento traffico sospeso (il nodo ?
attualmente connesso ma una delle due parti non accetta l'indirizzamento di
traffico)
+StatisticsToadlet.routingDisabled=Indirizzamento traffico sospeso (il nodo ?
attualmente connesso ma una delle due parti non accetta indirizzamento di
traffico)
StatisticsToadlet.routingDisabledShort=Indirizzamento Traffico Sospeso
StatisticsToadlet.running=In funzione
StatisticsToadlet.statisticGatheringTitle=Raccolta Statistiche
StatisticsToadlet.swapOutput=Output Scambio: ${total}.
StatisticsToadlet.threadDumpButton=Genera Thread Dump
-StatisticsToadlet.threads=Threads in esecuzione: ${running}/${max}
+StatisticsToadlet.threads=Threads correnti: ${running}/${max}
StatisticsToadlet.threadsByPriority=Thread in ordine di prorit?
StatisticsToadlet.totalInput=Input Totale: ${total} (${rate}/second)
StatisticsToadlet.totalOutput=Output Totale: ${total} (${rate}/second)
@@ -1128,7 +1124,7 @@
StatisticsToadlet.unaccountedBytes=Altro output: ${total} (${percent}%)
StatisticsToadlet.uomBytes=Output Aggiornamento: ${total}
StatisticsToadlet.usedMemory=Memoria Java in uso: ${memory}
-StatisticsToadlet.versionTitle=Info Versione Nodo
+StatisticsToadlet.versionTitle=Versione Nodo
StatisticsToadlet.waiting=In attesa
SymlinkerToadlet.symlinks=Link simbolici in ToadletServer
SymlinkerToadlet.symlinksLong=Lista di "alias#target" che va a formare un
gruppo di link simbolici
@@ -1148,7 +1144,7 @@
TextModeClientInterfaceServer.ssl=Abilitare ssl?
TextModeClientInterfaceServer.sslLong=Abilitare ssl?
TextModeClientInterfaceServer.telnetPortNumber=Porta telnet
-TextModeClientInterfaceServer.telnetPortNumberLong=Numero della porta telnet
+TextModeClientInterfaceServer.telnetPortNumberLong=Porta TCP utlizzata dal
server TMCI
TimeSkewDetectedUserAlert.shortText=Il nodo ha rilevato una discrepanza
temporale. Freenet potrebbe bloccarsi in strani modi!
TimeSkewDetectedUserAlert.text=Una discrepanza temporale ? stata rilevata dal
nodo. Questo ? un inconveniente grave; il nodo non potr? funzionare
correttamente finch? non vi si sar? ovviato. Tra le cause pi? comuni, la
modalit? powersafe mal configurata, cattiva sincronizzazione tra i client in
rete, problemi di hardware.
TimeSkewDetectedUserAlert.title=Discrepanza temporale rilevata!
@@ -1178,20 +1174,20 @@
ToadletContextImpl.noSuchToadlet=Nessuna Toadlet con quel nome
ToadletContextImpl.parseErrorWithError=Errore nell' interpretazione ${error}
ToadletContextImpl.uriParseErrorTitle=Errore Nell' Interpretazione della URI
-TranslationToadlet.bracketRemoveOverride=(Elimina questa chiave di traduzione)
-TranslationToadlet.bracketTranslateIt=(traducilo nella tua lingua)
-TranslationToadlet.bracketUpdateTranslation=(aggiorna la traduzione)
-TranslationToadlet.confirmRemoveOverride=Conferma: eliminare la chiave di
traduzione : (${key} - ${value}) ?
-TranslationToadlet.contributingToLabelWithLang=Stai attualmente contribuendo
alla traduzione ${lang}:
-TranslationToadlet.currentTranslationLabel=Traduzione attuale
-TranslationToadlet.downloadTranslationsFile=Scarica il file di traduzione
-TranslationToadlet.hideAlreadyTranslated=Nascondi le stringhe gi? tradotte
+TranslationToadlet.bracketRemoveOverride=(Elimina chiave di traduzione)
+TranslationToadlet.bracketTranslateIt=(traduci nella tua lingua)
+TranslationToadlet.bracketUpdateTranslation=(aggiorna traduzione)
+TranslationToadlet.confirmRemoveOverride=Conferma: elimina chiave di
traduzione : (${key} - ${value}) ?
+TranslationToadlet.contributingToLabelWithLang=Stai contribuendo alla
traduzione: ${lang}:
+TranslationToadlet.currentTranslationLabel=Traduzione corrente
+TranslationToadlet.downloadTranslationsFile=Scarica file della traduzione
eseguita
+TranslationToadlet.hideAlreadyTranslated=Nascondi stringhe tradotte
TranslationToadlet.noCustomTranslations=Nessuna traduzione personalizzata
disponibile.
TranslationToadlet.originalVersionLabel=Originale (versione inglese)
TranslationToadlet.reEdit=Ri-modifica la traduzione
-TranslationToadlet.remove=Rimuovi
+TranslationToadlet.remove=Elimina
TranslationToadlet.removeOverrideTitle=Elimina una chiave di traduzione
-TranslationToadlet.removeOverrideWarningTitle=Si sta per eliminare una chiave
di traduzione!
+TranslationToadlet.removeOverrideWarningTitle=Attenzione: la chiave di
traduzione verr? eliminata!
TranslationToadlet.returnToTranslations=Torna alla pagina della traduzione
TranslationToadlet.showEverything=Mostra tutto, incluse stringhe gi? tradotte
TranslationToadlet.translationKeyLabel=Chiave di traduzione
@@ -1226,20 +1222,20 @@
UpdatedVersionAvailableUserAlert.updateNowButton=Aggiorna Adesso!
UserAlert.apply=Conferma
UserAlert.hide=Nascondi
-UserAlert.reset=Reset
+UserAlert.reset=Cancella
UserAlertManager.alertsOnAlertsPage=| Controllali nella ${link}pagina delle
avvertenze${/link}.
UserAlertManager.alertsOnHomepage=| Sono visibili alla ${link}Homepage di
Freenet${/link}.
UserAlertManager.alertsTitle=Notificazioni particolari
UserAlertManager.clickForMore=Click su un oggetto per maggiori informazioni o
per sbarazzarsene.
UserAlertManager.criticalErrorCountLabel=Errori Critici:
-UserAlertManager.dumpEventsButton=Rimuovi notifiche superflue
+UserAlertManager.dumpEventsButton=Elimina notifiche di routine
UserAlertManager.errorCountLabel=Errori:
UserAlertManager.minorCountLabel=Minori:
UserAlertManager.totalLabel=Totale:
UserAlertManager.warningCountLabel=Avvertenze:
UserAlertsToadlet.titleWithName=Avvertenze per ${name}
WelcomeToadlet.activityTitle=Attivit? in corso
-WelcomeToadlet.alertsSummary=Stato delle avvertenze
+WelcomeToadlet.alertsSummary=Sommario avvertenze
WelcomeToadlet.arkFetchCount=ARK Fetchers: ${total}
WelcomeToadlet.confirmAddBookmarkSubTitle=Conferma Aggiunta Sgnalibro
WelcomeToadlet.confirmAddBookmarkTitle=Aggiungi ai Segnalibri
@@ -1261,7 +1257,7 @@
WelcomeToadlet.fromHeader=Da
WelcomeToadlet.goToExternalLink=Vai al link specificato
WelcomeToadlet.homepageFullTitleWithName=Homepage FProxy di ${name}
-WelcomeToadlet.ieWarning=E' stato rilevato l'uso di Microsoft Internet
Explorer; ci? potrebbe costituire un pericolo per l'anonimato in quanto esso
potrebbe risultare compromesso da alcuni siti interni a Freenet.
+WelcomeToadlet.ieWarning=E' stato rilevato l'uso di Microsoft Internet
Explorer. Ci? potrebbe costituire un pericolo perch? alcuni siti interni a
Freenet potrebbero compromettere l'anonimato dell'utente.
WelcomeToadlet.ieWarningTitle=Rischio Sicurezza!
WelcomeToadlet.insertCount=Inserzioni: ${total}
WelcomeToadlet.insertFailedTitle=Inserzione fallita
@@ -1280,7 +1276,7 @@
WelcomeToadlet.restart=Riavvia
WelcomeToadlet.restartConfirm=Conferma: Riavvia nodo Freenet?
WelcomeToadlet.restartConfirmTitle=Riavvia Nodo
-WelcomeToadlet.restartNode=Riavvia il nodo
+WelcomeToadlet.restartNode=Riavvia nodo
WelcomeToadlet.restarting=Si prega di attendere durante il riavvio del nodo.
Questa schermata si aggiorner? automaticamente, fino a mostrare la pagina
iniziale fi Freenet. Grazie di aver scelto Freenet.
WelcomeToadlet.restartingTitle=Riavvio del nodo Freenet in corso.
WelcomeToadlet.shutdown=Arresta
@@ -1294,7 +1290,7 @@
WelcomeToadlet.targetBoardHeader=Target Board
WelcomeToadlet.testnetWarning=gira in modalit? testnet. DISTRUGGE l'anonimato!
WelcomeToadlet.testnetWarningTitle=Modalit? Testnet
-WelcomeToadlet.thanks=Grazie per aver scelto Freenet.
+WelcomeToadlet.thanks=Grazie di aver scelto Freenet.
WelcomeToadlet.threadDumpNotUsingWrapper=Non ? possibile generare un thread
dump se il nodo non sta girando nel wrapper
WelcomeToadlet.threadDumpSubTitle=Generazione di Thread Dump
WelcomeToadlet.threadDumpTitle=Genera Thread Dump
@@ -1308,7 +1304,7 @@
WelcomeToadlet.version=Freenet ${fullVersion} Build ${build} r${rev}
WelcomeToadlet.versionHeader=Informazioni sulla Versione e Controllo del Nodo
WelcomeToadlet.writtenDatabaseStats=Le statistiche di runtime del database
sono state scritte nel file di log del wrapper
-WrapperConfig.wrapper.java.maxmemory.long=Memoria massima utilizzabile da
Freenet. La memoria di cui Freenet a bisogno varia in funzione delle
diomensioni del datastore. I cambiamenti saranno effettivi dopo il riavvio del
nodo.
+WrapperConfig.wrapper.java.maxmemory.long=Limita la quantit? massima di
memoria utilizzabile da Freenet. Freenet ha bisogno di molta pi? memoria se si
hanno molti e/o grossi file in coda di dowload/upload, ed in misura minore se
il nodo ? dotato di un datastore di dimensioni abbondanti. I cambiamenti
saranno effettivi dopo il riavvio del nodo.
WrapperConfig.wrapper.java.maxmemory.short=Memoria massima (in megabytes)
testing.test=test${test1}test${test2}test
?BookmarkEditorToadlet.pasteOrCancel=Click su un'icona incolla o cancella.
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-cn.properties
2008-06-16 12:45:45 UTC (rev 20360)
@@ -1,5 +1,6 @@
BookmarkEditorToadlet.addBookmark=????
BookmarkEditorToadlet.addCategory=????
+BookmarkEditorToadlet.addDefaultBookmarks=??????????.
BookmarkEditorToadlet.addNewBookmark=??????
BookmarkEditorToadlet.addNewCategory=?????
BookmarkEditorToadlet.addedNewBookmark=??????????.
@@ -18,10 +19,13 @@
BookmarkEditorToadlet.deleteCategoryConfirm=??????${bookmark}????????????????
BookmarkEditorToadlet.deleteSucceeded=??????????.
BookmarkEditorToadlet.deleteSucceededTitle=????
+BookmarkEditorToadlet.descLabel=????:
BookmarkEditorToadlet.edit=??
BookmarkEditorToadlet.editBookmarkTitle=????
BookmarkEditorToadlet.editCategoryTitle=????
BookmarkEditorToadlet.error=??
+BookmarkEditorToadlet.hasAnActivelinkLabel=? freesite ?????????
+BookmarkEditorToadlet.invalidKey=???Freenet??.
BookmarkEditorToadlet.invalidKeyTitle=????
BookmarkEditorToadlet.invalidKeyWithReason=???Freenet??.
BookmarkEditorToadlet.keyLabel=??:
@@ -34,22 +38,41 @@
BookmarkEditorToadlet.pasteTitle=??/??
BookmarkEditorToadlet.save=??
BookmarkEditorToadlet.title=?????
+BookmarkEditorToadlet.urlDecodeError=URL????
BookmarkManager.list=????
BooleanOption.parseError=????????: ${val} - ??? true ? false
BuildOldAgeUserAlert.tooOld=?????????????????????????????????(Build
#${lastgood}). ?????????, ??????????"??"???????. (????????, Freenet
??????????????)
BuildOldAgeUserAlert.tooOldShort=??????? Freenet ??????, ???????????????!
?????!
BuildOldAgeUserAlert.tooOldTitle=?????
+ClockProblemDetectedUserAlert.shortText=???????????, Freenet ??????.
+ClockProblemDetectedUserAlert.text=Freenet ??????????(?????)????.
??????????????, Freenet ??????.
+ClockProblemDetectedUserAlert.title=???????.
+ConfigToadlet.appliedSuccess=??????????.
ConfigToadlet.appliedTitle=???????
ConfigToadlet.apply=??
+ConfigToadlet.configNavTitle=????
+ConfigToadlet.contributeTranslation=????????
ConfigToadlet.fullTitle=${name} ? Freenet ????
+ConfigToadlet.possibilitiesTitle=??
ConfigToadlet.reset=??
+ConfigToadlet.returnToNodeConfig=??????
ConfigToadlet.shortTitle=??
+ConfigToadlet.title=Freenet ????
+ConfigToadlet.wrapper=??
ConfigurablePersister.doesNotExistCannotCreate=?????????????.
ConfigurablePersister.existsCannotReadWrite=??????????????
ConnectionsToadlet.nodeStatus.BACKED OFF=???
+ConnectionsToadlet.nodeStatus.BURSTING=???
+ConnectionsToadlet.nodeStatus.BUSY=???
+ConnectionsToadlet.nodeStatus.CLOCK PROBLEM=????
ConnectionsToadlet.nodeStatus.CONNECTED=???
ConnectionsToadlet.nodeStatus.CONNECTION ERROR=????
+ConnectionsToadlet.nodeStatus.DISABLED=???
ConnectionsToadlet.nodeStatus.DISCONNECTED=???
+ConnectionsToadlet.nodeStatus.DISCONNECTING=???
+ConnectionsToadlet.nodeStatus.LISTEN ONLY=???
+ConnectionsToadlet.nodeStatus.LISTENING=???
+ConnectionsToadlet.nodeStatus.NEVER CONNECTED=????
ConnectionsToadlet.nodeStatus.TOO NEW=??
ConnectionsToadlet.nodeStatus.TOO OLD=??
ConnectionsToadlet.nodeStatus.UNKNOWN STATUS=????
@@ -65,18 +88,21 @@
DarknetConnectionsToadlet.addPeerTitle=??????
DarknetConnectionsToadlet.backedOff=???????:????????????,???????????.
DarknetConnectionsToadlet.backedOffShort=???
+DarknetConnectionsToadlet.burstingShort=???
DarknetConnectionsToadlet.busy=??:????????,??????????????????,??????????????.
DarknetConnectionsToadlet.busyShort=??
DarknetConnectionsToadlet.cancel=??
DarknetConnectionsToadlet.cantFetchNoderefURL=??? ${url} ??????.?????.
DarknetConnectionsToadlet.cantParseTryAgain=????????????:(${error}).?????.
DarknetConnectionsToadlet.cantParseWrongEnding=?????????:???????????End??,???????????:${end}
+DarknetConnectionsToadlet.clockProblemShort=????
DarknetConnectionsToadlet.confirmRemoveNodeTitle=???
DarknetConnectionsToadlet.confirmRemoveNodeWarningTitle=????
DarknetConnectionsToadlet.connected=???:??????????
DarknetConnectionsToadlet.connectedShort=???
DarknetConnectionsToadlet.disabled=???????:????????????????.
-DarknetConnectionsToadlet.disabledShort=???
+DarknetConnectionsToadlet.disabledShort=???
+DarknetConnectionsToadlet.disconnectingShort=???
DarknetConnectionsToadlet.enterDescription=?????:
DarknetConnectionsToadlet.failedToAddNodeInternalErrorTitle=??????:????
DarknetConnectionsToadlet.failedToAddNodeTitle=??????
@@ -125,6 +151,9 @@
DarknetConnectionsToadlet.updateChangedPrivnotes=??????????
DarknetConnectionsToadlet.urlReference=????????URL:
DarknetConnectionsToadlet.versionTitle=??
+ExtOldAgeUserAlert.extTooOld=?? freenet-ext.jar ?????????,
???????????????????: http://downloads.freenetproject.org/alpha/freenet-ext.jar.
+ExtOldAgeUserAlert.extTooOldShort=?? freenet-ext.jar ?????. ?????.
+ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext ??
FProxyToadlet.alertsTitle=??
FProxyToadlet.config=??/??????
FProxyToadlet.configTitle=??
@@ -136,7 +165,7 @@
FProxyToadlet.homepage=??
FProxyToadlet.mimeType=MIME ???${mime}
FProxyToadlet.openForce=?${link}??${/link}????? ${mime} ????????????????
-FProxyToadlet.opennetTitle=??
+FProxyToadlet.opennetTitle=???
FProxyToadlet.pathNotFoundTitle=???????
FProxyToadlet.pluginsTitle=??
FProxyToadlet.queue=????????
@@ -180,6 +209,11 @@
FirstTimeWizardToadlet.step4Title=Freenet ?????? - ??????
FirstTimeWizardToadlet.step6Title=Freenet ?????? - ??????
FirstTimeWizardToadlet.welcomeInfoboxTitle=???? Freenet ???????
+GIFFilter.invalidHeader=????????? GIF ??.
+GIFFilter.invalidHeaderTitle=??????
+GIFFilter.notGif=????????????? GIF ?. ???????????, ?????????????????,
?????????.
+GIFFilter.tooShort=? GIF ???????????.
+GIFFilter.tooShortTitle=????
GenericReadFilterCallback.malformedAbsoluteURL=?????? URL ???${error}
GenericReadFilterCallback.malformedRelativeURL=?????? URL ???${error}
InsertException.shortError.10=???
@@ -191,9 +225,11 @@
LocalFileInsertToadlet.fileHeader=??
LocalFileInsertToadlet.insert=??
LocalFileInsertToadlet.sizeHeader=??
+LogConfigHandler.minLoggingPriority=??????????
+LogConfigHandler.minLoggingPriorityLong=???????????. ??????????? debug, minor,
normal ? error.
LoggerHook.unrecognizedPriority=??????????: ${name}.
LongOption.parseError=??????????? 64 ??? : ${val}
-MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ??????????? darknet ????????????, ????????)
+MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ???????????"????"????????????, ????????)
MeaningfulNodeNameUserAlert.noNodeNickShort=????(??)????????
MeaningfulNodeNameUserAlert.noNodeNickTitle=????(??)????????
N2NTMToadlet.friends=??
@@ -202,17 +238,37 @@
N2NTMToadlet.sentTitle=??
N2NTMToadlet.tooLongTitle=??
N2NTMUserAlert.delete=??
+N2NTMUserAlert.header=??: ${from} (??? ${composed} | ??? ${sent} | ??>?
${received})
+N2NTMUserAlert.headerShort=?? ${from} ???
N2NTMUserAlert.reply=??
N2NTMUserAlert.title=?${peername}(${peer})?????????${number}
Node.inBWLimit=?????????????
-Node.inBWLimitLong=????????????????????????????? -1 ??????????
+Node.inBWLimitLong=???????????????; ??????????????; ?? -1 ?????????
Node.l10nLanguage=????????
Node.l10nLanguageLong=?????????????????????????????
Node.nodeName=??????
Node.nodeNameLong=????????????????
+Node.opennetEnabled=??????????(?????????????)?
+Node.opennetEnabledLong=??????????(???"????")? ??????,
???????????????????????(?????"???", ???"??"). ????????????????, ?????????.
?????????? Freenet ???, ???????????????("??"), ?????????.
Node.outBWLimit=?????????????
+Node.outBWLimitLong=?????????(???????); ????????????????
Node.storeSize=?????????
Node.storeSizeLong=?????????
+NodeStats.mustBePercentValueNotFull=???????, ???? 0 ? 99 ??.
+NodeStats.valueTooLow=?????????????, ???????!
+NodeUpdateManager.installNewVersions=????????
+NodeUpdateManager.installNewVersionsLong=??????????????????? Freenet ??,
???????
+NotEnoughNiceLevelsUserAlert.content=?????????????????????. ????????????????,
??????????. ?????????????????! (? run.sh ??? PRIORITY ???, ??????) ???????
${available} ???????, ?????? ${required} ?.
+NotEnoughNiceLevelsUserAlert.short=???????????! ?????????????? Freenet.
+NotEnoughNiceLevelsUserAlert.title=???????????!
+OpennetConnectionsToadlet.fullTitle=${name} ? ${counts} ????(??????)
+OpennetConnectionsToadlet.peersListTitle=??????????(??????????????????)
+OpennetConnectionsToadlet.successTime=?????????????? CHK ???
+OpennetConnectionsToadlet.successTimeTitle=??????
+OpennetUserAlert.warningShort=????????.
+OpennetUserAlert.warningTitle=??: ????????: ??????????
+PNGFilter.invalidHeader=????????????? PNG ?, ?????????? PNG ??. ???????????,
?????????????????, ?????????.
+PNGFilter.invalidHeaderTitle=??? PNG - ??????
PluginToadlet.addPluginTitle=??plugin
PluginToadlet.failedToLoadPluginTitle=Plugin????
PluginToadlet.noWebInterfaceTitle=?plugin?????
@@ -222,11 +278,20 @@
PluginToadlet.pluginNotFoundTitle=????plugin
PluginToadlet.unsupportedMethod=????method.
PluginToadlet.visit=??
+PproxyToadlet.Load=??
PproxyToadlet.cancel=??
PproxyToadlet.classNameTitle=Class??
PproxyToadlet.internalIDTitle=????
+PproxyToadlet.loadOfficialPlugin=??????
+PproxyToadlet.loadOfficialPluginLabel=??????
+PproxyToadlet.loadOfficialPluginText=???????? Freenet ???????.
????????????????, ????????.
+PproxyToadlet.loadOfficialPluginWarning=??: ?????????????????, ??? Freenet ??.
?????????????, ?????. ?????????????, ??????????.
+PproxyToadlet.loadOtherPlugin=???????
+PproxyToadlet.loadOtherPluginText=?????????????? URL. ???????????????????,
???????????????????. ???????????????????, ???????.
+PproxyToadlet.loadOtherURLLabel=??? URL
PproxyToadlet.loadPluginLabel=??Plugin:
PproxyToadlet.noPlugins=??????plugins
+PproxyToadlet.noVersion=?
PproxyToadlet.pluginNotFoundReload=??????????plugin.
PproxyToadlet.pluginNotFoundReloadTitle=?????Plugin(??)
PproxyToadlet.pluginUnloaded=?plugin????
@@ -234,20 +299,44 @@
PproxyToadlet.plugins=Plugins
PproxyToadlet.pluginsWithNodeName=${name}?plugins
PproxyToadlet.reload=??
+PproxyToadlet.reloadPurgeWarning=?????????????????. ??????????????????,
??????????!
PproxyToadlet.returnToPluginPage=??plugin??
PproxyToadlet.startedAtTitle=????
PproxyToadlet.unload=??
PproxyToadlet.unloadPluginTitle=???plugin?
PproxyToadlet.unloadPluginWithName=??????${name}??
+PproxyToadlet.versionTitle=??
+QueueToadlet.DUinProgress=???????? (${size})
+QueueToadlet.DinProgress=???????? (${size})
+QueueToadlet.UinProgress=???????? (${size})
QueueToadlet.change=???
+QueueToadlet.completedDU=?????????? (${size})
+QueueToadlet.completedDinDownloadDirectory=???????????????? (${size})
+QueueToadlet.completedDinTempDirectory=???????????????? (${size})
+QueueToadlet.completedDtoDisk=??????????? (${size})
+QueueToadlet.completedDtoTemp=?????????????? (${size})
+QueueToadlet.completedU=???????? (${size})
+QueueToadlet.completedUDirectory=???????? (${size})
QueueToadlet.delete=??
QueueToadlet.download=??
-QueueToadlet.fileName=???
+QueueToadlet.downloadSucceeded=?? ${origlink}${filename}${/origlink} ???????.
?${link}???${/link}???? (${size}).
+QueueToadlet.downloadSucceededTitle=????: ${filename}
+QueueToadlet.errorAccessDenied=????: ????!
+QueueToadlet.failedD=????? (${size})
+QueueToadlet.failedDU=????????? (${size})
+QueueToadlet.failedU=??????? (${size})
+QueueToadlet.fileName=??
QueueToadlet.identifier=??
QueueToadlet.insertAs=???:
QueueToadlet.insertFile=????
+QueueToadlet.insertFileBrowseLabel=?????????
+QueueToadlet.insertFileInsertFileLabel=????
+QueueToadlet.insertFileLabel=??????????(???!)
QueueToadlet.key=??
QueueToadlet.legend=??
+QueueToadlet.mimeType=MIME ??
+QueueToadlet.none=?
+QueueToadlet.persistence=??
QueueToadlet.persistenceForever=??
QueueToadlet.persistenceNone=?
QueueToadlet.persistenceRebootr=??
@@ -261,37 +350,51 @@
QueueToadlet.priority6=????
QueueToadlet.progress=??
QueueToadlet.reason=??
+QueueToadlet.remove=??
+QueueToadlet.requestNavigation=????
QueueToadlet.restart=??
QueueToadlet.size=??
QueueToadlet.starting=???
QueueToadlet.title=${nodeName}?????
QueueToadlet.totalSize=????
QueueToadlet.unknown=??
+QueueToadlet.wipD=???: ?? (${size})
+QueueToadlet.wipDU=???: ???? (${size})
+QueueToadlet.wipU=???: ?? (${size})
+RevocationKeyFoundUserAlert.text=??????????????????????. ????????????????????!
??, ?????????????, ???"???"?????????. ?????????????????????. ???????????????.
?????: ${message}.
+RevocationKeyFoundUserAlert.title=????????????!
+ShortOption.parseError=????????????????: ${error}
SimpleToadletServer.cssName=??????
+SimpleToadletServer.cssNameLong=?? Freenet ?????????
+StaticToadlet.pathInvalidChars=??? URI ??????????.
+StaticToadlet.pathNotFound=????????.
+StaticToadlet.pathNotFoundTitle=??????
StatisticsToadlet.activityInserts=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
StatisticsToadlet.activityRequests=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
-StatisticsToadlet.allocMemory=Java??????: ${memory}
+StatisticsToadlet.allocMemory=Java ??????: ${memory}
StatisticsToadlet.bandwidthTitle=??
StatisticsToadlet.cpus=???CPU??: ${count}
StatisticsToadlet.getLogs=?????????
StatisticsToadlet.inputRate=????: ?? ${rate} (???? ${max})
+StatisticsToadlet.javaVersion=Java ??: ${version}
StatisticsToadlet.jeDumpButton=????JE??
StatisticsToadlet.jvmInfoTitle=JVM??
StatisticsToadlet.jvmVendor=JVM ???? ${vendor}
StatisticsToadlet.jvmVersion=JVM??: ${version}
-StatisticsToadlet.maxMemory=Java?????: ${memory}
+StatisticsToadlet.maxMemory=Java ?????: ${memory}
StatisticsToadlet.osArch=????????: ${arch}
StatisticsToadlet.osName=??????: ${name}
StatisticsToadlet.osVersion=??????: ${version}
StatisticsToadlet.outputRate=????: ?? ${rate} (???? ${max})
StatisticsToadlet.payloadOutput=????: ${total} (?? ${rate}) (${percent}%)
StatisticsToadlet.peerStatsTitle=????
+StatisticsToadlet.statisticGatheringTitle=????
StatisticsToadlet.threadDumpButton=????????
StatisticsToadlet.threads=??????: ${running}/${max}
StatisticsToadlet.totalInput=????: ${total} (?? ${rate})
StatisticsToadlet.totalOutput=????: ${total} (?? ${rate})
StatisticsToadlet.transferringRequests=????: ?? ${senders}, ?? ${receivers}
-StatisticsToadlet.usedMemory=Java??????: ${memory}
+StatisticsToadlet.usedMemory=Java ??????: ${memory}
StatisticsToadlet.versionTitle=??????
SymlinkerToadlet.symlinks=ToadletServer??????
TextModeClientInterfaceServer.allowedHosts=??????
@@ -301,7 +404,26 @@
TextModeClientInterfaceServer.enabled=??????
TextModeClientInterfaceServer.enabledLong=?????????????
TextModeClientInterfaceServer.telnetPortNumber=?????
+TimeSkewDetectedUserAlert.shortText=???????????????. Freenet ?????????!
+TimeSkewDetectedUserAlert.text=?????????????????. ?????. ??????????, ????????.
?????????????????, ??????, ????????.
+TimeSkewDetectedUserAlert.title=???????!
Toadlet.cancel=??
+Toadlet.clickHere=???
+Toadlet.homepage=??
+Toadlet.internalErrorPleaseReport=????: ???
+Toadlet.internalErrorTitle=????
+Toadlet.no=?
+Toadlet.nodeHomepage=????
+Toadlet.notSupportedTitle=???
+Toadlet.notSupportedWithClass=?????????? Freenet (${class}) ???????.
+Toadlet.ok=?
+Toadlet.permRedirectWithReason=????: ${reason}
+Toadlet.returnToNodeHomepage=??????
+Toadlet.returnToPrevPage=?????
+Toadlet.tempRedirectWithReason=????: ${reason}
+Toadlet.unauthorized=??????????.
+Toadlet.unauthorizedTitle=????
+Toadlet.yes=?
TranslationToadlet.bracketRemoveOverride=(???????!)
TranslationToadlet.bracketTranslateIt=(?????????!)
TranslationToadlet.bracketUpdateTranslation=(??????)
@@ -319,6 +441,8 @@
TranslationToadlet.translationUpdateTitle=????
TranslationToadlet.translationUpdatedTitle=??????!
TranslationToadlet.updateTranslationCommand=??????!
+UnknownContentTypeException.explanation=?? Freenet ??????? MIME ??. ????,
?????????????????????, ????????. ???, ?????????????????????, ?????????????;
??????????, ???????????, ???????????(???????????????, ???????????????).
???????, ??????????????????, ?????? script ???????????????.
+UnknownContentTypeException.title=??????????????: ${type}
UpdatedVersionAvailableUserAlert.armed=?????????????????Freenet???,??????.
UpdatedVersionAvailableUserAlert.clickToUpdateNow=????????????????.
UpdatedVersionAvailableUserAlert.downloadedNewExtJar=?????????????Freenet????,???${version}.
@@ -332,7 +456,11 @@
UserAlert.apply=??
UserAlert.hide=??
UserAlert.reset=??
+UserAlertManager.alertsOnAlertsPage=| ??${link}????${/link}??????.
+UserAlertManager.alertsTitle=?????
+UserAlertManager.clickForMore=?????????????????, ??????.
UserAlertManager.criticalErrorCountLabel=????:
+UserAlertManager.dumpEventsButton=???????
UserAlertManager.errorCountLabel=??:
UserAlertManager.minorCountLabel=??:
UserAlertManager.totalLabel=??:
@@ -347,8 +475,8 @@
WelcomeToadlet.disabledAlert=????
WelcomeToadlet.extVersion=Freenet-ext ????:${build} r${rev}
WelcomeToadlet.extVersionWithRecommended=Freenet-ext ????:${build}
(??????${recbuild}) ????:${rev}
-WelcomeToadlet.fetch=?
-WelcomeToadlet.fetchKeyLabel=?? Key
+WelcomeToadlet.fetch=??
+WelcomeToadlet.fetchKeyLabel=????
WelcomeToadlet.finInsertSuccessWithKey=??????????? ${key} ?
WelcomeToadlet.homepageFullTitleWithName=${name} ? Freenet FProxy ??
WelcomeToadlet.ieWarning=?????????Internet Explorer?????????????????
@@ -357,6 +485,7 @@
WelcomeToadlet.insertSucceededTitle=??????
WelcomeToadlet.insertedTitle=????
WelcomeToadlet.keyInsertedSuccessfullyWithKeyAndName=?????? key
${link}${name}${/link}?
+WelcomeToadlet.keyRequestLabel=??:
WelcomeToadlet.nodeUpdateConfirm=????????Freenet????
WelcomeToadlet.nodeUpdateConfirmTitle=??????
WelcomeToadlet.privateKeyHeader=??
@@ -381,4 +510,6 @@
WelcomeToadlet.updatingTitle=?????
WelcomeToadlet.version=Freenet ??:${fullVersion} ????:${build} r${rev}
WelcomeToadlet.versionHeader=???????
+WrapperConfig.wrapper.java.maxmemory.long=Freenet ???????. ???????????,
Freenet ?????????; ?????????????, ????????. ?????????? Freenet ??????.
+WrapperConfig.wrapper.java.maxmemory.short=?????(???MiB)
End
Modified:
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/l10n/freenet.l10n.zh-tw.properties
2008-06-16 12:45:45 UTC (rev 20360)
@@ -1,5 +1,6 @@
BookmarkEditorToadlet.addBookmark=????
BookmarkEditorToadlet.addCategory=????
+BookmarkEditorToadlet.addDefaultBookmarks=??????????.
BookmarkEditorToadlet.addNewBookmark=??????
BookmarkEditorToadlet.addNewCategory=?????
BookmarkEditorToadlet.addedNewBookmark=??????????.
@@ -18,10 +19,13 @@
BookmarkEditorToadlet.deleteCategoryConfirm=??????${bookmark}????????????????
BookmarkEditorToadlet.deleteSucceeded=??????????.
BookmarkEditorToadlet.deleteSucceededTitle=????
+BookmarkEditorToadlet.descLabel=????:
BookmarkEditorToadlet.edit=??
BookmarkEditorToadlet.editBookmarkTitle=????
BookmarkEditorToadlet.editCategoryTitle=????
BookmarkEditorToadlet.error=??
+BookmarkEditorToadlet.hasAnActivelinkLabel=? freesite ?????????
+BookmarkEditorToadlet.invalidKey=???Freenet??.
BookmarkEditorToadlet.invalidKeyTitle=????
BookmarkEditorToadlet.invalidKeyWithReason=???Freenet??.
BookmarkEditorToadlet.keyLabel=??:
@@ -34,22 +38,41 @@
BookmarkEditorToadlet.pasteTitle=??/??
BookmarkEditorToadlet.save=??
BookmarkEditorToadlet.title=?????
+BookmarkEditorToadlet.urlDecodeError=URL????
BookmarkManager.list=????
BooleanOption.parseError=????????: ${val} - ??? true ? false
BuildOldAgeUserAlert.tooOld=?????????????????????????????????(Build
#${lastgood}). ?????????, ??????????"??"???????. (????????, Freenet
??????????????)
BuildOldAgeUserAlert.tooOldShort=??????? Freenet ??????, ???????????????!
?????!
BuildOldAgeUserAlert.tooOldTitle=?????
+ClockProblemDetectedUserAlert.shortText=??????????, Freenet ??????.
+ClockProblemDetectedUserAlert.text=Freenet ?????????(?????)????.
??????????????, Freenet ??????.
+ClockProblemDetectedUserAlert.title=??????.
+ConfigToadlet.appliedSuccess=??????????.
ConfigToadlet.appliedTitle=???????
ConfigToadlet.apply=??
+ConfigToadlet.configNavTitle=????
+ConfigToadlet.contributeTranslation=????????
ConfigToadlet.fullTitle=${name} ? Freenet ????
+ConfigToadlet.possibilitiesTitle=??
ConfigToadlet.reset=??
+ConfigToadlet.returnToNodeConfig=??????
ConfigToadlet.shortTitle=??
+ConfigToadlet.title=Freenet ????
+ConfigToadlet.wrapper=??
ConfigurablePersister.doesNotExistCannotCreate=?????????????.
ConfigurablePersister.existsCannotReadWrite=??????????????
ConnectionsToadlet.nodeStatus.BACKED OFF=???
+ConnectionsToadlet.nodeStatus.BURSTING=???
+ConnectionsToadlet.nodeStatus.BUSY=???
+ConnectionsToadlet.nodeStatus.CLOCK PROBLEM=????
ConnectionsToadlet.nodeStatus.CONNECTED=???
ConnectionsToadlet.nodeStatus.CONNECTION ERROR=????
+ConnectionsToadlet.nodeStatus.DISABLED=???
ConnectionsToadlet.nodeStatus.DISCONNECTED=???
+ConnectionsToadlet.nodeStatus.DISCONNECTING=???
+ConnectionsToadlet.nodeStatus.LISTEN ONLY=???
+ConnectionsToadlet.nodeStatus.LISTENING=???
+ConnectionsToadlet.nodeStatus.NEVER CONNECTED=????
ConnectionsToadlet.nodeStatus.TOO NEW=??
ConnectionsToadlet.nodeStatus.TOO OLD=??
ConnectionsToadlet.nodeStatus.UNKNOWN STATUS=????
@@ -65,18 +88,21 @@
DarknetConnectionsToadlet.addPeerTitle=??????
DarknetConnectionsToadlet.backedOff=???????:????????????,???????????.
DarknetConnectionsToadlet.backedOffShort=???
+DarknetConnectionsToadlet.burstingShort=???
DarknetConnectionsToadlet.busy=??:????????,??????????????????,??????????????.
DarknetConnectionsToadlet.busyShort=??
DarknetConnectionsToadlet.cancel=??
DarknetConnectionsToadlet.cantFetchNoderefURL=??? ${url} ??????.?????.
DarknetConnectionsToadlet.cantParseTryAgain=????????????:(${error}).?????.
DarknetConnectionsToadlet.cantParseWrongEnding=?????????:???????????End??,???????????:${end}
+DarknetConnectionsToadlet.clockProblemShort=????
DarknetConnectionsToadlet.confirmRemoveNodeTitle=???
DarknetConnectionsToadlet.confirmRemoveNodeWarningTitle=????
DarknetConnectionsToadlet.connected=???:??????????
DarknetConnectionsToadlet.connectedShort=???
DarknetConnectionsToadlet.disabled=???????:????????????????.
-DarknetConnectionsToadlet.disabledShort=???
+DarknetConnectionsToadlet.disabledShort=???
+DarknetConnectionsToadlet.disconnectingShort=???
DarknetConnectionsToadlet.enterDescription=?????:
DarknetConnectionsToadlet.failedToAddNodeInternalErrorTitle=??????:????
DarknetConnectionsToadlet.failedToAddNodeTitle=??????
@@ -125,6 +151,9 @@
DarknetConnectionsToadlet.updateChangedPrivnotes=??????????
DarknetConnectionsToadlet.urlReference=????????URL:
DarknetConnectionsToadlet.versionTitle=??
+ExtOldAgeUserAlert.extTooOld=?? freenet-ext.jar ?????????,
???????????????????: http://downloads.freenetproject.org/alpha/freenet-ext.jar.
+ExtOldAgeUserAlert.extTooOldShort=?? freenet-ext.jar ?????. ?????.
+ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext ??
FProxyToadlet.alertsTitle=??
FProxyToadlet.config=??/??????
FProxyToadlet.configTitle=??
@@ -136,7 +165,7 @@
FProxyToadlet.homepage=??
FProxyToadlet.mimeType=MIME ???${mime}
FProxyToadlet.openForce=?${link}??${/link}????? ${mime} ????????????????
-FProxyToadlet.opennetTitle=??
+FProxyToadlet.opennetTitle=???
FProxyToadlet.pathNotFoundTitle=???????
FProxyToadlet.pluginsTitle=????
FProxyToadlet.queue=????????
@@ -180,6 +209,11 @@
FirstTimeWizardToadlet.step4Title=Freenet ?????? - ??????
FirstTimeWizardToadlet.step6Title=Freenet ?????? - ????????
FirstTimeWizardToadlet.welcomeInfoboxTitle=???? Freenet ???????
+GIFFilter.invalidHeader=????????? GIF ??.
+GIFFilter.invalidHeaderTitle=??????
+GIFFilter.notGif=????????????? GIF ?. ???????????, ?????????????????,
?????????.
+GIFFilter.tooShort=? GIF ???????????.
+GIFFilter.tooShortTitle=????
GenericReadFilterCallback.malformedAbsoluteURL=?????? URL ???${error}
GenericReadFilterCallback.malformedRelativeURL=?????? URL ???${error}
InsertException.shortError.10=???
@@ -191,9 +225,11 @@
LocalFileInsertToadlet.fileHeader=??
LocalFileInsertToadlet.insert=??
LocalFileInsertToadlet.sizeHeader=??
+LogConfigHandler.minLoggingPriority=??????????
+LogConfigHandler.minLoggingPriorityLong=???????????. ??????????? debug, minor,
normal ? error.
LoggerHook.unrecognizedPriority=??????????: ${name}.
LongOption.parseError=??????????? 64 ???? : ${val}
-MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ??????????? darknet ????????????, ????????)
+MeaningfulNodeNameUserAlert.noNodeNick=??????????????. ????, ??????????????
IRC ???????, ??????????????. (???, ???????????"????"????????????, ????????)
MeaningfulNodeNameUserAlert.noNodeNickShort=????(??)????????
MeaningfulNodeNameUserAlert.noNodeNickTitle=????(??)????????
N2NTMToadlet.friends=??
@@ -202,17 +238,37 @@
N2NTMToadlet.sentTitle=??
N2NTMToadlet.tooLongTitle=??
N2NTMUserAlert.delete=??
+N2NTMUserAlert.header=??: ${from} (??? ${composed} | ??? ${sent} | ??>?
${received})
+N2NTMUserAlert.headerShort=?? ${from} ???
N2NTMUserAlert.reply=??
N2NTMUserAlert.title=?${peername}(${peer})?????????${number}
Node.inBWLimit=??????????????
-Node.inBWLimitLong=?????????????????????????????? -1 ??????????
+Node.inBWLimitLong=????????????????; ??????????????; ?? -1 ?????????
Node.l10nLanguage=????????
Node.l10nLanguageLong=?????????????????????????????
Node.nodeName=??????
Node.nodeNameLong=????????????????
+Node.opennetEnabled=??????????(?????????????)?
+Node.opennetEnabledLong=??????????(???"????")? ??????,
???????????????????????(?????"???", ???"??"). ????????????????, ?????????.
?????????? Freenet ???, ???????????????("??"), ?????????.
Node.outBWLimit=??????????????
+Node.outBWLimitLong=?????????(????????); ????????????????
Node.storeSize=?????????
Node.storeSizeLong=?????????
+NodeStats.mustBePercentValueNotFull=???????, ???? 0 ? 99 ??.
+NodeStats.valueTooLow=?????????????, ???????!
+NodeUpdateManager.installNewVersions=????????
+NodeUpdateManager.installNewVersionsLong=??????????????????? Freenet ??,
???????
+NotEnoughNiceLevelsUserAlert.content=?????????????????????. ????????????????,
??????????. ?????????????????! (? run.sh ??? PRIORITY ???, ??????) ???????
${available} ???????, ?????? ${required} ?.
+NotEnoughNiceLevelsUserAlert.short=???????????! ?????????????? Freenet.
+NotEnoughNiceLevelsUserAlert.title=???????????!
+OpennetConnectionsToadlet.fullTitle=${name} ? ${counts} ????(??????)
+OpennetConnectionsToadlet.peersListTitle=??????????(??????????????????)
+OpennetConnectionsToadlet.successTime=?????????????? CHK ???
+OpennetConnectionsToadlet.successTimeTitle=??????
+OpennetUserAlert.warningShort=????????.
+OpennetUserAlert.warningTitle=??: ????????: ??????????
+PNGFilter.invalidHeader=????????????? PNG ?, ?????????? PNG ??. ???????????,
?????????????????, ?????????.
+PNGFilter.invalidHeaderTitle=??? PNG - ??????
PluginToadlet.addPluginTitle=??plugin
PluginToadlet.failedToLoadPluginTitle=Plugin????
PluginToadlet.noWebInterfaceTitle=?plugin?????
@@ -222,11 +278,20 @@
PluginToadlet.pluginNotFoundTitle=????plugin
PluginToadlet.unsupportedMethod=????method.
PluginToadlet.visit=??
+PproxyToadlet.Load=??
PproxyToadlet.cancel=??
PproxyToadlet.classNameTitle=Class??
PproxyToadlet.internalIDTitle=????
+PproxyToadlet.loadOfficialPlugin=??????
+PproxyToadlet.loadOfficialPluginLabel=??????
+PproxyToadlet.loadOfficialPluginText=???????? Freenet ???????.
????????????????, ????????.
+PproxyToadlet.loadOfficialPluginWarning=??: ?????????????????, ??? Freenet ??.
?????????????, ?????. ?????????????, ??????????.
+PproxyToadlet.loadOtherPlugin=???????
+PproxyToadlet.loadOtherPluginText=?????????????? URL. ???????????????????,
???????????????????. ???????????????????, ???????.
+PproxyToadlet.loadOtherURLLabel=??? URL
PproxyToadlet.loadPluginLabel=??Plugin:
PproxyToadlet.noPlugins=??????plugins
+PproxyToadlet.noVersion=?
PproxyToadlet.pluginNotFoundReload=??????????plugin.
PproxyToadlet.pluginNotFoundReloadTitle=?????Plugin(????)
PproxyToadlet.pluginUnloaded=?plugin????
@@ -234,20 +299,44 @@
PproxyToadlet.plugins=Plugins
PproxyToadlet.pluginsWithNodeName=${name}?plugins
PproxyToadlet.reload=????
+PproxyToadlet.reloadPurgeWarning=?????????????????. ??????????????????,
??????????!
PproxyToadlet.returnToPluginPage=??plugin??
PproxyToadlet.startedAtTitle=????
PproxyToadlet.unload=??
PproxyToadlet.unloadPluginTitle=???plugin?
PproxyToadlet.unloadPluginWithName=??????${name}??
+PproxyToadlet.versionTitle=??
+QueueToadlet.DUinProgress=???????? (${size})
+QueueToadlet.DinProgress=???????? (${size})
+QueueToadlet.UinProgress=???????? (${size})
QueueToadlet.change=???
+QueueToadlet.completedDU=?????????? (${size})
+QueueToadlet.completedDinDownloadDirectory=???????????????? (${size})
+QueueToadlet.completedDinTempDirectory=???????????????? (${size})
+QueueToadlet.completedDtoDisk=??????????? (${size})
+QueueToadlet.completedDtoTemp=?????????????? (${size})
+QueueToadlet.completedU=???????? (${size})
+QueueToadlet.completedUDirectory=???????? (${size})
QueueToadlet.delete=??
QueueToadlet.download=??
-QueueToadlet.fileName=???
+QueueToadlet.downloadSucceeded=?? ${origlink}${filename}${/origlink} ???????.
?${link}???${/link}???? (${size}).
+QueueToadlet.downloadSucceededTitle=????: ${filename}
+QueueToadlet.errorAccessDenied=????: ????!
+QueueToadlet.failedD=????? (${size})
+QueueToadlet.failedDU=????????? (${size})
+QueueToadlet.failedU=??????? (${size})
+QueueToadlet.fileName=??
QueueToadlet.identifier=??
QueueToadlet.insertAs=???:
QueueToadlet.insertFile=????
+QueueToadlet.insertFileBrowseLabel=?????????
+QueueToadlet.insertFileInsertFileLabel=????
+QueueToadlet.insertFileLabel=??????????(???!)
QueueToadlet.key=??
QueueToadlet.legend=??
+QueueToadlet.mimeType=MIME ??
+QueueToadlet.none=?
+QueueToadlet.persistence=??
QueueToadlet.persistenceForever=??
QueueToadlet.persistenceNone=?
QueueToadlet.persistenceRebootr=??
@@ -261,37 +350,51 @@
QueueToadlet.priority6=????
QueueToadlet.progress=??
QueueToadlet.reason=??
+QueueToadlet.remove=??
+QueueToadlet.requestNavigation=????
QueueToadlet.restart=??
QueueToadlet.size=??
QueueToadlet.starting=???
QueueToadlet.title=${nodeName}?????
QueueToadlet.totalSize=????
QueueToadlet.unknown=??
+QueueToadlet.wipD=???: ?? (${size})
+QueueToadlet.wipDU=???: ???? (${size})
+QueueToadlet.wipU=???: ?? (${size})
+RevocationKeyFoundUserAlert.text=??????????????????????. ????????????????????!
??, ?????????????, ???"???"????????. ?????????????????????. ???????????????.
?????: ${message}.
+RevocationKeyFoundUserAlert.title=????????????!
+ShortOption.parseError=???????????????: ${error}
SimpleToadletServer.cssName=??????
+SimpleToadletServer.cssNameLong=?? Freenet ?????????
+StaticToadlet.pathInvalidChars=??? URI ??????????.
+StaticToadlet.pathNotFound=????????.
+StaticToadlet.pathNotFoundTitle=??????
StatisticsToadlet.activityInserts=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
StatisticsToadlet.activityRequests=??: ?? ${totalSenders} ????, ${CHKhandlers}
?CHK???, ${SSKhandlers} ?SSK???
-StatisticsToadlet.allocMemory=Java???????: ${memory}
+StatisticsToadlet.allocMemory=Java ???????: ${memory}
StatisticsToadlet.bandwidthTitle=??
StatisticsToadlet.cpus=???CPU??: ${count}
StatisticsToadlet.getLogs=?????????
StatisticsToadlet.inputRate=????: ?? ${rate} (???? ${max})
+StatisticsToadlet.javaVersion=Java ??: ${version}
StatisticsToadlet.jeDumpButton=????JE??
StatisticsToadlet.jvmInfoTitle=JVM??
StatisticsToadlet.jvmVendor=JVM ???? ${vendor}
StatisticsToadlet.jvmVersion=JVM??: ${version}
-StatisticsToadlet.maxMemory=Java??????: ${memory}
+StatisticsToadlet.maxMemory=Java ??????: ${memory}
StatisticsToadlet.osArch=????????: ${arch}
StatisticsToadlet.osName=??????: ${name}
StatisticsToadlet.osVersion=??????: ${version}
StatisticsToadlet.outputRate=????: ?? ${rate} (???? ${max})
StatisticsToadlet.payloadOutput=????: ${total} (?? ${rate}) (${percent}%)
StatisticsToadlet.peerStatsTitle=????
+StatisticsToadlet.statisticGatheringTitle=????
StatisticsToadlet.threadDumpButton=?????????
StatisticsToadlet.threads=???????: ${running}/${max}
StatisticsToadlet.totalInput=????: ${total} (?? ${rate})
StatisticsToadlet.totalOutput=????: ${total} (?? ${rate})
StatisticsToadlet.transferringRequests=????: ?? ${senders}, ?? ${receivers}
-StatisticsToadlet.usedMemory=Java???????: ${memory}
+StatisticsToadlet.usedMemory=Java ???????: ${memory}
StatisticsToadlet.versionTitle=??????
SymlinkerToadlet.symlinks=ToadletServer??????
TextModeClientInterfaceServer.allowedHosts=??????
@@ -301,7 +404,26 @@
TextModeClientInterfaceServer.enabled=??????
TextModeClientInterfaceServer.enabledLong=?????????????
TextModeClientInterfaceServer.telnetPortNumber=?????
+TimeSkewDetectedUserAlert.shortText=???????????????. Freenet ?????????!
+TimeSkewDetectedUserAlert.text=?????????????????. ?????. ??????????, ????????.
?????????????????, ??????, ????????.
+TimeSkewDetectedUserAlert.title=???????!
Toadlet.cancel=??
+Toadlet.clickHere=???
+Toadlet.homepage=??
+Toadlet.internalErrorPleaseReport=????: ???
+Toadlet.internalErrorTitle=????
+Toadlet.no=?
+Toadlet.nodeHomepage=????
+Toadlet.notSupportedTitle=???
+Toadlet.notSupportedWithClass=?????????? Freenet (${class}) ???????.
+Toadlet.ok=?
+Toadlet.permRedirectWithReason=????: ${reason}
+Toadlet.returnToNodeHomepage=??????
+Toadlet.returnToPrevPage=?????
+Toadlet.tempRedirectWithReason=????: ${reason}
+Toadlet.unauthorized=??????????.
+Toadlet.unauthorizedTitle=????
+Toadlet.yes=?
TranslationToadlet.bracketRemoveOverride=(???????!)
TranslationToadlet.bracketTranslateIt=(?????????!)
TranslationToadlet.bracketUpdateTranslation=(??????)
@@ -319,6 +441,8 @@
TranslationToadlet.translationUpdateTitle=????
TranslationToadlet.translationUpdatedTitle=??????!
TranslationToadlet.updateTranslationCommand=??????!
+UnknownContentTypeException.explanation=?? Freenet ??????? MIME ??. ????,
?????????????????????, ????????. ???, ?????????????????????, ?????????????;
??????????, ???????????, ???????????(???????????????, ???????????????).
???????, ?????????????????, ?????? script ???????????????.
+UnknownContentTypeException.title=??????????????: ${type}
UpdatedVersionAvailableUserAlert.armed=?????????????????Freenet???,??????.
UpdatedVersionAvailableUserAlert.clickToUpdateNow=????????????????.
UpdatedVersionAvailableUserAlert.downloadedNewExtJar=?????????????Freenet????,???${version}.
@@ -332,7 +456,11 @@
UserAlert.apply=??
UserAlert.hide=??
UserAlert.reset=??
+UserAlertManager.alertsOnAlertsPage=| ??${link}????${/link}??????.
+UserAlertManager.alertsTitle=?????
+UserAlertManager.clickForMore=?????????????????, ??????.
UserAlertManager.criticalErrorCountLabel=????:
+UserAlertManager.dumpEventsButton=???????
UserAlertManager.errorCountLabel=??:
UserAlertManager.minorCountLabel=??:
UserAlertManager.totalLabel=??:
@@ -347,8 +475,8 @@
WelcomeToadlet.disabledAlert=????
WelcomeToadlet.extVersion=Freenet-ext ????:${build} r${rev}
WelcomeToadlet.extVersionWithRecommended=Freenet-ext ????:${build}
(??????${recbuild}) ????:${rev}
-WelcomeToadlet.fetch=?
-WelcomeToadlet.fetchKeyLabel=?? Key
+WelcomeToadlet.fetch=??
+WelcomeToadlet.fetchKeyLabel=????
WelcomeToadlet.finInsertSuccessWithKey=??????????? ${key} ?
WelcomeToadlet.homepageFullTitleWithName=${name} ? Freenet FProxy ??
WelcomeToadlet.ieWarning=?????????Internet Explorer?????????????????
@@ -357,6 +485,7 @@
WelcomeToadlet.insertSucceededTitle=??????
WelcomeToadlet.insertedTitle=????
WelcomeToadlet.keyInsertedSuccessfullyWithKeyAndName=?????? key
${link}${name}${/link}?
+WelcomeToadlet.keyRequestLabel=??:
WelcomeToadlet.nodeUpdateConfirm=????????Freenet????
WelcomeToadlet.nodeUpdateConfirmTitle=??????
WelcomeToadlet.privateKeyHeader=????
@@ -381,4 +510,6 @@
WelcomeToadlet.updatingTitle=?????
WelcomeToadlet.version=Freenet ??:${fullVersion} ????:${build} r${rev}
WelcomeToadlet.versionHeader=???????
+WrapperConfig.wrapper.java.maxmemory.long=Freenet ????????. ???????????,
Freenet ??????????; ?????????????, ????????. ?????????? Freenet ??????.
+WrapperConfig.wrapper.java.maxmemory.short=??????(?????MiB)
End
Modified:
branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/FNPPacketMangler.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -1,4 +1,3 @@
-
/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
Modified: branches/saltedhashstore/freenet/src/freenet/node/Node.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/Node.java 2008-06-15
19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/Node.java 2008-06-16
12:45:45 UTC (rev 20360)
@@ -1,6 +1,4 @@
-/*
- * Freenet 0.7 node.
- */
+/* Freenet 0.7 node. */
package freenet.node;
import java.io.BufferedReader;
@@ -216,7 +214,10 @@
}
public String[] getPossibleValues() {
- return L10n.AVAILABLE_LANGUAGES;
+ String[] result = new
String[L10n.AVAILABLE_LANGUAGES.length];
+ for(int i=0; i<L10n.AVAILABLE_LANGUAGES.length; i++)
+ result[i] = L10n.AVAILABLE_LANGUAGES[i][1];
+ return result;
}
}
@@ -1777,6 +1778,12 @@
if(logMINOR) Logger.minor(this, "JVM vendor: "+jvmVendor+", JVM
version: "+jvmVersion+", OS name: "+osName+", OS version: "+osVersion);
+ if(jvmVersion.startsWith("1.4")) {
+ System.err.println("Java 1.4 will not be supported for
much longer, PLEASE UPGRADE!");
+ nodeUpdater.disableThisSession();
+ clientCore.alerts.register(new SimpleUserAlert(false,
l10n("java14Title"), l10n("java14Text"), l10n("java14ShortText"),
UserAlert.ERROR));
+ }
+
if(jvmVendor.startsWith("Sun ")) {
// Sun bugs
@@ -2676,6 +2683,8 @@
synchronized(cachedPubKeys) {
DSAPublicKey key2 = (DSAPublicKey) cachedPubKeys.get(w);
if((key2 != null) && !key2.equals(key)) {
+ // FIXME is this test really needed?
+ // SHA-256 inside synchronized{} is a bad idea
MessageDigest md256 = SHA256.getMessageDigest();
try {
byte[] hashCheck = md256.digest(key.asBytes());
@@ -3377,4 +3386,4 @@
public void setDispatcherHook(NodeDispatcherCallback cb) {
this.dispatcher.setHook(cb);
}
-}
\ No newline at end of file
+}
Modified: branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/NodeStarter.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -26,11 +26,9 @@
/**
- *
- * @author nextgens
- *
- * A class to tie the wrapper and the node (needed for self-restarting
support)
+ * @author nextgens
*
+ * A class to tie the wrapper and the node (needed for self-restarting
support)
*/
public class NodeStarter implements WrapperListener
{
Modified: branches/saltedhashstore/freenet/src/freenet/node/ProbeCallback.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/ProbeCallback.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/ProbeCallback.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -10,7 +10,8 @@
void onTrace(long uid, double target, double nearest, double best,
short htl, short counter, double location, long nodeUID, double[] peerLocs,
long[] peerUIDs, double[] locsNotVisited, short forkCount, short linearCount,
String reason, long prevUID);
- /** Got a RejectedOverload passed down from some upstream node. Note
that not all probe request
+ /**
+ * Got a RejectedOverload passed down from some upstream node. Note
that not all probe request
* implementations may generate these.
*/
void onRejectOverload();
Modified:
branches/saltedhashstore/freenet/src/freenet/node/RequestScheduler.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/RequestScheduler.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/RequestScheduler.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -10,7 +10,8 @@
public SendableRequest removeFirst();
- /** Tell the scheduler that a request from a specific RandomGrabArray
succeeded.
+ /**
+ * Tell the scheduler that a request from a specific RandomGrabArray
succeeded.
* Definition of "succeeded" will vary, but the point is most
schedulers will run another
* request from the parentGrabArray in the near future on the theory
that if one works,
* another may also work.
Modified: branches/saltedhashstore/freenet/src/freenet/node/RequestStarter.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/RequestStarter.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/RequestStarter.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -98,7 +98,7 @@
while(true) {
// Allow 5 minutes before we start killing requests due
to not connecting.
OpennetManager om;
- if(core.node.peers.countConnectedPeers() == 0 && (om =
core.node.getOpennet()) != null &&
+ if(core.node.peers.countConnectedPeers() < 3 && (om =
core.node.getOpennet()) != null &&
System.currentTimeMillis() -
om.getCreationTime() < 5*60*1000) {
try {
synchronized(this) {
Modified: branches/saltedhashstore/freenet/src/freenet/node/UptimeEstimator.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/UptimeEstimator.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/UptimeEstimator.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -20,6 +20,7 @@
* A class to estimate the node's average uptime. Every 5 minutes (with a
fixed offset), we write
* an integer (the number of minutes since the epoch) to the end of a file. We
rotate it when it
* gets huge. We read it to figure out how many of the 5 minute slots in the
last X period are occupied.
+ *
* @author toad
*/
public class UptimeEstimator implements Runnable {
Modified: branches/saltedhashstore/freenet/src/freenet/node/Version.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/Version.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/Version.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -24,17 +24,17 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1150;
+ private static final int buildNumber = 1152;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 1145;
- private static final int newLastGoodBuild = 1146;
+ private static final int newLastGoodBuild = 1152;
static final long transitionTime;
static {
final Calendar _cal =
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
// year, month - 1 (or constant), day, hour, minute, second
- _cal.set( 2008, Calendar.MAY, 8, 0, 0, 0 );
+ _cal.set( 2008, Calendar.JUNE, 15, 0, 0, 0 );
transitionTime = _cal.getTimeInMillis();
}
Modified: branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientGet.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientGet.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -117,18 +117,19 @@
}
}
returnBucket = ret;
- if(persistenceType != PERSIST_CONNECTION)
+ if(persistenceType != PERSIST_CONNECTION) {
try {
client.register(this, false);
} catch (IdentifierCollisionException e) {
ret.free();
throw e;
}
- getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
client.core.requestStarters.sskFetchScheduler, uri, fctx, priorityClass,
client.lowLevelClient, returnBucket, null);
- if(persistenceType != PERSIST_CONNECTION) {
- FCPMessage msg = persistentTagMessage();
- client.queueClientRequestMessage(msg, 0);
- }
+ }
+ getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
client.core.requestStarters.sskFetchScheduler, uri, fctx, priorityClass,
client.lowLevelClient, returnBucket, null);
+ if(persistenceType != PERSIST_CONNECTION) {
+ FCPMessage msg = persistentTagMessage();
+ client.queueClientRequestMessage(msg, 0);
+ }
}
public ClientGet(FCPConnectionHandler handler, ClientGetMessage
message) throws IdentifierCollisionException, MessageInvalidException {
@@ -187,23 +188,24 @@
if(ret == null)
Logger.error(this, "Impossible: ret = null in FCP
constructor for "+this, new Exception("debug"));
returnBucket = ret;
- if(persistenceType != PERSIST_CONNECTION)
+ if(persistenceType != PERSIST_CONNECTION) {
try {
client.register(this, false);
} catch (IdentifierCollisionException e) {
ret.free();
throw e;
}
- getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
-
client.core.requestStarters.sskFetchScheduler, uri, fctx, priorityClass,
- client.lowLevelClient, binaryBlob ? new
NullBucket() : returnBucket,
- binaryBlob ?
returnBucket : null);
- if(persistenceType != PERSIST_CONNECTION) {
- FCPMessage msg = persistentTagMessage();
- client.queueClientRequestMessage(msg, 0);
- if(handler != null &&
(!handler.isGlobalSubscribed()))
- handler.outputHandler.queue(msg);
- }
+ }
+ getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
+ client.core.requestStarters.sskFetchScheduler,
uri, fctx, priorityClass,
+ client.lowLevelClient, binaryBlob ? new
NullBucket() : returnBucket,
+ binaryBlob ? returnBucket :
null);
+ if(persistenceType != PERSIST_CONNECTION) {
+ FCPMessage msg = persistentTagMessage();
+ client.queueClientRequestMessage(msg, 0);
+ if(handler != null && (!handler.isGlobalSubscribed()))
+ handler.outputHandler.queue(msg);
+ }
}
/**
@@ -309,7 +311,7 @@
}
if(finished && succeeded)
- allDataPending = new
AllDataMessage(returnBucket, identifier, global, startupTime, completionTime);
+ allDataPending = new AllDataMessage(returnBucket,
identifier, global, startupTime, completionTime);
}
public void start() {
Modified: branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPut.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/node/fcp/ClientPut.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -10,6 +10,7 @@
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.security.MessageDigest;
+import java.util.Arrays;
import freenet.client.ClientMetadata;
import freenet.client.DefaultMIMETypes;
@@ -33,8 +34,6 @@
import freenet.support.io.FileBucket;
import freenet.support.io.SerializableToFieldSetBucketUtil;
-import java.util.Arrays;
-
public class ClientPut extends ClientPutBase {
final ClientPutter putter;
@@ -191,6 +190,9 @@
if(mimeType == null && origFilename != null) {
mimeType =
DefaultMIMETypes.guessMIMEType(origFilename.getName(), true);
}
+ if ((mimeType == null) && (targetFilename != null)) {
+ mimeType =
DefaultMIMETypes.guessMIMEType(targetFilename, true);
+ }
if(mimeType == null) {
mimeType = DefaultMIMETypes.guessMIMEType(identifier,
true);
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdateManager.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdateManager.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/node/updater/NodeUpdateManager.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -88,6 +88,7 @@
public final UpdateOverMandatoryManager uom;
private boolean logMINOR;
+ private boolean disabledThisSession;
public NodeUpdateManager(Node node, Config config) throws
InvalidConfigValueException {
logMINOR = Logger.shouldLog(Logger.MINOR, this);
@@ -386,6 +387,12 @@
logMINOR = Logger.shouldLog(Logger.MINOR, this);
try {
synchronized(this) {
+ if(disabledThisSession) {
+ String msg = "Not deploying update
because disabled for this session (bad java version??)";
+ Logger.error(this, msg);
+ System.err.println(msg);
+ return;
+ }
if(hasBeenBlown) {
String msg = "Trying to update but key
has been blown! Not updating, message was "+revocationMessage;
Logger.error(this, msg);
@@ -904,5 +911,9 @@
}
};
+
+ public void disableThisSession() {
+ disabledThisSession = true;
+ }
}
Modified:
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/node/useralerts/UserAlertManager.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -138,6 +138,8 @@
if(alerts[i].isEventNotification()) events++;
}
}
+ if(events == 0)
+ return new HTMLNode("#", "");
if(events < 2) drawDumpEventsForm = false;
HTMLNode boxNode = new HTMLNode("div", "class", "infobox
infobox-"+getAlertLevelName(maxLevel)+" infobox-summary-status-box");
boxNode.addChild("div", "class", "infobox-header infobox
summary-status-header", title);
@@ -154,9 +156,6 @@
listItem.addChild("a", "href",
"/alerts/#"+alert.anchor(), alert.getShortText());
totalNumber++;
}
- if (totalNumber == 0) {
- return new HTMLNode("#", "");
- }
if(drawDumpEventsForm) {
HTMLNode dumpFormNode = contentNode.addChild("form",
new String[] { "action", "method" }, new String[] { "/", "post"
}).addChild("div");
dumpFormNode.addChild("input", new String[] { "type",
"name", "value" }, new String[] { "hidden", "formPassword", core.formPassword
});
Modified:
branches/saltedhashstore/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
2008-06-15 19:53:33 UTC (rev 20359)
+++
branches/saltedhashstore/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -943,10 +943,13 @@
private void reconstruct() throws DatabaseException, IOException {
if(keysDB.count() != 0)
throw new IllegalStateException("Store must be empty
before reconstruction!");
- System.err.println("Reconstructing store index from store file:
callback="+callback);
+ // Timeout must be well below Integer.MAX_VALUE. It is added to
previous timeouts in an integer value.
+ // If it's too high, we get wraparound and instant timeout.
+ int timeout = (int) (Math.min(7 * 24 * 60 * 60 * 1000, 5 * 60 *
1000
+ + (storeRAF.length() / (dataBlockSize +
headerBlockSize)) * 1000L));
+ System.err.println("Reconstructing store index from store file:
callback="+callback+" - allowing "+timeout+"ms");
Logger.error(this, "Reconstructing store index from store file:
callback="+callback);
- WrapperManager.signalStarting((int)
(Math.min(Integer.MAX_VALUE, 5 * 60 * 1000
- + (storeRAF.length() / (dataBlockSize +
headerBlockSize)) * 1000L)));
+ WrapperManager.signalStarting(timeout);
// Reusing the buffer is safe, provided we don't do anything
with the resulting StoreBlock.
byte[] header = new byte[headerBlockSize];
byte[] data = new byte[dataBlockSize];
@@ -983,15 +986,7 @@
long lruVal = 0;
Transaction t = null;
- if(storeRAF.getFilePointer() != l *
(headerBlockSize + dataBlockSize)) {
- System.err.println("File pointer is
"+storeRAF.getFilePointer()+" but should be "+((headerBlockSize +
dataBlockSize)));
-
System.exit(NodeInitException.EXIT_STORE_RECONSTRUCT);
- }
- // FIXME only do the read if we need the data,
and if we do, do a seek first.
- // Post 0.7.0; only a useful optimisation if we
have a good .keys file, but should
- // save some I/O when we do.
- storeRAF.readFully(header);
- storeRAF.readFully(data);
+ boolean dataRead = false;
if(lruRAFLength > (l+1)*8) {
try {
lruVal = lruRAF.readLong();
@@ -1030,6 +1025,12 @@
routingkey = newkey;
}
}
+ if (!dataRead) {
+ storeRAF.seek(l *
(headerBlockSize + dataBlockSize));
+ storeRAF.readFully(header);
+ storeRAF.readFully(data);
+ dataRead = true;
+ }
if (routingkey == null &&
!isAllNull(header) && !isAllNull(data)) {
keyFromData = true;
try {
@@ -1061,6 +1062,12 @@
if(!keyFromData) {
byte[] oldRoutingkey =
routingkey;
try {
+ if (!dataRead) {
+
storeRAF.seek(l * (headerBlockSize + dataBlockSize));
+
storeRAF.readFully(header);
+
storeRAF.readFully(data);
+
dataRead = true;
+ }
StorableBlock
block = callback.construct(data, header, null, keyBuf);
routingkey =
block.getRoutingKey();
if(Arrays.equals(oldRoutingkey, routingkey)) {
@@ -1408,7 +1415,7 @@
if(!overwrite)
throw new KeyCollisionException();
else
- overwriteKeyUnchanged(block,
routingkey, fullKey, data, header);
+ overwriteKeyUnchanged(routingkey,
fullKey, data, header);
} // else return; // already in store
} else {
innerPut(block, routingkey, fullKey, data, header);
@@ -1418,7 +1425,7 @@
/**
* Overwrite a block with a new block which has the same key.
*/
- private boolean overwriteKeyUnchanged(StorableBlock block, byte[]
routingkey, byte[] fullKey, byte[] data, byte[] header) throws IOException {
+ private boolean overwriteKeyUnchanged(byte[] routingkey, byte[]
fullKey, byte[] data, byte[] header) throws IOException {
synchronized(this) {
if(closed)
return false;
Modified: branches/saltedhashstore/freenet/src/freenet/support/Serializer.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/support/Serializer.java
2008-06-15 19:53:33 UTC (rev 20359)
+++ branches/saltedhashstore/freenet/src/freenet/support/Serializer.java
2008-06-16 12:45:45 UTC (rev 20360)
@@ -63,7 +63,7 @@
throw new IOException("Boolean is non boolean value:
"+bool);
} else if (type.equals(Byte.class)) {
int b = dis.readByte();
- return new Byte((byte)b);
+ return new Byte((byte) b);
} else if (type.equals(Short.class)) {
return new Short(dis.readShort());
} else if (type.equals(Integer.class)) {
@@ -102,20 +102,21 @@
}
}
- public static void writeToDataOutputStream(Object object,
DataOutputStream dos, PeerContext ctx) throws IOException {
+ public static void writeToDataOutputStream(Object object,
DataOutputStream dos, PeerContext ctx) throws IOException {
Class type = object.getClass();
- if (type.equals(Boolean.class)) {
+ if (type.equals(Long.class)) {
+ dos.writeLong(((Long) object).longValue());
+ } else if (type.equals(Boolean.class)) {
dos.write(((Boolean) object).booleanValue() ? 1 : 0);
- } else if (type.equals(Byte.class)) {
- dos.write(((Byte) object).byteValue());
- } else if (type.equals(Short.class)) {
- dos.writeShort(((Short) object).shortValue());
} else if (type.equals(Integer.class)) {
dos.writeInt(((Integer) object).intValue());
- } else if (type.equals(Long.class)) {
- dos.writeLong(((Long) object).longValue());
+ } else if (type.equals(Short.class)) {
+ dos.writeShort(((Short) object).shortValue());
} else if (type.equals(Double.class)) {
dos.writeDouble(((Double) object).doubleValue());
+ } else if
(WritableToDataOutputStream.class.isAssignableFrom(type)) {
+ WritableToDataOutputStream b =
(WritableToDataOutputStream) object;
+ b.writeToDataOutputStream(dos);
} else if (type.equals(String.class)) {
String s = (String) object;
dos.writeInt(s.length());
@@ -130,11 +131,8 @@
writeToDataOutputStream(i.next(), dos,
ctx);
}
}
- } else if (type.equals(Peer.class)) {
- ((Peer)object).writeToDataOutputStream(dos);
- } else if
(WritableToDataOutputStream.class.isAssignableFrom(type)) {
- WritableToDataOutputStream b =
(WritableToDataOutputStream) object;
- b.writeToDataOutputStream(dos);
+ } else if (type.equals(Byte.class)) {
+ dos.write(((Byte) object).byteValue());
} else {
throw new RuntimeException("Unrecognised field type: "
+ type);
}