diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
new file mode 100644
index 000000000..59a6ecd21
--- /dev/null
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
@@ -0,0 +1,411 @@
+package net.i2p.router.web;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
+
+import net.i2p.router.RouterContext;
+
+/**
+ * Refactored from summarynoframe.jsp to save ~100KB
+ *
+ */
+public class SummaryBarRenderer {
+ private RouterContext _context;
+ private SummaryHelper _helper;
+
+ public SummaryBarRenderer(RouterContext context, SummaryHelper helper) {
+ _context = context;
+ _helper = helper;
+ }
+
+ public void renderSummaryHTML(Writer out) throws IOException {
+ StringBuilder buf = new StringBuilder(8*1024);
+
+ buf.append("
");
+
+ File lpath = new File(_context.getBaseDir(), "docs/toolbar.html");
+ // you better have target="_top" for the links in there...
+ if (lpath.exists()) {
+ ContentHelper linkhelper = new ContentHelper();
+ linkhelper.setPage(lpath.getAbsolutePath());
+ linkhelper.setMaxLines("100");
+ buf.append(linkhelper.getContent());
+ } else {
+ buf.append("\n" +
+
+ "
\n" +
+
+ "
\n" +
+
+ "\n");
+
+ out.write(buf.toString());
+ buf.setLength(0);
+ }
+
+
+
+ buf.append("
" +
+ "
\n" +
+
+ "" +
+ "")
+ .append(_("Version"))
+ .append(": | " +
+ "")
+ .append(_helper.getVersion())
+ .append(" |
\n" +
+
+ "" +
+ "")
+ .append(_("Uptime"))
+ .append(": | " +
+ "")
+ .append(_helper.getUptime())
+ .append(" |
\n" +
+
+ "
\n");
+
+
+ if (_helper.updateAvailable() || _helper.unsignedUpdateAvailable()) {
+ // display all the time so we display the final failure message
+ buf.append("
").append(UpdateHandler.getStatus());
+ if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress"))) {
+ // nothing
+ } else if(
+ // isDone() is always false for now, see UpdateHandler
+ // ((!update.isDone()) &&
+ _helper.getAction() == null &&
+ _helper.getUpdateNonce() == null &&
+ ConfigRestartBean.getRestartTimeRemaining() > 12*60*1000) {
+ long nonce = _context.random().nextLong();
+ String prev = System.getProperty("net.i2p.router.web.UpdateHandler.nonce");
+ if (prev != null)
+ System.setProperty("net.i2p.router.web.UpdateHandler.noncePrev", prev);
+ System.setProperty("net.i2p.router.web.UpdateHandler.nonce", nonce+"");
+ String uri = _helper.getRequestURI();
+ buf.append("\n");
+ }
+ }
+
+
+
+
+ buf.append("")
+ .append(ConfigRestartBean.renderStatus(_helper.getRequestURI(), _helper.getAction(), _helper.getConsoleNonce()))
+
+ .append("
\n" +
+
+ "\n" +
+
+ "")
+ .append(_("Active"))
+ .append(": | ")
+ .append(_helper.getActivePeers())
+ .append('/')
+ .append(_helper.getActiveProfiles())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Fast"))
+ .append(": | ")
+ .append(_helper.getFastPeers())
+ .append(" |
\n" +
+
+ "")
+ .append(_("High capacity"))
+ .append(": | ")
+ .append(_helper.getHighCapacityPeers())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Integrated"))
+ .append(": | ")
+ .append(_helper.getWellIntegratedPeers())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Known"))
+ .append(": | ")
+ .append(_helper.getAllPeers())
+ .append(" |
\n" +
+
+ "
\n");
+
+
+ out.write(buf.toString());
+ buf.setLength(0);
+
+
+ if (_helper.showFirewallWarning()) {
+ buf.append("");
+ }
+
+ boolean reseedInProgress = Boolean.valueOf(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress")).booleanValue();
+ // If showing the reseed link is allowed
+ if (_helper.allowReseed()) {
+ if (reseedInProgress) {
+ // While reseed occurring, show status message instead
+ buf.append("").append(System.getProperty("net.i2p.router.web.ReseedHandler.statusMessage","")).append("
");
+ } else {
+ // While no reseed occurring, show reseed link
+ long nonce = _context.random().nextLong();
+ String prev = System.getProperty("net.i2p.router.web.ReseedHandler.nonce");
+ if (prev != null) System.setProperty("net.i2p.router.web.ReseedHandler.noncePrev", prev);
+ System.setProperty("net.i2p.router.web.ReseedHandler.nonce", nonce+"");
+ String uri = _helper.getRequestURI();
+ buf.append("\n");
+ }
+ }
+ // If a new reseed ain't running, and the last reseed had errors, show error message
+ if (!reseedInProgress) {
+ String reseedErrorMessage = System.getProperty("net.i2p.router.web.ReseedHandler.errorMessage","");
+ if (reseedErrorMessage.length() > 0) {
+ buf.append("").append(reseedErrorMessage).append("
");
+ }
+ }
+
+
+
+ buf.append("
" +
+ "\n" +
+
+ "1s: | ")
+ .append(_helper.getInboundSecondKBps())
+ .append('/')
+ .append(_helper.getOutboundSecondKBps())
+ .append("K/s |
\n" +
+
+ "5m: | ")
+ .append(_helper.getInboundFiveMinuteKBps())
+ .append('/')
+ .append(_helper.getOutboundFiveMinuteKBps())
+ .append("K/s |
\n" +
+
+ "")
+ .append(_("Total"))
+ .append(": | ")
+ .append(_helper.getInboundLifetimeKBps())
+ .append('/')
+ .append(_helper.getOutboundLifetimeKBps())
+ .append("K/s |
\n" +
+
+ "")
+ .append(_("Used"))
+ .append(": | ")
+ .append(_helper.getInboundTransferred())
+ .append('/')
+ .append(_helper.getOutboundTransferred())
+ .append(" |
\n" +
+
+ "
" +
+ "\n" +
+
+ "")
+ .append(_("Exploratory"))
+ .append(": | ")
+ .append(_helper.getInboundTunnels())
+ .append('/')
+ .append(_helper.getOutboundTunnels())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Client"))
+ .append(": | ")
+ .append(_helper.getInboundClientTunnels())
+ .append('/')
+ .append(_helper.getOutboundClientTunnels())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Participating"))
+ .append(": | ")
+ .append(_helper.getParticipatingTunnels())
+ .append(" |
\n" +
+
+ "
" +
+ "\n" +
+
+ "")
+ .append(_("Job lag"))
+ .append(": | ")
+ .append(_helper.getJobLag())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Message delay"))
+ .append(": | ")
+ .append(_helper.getMessageDelay())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Tunnel lag"))
+ .append(": | ")
+ .append(_helper.getTunnelLag())
+ .append(" |
\n" +
+
+ "")
+ .append(_("Backlog"))
+ .append(": | ")
+ .append(_helper.getInboundBacklog())
+ .append(" |
\n" +
+
+ "
")
+ .append(_helper.getTunnelStatus())
+ .append("
\n")
+ .append(_helper.getDestinations());
+
+
+ out.write(buf.toString());
+ }
+
+ /** translate a string */
+ private String _(String s) {
+ return Messages.getString(s, _context);
+ }
+}
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
index 369d24770..fa366927a 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
@@ -1,5 +1,6 @@
package net.i2p.router.web;
+import java.io.IOException;
import java.text.Collator;
import java.text.DecimalFormat;
import java.util.ArrayList;
@@ -563,4 +564,28 @@ public class SummaryHelper extends HelperBase {
public String getUnsignedUpdateVersion() {
return NewsFetcher.getInstance(_context).unsignedUpdateVersion();
}
+
+ /** output the summary bar to _out */
+ public void renderSummaryBar() throws IOException {
+ SummaryBarRenderer renderer = new SummaryBarRenderer(_context, this);
+ renderer.renderSummaryHTML(_out);
+ }
+
+ /* below here is stuff we need to get from summarynoframe.jsp to SummaryBarRenderer */
+
+ private String _action;
+ public void setAction(String s) { _action = s; }
+ public String getAction() { return _action; }
+
+ private String _consoleNonce;
+ public void setConsoleNonce(String s) { _consoleNonce = s; }
+ public String getConsoleNonce() { return _consoleNonce; }
+
+ private String _updateNonce;
+ public void setUpdateNonce(String s) { _updateNonce = s; }
+ public String getUpdateNonce() { return _updateNonce; }
+
+ private String _requestURI;
+ public void setRequestURI(String s) { _requestURI = s; }
+ public String getRequestURI() { return _requestURI; }
}
diff --git a/apps/routerconsole/jsp/summarynoframe.jsp b/apps/routerconsole/jsp/summarynoframe.jsp
index c772a8ffc..0279a038a 100644
--- a/apps/routerconsole/jsp/summarynoframe.jsp
+++ b/apps/routerconsole/jsp/summarynoframe.jsp
@@ -7,126 +7,12 @@
%>
" />
-
-
-
-
-" />
-
-<% java.io.File lpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "docs/toolbar.html");
- // you better have target="_top" for the links in there...
- if (lpath.exists()) { %>
-
-
-
-
-<% } else { %>
-
-
-
-
-<% } %>
-
-, never reveal it to anyone" href="netdb.jsp?r=." target="_top">Local Identity
-
-Version: |
- |
-
-Uptime: |
-
- |
-
+" />
+" />
+" />
+
+
<%
- if (helper.updateAvailable() || helper.unsignedUpdateAvailable()) {
- // display all the time so we display the final failure message
- out.print("
" + net.i2p.router.web.UpdateHandler.getStatus());
- if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress"))) {
- } else if((!update.isDone()) &&
- request.getParameter("action") == null &&
- request.getParameter("updateNonce") == null &&
- net.i2p.router.web.ConfigRestartBean.getRestartTimeRemaining() > 12*60*1000) {
- long nonce = new java.util.Random().nextLong();
- String prev = System.getProperty("net.i2p.router.web.UpdateHandler.nonce");
- if (prev != null) System.setProperty("net.i2p.router.web.UpdateHandler.noncePrev", prev);
- System.setProperty("net.i2p.router.web.UpdateHandler.nonce", nonce+"");
- String uri = request.getRequestURI();
- out.print("\n");
- }
- }
+ // moved to java for ease of translation and to avoid 30 copies
+ helper.renderSummaryBar();
%>
-
-<%=net.i2p.router.web.ConfigRestartBean.renderStatus(request.getRequestURI(), request.getParameter("action"), request.getParameter("consoleNonce"))%>
-
-
-Active: | / |
-Fast: | |
-High capacity: | |
-Integrated: | |
-Known: | |
-
-<%
- if (helper.showFirewallWarning()) {
- %><%
- }
- boolean reseedInProgress = Boolean.valueOf(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress")).booleanValue();
- // If showing the reseed link is allowed
- if (helper.allowReseed()) {
- if (reseedInProgress) {
- // While reseed occurring, show status message instead
- out.print("" + System.getProperty("net.i2p.router.web.ReseedHandler.statusMessage","") + "
");
- } else {
- // While no reseed occurring, show reseed link
- long nonce = new java.util.Random().nextLong();
- String prev = System.getProperty("net.i2p.router.web.ReseedHandler.nonce");
- if (prev != null) System.setProperty("net.i2p.router.web.ReseedHandler.noncePrev", prev);
- System.setProperty("net.i2p.router.web.ReseedHandler.nonce", nonce+"");
- String uri = request.getRequestURI();
- out.print("\n");
- }
- }
- // If a new reseed ain't running, and the last reseed had errors, show error message
- if (!reseedInProgress) {
- String reseedErrorMessage = System.getProperty("net.i2p.router.web.ReseedHandler.errorMessage","");
- if (reseedErrorMessage.length() > 0) {
- out.print("" + reseedErrorMessage + "
");
- }
- }
- %>
-
-
-1s: | /K/s |
-5m: | /K/s |
-Total: | /K/s |
-Used: | / |
-
-
-Exploratory: | / |
-Client: | / |
-Participating: | |
-
-
-Job lag: | |
-Message delay: | |
-Tunnel lag: | |
-Backlog: | |
-
diff --git a/apps/routerconsole/locale/messages_de.po b/apps/routerconsole/locale/messages_de.po
index 5293b999f..a5d314613 100644
--- a/apps/routerconsole/locale/messages_de.po
+++ b/apps/routerconsole/locale/messages_de.po
@@ -1,25 +1,276 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
+# I2P
+# Copyright (C) 2009 The I2P Project
+# This file is distributed under the same license as the routerconsole package.
+# To contribute translations, see http://www.i2p2.de/newdevelopers
+# foo , 2009.
#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: I2P routerconsole\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-18 10:03-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
+"POT-Creation-Date: 2009-10-19 13:41+0000\n"
+"PO-Revision-Date: 2009-10-19 12:50+0000\n"
+"Last-Translator: foo \n"
+"Language-Team: foo \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: German\n"
-#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:441
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:293
msgid "Update policy"
msgstr "Update policy in german foobarbaz"
#: src/net/i2p/router/web/ConfigUpdateHelper.java:90
msgid "Notify only"
msgstr "Notify only in german"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:26
+#: src/net/i2p/router/web/SummaryBarRenderer.java:28
+msgid "I2P Router Console"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:42
+msgid "I2P Services"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:48
+msgid "Manage your I2P hosts file here (I2P domain name resolution)"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:50
+msgid "Addressbook"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:54
+msgid "Built-in anonymous BitTorrent Client"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:56
+msgid "Torrents"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:60
+msgid "Anonymous webmail client"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:62
+msgid "Webmail"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:66
+msgid "Anonymous resident webserver"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:68
+msgid "Webserver"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:72
+msgid "Configure I2P Router"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:74
+msgid "I2P Internals"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:80
+#: src/net/i2p/router/web/SummaryBarRenderer.java:339
+msgid "View existing tunnels and tunnel build status"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:82
+msgid "Tunnels"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:86
+#: src/net/i2p/router/web/SummaryBarRenderer.java:221
+msgid "Show all current peer connections"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:88
+#: src/net/i2p/router/web/SummaryBarRenderer.java:223
+msgid "Peers"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:92
+msgid "Show recent peer performance profiles"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:94
+msgid "Profiles"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:98
+msgid "Show list of all known I2P routers"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:100
+msgid "NetDB"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:104
+msgid "Health Report"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:106
+msgid "Logs"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:110
+msgid "Show the router's workload, and how it's performing"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:112
+msgid "Jobs"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:116
+msgid "Graph router performance"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:118
+msgid "Graphs"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:122
+msgid "Textual router performance statistics"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:124
+msgid "Stats"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:134
+msgid "I2P Router Help"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:136
+msgid "General"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:139
+msgid "Your unique I2P router identity is"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:143
+msgid "never reveal it to anyone"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:145
+msgid "Local Identity"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:150
+msgid "Version"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:157
+msgid "How long we've been running for this session"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:160
+msgid "Uptime"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:167
+msgid ""
+"Help with configuring your firewall and router for optimal I2P performance"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:194
+msgid "Download"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:198
+#: src/net/i2p/router/web/SummaryBarRenderer.java:207
+msgid "Update"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:203
+msgid "Download Unsigned"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:229
+msgid "Active"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:237
+msgid "Fast"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:243
+msgid "High capacity"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:249
+msgid "Integrated"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:255
+msgid "Known"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:269
+msgid "Help with firewall configuration"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:271
+msgid "Check NAT/firewall"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:304
+msgid "Configure router bandwidth allocation"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:306
+msgid "Bandwidth in/out"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:323
+msgid "Total"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:331
+msgid "Used"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:341
+msgid "Tunnels in/out"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:346
+msgid "Exploratory"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:354
+msgid "Client"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:362
+msgid "Participating"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:368
+msgid "What's in the router's job queue?"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:370
+msgid "Congestion"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:375
+msgid "Job lag"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:381
+msgid "Message delay"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:387
+msgid "Tunnel lag"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:393
+msgid "Backlog"
+msgstr ""
diff --git a/apps/routerconsole/locale/messages_zh.po b/apps/routerconsole/locale/messages_zh.po
index 9e8818730..953f13adf 100644
--- a/apps/routerconsole/locale/messages_zh.po
+++ b/apps/routerconsole/locale/messages_zh.po
@@ -1,25 +1,276 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
+# I2P
+# Copyright (C) 2009 The I2P Project
+# This file is distributed under the same license as the routerconsole package.
+# To contribute translations, see http://www.i2p2.de/newdevelopers
+# foo , 2009.
#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: I2P routerconsole\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-18 10:03-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
+"POT-Creation-Date: 2009-10-19 13:41+0000\n"
+"PO-Revision-Date: 2009-10-19 12:59+0000\n"
+"Last-Translator: foo \n"
+"Language-Team: foo \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
-#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:441
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:293
msgid "Update policy"
msgstr ""
#: src/net/i2p/router/web/ConfigUpdateHelper.java:90
msgid "Notify only"
msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:26
+#: src/net/i2p/router/web/SummaryBarRenderer.java:28
+msgid "I2P Router Console"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:42
+msgid "I2P Services"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:48
+msgid "Manage your I2P hosts file here (I2P domain name resolution)"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:50
+msgid "Addressbook"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:54
+msgid "Built-in anonymous BitTorrent Client"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:56
+msgid "Torrents"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:60
+msgid "Anonymous webmail client"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:62
+msgid "Webmail"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:66
+msgid "Anonymous resident webserver"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:68
+msgid "Webserver"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:72
+msgid "Configure I2P Router"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:74
+msgid "I2P Internals"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:80
+#: src/net/i2p/router/web/SummaryBarRenderer.java:339
+msgid "View existing tunnels and tunnel build status"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:82
+msgid "Tunnels"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:86
+#: src/net/i2p/router/web/SummaryBarRenderer.java:221
+msgid "Show all current peer connections"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:88
+#: src/net/i2p/router/web/SummaryBarRenderer.java:223
+msgid "Peers"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:92
+msgid "Show recent peer performance profiles"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:94
+msgid "Profiles"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:98
+msgid "Show list of all known I2P routers"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:100
+msgid "NetDB"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:104
+msgid "Health Report"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:106
+msgid "Logs"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:110
+msgid "Show the router's workload, and how it's performing"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:112
+msgid "Jobs"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:116
+msgid "Graph router performance"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:118
+msgid "Graphs"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:122
+msgid "Textual router performance statistics"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:124
+msgid "Stats"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:134
+msgid "I2P Router Help"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:136
+msgid "General"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:139
+msgid "Your unique I2P router identity is"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:143
+msgid "never reveal it to anyone"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:145
+msgid "Local Identity"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:150
+msgid "Version"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:157
+msgid "How long we've been running for this session"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:160
+msgid "Uptime"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:167
+msgid ""
+"Help with configuring your firewall and router for optimal I2P performance"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:194
+msgid "Download"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:198
+#: src/net/i2p/router/web/SummaryBarRenderer.java:207
+msgid "Update"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:203
+msgid "Download Unsigned"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:229
+msgid "Active"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:237
+msgid "Fast"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:243
+msgid "High capacity"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:249
+msgid "Integrated"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:255
+msgid "Known"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:269
+msgid "Help with firewall configuration"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:271
+msgid "Check NAT/firewall"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:304
+msgid "Configure router bandwidth allocation"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:306
+msgid "Bandwidth in/out"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:323
+msgid "Total"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:331
+msgid "Used"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:341
+msgid "Tunnels in/out"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:346
+msgid "Exploratory"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:354
+msgid "Client"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:362
+msgid "Participating"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:368
+msgid "What's in the router's job queue?"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:370
+msgid "Congestion"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:375
+msgid "Job lag"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:381
+msgid "Message delay"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:387
+msgid "Tunnel lag"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:393
+msgid "Backlog"
+msgstr ""