[freenet-cvs] r13158 - in trunk/freenet/src/freenet: clients/http/bookmark l10n node node/updater node/useralerts
toad at freenetproject.org
toad at freenetproject.org
Sat May 5 21:01:34 UTC 2007
Author: toad
Date: 2007-05-05 21:01:33 +0000 (Sat, 05 May 2007)
New Revision: 13158
Modified:
trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
trunk/freenet/src/freenet/l10n/L10n.java
trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeIPDetector.java
trunk/freenet/src/freenet/node/updater/NodeUpdaterManager.java
trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java
trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java
trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java
trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
Log:
L10n keys for most UserAlert's. Not all yet, will do that soon.
Modified: trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -5,9 +5,11 @@
import freenet.keys.FreenetURI;
import freenet.keys.USK;
+import freenet.l10n.L10n;
import freenet.node.NodeClientCore;
import freenet.node.useralerts.UserAlert;
import freenet.node.useralerts.UserAlertManager;
+import freenet.support.HTMLEncoder;
import freenet.support.HTMLNode;
import java.net.MalformedURLException;
@@ -47,21 +49,18 @@
}
public String getTitle() {
- return "Bookmark updated: " + name;
+ return l10n("bookmarkUpdatedTitle", "name", name);
}
public String getText() {
- return "The bookmarked site " + name
- + " has been updated to edition "
- + key.getSuggestedEdition();
+ return l10n("bookmarkUpdated", new String[] { "name", "edition" },
+ new String[] { name, Long.toString(key.getSuggestedEdition()) });
}
public HTMLNode getHTMLText() {
HTMLNode n = new HTMLNode("div");
- n.addChild("#", "The bookmarked site ");
- n.addChild("a", "href", '/' + key.toString()).addChild("#", name);
- n.addChild("#", " has been updated to edition "
- + key.getSuggestedEdition() + ".");
+ L10n.addL10nSubstitution(n, "bookmarkUpdatedWithLink", new String[] { "link", "/link", "name", "edition" },
+ new String[] { "<a href=\""+key.toString()+"\">", "</a>", HTMLEncoder.encode(name), Long.toString(key.getSuggestedEdition()) });
return n;
}
@@ -82,7 +81,7 @@
}
public String dismissButtonText() {
- return "Delete notification";
+ return l10n("deleteBookmarkUpdateNotification");
}
public boolean shouldUnregisterOnDismiss() {
@@ -100,6 +99,18 @@
alerts.unregister(alert);
}
+ private String l10n(String key) {
+ return L10n.getString("BookmarkItem."+key);
+ }
+
+ private String l10n(String key, String pattern, String value) {
+ return L10n.getString("BookmarkItem."+key, new String[] { pattern }, new String[] { value });
+ }
+
+ private String l10n(String key, String[] patterns, String[] values) {
+ return L10n.getString("BookmarkItem."+key, patterns, values);
+ }
+
private synchronized void enableBookmark() {
if (updated)
return;
Modified: trunk/freenet/src/freenet/l10n/L10n.java
===================================================================
--- trunk/freenet/src/freenet/l10n/L10n.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/l10n/L10n.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -367,4 +367,8 @@
node.addChild("%", result);
}
+ public static String getString(String key, String pattern, String value) {
+ return getString(key, new String[] { pattern }, new String[] { value }); // FIXME code efficiently!
+ }
+
}
Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2007-05-05 21:01:33 UTC (rev 13158)
@@ -131,6 +131,10 @@
BookmarkEditorToadlet.invalidKeyTitle=Invalid Key
BookmarkEditorToadlet.invalidKeyWithReason=Invalid Freenet key.
BookmarkEditorToadlet.save=Save
+BookmarkItem.bookmarkUpdatedTitle=Bookmark Updated: ${name}
+BookmarkItem.bookmarkUpdated=The bookmarked site ${name} has been updated to edition ${edition}.
+BookmarkItem.bookmarkUpdatedWithLink=The bookmarked site ${link}${name}${/link} has been updated to edition ${edition}.
+BookmarkItem.deleteBookmarkUpdateNotification=Delete notification
ConfigToadlet.appliedTitle=Configuration Applied
ConfigToadlet.appliedSuccess=Configuration changes were applied successfully.
ConfigToadlet.appliedFailureTitle=Configuration Not Applied
@@ -567,6 +571,20 @@
TextModeClientInterfaceServer.telnetPortNumberLong=Telnet port number
TextModeClientInterfaceServer.enableInputOutput=Enable on stdout/stdin?
TextModeClientInterfaceServer.enableInputOutputLong=Enable text mode client interface on standard input/output? (.enabled refers to providing a telnet-style server, this runs it over a socket)
+IPDetectorPluginManager.noConnectivityTitle=No UDP connectivity
+IPDetectorPluginManager.noConnectivity=Your internet connection does not appear to support UDP. Unless this detection is wrong, it is unlikely that Freenet will work on your computer at present.
+IPDetectorPluginManager.symmetricTitle=Symmetric firewall detected
+IPDetectorPluginManager.symmetric=Your internet connection appears to be behind a symmetric NAT or firewall. You will probably only be able to connect to users directly connected to the internet or behind restricted cone NATs.
+IPDetectorPluginManager.portRestrictedTitle=Port restricted cone NAT detected
+IPDetectorPluginManager.portRestricted=Your internet connection appears to be behind a port-restricted NAT (router). You will be able to connect to most other users, but not those behind symmetric NATs.
+IPDetectorPluginManager.restrictedTitle=Restricted cone NAT detected
+IPDetectorPluginManager.restricted=Your internet connection appears to be behind a "restricted cone" NAT (router). You should be able to connect to most other users.
+IPDetectorPluginManager.fullConeTitle=Full cone NAT detected
+IPDetectorPluginManager.fullCone=Your internet connection appears to be behind a "full cone" NAT (router). Congratulations, your node should be able to connect to any other Freenet node.
+IPDetectorPluginManager.directTitle=Direct internet connection detected
+IPDetectorPluginManager.direct=You appear to be directly connected to the internet. Congratulations, you should be able to connect to any other freenet node.
+IPDetectorPluginManager.suggestForwardPort= You may want to forward the port (UDP port number ${port}) manually. (See http://wiki.freenetproject.org/FirewallAndRouterIssues ).
+IPDetectorPluginManager.suggestForwardPortWithLink= You may want to ${link}forward the port${/link} (UDP port number ${port}) manually (or you may already have done so, Freenet cannot easily detect this).
Node.disablePHTLS=Disable probabilistic HTL
Node.disablePHTLSLong=Disable probabilistic HTL (don't touch this unless you know what you are doing)
Node.maxHTL=Maximum HTL
@@ -601,6 +619,13 @@
Node.disableHangCheckersLong=Disable all hang checkers/watchdog functions. Set this if you are profiling Fred.
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.buggyJVMWithLink=The JVM you are using (${version}) is known to be ${link}buggy${/link}. It may produce OutOfMemoryError's when there is plenty of memory available. Please upgrade to at least Sun Java 1.4.2_13, 1.5.0_10 or 1.6 (recommended).
+Node.buggyJVM=The JVM you are using (${version}) is known to be buggy. It may produce OutOfMemoryError's when there is plenty of memory available. Please upgrade to at least Sun Java 1.4.2_13, 1.5.0_10 or 1.6 (recommended). See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795 .
+Node.buggyJVMTitle=Buggy JVM Warning
+Node.deadlockTitle=Deadlocking likely due to buggy JVM/kernel combination
+Node.deadlockWarning=WARNING: Your system appears to be running a Sun JVM with NPTL. This has been known to cause the node to freeze up due to the JVM losing a lock. Please disable NPTL if possible by setting the environment variable LD_ASSUME_KERNEL=2.4.1. Recent versions of the freenet installer should have this already; either reinstall, or edit run.sh (https://emu.freenetproject.org/svn/trunk/apps/installer/installclasspath/run.sh). On some systems you may need to install the pthreads libraries to make this work. Note that the node will try to automatically restart itself in the event of such a deadlock, but this is not be 100% reliable and will take time.
+NodeIPDetector.maybeSymmetricTitle=Connection problems
+NodeIPDetector.maybeSymmetric=It looks like your node may be behind a symmetric NAT. You may have connection problems: If you are behind a symmetric NAT you will probably only be able to connect to peers which are open to the internet.
NodeUpdateManager.enabled=Check for, and download new versions
NodeUpdateManager.enabledLong=Should your node automatically check for new versions of Freenet. If yes, new versions will be automatically detected and downloaded, but not necessarily installed. This setting resets itself always back to false unless the node runs within the wrapper.
NodeUpdateManager.installNewVersions=Automatically install new versions
@@ -611,6 +636,9 @@
NodeUpdateManager.revocationURILong=URI for the revocation key. If this is found the node will display its contents and disable the auto-updater.
NodeUpdateManager.extURI=Where should the node look for updates to freenet-ext.jar?
NodeUpdateManager.extURILong=Where should the node look for updates to freenet-ext.jar?
+NodeUpdateManager.updateFailedTitle=Update Failed!
+NodeUpdateManager.updateFailed=Update Failed: ${reason}
+NodeUpdateManager.updateCatastropheTitle=Catastrophic Update Failure!
PluginManager.loadedPlugins=Plugins to load on start up
PluginManager.loadedPluginsLong=A list of plugins that are started when the node starts
PluginManager.loadedOnStartup=Plugins to load on startup
@@ -695,4 +723,18 @@
NodeStat.freeHeapPercentThresholdLong=The node will try to keep it's free heap precentage (of max heap bytes allowed) above the threshold by refusing new requests
NodeStat.statsPersister=File to store node statistics in
NodeStat.statsPersisterLong=File to store node statistics in (not client statistics, and these are used to decide whether to accept requests so please don't delete)
+UserAlert.hide=Hide
+UserAlert.apply=Apply
+UserAlert.reset=Reset
+BuildOldAgeUserAlert.tooOldTitle=Build too old
+BuildOldAgeUserAlert.tooOld=This node's software is older than the oldest version (Build #${lastgood}) allowed by the newest peers we try to connect to. Please update your node as soon as possible as you will not be able to connect to peers labeled "TOO NEW" until you do. (Freenet may leave your node in the dust of the past if you don't upgrade.)
+ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext too old
+ExtOldAgeUserAlert.extTooOld=Your freenet-ext.jar file seems to be outdated : we strongly advise you to update it using http://downloads.freenetproject.org/alpha/freenet-ext.jar.
+IPUndetectedUserAlert.unknownAddressTitle=Unknown external address
+IPUndetectedUserAlert.detecting=Freenet is currently attempting to detect your external IP address. If this takes more than a few minutes there is something wrong...
+IPUndetectedUserAlert.unknownAddress=Freenet was unable to determine your external IP address (or the IP address of your NAT or Firewall). You can still exchange references with other people, however this will only work if the other user is not behind a NAT or Firewall. As soon as you have connected to one other user in this way, Freenet will be able to determine your external IP address. You can determine your current IP address and tell your node with the 'Temporary IP address hint' ${link}configuration parameter${/link}. Also, it would be a good idea to forward the port ${port} on your router for UDP to make it easy to connect to your node.
+IPUndetectedUserAlert.detectingWithConfigLink=Freenet is currently attempting to detect your external IP address. If this takes more than a few minutes there is something wrong and you can use the Temporary IP Address Hint ${link}configuration parameter${/link}. Also, it would be a good idea to forward the port ${port} on your router for UDP to make it easier to connect to your node.
+IPUndetectedUserAlert.unknownAddressWithConfigLink=Freenet was unable to determine your external IP address (or the IP address of your NAT-device or firewall). You can still exchange references with other people, however this will only work if the other user is not behind a NAT-device or firewall. As soon as you have connected to one other user in this way, Freenet will be able to determine your external IP address. You can determine your current IP address and tell your node with the 'Temporary IP address hint' ${link}configuration parameter${/link}. Also, it would be a good idea to forward the port ${port} on your router for UDP to make it easy to connect to your node.
+MeaningfulNodeNameUserAlert.noNodeNickTitle=Your node name isn't defined.
+MeaningfulNodeNameUserAlert.noNodeNick=It seems that your node doesn't know your nickname. Putting your e-mail address or IRC nickname here is generally speaking a good idea and helps your friends to identify your node (note that only your darknet peers listed on the friends page can see your node name, it will not be displayed to opennet peers).
End
Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -7,6 +7,7 @@
import java.util.Vector;
import freenet.io.comm.Peer;
+import freenet.l10n.L10n;
import freenet.node.useralerts.ProxyUserAlert;
import freenet.node.useralerts.UserAlert;
import freenet.pluginmanager.DetectedIP;
@@ -45,9 +46,8 @@
HTMLNode div = new HTMLNode("div");
div.addChild("#", text);
if(suggestPortForward) {
- div.addChild("#", " You may want to ");
- div.addChild("a", "href", "/?_CHECKED_HTTP_=http://wiki.freenetproject.org/FirewallAndRouterIssues", "forward the port");
- div.addChild("#", " (UDP port number "+node.portNumber+") manually (or you may already have done so, Freenet cannot easily detect this).");
+ L10n.addL10nSubstitution(div, "suggestForwardPortWithLink", new String[] { "link", "/link", "port" },
+ new String[] { "<a href=\"/?_CHECKED_HTTP_=http://wiki.freenetproject.org/FirewallAndRouterIssues\">", "</a>", Integer.toString(node.portNumber) });
}
return div;
}
@@ -60,7 +60,7 @@
if(!suggestPortForward) return text;
StringBuffer sb = new StringBuffer();
sb.append(text);
- sb.append(" You may want to forward the port (UDP port number "+node.portNumber+") manually. (See http://wiki.freenetproject.org/FirewallAndRouterIssues ).");
+ sb.append(l10n("suggestForwardPort", "port", Integer.toString(node.portNumber)));
return sb.toString();
}
@@ -109,29 +109,32 @@
this.node = node;
this.ticker = node.ps;
this.detector = detector;
- noConnectionAlert = new MyUserAlert("No UDP connectivity",
- "Your internet connection does not appear to support UDP. " +
- "Unless this detection is wrong, it is unlikely that Freenet will work on your computer at present.",
+ noConnectionAlert = new MyUserAlert( l10n("noConnectivityTitle"), l10n("noConnectivity"),
true, UserAlert.ERROR);
- symmetricAlert = new MyUserAlert("Symmetric firewall detected",
- "Your internet connection appears to be behind a symmetric NAT or firewall. " +
- "You will probably only be able to connect to users directly connected to the internet or behind " +
- "restricted cone NATs.", true, UserAlert.ERROR);
- portRestrictedAlert = new MyUserAlert("Port restricted cone NAT detected",
- "Your internet connection appears to be behind a port-restricted NAT (router). "+
- "You will be able to connect to most other users, but not those behind symmetric NATs.",
+ symmetricAlert = new MyUserAlert(l10n("symmetricTitle"), l10n("symmetric"),
+ true, UserAlert.ERROR);
+ portRestrictedAlert = new MyUserAlert(l10n("portRestrictedTitle"), l10n("portRestricted"),
true, UserAlert.WARNING);
- restrictedAlert = new MyUserAlert("Restricted cone NAT detected",
- "Your internet connection appears to be behind a \"restricted cone\" NAT (router). "+
- "You should be able to connect to most other users.", false, UserAlert.MINOR);
- fullConeAlert = new MyUserAlert("Full cone NAT detected",
- "Your internet connection appears to be behind a \"full cone\" NAT (router). Congratulations, your node " +
- "should be able to connect to any other Freenet node.", false, UserAlert.MINOR);
- connectedAlert = new MyUserAlert("Direct internet connection detected",
- "You appear to be directly connected to the internet. Congratulations, you should be able to connect "+
- "to any other freenet node.", false, UserAlert.MINOR);
+ restrictedAlert = new MyUserAlert(l10n("restrictedTitle"), l10n("restricted"),
+ false, UserAlert.MINOR);
+ fullConeAlert = new MyUserAlert(l10n("fullConeTitle"), l10n("fullCone"),
+ false, UserAlert.MINOR);
+ connectedAlert = new MyUserAlert(l10n("directTitle"), l10n("direct"),
+ false, UserAlert.MINOR);
}
+ private String l10n(String key) {
+ return L10n.getString("IPDetectorPluginManager."+key);
+ }
+
+ public String l10n(String key, String pattern, String value) {
+ return L10n.getString("IPDetectorPluginManager."+key, new String[] { pattern }, new String[] { value });
+ }
+
+ public String l10n(String key, String[] patterns, String[] values) {
+ return L10n.getString("IPDetectorPluginManager."+key, patterns, values);
+ }
+
/** Start the detector plugin manager. This includes running the plugin, if there
* is one, and if it is necessary to do so. */
void start() {
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/Node.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -96,6 +96,7 @@
import freenet.support.DoubleTokenBucket;
import freenet.support.Fields;
import freenet.support.FileLoggerHook;
+import freenet.support.HTMLEncoder;
import freenet.support.HTMLNode;
import freenet.support.HexUtil;
import freenet.support.IllegalBase64Exception;
@@ -1368,16 +1369,6 @@
System.out.println("Node constructor completed");
}
- static final String ERROR_SUN_NPTL =
- "WARNING: Your system appears to be running a Sun JVM with NPTL. " +
- "This has been known to cause the node to freeze up due to the JVM losing a lock. " +
- "Please disable NPTL if possible by setting the environment variable LD_ASSUME_KERNEL=2.4.1. " +
- "Recent versions of the freenet installer should have this already; either reinstall, or edit " +
- "run.sh (https://emu.freenetproject.org/svn/trunk/apps/installer/installclasspath/run.sh). " +
- "On some systems you may need to install the pthreads libraries to make this work. " +
- "Note that the node will try to automatically restart the node in the event of such a deadlock, " +
- "but this will cause some disruption, and may not be 100% reliable.";
-
public void start(boolean noSwaps) throws NodeInitException {
if(!noSwaps)
@@ -1505,9 +1496,10 @@
public HTMLNode getHTMLText() {
HTMLNode n = new HTMLNode("div");
- n.addChild("#", "The JVM you are using ("+System.getProperty("java.vm.version")+") is known to be ");
- n.addChild("a", "href", "/?_CHECKED_HTTP_=http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795").addChild("#", "buggy");
- n.addChild("#", ". It may produce OutOfMemoryError's when there is plenty of memory available. Please upgrade to at least Sun Java 1.4.2_13, 1.5.0_10 or 1.6 (recommended).");
+ L10n.addL10nSubstitution(n, "buggyJVMWithLink",
+ new String[] { "link", "/link", "version" },
+ new String[] { "<a href=\"/?_CHECKED_HTTP_=http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795\">",
+ "</a>", HTMLEncoder.encode(System.getProperty("java.vm.version")) });
return n;
}
@@ -1516,12 +1508,11 @@
}
public String getText() {
- return "The JVM you are using ("+System.getProperty("java.vm.version")+") is known to be " +
- "buggy. It may produce OutOfMemoryError's when there is plenty of memory available. Please upgrade to at least Sun Java 1.4.2_13, 1.5.0_10 or 1.6 (recommended). See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4855795 .";
+ return l10n("buggyJVM", "version", System.getProperty("java.vm.version"));
}
public String getTitle() {
- return "Buggy JVM Warning";
+ return l10n("buggyJVMTitle");
}
public boolean isValid() {
@@ -1550,6 +1541,9 @@
// If we are using the wrapper, we ignore:
// Any problem should be detected by the watchdog and the node will be restarted
+ // FIXME we should only check this on x86 (x86-64 doesn't have pthreads)
+ // FIXME why only if not running the wrapper? It's worse with the wrapper of course... but if that's
+ // the issue we should tell the user.
if(osName.equals("Linux") && jvmVendor.startsWith("Sun ") &&
((osVersion.indexOf("nptl")!=-1) || osVersion.startsWith("2.6") ||
osVersion.startsWith("2.7") || osVersion.startsWith("3."))
@@ -1566,8 +1560,8 @@
assumeKernel = WrapperManager.getProperties().getProperty("set.LD_ASSUME_KERNEL");
}
if((assumeKernel == null) || (assumeKernel.length() == 0) || (!(assumeKernel.startsWith("2.2") || assumeKernel.startsWith("2.4")))) {
- System.err.println(ERROR_SUN_NPTL);
- Logger.error(this, ERROR_SUN_NPTL);
+ System.err.println(l10n("deadlockWarning"));
+ Logger.error(this, l10n("deadlockWarning"));
clientCore.alerts.register(new UserAlert() {
public boolean userCanDismiss() {
@@ -1575,15 +1569,15 @@
}
public String getTitle() {
- return "Deadlocking likely due to buggy JVM/kernel combination";
+ return l10n("deadlockTitle");
}
public String getText() {
- return ERROR_SUN_NPTL;
+ return l10n("deadlockWarning");
}
public HTMLNode getHTMLText() {
- return new HTMLNode("div", ERROR_SUN_NPTL);
+ return new HTMLNode("div", l10n("deadlockWarning"));
}
public short getPriorityClass() {
@@ -1618,6 +1612,14 @@
}
+ private String l10n(String key) {
+ return L10n.getString("Node."+key);
+ }
+
+ private String l10n(String key, String pattern, String value) {
+ return L10n.getString("Node."+key, pattern, value);
+ }
+
public SimpleFieldSet exportPrivateFieldSet() {
SimpleFieldSet fs = exportPublicFieldSet(false);
fs.put("dsaPrivKey", myPrivKey.asFieldSet());
Modified: trunk/freenet/src/freenet/node/NodeIPDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPDetector.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/NodeIPDetector.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -12,6 +12,7 @@
import freenet.io.comm.FreenetInetAddress;
import freenet.io.comm.Peer;
import freenet.io.comm.UdpSocketManager;
+import freenet.l10n.L10n;
import freenet.node.useralerts.IPUndetectedUserAlert;
import freenet.node.useralerts.SimpleUserAlert;
import freenet.node.useralerts.UserAlert;
@@ -215,10 +216,8 @@
if(ipDetectorManager != null && ipDetectorManager.isEmpty()) {
if(maybeSymmetricAlert == null) {
- maybeSymmetricAlert = new SimpleUserAlert(true, "Connection problems",
- "It looks like your node may be behind a symmetric NAT. You may have connection " +
- "problems; if you are behind a symmetric NAT you will probably only be able to " +
- "connect to peers which are open to the internet.", UserAlert.ERROR);
+ maybeSymmetricAlert = new SimpleUserAlert(true, l10n("maybeSymmetricTitle"),
+ l10n("maybeSymmetric"), UserAlert.ERROR);
}
if(node.clientCore != null && node.clientCore.alerts != null)
node.clientCore.alerts.register(maybeSymmetricAlert);
@@ -240,6 +239,10 @@
return addedValidIP;
}
+ private String l10n(String key) {
+ return L10n.getString("NodeIPDetector."+key);
+ }
+
Peer[] getPrimaryIPAddress() {
if(lastIPAddress == null) return detectPrimaryIPAddress();
return lastIPAddress;
Modified: trunk/freenet/src/freenet/node/updater/NodeUpdaterManager.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/NodeUpdaterManager.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/updater/NodeUpdaterManager.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -10,6 +10,7 @@
import freenet.config.InvalidConfigValueException;
import freenet.config.SubConfig;
import freenet.keys.FreenetURI;
+import freenet.l10n.L10n;
import freenet.node.Node;
import freenet.node.NodeStarter;
import freenet.node.Version;
@@ -478,7 +479,7 @@
return false;
} catch (UpdateCatastropheException e) {
failUpdate(e.getMessage());
- node.clientCore.alerts.register(new SimpleUserAlert(false, "Catastrophic update failure", e.getMessage(), UserAlert.CRITICAL_ERROR));
+ node.clientCore.alerts.register(new SimpleUserAlert(false, l10n("updateCatastropheTitle"), e.getMessage(), UserAlert.CRITICAL_ERROR));
return false;
}
@@ -501,9 +502,17 @@
Logger.error(this, "Update failed: "+reason);
System.err.println("Update failed: "+reason);
this.killUpdateAlerts();
- node.clientCore.alerts.register(new SimpleUserAlert(true, "Update Failed!", "Update Failed: "+reason, UserAlert.ERROR));
+ node.clientCore.alerts.register(new SimpleUserAlert(true, l10n("updateFailedTitle"), l10n("updateFailed", "reason", reason), UserAlert.ERROR));
}
+ private String l10n(String key) {
+ return L10n.getString("NodeUpdateManager."+key);
+ }
+
+ private String l10n(String key, String pattern, String value) {
+ return L10n.getString("NodeUpdateManager."+key, pattern, value);
+ }
+
/**
* Called when a new jar has been downloaded.
* @param isExt If true, the new jar is the ext jar; if false, it is the main jar.
Modified: trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/useralerts/BuildOldAgeUserAlert.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -3,6 +3,7 @@
* http://www.gnu.org/ for further details of the GPL. */
package freenet.node.useralerts;
+import freenet.l10n.L10n;
import freenet.support.HTMLNode;
public class BuildOldAgeUserAlert implements UserAlert {
@@ -14,22 +15,26 @@
}
public String getTitle() {
- return "Build too old";
+ return l10n("tooOldTitle");
}
+ private String l10n(String key) {
+ return L10n.getString("BuildOldAgeUserAlert."+key);
+ }
+
+ private String l10n(String key, String pattern, String value) {
+ return L10n.getString("BuildOldAgeUserAlert."+key, pattern, value);
+ }
+
public String getText() {
if(lastGoodVersion == 0)
throw new IllegalArgumentException("Not valid");
- String s;
- s = "This node's software is older than the oldest version (Build #"+lastGoodVersion+") allowed by the newest peers we " +
- "try to connect to. Please update your node as soon as possible as you will not be " +
- "able to connect to peers labeled \"TOO NEW\" until you do. " +
- "(Freenet may leave your node in the dust of the past if you don't upgrade.)";
+ String s = l10n("tooOld", "lastgood", Integer.toString(lastGoodVersion));
return s;
}
public HTMLNode getHTMLText() {
- return new HTMLNode("div", "This node\u2019s software is older than the oldest version (Build #" + lastGoodVersion + ") allowed by the newest peers we try to connect to. Please update your node as soon as possible because you will not be able to connect to peers labelled \u201cTOO NEW\u201d until you do. (Freenet may leave your node in the dust of the past if you don\u2019t upgrade.");
+ return new HTMLNode("div", getText());
}
public short getPriorityClass() {
@@ -47,7 +52,7 @@
}
public String dismissButtonText(){
- return "Hide";
+ return L10n.getString("UserAlert.hide");
}
public boolean shouldUnregisterOnDismiss() {
Modified: trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/useralerts/ExtOldAgeUserAlert.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -1,5 +1,6 @@
package freenet.node.useralerts;
+import freenet.l10n.L10n;
import freenet.support.HTMLNode;
public class ExtOldAgeUserAlert implements UserAlert {
@@ -10,17 +11,19 @@
}
public String getTitle() {
- return "Freenet-ext too old";
+ return l10n("extTooOldTitle");
}
public String getText() {
- String s;
- s = "Your freenet-ext.jar file seems to be outdated : we strongly advise you to update it using http://downloads.freenetproject.org/alpha/freenet-ext.jar.";
- return s;
+ return l10n("extTooOld");
}
+ private String l10n(String key) {
+ return L10n.getString("ExtOldAgeUserAlert."+key);
+ }
+
public HTMLNode getHTMLText() {
- return new HTMLNode("div", "Your freenet-ext.jar file seems to be outdated: we strongly advise you to update it using http://downloads.freenetproject.org/alpha/freenet-ext.jar.");
+ return new HTMLNode("div", getText());
}
public short getPriorityClass() {
@@ -36,7 +39,7 @@
}
public String dismissButtonText(){
- return "Hide";
+ return L10n.getString("UserAlert.hide");
}
public boolean shouldUnregisterOnDismiss() {
Modified: trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/useralerts/IPUndetectedUserAlert.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -5,6 +5,7 @@
import freenet.config.Option;
import freenet.config.SubConfig;
+import freenet.l10n.L10n;
import freenet.node.Node;
import freenet.support.HTMLNode;
@@ -22,43 +23,40 @@
}
public String getTitle() {
- return "Unknown external address";
+ return l10n("unknownAddressTitle");
}
public String getText() {
if(node.ipDetector.isDetecting())
- return "Freenet is currently attempting to detect your external IP address. " +
- "If this takes more than a few minutes there is something wrong...";
+ return l10n("detecting");
else
- return "Freenet was unable to determine your external IP address " +
- "(or the IP address of your NAT or Firewall). You can still exchange " +
- "references with other people, however this will only work if the other " +
- "user is not behind a NAT or Firewall. As soon as you have connected to " +
- "one other user in this way, Freenet will be able to determine your " +
- "external IP address. You can determine your current IP address and tell " +
- "your node with the 'Temporary IP address hint' configuration parameter. "+
- "Also, it would be a good idea to forward the port "+node.getPortNumber()+" on your router for UDP to make it easy to connect to your node.";
+ return l10n("unknownAddress", "port", Integer.toString(node.getPortNumber()));
}
+ private String l10n(String key) {
+ return L10n.getString("IPUndetectedUserAlert."+key);
+ }
+
+ private String l10n(String key, String pattern, String value) {
+ return L10n.getString("IPUndetectedUserAlert."+key, pattern, value);
+ }
+
public HTMLNode getHTMLText() {
SubConfig sc = node.config.get("node");
Option o = sc.getOption("tempIPAddressHint");
HTMLNode textNode = new HTMLNode("div");
- if(node.ipDetector.isDetecting())
- textNode.addChild("#", "Freenet is currently attempting to detect your external IP address. If this takes more than a few minutes there is something wrong and you can use the Temporary IP Address Hint ");
- else
- textNode.addChild("#", "Freenet was unable to determine your external IP address (or the IP address of your NAT-device or firewall). You can still exchange references with other people, however this will only work if the other user is not behind a NAT-device or firewall. As soon as you have connected to one other user in this way, Freenet will be able to determine your external IP address. You can determine your current IP address and tell your node with the \u201cTemporary IP Address Hint\u201d. Also, it would be a good idea to forward the port "+node.getPortNumber()+" on your router for UDP to make it easy to connect to your node.");
- textNode.addChild("a", "href", "/config/", "configuration parameter");
- textNode.addChild("#", ".");
+ L10n.addL10nSubstitution(textNode, node.ipDetector.isDetecting() ? "detectingWithConfigLink" : "unknownAddressWithConfigLink",
+ new String[] { "link", "/link", "port" },
+ new String[] { "<a href=\"/config/\">", "</a>", Integer.toString(node.getPortNumber()) });
HTMLNode formNode = textNode.addChild("form", new String[] { "action", "method" }, new String[] { "/config/", "post" });
formNode.addChild("input", new String[] { "type", "name", "value" }, new String[] { "hidden", "formPassword", node.clientCore.formPassword });
HTMLNode listNode = formNode.addChild("ul", "class", "config");
HTMLNode itemNode = listNode.addChild("li");
itemNode.addChild("span", "class", "configshortdesc", o.getShortDesc()).addChild("input", new String[] { "type", "name", "value" }, new String[] { "text", sc.getPrefix() + ".tempIPAddressHint", o.getValueString() });
itemNode.addChild("span", "class", "configlongdesc", o.getLongDesc());
- formNode.addChild("input", new String[] { "type", "value" }, new String[] { "submit", "Apply" });
- formNode.addChild("input", new String[] { "type", "value" }, new String[] { "reset", "Reset" });
+ formNode.addChild("input", new String[] { "type", "value" }, new String[] { "submit", L10n.getString("UserAlert.apply") });
+ formNode.addChild("input", new String[] { "type", "value" }, new String[] { "reset", L10n.getString("UserAlert.apply") });
return textNode;
}
@@ -78,7 +76,7 @@
}
public String dismissButtonText(){
- return "Hide";
+ return L10n.getString("UserAlert.hide");
}
public boolean shouldUnregisterOnDismiss() {
Modified: trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java 2007-05-05 19:40:40 UTC (rev 13157)
+++ trunk/freenet/src/freenet/node/useralerts/MeaningfulNodeNameUserAlert.java 2007-05-05 21:01:33 UTC (rev 13158)
@@ -5,6 +5,7 @@
import freenet.config.Option;
import freenet.config.SubConfig;
+import freenet.l10n.L10n;
import freenet.node.Node;
import freenet.support.HTMLNode;
@@ -21,17 +22,15 @@
}
public String getTitle() {
- return "Your node name isn't defined";
+ return l10n("noNodeNickTitle");
}
+ private String l10n(String key) {
+ return L10n.getString("MeaningfulNodeNameUserAlert."+key);
+ }
+
public String getText() {
- StringBuffer buf = new StringBuffer();
-
- buf.append("It seems that your node doesn't know your nickname." +
- "Putting your e-mail address or IRC nickname here is generally speaking " +
- "a good idea and helps your friends to identify your node.");
-
- return buf.toString();
+ return l10n("noNodeNick");
}
public HTMLNode getHTMLText() {
@@ -39,17 +38,16 @@
Option o = sc.getOption("name");
HTMLNode alertNode = new HTMLNode("div");
- HTMLNode textNode = alertNode.addChild("div", "It seems that your node doesn\u2019t know your nickname.");
- textNode.addChild("a", "href", "/config/", "Configuration Page");
- textNode.addChild("#", ". Putting your e-mail address or IRC nickname there is generally speaking a good idea and helps your friends to identify your node.");
+ HTMLNode textNode = alertNode.addChild("div");
+ textNode.addChild(l10n("noNodeNick"));
HTMLNode formNode = alertNode.addChild("form", new String[] { "action", "method" }, new String[] { "/config/", "post" });
formNode.addChild("input", new String[] { "type", "name", "value" }, new String[] { "hidden", "formPassword", node.clientCore.formPassword });
HTMLNode listNode = formNode.addChild("ul", "class", "config");
HTMLNode itemNode = listNode.addChild("li");
itemNode.addChild("span", "class", "configshortdesc", o.getShortDesc()).addChild("input", new String[] { "type", "name", "value" }, new String[] { "text", sc.getPrefix() + ".name", o.getValueString() });
itemNode.addChild("span", "class", "configlongdesc", o.getLongDesc());
- formNode.addChild("input", new String[] { "type", "value" }, new String[] { "submit", "Apply" });
- formNode.addChild("input", new String[] { "type", "value" }, new String[] { "reset", "Reset" });
+ formNode.addChild("input", new String[] { "type", "value" }, new String[] { "submit", L10n.getString("UserAlert.apply") });
+ formNode.addChild("input", new String[] { "type", "value" }, new String[] { "reset", L10n.getString("UserAlert.apply") });
return alertNode;
}
More information about the cvs
mailing list