From 83cacaad05b3b10716008498798e48b759c06734 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 19 Oct 2009 13:49:47 +0000 Subject: [PATCH] * summarynoframe.jsp: - Refactor to SummaryBarRenderer (saves 100KB) - Add translate tags - Use context RNG for nonces - Transitional HTML style for input tags --- .../i2p/router/web/SummaryBarRenderer.java | 411 ++++++++++++++++++ .../src/net/i2p/router/web/SummaryHelper.java | 25 ++ apps/routerconsole/jsp/summarynoframe.jsp | 128 +----- apps/routerconsole/locale/messages_de.po | 273 +++++++++++- apps/routerconsole/locale/messages_zh.po | 273 +++++++++++- 5 files changed, 967 insertions(+), 143 deletions(-) create mode 100644 apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java 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("

") + .append(_("I2P Services")) + .append("

\n" + + + "
" + + + "
") + .append(_("Addressbook")) + .append("\n" + + + "") + .append(_("Torrents")) + .append("\n" + + + "") + .append(_("Webmail")) + .append("\n" + + + "") + .append(_("Webserver")) + .append("
\n" + + + "

") + .append(_("I2P Internals")) + .append("


\n" + + + "
\n" + + + "") + .append(_("Tunnels")) + .append("\n" + + + "") + .append(_("Peers")) + .append("\n" + + + "") + .append(_("Profiles")) + .append("\n" + + + "") + .append(_("NetDB")) + .append("\n" + + + "") + .append(_("Logs")) + .append("\n" + + + "") + .append(_("Jobs")) + .append("\n" + + + "") + .append(_("Graphs")) + .append("\n" + + + "") + .append(_("Stats")) + .append("
\n"); + + out.write(buf.toString()); + buf.setLength(0); + } + + + + buf.append("

") + .append(_("General")) + .append("


" + + "

") + .append(_("Local Identity")) + .append("


\n" + + + "" + + "\n" + + + "" + + "" + + "
" + + "") + .append(_("Version")) + .append(":") + .append(_helper.getVersion()) + .append("
") + .append(_("Uptime")) + .append(":") + .append(_helper.getUptime()) + .append("
\n" + + + "

") + .append(_helper.getReachability()) + .append("


\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("\n"); + if (_helper.updateAvailable()) { + buf.append("\n"); + } + if (_helper.unsignedUpdateAvailable()) { + buf.append("\n"); + } + buf.append("
\n"); + } + } + + + + + buf.append("

") + .append(ConfigRestartBean.renderStatus(_helper.getRequestURI(), _helper.getAction(), _helper.getConsoleNonce())) + + .append("


") + .append(_("Peers")) + .append("


\n" + + + "\n" + + + "\n" + + + "\n" + + + "\n" + + + "\n" + + + "\n" + + + "
") + .append(_("Active")) + .append(":") + .append(_helper.getActivePeers()) + .append('/') + .append(_helper.getActiveProfiles()) + .append("
") + .append(_("Fast")) + .append(":") + .append(_helper.getFastPeers()) + .append("
") + .append(_("High capacity")) + .append(":") + .append(_helper.getHighCapacityPeers()) + .append("
") + .append(_("Integrated")) + .append(":") + .append(_helper.getWellIntegratedPeers()) + .append("
") + .append(_("Known")) + .append(":") + .append(_helper.getAllPeers()) + .append("

\n"); + + + out.write(buf.toString()); + buf.setLength(0); + + + if (_helper.showFirewallWarning()) { + buf.append("

") + .append(_("Check NAT/firewall")) + .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"); + buf.append("\n"); + 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("

") + .append(_("Bandwidth in/out")) + .append("


" + + "\n" + + + "\n" + + + "\n" + + + "\n" + + + "
1s:") + .append(_helper.getInboundSecondKBps()) + .append('/') + .append(_helper.getOutboundSecondKBps()) + .append("K/s
5m:") + .append(_helper.getInboundFiveMinuteKBps()) + .append('/') + .append(_helper.getOutboundFiveMinuteKBps()) + .append("K/s
") + .append(_("Total")) + .append(":") + .append(_helper.getInboundLifetimeKBps()) + .append('/') + .append(_helper.getOutboundLifetimeKBps()) + .append("K/s
") + .append(_("Used")) + .append(":") + .append(_helper.getInboundTransferred()) + .append('/') + .append(_helper.getOutboundTransferred()) + .append("
\n" + + + "

") + .append(_("Tunnels in/out")) + .append("


" + + "\n" + + + "\n" + + + "\n" + + + "\n" + + + "
") + .append(_("Exploratory")) + .append(":") + .append(_helper.getInboundTunnels()) + .append('/') + .append(_helper.getOutboundTunnels()) + .append("
") + .append(_("Client")) + .append(":") + .append(_helper.getInboundClientTunnels()) + .append('/') + .append(_helper.getOutboundClientTunnels()) + .append("
") + .append(_("Participating")) + .append(":") + .append(_helper.getParticipatingTunnels()) + .append("

") + .append(_("Congestion")) + .append("


" + + "\n" + + + "\n" + + + "\n" + + + "\n" + + + "\n" + + + "
") + .append(_("Job lag")) + .append(":") + .append(_helper.getJobLag()) + .append("
") + .append(_("Message delay")) + .append(":") + .append(_helper.getMessageDelay()) + .append("
") + .append(_("Tunnel lag")) + .append(":") + .append(_helper.getTunnelLag()) + .append("
") + .append(_("Backlog")) + .append(":") + .append(_helper.getInboundBacklog()) + .append("

") + .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 @@ %> " /> - - - - -" /> -I2P Router Console
-<% 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 { %> -

I2P Services

-
-
Addressbook -Torrents -Webmail -Webserver
-

I2P Internals


-
-Tunnels -Peers -Profiles -NetDB -Logs -Jobs -Graphs -Stats
-<% } %> -

General


-

, 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"); - out.print("\n"); - if (helper.updateAvailable()) - out.print("\n"); - if (helper.unsignedUpdateAvailable()) - out.print("\n"); - 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"))%> -


Peers


- - - - - - -
Active:/
Fast:
High capacity:
Integrated:
Known:

-<% - if (helper.showFirewallWarning()) { - %>

Check NAT/firewall

<% - } - 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"); - out.print("\n"); - 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 + "
"); - } - } - %> -

Bandwidth in/out


- - - - -
1s:/K/s
5m:/K/s
Total:/K/s
Used:/
-

Tunnels in/out


- - - - -
Exploratory:/
Client:/
Participating:

Congestion


- - - - - -
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 ""