diff --git a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java
index f51c4e772dce1f209096d85ed4f5e48db0c0caef..b57ed4652765475a12401e0116fa225aca3fad52 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java
@@ -10,7 +10,7 @@ public class LogsHelper extends HelperBase {
     
     public String getLogs() {
         String str = formatMessages(_context.logManager().getBuffer().getMostRecentMessages());
-        return "Location: <code>" + _context.logManager().currentFile() + "</code><br><br>" + str;
+        return "Location: <b><code>" + _context.logManager().currentFile() + "</code></b><br><br>" + str;
     }
     
     public String getCriticalLogs() {
@@ -34,7 +34,7 @@ public class LogsHelper extends HelperBase {
             return "";
         else {
             str = str.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
-            return "Location:<code> " + f.getAbsolutePath() + "</code> <pre>" + str + "</pre>";
+            return "Location:<b><code> " + f.getAbsolutePath() + "</code></b> <pre>" + str + "</pre>";
         }
     }
     
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java b/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
index 11848ef46a2e8e691da0cc86781e87390fca3eab..0a4035f78b2ead5004ab605405f9ad2d7e1b9c38 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
@@ -77,7 +77,7 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
          long now = _context.clock().now();
          return
              (_lastUpdated > 0 ? "News last updated " + DataHelper.formatDuration(now - _lastUpdated) + " ago" : "") +
-             (_lastFetch > _lastUpdated ? ", last checked " + DataHelper.formatDuration(now - _lastFetch) + " ago" : "");
+             (_lastFetch > _lastUpdated ? "; last checked " + DataHelper.formatDuration(now - _lastFetch) + " ago." : "");
     }
     
     public void run() {
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
index 0a96bdbc29d07571ba675db29c245e40117778de..29fb47ada75b13745f55e5ca2c4c170cd19cad2f 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
@@ -226,9 +226,9 @@ class ProfileOrganizerRenderer {
         buf.append("</table>");
 
         buf.append("<h3>Thresholds:</h3>");
-        buf.append("<b>Speed:</b> ").append(num(_organizer.getSpeedThreshold())).append(" (").append(fast).append(" fast peers)<br>");
+        buf.append("<p><b>Speed:</b> ").append(num(_organizer.getSpeedThreshold())).append(" (").append(fast).append(" fast peers)<br>");
         buf.append("<b>Capacity:</b> ").append(num(_organizer.getCapacityThreshold())).append(" (").append(reliable).append(" high capacity peers)<br>");
-        buf.append("<b>Integration:</b> ").append(num(_organizer.getIntegrationThreshold())).append(" (").append(integrated).append(" well integrated peers)");
+        buf.append("<b>Integration:</b> ").append(num(_organizer.getIntegrationThreshold())).append(" (").append(integrated).append(" well integrated peers)</p>");
         buf.append("<h3>Definitions:</h3><ul>" +
                    "<li><b>groups</b>: as determined by the profile organizer</li>" +
                    "<li><b>caps</b>: capabilities in the netDb, not used to determine profiles</li>" +
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java b/apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java
index 342d5d95f1eb398f9f716611e59c8269945b9412..15322edf4b89d5245c9a0c74f89d5ed41b4c4e3f 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java
@@ -58,7 +58,7 @@ public class StatsGenerator {
         buf.append("Statistics gathered during this router's uptime (");
         long uptime = _context.router().getUptime();
         buf.append(DataHelper.formatDuration(uptime));
-        buf.append(").  The data gathered is quantized over a 1 minute period, so should just be used as an estimate<p />");
+        buf.append(").  The data gathered is quantized over a 1 minute period, so should just be used as an estimate.");
 
         out.write(buf.toString());
         buf.setLength(0);
@@ -138,7 +138,7 @@ public class StatsGenerator {
             buf.append("</i><br>");
         }
         if (rate.getLifetimeEventCount() <= 0) {
-            buf.append("No lifetime events<br>&nbsp;<br>");
+            buf.append("No lifetime events<br>");
             return;
         }
         long now = _context.clock().now();
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 fa366927a5e8c9da0cb187ceabd4d95e47b1b823..cffca854db5dcc571eaa4cf3bbe6f89c4eb10d6c 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
@@ -357,7 +357,7 @@ public class SummaryHelper extends HelperBase {
         Collections.sort(clients, new AlphaComparator());
         
         StringBuilder buf = new StringBuilder(512);
-        buf.append("<h3><a href=\"i2ptunnel/index.jsp\" target=\"_blank\" title=\"Add/remove/edit &amp; control your client and server tunnels (local destinations).\"  title=\"View existing tunnels and tunnel build status.\">Local destinations</a></h3><hr><table>");
+        buf.append("<h3><a href=\"i2ptunnel/index.jsp\" target=\"_blank\" title=\"Add/remove/edit &amp; control your client and server tunnels\">Local Destinations</a></h3><hr><div class=\"tunnels\"><table>");
         
         for (Iterator iter = clients.iterator(); iter.hasNext(); ) {
             Destination client = (Destination)iter.next();
@@ -389,10 +389,10 @@ public class SummaryHelper extends HelperBase {
                 }
             } else {
                 // yellow light
-                buf.append("<td><img src=\"/themes/console/images/local_inprogress.png\" alt=\"Building&hellip;\" title=\"Tunnel building in progress&hellip;\"></td></tr>\n");
+                buf.append("<td><img src=\"/themes/console/images/local_inprogress.png\" alt=\"Building&hellip;\" title=\"Building tunnels&hellip;\"></td></tr>\n");
             }
         }
-        buf.append("</table><hr>\n");
+        buf.append("</table></div><hr>\n");
         return buf.toString();
     }
     
diff --git a/apps/routerconsole/jsp/config.jsp b/apps/routerconsole/jsp/config.jsp
index d33bf38c9f318e1579bedfed8d9b5517b2203351..3d7ffcb66019e9c26905006c3897e9c46a7fdce1 100644
--- a/apps/routerconsole/jsp/config.jsp
+++ b/apps/routerconsole/jsp/config.jsp
@@ -28,7 +28,7 @@
  <h3>Bandwidth limiter</h3><p>
  <b>I2P will work best if you configure your rates to match the speed of your internet connection.</b>
  </p>
-   <div class="wideload"><table><tr><td><input style="text-align: right; width: 5em;" name="inboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="inboundRate" />" /> KBps In
+   <div class="wideload"><p><table><tr><td><input style="text-align: right; width: 5em;" name="inboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="inboundRate" />" /> KBps In
         </td><td>(<jsp:getProperty name="nethelper" property="inboundRateBits" />)</td>
 <!-- let's keep this simple...
  bursting up to
@@ -48,16 +48,16 @@
     </tr><tr>
         <td><jsp:getProperty name="nethelper" property="sharePercentageBox" /> Share</td>
         <td>(<jsp:getProperty name="nethelper" property="shareRateBits" />)
-</td></tr></table></div></p>
+</td></tr></table></p></div></p>
  <% int share = nethelper.getShareBandwidth();
     if (share < 12) {
-        out.print("<b>NOTE</b>: You have configured I2P to share only " + share + "KBps. ");
+        out.print("<p><b>NOTE</b>: You have configured I2P to share only " + share + "KBps. ");
         out.print("I2P requires at least 12KBps to enable sharing. ");
         out.print("Please enable sharing (participating in tunnels) by configuring more bandwidth. ");
-        out.print("It improves your anonymity by creating cover traffic, and helps the network.<br>");
+        out.print("It improves your anonymity by creating cover traffic, and helps the network.</p>");
     } else {
-        out.print("You have configured I2P to share<b> " + share + "KBps</b>. ");
-        out.print("The higher the share bandwidth the more you improve your anonymity and help the network.<hr>");
+        out.print("<p>You have configured I2P to share<b> " + share + "KBps</b>. ");
+        out.print("The higher the share bandwidth the more you improve your anonymity and help the network.</p><hr>");
     }
  %>
 <div class="formaction">
@@ -160,7 +160,7 @@
 <p>
  UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect the external IP address
  and forward ports.
- UPnP support is beta, and may not work for any number of reasons:
+UPnP support is beta, and may not work for any number of reasons:
 <ul>
 <li class="tidylist">No UPnP-compatible device present
 <li class="tidylist">UPnP disabled on the device
@@ -168,9 +168,9 @@
 <li class="tidylist">Bugs in the device's UPnP implementation
 <li class="tidylist">Multiple firewall/routers in the internet connection path
 <li class="tidylist">UPnP device change, reset, or address change
-</ul><br>
+</ul></p><p>
  Reviewing the <a href="peers.jsp#upnp">UPnP status</a> may help.
- UPnP may be enabled or disabled above, but a change requires a router restart to take effect.
+UPnP may be enabled or disabled above, but a change requires a router restart to take effect.</p>
 <p>Hostnames entered above will be published in the network database.
     They are <b>not private</b>.
     Also, <b>do not enter a private IP address</b> like 127.0.0.1 or 192.168.1.1.
@@ -233,7 +233,7 @@
 <li class="tidylist"><b>ERR - Client Manager I2CP Error - check logs</b> -
      This is usually due to a port 7654 conflict. Check the logs to verify. Do you have another I2P instance running?
      Stop the conflicting program and restart I2P.
- </ul><hr>
+ </ul></p><hr>
       <!--
  <b>Dynamic Router Keys: </b>
  <input type="checkbox" class="optbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br>
diff --git a/apps/routerconsole/jsp/configadvanced.jsp b/apps/routerconsole/jsp/configadvanced.jsp
index 00e4a193a19030fe0254466f329f0f3e5c140be9..ed48e544bbeb760a06ad6c6413bda373998e76d4 100644
--- a/apps/routerconsole/jsp/configadvanced.jsp
+++ b/apps/routerconsole/jsp/configadvanced.jsp
@@ -2,8 +2,9 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - config advanced</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config advanced")%>
 </head><body>
 
 <%@include file="summary.jsp" %>
@@ -11,7 +12,7 @@
 <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
 <jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
 
-<h1>I2P Advanced Configuration</h1>
+<h1><%=cssHelper._("I2P Advanced Configuration")%></h1>
 <div class="main" id="main">
 
  <%@include file="confignav.jsp" %>
@@ -28,10 +29,10 @@
     System.setProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce")%>" />
  <input type="hidden" name="action" value="blah" />
- <h3>Advanced I2P Configuration</h3>
+ <h3><%=cssHelper._("Advanced I2P Configuration")%></h3>
  <textarea rows="32" cols="60" name="config" wrap="off"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br><hr>
       <div class="formaction">
         <input type="submit" name="shouldsave" value="Apply" />
         <input type="reset" value="Cancel" /><br>
- <b>NOTE:</b> Some changes may require a restart to take effect.
+ <b><%=cssHelper._("NOTE")%>:</b> <%=cssHelper._("Some changes may require a restart to take effect.")%>
  </div></form></div></div></div></body></html>
diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp
index 81efcd76b64d41dfc196d7fbe04971f5f727d40a..10f4271d778228194276383fe8d0c16180f73415 100644
--- a/apps/routerconsole/jsp/configclients.jsp
+++ b/apps/routerconsole/jsp/configclients.jsp
@@ -2,8 +2,9 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - config clients</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config clients")%>
 <style type='text/css'>
 button span.hide{
     display:none;
@@ -14,7 +15,7 @@ button span.hide{
 
 <jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" />
 <jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
-<h1>I2P Client Configuration</h1>
+<h1><%=cssHelper._("I2P Client Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
 
@@ -29,8 +30,8 @@ button span.hide{
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigClientsHandler.noncePrev", prev);
     System.setProperty("net.i2p.router.web.ConfigClientsHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigClientsHandler.nonce")%>" />
- <h3>Client Configuration</h3><p>
- The Java clients listed below are started by the router and run in the same JVM.
+ <h3><%=cssHelper._("Client Configuration")%></h3><p>
+ <%=cssHelper._("The Java clients listed below are started by the router and run in the same JVM.")%>
  </p><div class="wideload">
  <p><jsp:getProperty name="clientshelper" property="form1" />
  </p><p><i>To change other client options, edit the file
@@ -38,7 +39,7 @@ button span.hide{
 All changes require restart to take effect.</i>
  </p><hr><div class="formaction">
  <input type="submit" name="action" value="Save Client Configuration" />
-</div></div><h3>WebApp Configuration</h3><p>
+</div></div><h3><%=cssHelper._("WebApp Configuration")%></h3><p>
  The Java web applications listed below are started by the webConsole client and run in the same JVM as the router.
  They are usually web applications accessible through the router console.
  They may be complete applications (e.g. i2psnark),
@@ -51,7 +52,7 @@ All changes require restart to take effect.</i>
  </p><div class="wideload"><p>
  <jsp:getProperty name="clientshelper" property="form2" />
  </p><p>
- <i>All changes require restart to take effect.</i>
+ <i><%=cssHelper._("All changes require restart to take effect.")%></i>
  </p><hr><div class="formaction">
  <input type="submit" name="action" value="Save WebApp Configuration" />
  </div></div></form></div></div></body></html>
diff --git a/apps/routerconsole/jsp/configkeyring.jsp b/apps/routerconsole/jsp/configkeyring.jsp
index 0c054a7d236590594ba9de8dee02d910d02729da..1f24dc81e5749cd5ad41c65a72c3c87cac0fb3ed 100644
--- a/apps/routerconsole/jsp/configkeyring.jsp
+++ b/apps/routerconsole/jsp/configkeyring.jsp
@@ -2,12 +2,13 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - config keyring</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config keyring")%>
 </head><body>
 
 <%@include file="summary.jsp" %>
-<h1>I2P Keyring Configuration</h1>
+<h1><%=cssHelper._("I2P Keyring Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
 
@@ -17,32 +18,30 @@
  <jsp:getProperty name="formhandler" property="allMessages" />
  <jsp:useBean class="net.i2p.router.web.ConfigKeyringHelper" id="keyringhelper" scope="request" />
  <jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
-<div class="configure"><p><h3>Keyring</h3>
- The router keyring is used to decrypt encrypted leaseSets.
- The keyring may contain keys for local or remote encrypted destinations.
+<div class="configure"><h2><%=cssHelper._("Keyring")%></h2><p>
+ <%=cssHelper._("The router keyring is used to decrypt encrypted leaseSets.")%>
+ <%=cssHelper._("The keyring may contain keys for local or remote encrypted destinations.")%></p>
  <div class="wideload"><p>
  <jsp:getProperty name="keyringhelper" property="summary" />
 </p></div>
 
- <br>
-
  <form action="configkeyring.jsp" method="POST">
  <% String prev = System.getProperty("net.i2p.router.web.ConfigKeyringHandler.nonce");
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigKeyringHandler.noncePrev", prev);
     System.setProperty("net.i2p.router.web.ConfigKeyringHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigKeyringHandler.nonce")%>" />
- <h3>Manual Keyring Addition</h3>
- Enter keys for encrypted remote destinations here.
+ <h3><%=cssHelper._("Manual Keyring Addition")%></h3><p>
+ <%=cssHelper._("Enter keys for encrypted remote destinations here.")%>
  Keys for local destinations must be entered on the <a href="i2ptunnel/index.jsp">I2PTunnel page</a>.
- <p>
+</p>
   <div class="wideload">
-      <table><tr>
-          <td class="mediumtags" align="right">Dest. name, hash, or full key:</td>
+      <p><table><tr>
+          <td class="mediumtags" align="right"><%=cssHelper._("Dest. name, hash, or full key")%>:</td>
           <td><textarea name="peer" cols="44" rows="1" style="height: 3em;" wrap="off"></textarea></td>
         </tr><tr>
-          <td class="mediumtags" align="right">Encryption Key:</td>
+          <td class="mediumtags" align="right"><%=cssHelper._("Encryption Key")%>:</td>
           <td><input type="text" size="55" name="key" /></td>
         </tr><tr>
           <td align="right" colspan="2"><input type="submit" name="action" value="Add key" />
              <input type="submit" name="action" value="Delete key" /> <input type="reset" value="Cancel" /></td>
-</tr></table></div></form></div></div></body></html>
+</tr></table></p></div></form></div></div></body></html>
diff --git a/apps/routerconsole/jsp/configlogging.jsp b/apps/routerconsole/jsp/configlogging.jsp
index b4a08ee19c8f766e44935f60aba5c9d3f0a04175..d1fa8bbcb1c4dc99898132d40c9db8c7392f9e79 100644
--- a/apps/routerconsole/jsp/configlogging.jsp
+++ b/apps/routerconsole/jsp/configlogging.jsp
@@ -3,14 +3,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
 <html><head>
-<title>I2P Router Console - config logging</title>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config logging")%>
 </head><body>
 <jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" />
 <jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
 
 <%@include file="summary.jsp" %>
-<h1>I2P Logging Configuration</h1>
+<h1><%=cssHelper._("I2P Logging Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
 
@@ -25,26 +25,26 @@
     System.setProperty("net.i2p.router.web.ConfigLoggingHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce")%>" />
  <input type="hidden" name="action" value="blah" />
- <h3>Configure I2P Logging Options</h3>
+ <h3><%=cssHelper._("Configure I2P Logging Options")%></h3>
  <div class="wideload">
       <table border="0" cellspacing="5">
-        <tr><td class="mediumtags" align="right"><b>Logging filename:</b></td>
+        <tr><td class="mediumtags" align="right"><b><%=cssHelper._("Logging filename")%>:</b></td>
           <td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" />
-          <br><i>(the symbol '@' will be replaced during log rotation)</i></td>
-        </tr><tr><td class="mediumtags" align="right"><b>Log record format:</b></td>
+          <br><i><%=cssHelper._("(the symbol '@' will be replaced during log rotation)")%></i></td>
+        </tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Log record format")%>:</b></td>
           <td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" />
             <br> <i>(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority,
             'm' = message)</i></td>
-        </tr><tr><td class="mediumtags" align="right"><b>Log date format:</b></td>
+        </tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Log date format")%>:</b></td>
           <td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" />
             <br> <i>('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss'
             = second, 'SSS' = millisecond)</i></td>
-        </tr><tr><td class="mediumtags" align="right"><b>Max log file size:</b></td>
+        </tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Max log file size")%>:</b></td>
           <td><input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" /><br></td>
-        </tr><tr><td class="mediumtags" align="right"><b>Default log level:</b></td>
+        </tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Default log level")%>:</b></td>
           <td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" /><br><i>(DEBUG and INFO are not recommended defaults,
             as they will drastically slow down your router)</i></td>
-        </tr><tr><td class="mediumtags" align="right"><b>Log level overrides:</b></td>
+        </tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Log level overrides")%>:</b></td>
           <td><jsp:getProperty name="logginghelper" property="logLevelTable" /></td>
         </tr><tr><td colspan="2"><hr></td>
         </tr><tr class="tablefooter"><td colspan="2"> <div class="formaction">
diff --git a/apps/routerconsole/jsp/configpeer.jsp b/apps/routerconsole/jsp/configpeer.jsp
index b58d86fe18b0b68c6d0835958dc9107846e0bb60..a5b47ef9987e665e3b8249711a140d49a33709cc 100644
--- a/apps/routerconsole/jsp/configpeer.jsp
+++ b/apps/routerconsole/jsp/configpeer.jsp
@@ -2,12 +2,13 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - config peers</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config peers")%>
 </head><body>
 
 <%@include file="summary.jsp" %>
-<h1>I2P Peer Configuration</h1>
+<h1><%=cssHelper._("I2P Peer Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
 
@@ -31,16 +32,14 @@
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigPeerHandler.noncePrev", prev);
     System.setProperty("net.i2p.router.web.ConfigPeerHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigPeerHandler.nonce")%>" />
-<p>
  <a name="sh"> </a>
  <a name="unsh"> </a>
  <a name="bonus"> </a>
- <h2>Manual Peer Controls</h2>
- <div class="mediumtags">Router Hash:
- <input type="text" size="55" name="peer" value="<%=peer%>" /></div>
- <h3>Manually Ban / Unban a Peer</h3>
- Banning will prevent the participation of this peer in tunnels you create.
-      <hr>
+ <h2><%=cssHelper._("Manual Peer Controls")%></h2>
+ <div class="mediumtags"><p><%=cssHelper._("Router Hash")%>:
+<input type="text" size="55" name="peer" value="<%=peer%>" /></p></div>
+ <h3><%=cssHelper._("Manually Ban / Unban a Peer")%></h3>
+ <p><%=cssHelper._("Banning will prevent the participation of this peer in tunnels you create.")%></p>
       <div class="formaction">
         <input type="submit" name="action" value="Ban peer until restart" />
         <input type="submit" name="action" value="Unban peer" />
@@ -49,32 +48,28 @@
         <% } %>
       </div>
 
- <h3>Adjust Profile Bonuses</h3>
- Bonuses may be positive or negative, and affect the peer's inclusion in Fast
+ <h3><%=cssHelper._("Adjust Profile Bonuses")%></h3>
+ <p>Bonuses may be positive or negative, and affect the peer's inclusion in Fast
       and High Capacity tiers. Fast peers are used for client tunnels, and High
       Capacity peers are used for some exploratory tunnels. Current bonuses are
-      displayed on the <a href="profiles.jsp">profiles page</a>.
-      <p>
+    displayed on the <a href="profiles.jsp">profiles page</a>.</p>
  <% long speed = 0; long capacity = 0;
     if (! "".equals(peer)) {
         // get existing bonus values?
     }
  %>
- <hr>
- <div class="mediumtags">Speed:
+ <div class="mediumtags"><p><%=cssHelper._("Speed")%>:
  <input type="text" size="8" name="speed" value="<%=speed%>" />
- Capacity:
+ <%=cssHelper._("Capacity")%>:
  <input type="text" size="8" name="capacity" value="<%=capacity%>" />
- <input type="submit" name="action" value="Adjust peer bonuses" /></div>
- </p>
+ <input type="submit" name="action" value="Adjust peer bonuses" /></p></div>
  </form>
  <a name="shitlist"> </a>
  <jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
  <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
  <jsp:setProperty name="profilesHelper" property="writer" value="<%=out%>" />
  <jsp:getProperty name="profilesHelper" property="shitlistSummary" />
- <hr>
  <div class="wideload">
  <jsp:getProperty name="peerhelper" property="blocklistSummary" />
 
-</div></div></div></body></html>
+</div><hr></div></div></body></html>
diff --git a/apps/routerconsole/jsp/configservice.jsp b/apps/routerconsole/jsp/configservice.jsp
index 45b5e435faa030e3d676598619c607a4930f3705..e1ecd0776dc7a8edcbb263660f5ca708ca2fb0fc 100644
--- a/apps/routerconsole/jsp/configservice.jsp
+++ b/apps/routerconsole/jsp/configservice.jsp
@@ -2,12 +2,13 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - config service</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config service")%>
 </head><body>
 
 <%@include file="summary.jsp" %>
-<h1>I2P Service Configuration</h1>
+<h1><%=cssHelper._("I2P Service Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
 
@@ -21,7 +22,7 @@
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigServiceHandler.noncePrev", prev);
     System.setProperty("net.i2p.router.web.ConfigServiceHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigServiceHandler.nonce")%>" />
- <h3>Shutdown the router</h3>
+ <h3><%=cssHelper._("Shutdown the router")%></h3>
  <p>Graceful shutdown lets the router satisfy the agreements it has already made
  before shutting down, but may take a few minutes.  If you need to kill the
  router immediately, that option is available as well.</p>
@@ -43,7 +44,7 @@
  <% } %></div>
 
  <% if ( (System.getProperty("os.name") != null) && (System.getProperty("os.name").startsWith("Win")) ) { %>
- <h3>Systray integration</h3>
+ <h3><%=cssHelper._("Systray integration")%></h3>
  <p>On the windows platform, there is a small application to sit in the system
  tray, allowing you to view the router's status (later on, I2P client applications
  will be able to integrate their own functionality into the system tray as well).
@@ -51,7 +52,7 @@
  <hr><div class="formaction">
  <input type="submit" name="action" value="Show systray icon" />
  <input type="submit" name="action" value="Hide systray icon" />
-</div><h3>Run on startup</h3>
+</div><h3><%=cssHelper._("Run on startup")%></h3>
  <p>You can control whether I2P is run on startup or not by selecting one of the
  following options - I2P will install (or remove) a service accordingly.  You can
  also run the <code>install_i2p_service_winnt.bat</code> (or
@@ -65,7 +66,7 @@
  <% } %>
 
  <% if (System.getProperty("wrapper.version") != null) { %>
- <h3>Debugging</h3>
+ <h3><%=cssHelper._("Debugging")%></h3>
  <p>At times, it may be helpful to debug I2P by getting a thread dump.  To do so,
  please select the following option and review the thread dumped to
  <a href="logs.jsp#servicelogs">wrapper.log</a>.</p>
@@ -73,7 +74,7 @@
  <input type="submit" name="action" value="Dump threads" />
 <% } %></div>
 
- <h3>Launch browser on router startup?</h3>
+ <h3><%=cssHelper._("Launch browser on router startup?")%></h3>
  <p>I2P's main configuration interface is this web console, so for your convenience
  I2P can launch a web browser pointing at
  <a href="http://127.0.0.1:7657/index.jsp">http://127.0.0.1:7657/index.jsp</a> whenever
diff --git a/apps/routerconsole/jsp/configstats.jsp b/apps/routerconsole/jsp/configstats.jsp
index 122d035c3b9467244d83612ad6e2c89efcb64274..085949fd749bcf14c2afdb5e6dc5138481ec8060 100644
--- a/apps/routerconsole/jsp/configstats.jsp
+++ b/apps/routerconsole/jsp/configstats.jsp
@@ -2,8 +2,9 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - config stats</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config stats")%>
 <script type="text/javascript">
 function init()
 {
@@ -52,7 +53,7 @@ function toggleAll(category)
 </script>
 </head><body onLoad="init();">
 <%@include file="summary.jsp" %>
-<h1>I2P Stats Configuration</h1>
+<h1><%=cssHelper._("I2P Stats Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
 
@@ -70,25 +71,25 @@ function toggleAll(category)
     System.setProperty("net.i2p.router.web.ConfigStatsHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="action" value="foo" />
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce")%>" />
- <h3>Configure I2P Stat Collection</h3>
- Enable full stats?
+ <h3><%=cssHelper._("Configure I2P Stat Collection")%></h3>
+ <p><%=cssHelper._("Enable full stats?")%>
  <input type="checkbox" class="optbox" name="isFull" value="true" <%
  if (statshelper.getIsFull()) { %>checked="true" <% } %>/>
- (change requires restart to take effect)<br>
- Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br>
- Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<br>
+ (<%=cssHelper._("change requires restart to take effect")%>)<br>
+ <%=cssHelper._("Stat file")%>: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br>
+<%=cssHelper._("Filter")%>: (<a href="javascript: void(null);" onclick="toggleAll('*')"><%=cssHelper._("toggle all")%></a>)<br></p>
  <div class="wideload">
- <table>
+ <p><table>
  <% while (statshelper.hasMoreStats()) {
       while (statshelper.groupRequired()) { %>
  <tr class="tablefooter">
      <td align="left" colspan="3">
      <b><%=statshelper.getCurrentGroupName()%></b>
-     (<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')">toggle all</a>)
+     (<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')"><%=cssHelper._("toggle all")%></a>)
      </td></tr>
  <tr class="tablefooter">
-    <td align="center"><b>Log</b></td>
-    <td align="center"><b>Graph</b></td>
+    <td align="center"><b><%=cssHelper._("Log")%></b></td>
+    <td align="center"><b><%=cssHelper._("Graph")%></b></td>
     <td></td></tr>
         <%
      } // end iterating over required groups for the current stat %>
@@ -105,7 +106,7 @@ function toggleAll(category)
     } // end iterating over all stats %>
  <tr><td colspan="3"></td></tr>
  <tr><td align="center"><input type="checkbox" class="optbox" name="explicitFilter" /></td>
-     <td colspan="2">Advanced filter:
+     <td colspan="2"><%=cssHelper._("Advanced filter")%>:
      <input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" /></td></tr>
      <tr class="tablefooter"><td colspan="3" align="right"><input type="submit" name="shouldsave" value="Save changes" /><input type="reset" value="Cancel" /></td></tr>
- </table></div></form></div></div></body></html>
+ </table></p></div></form></div></div></body></html>
diff --git a/apps/routerconsole/jsp/configtunnels.jsp b/apps/routerconsole/jsp/configtunnels.jsp
index f9185a01aa1a6c1d826f2c0b27c621ea465745fb..5896c6e4f05d6cddcebbf8f2be2664a850676b13 100644
--- a/apps/routerconsole/jsp/configtunnels.jsp
+++ b/apps/routerconsole/jsp/configtunnels.jsp
@@ -2,15 +2,16 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - config tunnels</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("config tunnels")%>
 </head><body>
 
 <%@include file="summary.jsp" %>
 
 <jsp:useBean class="net.i2p.router.web.ConfigTunnelsHelper" id="tunnelshelper" scope="request" />
 <jsp:setProperty name="tunnelshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
-<h1>I2P Tunnel Configuration</h1>
+<h1><%=cssHelper._("I2P Tunnel Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
  <jsp:useBean class="net.i2p.router.web.ConfigTunnelsHandler" id="formhandler" scope="request" />
@@ -20,23 +21,23 @@
  <jsp:setProperty name="formhandler" property="nonce" value="<%=request.getParameter("nonce")%>" />
  <jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" />
  <jsp:getProperty name="formhandler" property="allMessages" />
- <div class="configure"><p><i>
+ <div class="configure"><p>
  NOTE: The default settings work for most people.
  There is a fundamental tradeoff between anonymity and performance.
  Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops),
  or a high quantity + backup quantity, may severely reduce performance or reliability.
  High CPU and/or high outbound bandwidth usage may result.
  Change these settings with care, and adjust them if you have problems.
- </i></p><div class="wideload">
- <form action="configtunnels.jsp" method="POST">
+<div class="wideload">
+<form action="configtunnels.jsp" method="POST">
  <% String prev = System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce");
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigTunnelsHandler.noncePrev", prev);
     System.setProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce")%>" />
  <input type="hidden" name="action" value="blah" />
  <jsp:getProperty name="tunnelshelper" property="form" />
- <i>Note - Exploratory tunnel setting changes are stored in the router.config file.</i><br>
- <i>Client tunnel changes are temporary and are not saved.</i><br>
- <i>To make permanent client tunnel changes see the </i><a href="i2ptunnel/index.jsp">i2ptunnel page</a>.<br>
+ Note: Exploratory tunnel setting changes are stored in the router.config file.
+ Client tunnel changes are temporary and are not saved.
+To make permanent client tunnel changes see the <a href="i2ptunnel/index.jsp">i2ptunnel page</a>.
  <hr><div class="formaction"><input type="submit" name="shouldsave" value="Save changes" /> <input type="reset" value="Cancel" /></div>
- </form></div></div></div></body></html>
+ </form></p></div></div></div></body></html>
diff --git a/apps/routerconsole/jsp/configupdate.jsp b/apps/routerconsole/jsp/configupdate.jsp
index e7562de9f7106e1d9eec4cb853f6ec5cf6da6c85..9e3851e70bec9e0916a70666bceadba8de40cf20 100644
--- a/apps/routerconsole/jsp/configupdate.jsp
+++ b/apps/routerconsole/jsp/configupdate.jsp
@@ -8,7 +8,7 @@
 </head><body>
 
 <%@include file="summary.jsp" %>
-<h1>I2P Update Configuration</h1>
+<h1><%=cssHelper._("I2P Update Configuration")%></h1>
 <div class="main" id="main">
  <%@include file="confignav.jsp" %>
 
@@ -26,32 +26,32 @@
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigUpdateHandler.noncePrev", prev);
     System.setProperty("net.i2p.router.web.ConfigUpdateHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" />
-      <h3>Check for I2P and news updates</h3>
+      <h3><%=cssHelper._("Check for I2P and news updates")%></h3>
       <div class="wideload"><table border="0" cellspacing="5">
         <tr><td colspan="2"></tr>
-        <tr><td class= "mediumtags" align="right"><b>News &amp; I2P Updates:</b></td>
-          <td> <% if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) { %> <i>Update In Progress</i><br> <% } else { %> <input type="submit" name="action" value="Check for updates" />
+        <tr><td class= "mediumtags" align="right"><b><%=cssHelper._("News &amp; I2P Updates")%>:</b></td>
+          <td> <% if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) { %> <i><%=cssHelper._("Update In Progress")%></i><br> <% } else { %> <input type="submit" name="action" value="Check for updates" />
             <% } %></td></tr>
         <tr><td colspan="2"><br></td></tr>
-        <tr><td class= "mediumtags" align="right"><b>News URL:</b></td>
+        <tr><td class= "mediumtags" align="right"><b><%=cssHelper._("News URL")%>:</b></td>
           <td><input type="text" size="60" name="newsURL" value="<jsp:getProperty name="updatehelper" property="newsURL" />"></td>
-        </tr><tr><td class= "mediumtags" align="right"><b>Refresh frequency:</b>
+        </tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Refresh frequency")%>:</b>
           <td><jsp:getProperty name="updatehelper" property="refreshFrequencySelectBox" /></td><tr>
           <td class= "mediumtags" align="right"><b><%=formhandler._("Update policy")%>:</b></td>
           <td><jsp:getProperty name="updatehelper" property="updatePolicySelectBox" /></td>
-        <tr><td class= "mediumtags" align="right"><b>Update through the eepProxy?</b></td>
+        <tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Update through the eepProxy?")%></b></td>
           <td><jsp:getProperty name="updatehelper" property="updateThroughProxy" /></td>
-        </tr><tr><td class= "mediumtags" align="right"><b>eepProxy host:</b></td>
+        </tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("eepProxy host")%>:</b></td>
           <td><input type="text" size="10" name="proxyHost" value="<jsp:getProperty name="updatehelper" property="proxyHost" />" /></td>
-        </tr><tr><td class= "mediumtags" align="right"><b>eepProxy port:</b></td>
+        </tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("eepProxy port")%>:</b></td>
           <td><input type="text" size="4" name="proxyPort" value="<jsp:getProperty name="updatehelper" property="proxyPort" />" /></td>
-        </tr><tr><td class= "mediumtags" align="right"><b>Update URLs:</b></td>
+        </tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Update URLs")%>:</b></td>
           <td><textarea name="updateURL" wrap="off"><jsp:getProperty name="updatehelper" property="updateURL" /></textarea></td>
-        </tr><tr><td class= "mediumtags" align="right"><b>Trusted keys:</b></td>
+        </tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Trusted keys")%>:</b></td>
           <td><textarea name="trustedKeys" wrap="off"><jsp:getProperty name="updatehelper" property="trustedKeys" /></textarea></td>
-        </tr><tr><td class= "mediumtags" align="right"><b>Update with unsigned development builds?</b></td>
+        </tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Update with unsigned development builds?")%></b></td>
           <td><jsp:getProperty name="updatehelper" property="updateUnsigned" /></td>
-        </tr><tr><td class= "mediumtags" align="right"><b>Unsigned Build URL:</b></td>
+        </tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Unsigned Build URL")%>:</b></td>
           <td><input type="text" size="60" name="zipURL" value="<jsp:getProperty name="updatehelper" property="zipURL" />"></td>
         </tr><tr class="tablefooter"><td colspan="2">
         <div class="formaction">
diff --git a/apps/routerconsole/jsp/error.jsp b/apps/routerconsole/jsp/error.jsp
index f865e85d8be63a8e011dfc24a4055b23c5539adf..81fff617ef1d1650e84d7e670e2b2a3a097619a7 100644
--- a/apps/routerconsole/jsp/error.jsp
+++ b/apps/routerconsole/jsp/error.jsp
@@ -12,8 +12,9 @@
     }
     // If it can't find the iframe or viewtheme.jsp I wonder if the whole thing blows up...
 %>
-<html><head><title>I2P Router Console - Page Not Found</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("Page Not Found")%>
 </head><body>
 <%
 if (System.getProperty("router.consoleNonce") == null) {
@@ -23,6 +24,6 @@ if (System.getProperty("router.consoleNonce") == null) {
 <%@include file="summary.jsp" %>
 <h1><%=ERROR_CODE%> <%=ERROR_MESSAGE%></h1>
 <div class="sorry" id="warning">
-Sorry! You appear to be requesting a non-existent Router Console page or resource.<hr>
-Error 404: <%=ERROR_URI%> not found.
+<%=cssHelper._("Sorry! You appear to be requesting a non-existent Router Console page or resource.")%><hr>
+<%=cssHelper._("Error 404")%>: <%=ERROR_URI%> <%=cssHelper._("not found")%>.
 </div></body></html>
diff --git a/apps/routerconsole/jsp/graphs.jsp b/apps/routerconsole/jsp/graphs.jsp
index 2a30675d945217146361b4a404081410849d3b0c..700f54ed5846408ed0facc1cf976bc92d95c3532 100644
--- a/apps/routerconsole/jsp/graphs.jsp
+++ b/apps/routerconsole/jsp/graphs.jsp
@@ -2,12 +2,13 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - graphs</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("graphs")%>
 </head><body>
 
 <%@include file="summary.jsp" %>
-<h1>I2P Performance Graphs</h1>
+<h1><%=cssHelper._("I2P Performance Graphs")%></h1>
 <div class="main" id="main">
  <div class="graphspanel">
  <div class="widepanel">
diff --git a/apps/routerconsole/jsp/help.jsp b/apps/routerconsole/jsp/help.jsp
index 0ae11a95ae9515086b7e5da9041a47d03d156861..734b38c3dac37b8a9845167124b17177eaba038c 100644
--- a/apps/routerconsole/jsp/help.jsp
+++ b/apps/routerconsole/jsp/help.jsp
@@ -7,22 +7,22 @@
 </head><body>
 <%@include file="summary.jsp" %>
 <h1>I2P Router Help & Support</h1>
-<div class="main" id="main"><div align="justify">
+<div class="main" id="main"><p>
 If you'd like to help improve or translate the documentation, or
 help with other aspects of the project, please see the documentation for
 <a href="http://www.i2p2.i2p/getinvolved.html">volunteers.</a>
-<br><br>Further assistance is available here:<br></div>
+</p><p>Further assistance is available here:
 <ul class="links">
 <li class="tidylist"><a href="http://www.i2p2.i2p/faq.html">FAQ on www.i2p2.i2p</a>
-<li class="tidylist"><a href="http://www.i2p2.i2p/faq_de.html">Deutsch FAQ</a>.</ul><br>
-You may also try the <a href="http://forum.i2p/">I2P forum</a>
-or IRC.<br>
+<li class="tidylist"><a href="http://www.i2p2.i2p/faq_de.html">Deutsch FAQ</a>.</ul>
+</p><p>You may also try the <a href="http://forum.i2p/">I2P forum</a>
+or IRC.</p>
 
-<h2>Summary Bar Information</h2><div align="justify">
+<h2>Summary Bar Information</h2><p>
 Many of the stats on the summary bar may be
 <a href="configstats.jsp">configured</a> to be
 <a href="graphs.jsp">graphed</a> for further analysis.
-</div><h3>General</h3><ul>
+</p><h3>General</h3><ul>
 <li class="tidylist"><b>Ident:</b>
 The first four characters (24 bits) of your 44-character (256-bit) Base64 router hash.
 The full hash is shown on your <a href="netdb.jsp?r=.">router info page</a>.
@@ -75,7 +75,7 @@ The local applications connecting through your router.
 These may be clients started through <a href="i2ptunnel/index.jsp">I2PTunnel</a>
 or external programs connecting through SAM, BOB, or directly to I2CP.
 </div><h3>Tunnels in/out</h3><div align="justify">
-The actual tunnels are shown on the <a href="tunnels.jsp">the tunnels page</a>.</div><br><ul>
+The actual tunnels are shown on the <a href="tunnels.jsp">the tunnels page</a>.</div><ul>
 <li class="tidylist"><div align="justify"><b>Exploratory:</b>
 Tunnels built by your router and used for communication with the floodfill peers,
 building new tunnels, and testing existing tunnels.</div>
@@ -91,7 +91,7 @@ You may also limit the total number by setting <tt>router.maxParticipatingTunnel
 the <a href="configadvanced.jsp">advanced configuration page</a>. <a href="configstats.jsp#tunnel.participatingTunnels">[Enable graphing]</a>.</ul>
 
 <h3>Congestion</h3><div align="justify">
-Some basic indications of router overload:</div><br><ul>
+Some basic indications of router overload:</div><ul>
 <li class="tidylist"><b>Job lag:</b>
 How long jobs are waiting before execution. The job queue is listed on the <a href="jobs.jsp">jobs page</a>.
 Unfortunately, there are several other job queues in the router that may be congested,
@@ -129,9 +129,8 @@ or reject all requests for a number of reasons, to control
 the bandwidth and CPU demands and maintain capacity for
 local clients.</ul>
 
-<h2>Legal stuff</h2><div align="justify">
-The I2P router (router.jar) and SDK (i2p.jar) are almost entirely public domain, with
-a few notable exceptions:</div><br><ul>
+<h2>Legal stuff</h2><p>The I2P router (router.jar) and SDK (i2p.jar) are almost entirely public domain, with
+a few notable exceptions:</p><ul>
 <li class="tidylist">ElGamal and DSA code, under the BSD license, written by TheCrypto</li>
 <li class="tidylist">SHA256 and HMAC-SHA256, under the MIT license, written by the Legion of the Bouncycastle</li>
 <li class="tidylist">AES code, under the Cryptix (MIT) license, written by the Cryptix team</li>
diff --git a/apps/routerconsole/jsp/index.jsp b/apps/routerconsole/jsp/index.jsp
index d2ce8ffc2d36517c0ca03aec0826c66e79c7bba4..50efc24771ba9af8fd1e828b8c373f4a154c6655 100644
--- a/apps/routerconsole/jsp/index.jsp
+++ b/apps/routerconsole/jsp/index.jsp
@@ -4,7 +4,7 @@
 
 <html><head>
 <%@include file="css.jsp" %>
-<title>I2P Router Console - home</title>
+<%=cssHelper.title("home")%>
 </head><body>
 <%
 if (System.getProperty("router.consoleNonce") == null) {
@@ -12,7 +12,7 @@ if (System.getProperty("router.consoleNonce") == null) {
 }
 %>
 
-<%@include file="summary.jsp" %><h1>I2P Router Console</h1>
+<%@include file="summary.jsp" %><h1><%=cssHelper._("I2P Router Console")%></h1>
 <div class="news" id="news">
  <jsp:useBean class="net.i2p.router.web.ContentHelper" id="newshelper" scope="request" />
  <% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml"); %>
diff --git a/apps/routerconsole/jsp/jobs.jsp b/apps/routerconsole/jsp/jobs.jsp
index d75207c84d09ed130d4470083d7bc598cf1ca8ea..c70bd6aab1606b408ca7725662e3e3417be64820 100644
--- a/apps/routerconsole/jsp/jobs.jsp
+++ b/apps/routerconsole/jsp/jobs.jsp
@@ -2,13 +2,14 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - job queue</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("job queue")%>
 </head><body>
-<%@include file="summary.jsp" %><h1>I2P Router Job Queue</h1>
+<%@include file="summary.jsp" %><h1><%=cssHelper._("I2P Router Job Queue")%></h1>
 <div class="main" id="main">
  <jsp:useBean class="net.i2p.router.web.JobQueueHelper" id="jobQueueHelper" scope="request" />
  <jsp:setProperty name="jobQueueHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
  <jsp:setProperty name="jobQueueHelper" property="writer" value="<%=out%>" />
  <jsp:getProperty name="jobQueueHelper" property="jobQueueSummary" />
-</div></body></html>
+<hr></div></body></html>
diff --git a/apps/routerconsole/jsp/logs.jsp b/apps/routerconsole/jsp/logs.jsp
index 3cca63d2d4f800569710a1230ed71bfe3922f36f..d7dc76bb7e0faefb06990f7f59d2bfc896a92f15 100644
--- a/apps/routerconsole/jsp/logs.jsp
+++ b/apps/routerconsole/jsp/logs.jsp
@@ -2,27 +2,28 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - logs</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("logs")%>
 </head><body>
 <%@include file="summary.jsp" %>
-<h1>I2P Router Logs</h1>
+<h1><%=cssHelper._("I2P Router Logs")%></h1>
 <div class="main" id="main">
- <div class="joblog"><h3>Version:</h3><a name="version"> </a>
- Please include this information in bug reports.
+ <div class="joblog"><h3><%=cssHelper._("I2P Version & Running Environment")%></h3><a name="version"> </a>
+ <i><%=cssHelper._("Please include this information in bug reports")%>:</i>
  <p>
-I2P <jsp:getProperty name="helper" property="version" /><br>
-<%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%><br>
-<%=System.getProperty("os.name")%> <%=System.getProperty("os.arch")%> <%=System.getProperty("os.version")%><br>
-CPU <%=net.i2p.util.NativeBigInteger.cpuModel()%> (<%=net.i2p.util.NativeBigInteger.cpuType()%>)<br>
-jbigi <%=net.i2p.util.NativeBigInteger.loadStatus()%><br>
-Encoding <%=System.getProperty("file.encoding")%><br></p><br>
+<b>I2P version:</b> <jsp:getProperty name="helper" property="version" /><br>
+<b>Java version:</b> <%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%><br>
+<b>Platform:</b> <%=System.getProperty("os.name")%> <%=System.getProperty("os.arch")%> <%=System.getProperty("os.version")%><br>
+<b>Processor:</b> <%=net.i2p.util.NativeBigInteger.cpuModel()%> (<%=net.i2p.util.NativeBigInteger.cpuType()%>)<br>
+<b>Jbigi:</b> <%=net.i2p.util.NativeBigInteger.loadStatus()%><br>
+<b>Encoding:</b> <%=System.getProperty("file.encoding")%></p>
  <jsp:useBean class="net.i2p.router.web.LogsHelper" id="logsHelper" scope="request" />
  <jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
- <h3>Critical logs:</h3><a name="criticallogs"> </a>
- <jsp:getProperty name="logsHelper" property="criticalLogs" /><br>
- <h3>Router logs (<a href="configlogging.jsp">configure</a>):</h3>
- <jsp:getProperty name="logsHelper" property="logs" /><br>
- <h3>Service (Wrapper) logs:</h3><a name="servicelogs"> </a>
+ <h3>Critical Logs</h3><a name="criticallogs"> </a>
+ <jsp:getProperty name="logsHelper" property="criticalLogs" />
+ <h3>Router Logs [<a href="configlogging.jsp">configure</a>]</h3>
+ <jsp:getProperty name="logsHelper" property="logs" />
+ <h3>Service (Wrapper) Logs</h3><a name="servicelogs"> </a>
  <jsp:getProperty name="logsHelper" property="serviceLogs" />
-</div></div></body></html>
+</div><hr></div></body></html>
diff --git a/apps/routerconsole/jsp/netdb.jsp b/apps/routerconsole/jsp/netdb.jsp
index 83136b1137273a042e529b7c2c32661497abf8f3..677c777d2361590367cd1df3cc8f47ff898cb7b4 100644
--- a/apps/routerconsole/jsp/netdb.jsp
+++ b/apps/routerconsole/jsp/netdb.jsp
@@ -3,11 +3,11 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
 <html><head>
-<title>I2P Router Console - network database summary</title>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("network database summary")%>
 </head><body>
 <%@include file="summary.jsp" %>
- <h1>I2P Network Database Summary</h1>
+ <h1><%=cssHelper._("I2P Network Database Summary")%></h1>
 <div class="main" id="main">
  <div class="wideload">
  <jsp:useBean class="net.i2p.router.web.NetDbHelper" id="netdbHelper" scope="request" />
diff --git a/apps/routerconsole/jsp/oldstats.jsp b/apps/routerconsole/jsp/oldstats.jsp
index 39f6c73d82309909c2e25623c1bddaf2eda0a832..1e6c1d9eeb6877a9b04367e4a73aabcbb307ac23 100644
--- a/apps/routerconsole/jsp/oldstats.jsp
+++ b/apps/routerconsole/jsp/oldstats.jsp
@@ -2,14 +2,15 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - statistics</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("statistics")%>
 </head><body>
 <%@include file="summary.jsp" %>
 <jsp:useBean class="net.i2p.router.web.OldConsoleHelper" id="oldhelper" scope="request" />
 <jsp:setProperty name="oldhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
 <jsp:setProperty name="oldhelper" property="writer" value="<%=out%>" />
- <h1>I2P Router Statistics</h1>
+ <h1><%=cssHelper._("I2P Router Statistics")%></h1>
 <div class="main" id="main">
  <jsp:getProperty name="oldhelper" property="stats" />
-</div></body></html>
+<hr></div></body></html>
diff --git a/apps/routerconsole/jsp/peers.jsp b/apps/routerconsole/jsp/peers.jsp
index 19b1d676729a2e2f7e0bda9a7e57ebde3dbc7459..bf66ed6cb060b0f072655a5a397c33ab1bf82ae2 100644
--- a/apps/routerconsole/jsp/peers.jsp
+++ b/apps/routerconsole/jsp/peers.jsp
@@ -2,11 +2,12 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - peer connections</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("peer connections")%>
 </head><body>
 <%@include file="summary.jsp" %>
-<h1>I2P Network Peers</h1>
+<h1><%=cssHelper._("I2P Network Peers")%></h1>
 <div class="main" id="main">
  <jsp:useBean class="net.i2p.router.web.PeerHelper" id="peerHelper" scope="request" />
  <jsp:setProperty name="peerHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
diff --git a/apps/routerconsole/jsp/profiles.jsp b/apps/routerconsole/jsp/profiles.jsp
index 6eae2642fd08f1f8a3176ec4395629db4c000226..281c05bf94a933402bfbae2de4d362083bd49d49 100644
--- a/apps/routerconsole/jsp/profiles.jsp
+++ b/apps/routerconsole/jsp/profiles.jsp
@@ -2,16 +2,16 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - peer profiles</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("peer profiles")%>
 </head><body><%@include file="summary.jsp" %>
-<h1>I2P Network Peer Profiles</h1>
+<h1><%=cssHelper._("I2P Network Peer Profiles")%></h1>
 <div class="main" id="main"><div class="wideload">
  <jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
  <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
  <jsp:setProperty name="profilesHelper" property="writer" value="<%=out%>" />
  <jsp:getProperty name="profilesHelper" property="profileSummary" />
- <br>
  <a name="shitlist"> </a>
  <jsp:getProperty name="profilesHelper" property="shitlistSummary" />
-</div></div></body></html>
+<hr></div></div></body></html>
diff --git a/apps/routerconsole/jsp/summary.jsp b/apps/routerconsole/jsp/summary.jsp
index c7672d4f3fa39dde85d33a4fd64e94bcdd1c00b1..87bcaf0a01430a2c0b2172c3d911064512813468 100644
--- a/apps/routerconsole/jsp/summary.jsp
+++ b/apps/routerconsole/jsp/summary.jsp
@@ -22,10 +22,10 @@
     } else {
         // since we don't have an iframe this will reload the base page, and
         // the new delay will be passed to the iframe above
-        out.print("<form action=\"" + request.getRequestURI() + "\" method=\"GET\">\n");
+        out.print("<div class=\"refresh\"><form action=\"" + request.getRequestURI() + "\" method=\"GET\">\n");
         out.print("<b>Refresh (s):</b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");
         out.print("<button type=\"submit\">Enable</button>\n");
-        out.print("</form></div>\n");
+        out.print("</form></div></div>\n");
     }
 %>
 </div>
diff --git a/apps/routerconsole/jsp/summaryframe.jsp b/apps/routerconsole/jsp/summaryframe.jsp
index 5d1d9eb2b95290d5b670535b26738c8c5972e72a..26c6cb3289279479334b8bb5470816a839fba69b 100644
--- a/apps/routerconsole/jsp/summaryframe.jsp
+++ b/apps/routerconsole/jsp/summaryframe.jsp
@@ -53,14 +53,14 @@
 <%
     // d and shutdownSoon defined above
     if (!shutdownSoon) {
-        out.print("<hr><form action=\"summaryframe.jsp\" method=\"GET\">\n");
+        out.print("<hr><div class=\"refresh\"><form action=\"summaryframe.jsp\" method=\"GET\">\n");
         if ("0".equals(d)) {
-            out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" align=\"right\" />\n");
-            out.print("<button type=\"submit\">Enable</button>\n");
+            out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");
+            out.print("<button type=\"submit\">Enable</button></div>\n");
         } else {
             // this will load in the iframe but subsequent pages will not have the iframe
             out.print("<input type=\"hidden\" name=\"refresh\" value=\"0\" />\n");
-            out.print("<button type=\"submit\">Disable " + d + "s Refresh</button>\n");
+            out.print("<button type=\"submit\">Disable " + d + "s Refresh</button></div>\n");
         }
         out.print("</form><hr>\n");
     }
diff --git a/apps/routerconsole/jsp/tunnels.jsp b/apps/routerconsole/jsp/tunnels.jsp
index e58ac07af2c9fe806e4eaf9679af2bb2c2c8fc13..9033170c6817a0396e1307f790f71690637f764a 100644
--- a/apps/routerconsole/jsp/tunnels.jsp
+++ b/apps/routerconsole/jsp/tunnels.jsp
@@ -2,10 +2,11 @@
 <%@page pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
-<html><head><title>I2P Router Console - tunnel summary</title>
+<html><head>
 <%@include file="css.jsp" %>
+<%=cssHelper.title("tunnel summary")%>
 </head><body>
-<%@include file="summary.jsp" %><h1>I2P Tunnel Summary</h1>
+<%@include file="summary.jsp" %><h1><%=cssHelper._("I2P Tunnel Summary")%></h1>
 <div class="main" id="main">
  <jsp:useBean class="net.i2p.router.web.TunnelHelper" id="tunnelHelper" scope="request" />
  <jsp:setProperty name="tunnelHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
diff --git a/apps/routerconsole/locale/messages_de.po b/apps/routerconsole/locale/messages_de.po
index 905828c4d097225a891fb0a58699c6c90033d429..d2be9771d37eb69e5f14c0c1c83c98a447069113 100644
--- a/apps/routerconsole/locale/messages_de.po
+++ b/apps/routerconsole/locale/messages_de.po
@@ -1,281 +1,669 @@
-# 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 <foo@bar>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: I2P routerconsole\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-20 11:55+0000\n"
-"PO-Revision-Date: 2009-10-19 12:50+0000\n"
-"Last-Translator: foo <foo@bar>\n"
-"Language-Team: foo <foo@bar>\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:95
-msgid "config update"
-msgstr "config update in german test test test"
-
-#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:334
-msgid "Update policy"
-msgstr "Update policy in german foobarbaz"
-
-#: src/net/i2p/router/web/CSSHelper.java:36
-#: 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/ConfigUpdateHelper.java:90
-msgid "Notify only"
-msgstr "Notify only in german"
-
-#: 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:344
-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:270
-msgid "Help with firewall configuration"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:272
-msgid "Check NAT/firewall"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:309
-msgid "Configure router bandwidth allocation"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:311
-msgid "Bandwidth in/out"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:328
-msgid "Total"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:336
-msgid "Used"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:346
-msgid "Tunnels in/out"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:351
-msgid "Exploratory"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:359
-msgid "Client"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:367
-msgid "Participating"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:373
-msgid "What's in the router's job queue?"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:375
-msgid "Congestion"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:380
-msgid "Job lag"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:386
-msgid "Message delay"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:392
-msgid "Tunnel lag"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:398
-msgid "Backlog"
-msgstr ""
+# 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 <foo@bar>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: I2P routerconsole\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-10-23 12:48+0000\n"
+"PO-Revision-Date: 2009-10-19 12:50+0000\n"
+"Last-Translator: foo <foo@bar>\n"
+"Language-Team: foo <foo@bar>\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/configadvanced_jsp.java:96
+msgid "config advanced"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:223
+msgid "I2P Advanced Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:325
+msgid "Advanced I2P Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:329
+msgid "NOTE"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:331
+msgid "Some changes may require a restart to take effect."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:95
+msgid "config clients"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:222
+msgid "I2P Client Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:332
+msgid "Client Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:334
+msgid ""
+"The Java clients listed below are started by the router and run in the same "
+"JVM."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:340
+msgid "WebApp Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:344
+msgid "All changes require restart to take effect."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:95
+msgid "config keyring"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:209
+msgid "I2P Keyring Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:318
+msgid "Keyring"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:320
+msgid "The router keyring is used to decrypt encrypted leaseSets."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:323
+msgid ""
+"The keyring may contain keys for local or remote encrypted destinations."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:333
+msgid "Manual Keyring Addition"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:335
+msgid "Enter keys for encrypted remote destinations here."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:337
+msgid "Dest. name, hash, or full key"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:339
+msgid "Encryption Key"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:96
+msgid "config logging"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:223
+msgid "I2P Logging Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:325
+msgid "Configure I2P Logging Options"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:327
+msgid "Logging filename"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:331
+msgid "(the symbol '@' will be replaced during log rotation)"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:333
+msgid "Log record format"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:337
+msgid "Log date format"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:341
+msgid "Max log file size"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:345
+msgid "Default log level"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:349
+msgid "Log level overrides"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:95
+msgid "config peers"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:209
+msgid "I2P Peer Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:330
+msgid "Manual Peer Controls"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:332
+msgid "Router Hash"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:336
+msgid "Manually Ban / Unban a Peer"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:338
+msgid ""
+"Banning will prevent the participation of this peer in tunnels you create."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:344
+msgid "Adjust Profile Bonuses"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:352
+msgid "Speed"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:356
+msgid "Capacity"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:95
+msgid "config service"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:209
+msgid "I2P Service Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:310
+msgid "Shutdown the router"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:318
+msgid "Systray integration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:320
+msgid "Run on startup"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:328
+msgid "Debugging"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:332
+msgid "Launch browser on router startup?"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:96
+msgid "config stats"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:210
+msgid "I2P Stats Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:326
+msgid "Configure I2P Stat Collection"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:328
+msgid "Enable full stats?"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:335
+msgid "change requires restart to take effect"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:337
+msgid "Stat file"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:341
+msgid "Filter"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:343
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:352
+msgid "toggle all"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:354
+msgid "Log"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:356
+msgid "Graph"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:395
+msgid "Advanced filter"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:95
+msgid "config tunnels"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:222
+msgid "I2P Tunnel Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:95
+msgid "config update"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:209
+msgid "I2P Update Configuration"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:326
+msgid "Check for I2P and news updates"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:328
+msgid "News &amp; I2P Updates"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:332
+msgid "Update In Progress"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:338
+msgid "News URL"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:342
+msgid "Refresh frequency"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:346
+msgid "Update policy"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:350
+msgid "Update through the eepProxy?"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:354
+msgid "eepProxy host"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:358
+msgid "eepProxy port"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:362
+msgid "Update URLs"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:366
+msgid "Trusted keys"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:370
+msgid "Update with unsigned development builds?"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:374
+msgid "Unsigned Build URL"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:106
+msgid "Page Not Found"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:230
+msgid ""
+"Sorry! You appear to be requesting a non-existent Router Console page or "
+"resource."
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:232
+msgid "Error 404"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:237
+msgid "not found"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:95
+msgid "graphs"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:209
+msgid "I2P Performance Graphs"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:94
+msgid "home"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:215
+#: src/net/i2p/router/web/CSSHelper.java:36
+#: src/net/i2p/router/web/SummaryBarRenderer.java:26
+#: src/net/i2p/router/web/SummaryBarRenderer.java:28
+msgid "I2P Router Console"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:94
+msgid "job queue"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:208
+msgid "I2P Router Job Queue"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:94
+msgid "logs"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:208
+msgid "I2P Router Logs"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:210
+msgid "I2P Version & Running Environment"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:212
+msgid "Please include this information in bug reports"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:94
+msgid "network database summary"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:208
+msgid "I2P Network Database Summary"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldstats_jsp.java:94
+msgid "statistics"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldstats_jsp.java:223
+msgid "I2P Router Statistics"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:94
+msgid "peer connections"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:208
+msgid "I2P Network Peers"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:94
+msgid "peer profiles"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:208
+msgid "I2P Network Peer Profiles"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:94
+msgid "tunnel summary"
+msgstr ""
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:208
+msgid "I2P Tunnel Summary"
+msgstr ""
+
+#: src/net/i2p/router/web/ConfigUpdateHelper.java:90
+msgid "Notify only"
+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:344
+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:270
+msgid "Help with firewall configuration"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:272
+msgid "Check NAT/firewall"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:309
+msgid "Configure router bandwidth allocation"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:311
+msgid "Bandwidth in/out"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:328
+msgid "Total"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:336
+msgid "Used"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:346
+msgid "Tunnels in/out"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:351
+msgid "Exploratory"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:359
+msgid "Client"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:367
+msgid "Participating"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:373
+msgid "What's in the router's job queue?"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:375
+msgid "Congestion"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:380
+msgid "Job lag"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:386
+msgid "Message delay"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:392
+msgid "Tunnel lag"
+msgstr ""
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:398
+msgid "Backlog"
+msgstr ""
diff --git a/apps/routerconsole/locale/messages_zh.po b/apps/routerconsole/locale/messages_zh.po
index 8456438ca91dd9b24cbc25242d045c425a1179b0..9cef49ecfeebddd056613e034325a44d82afc396 100644
--- a/apps/routerconsole/locale/messages_zh.po
+++ b/apps/routerconsole/locale/messages_zh.po
@@ -1,281 +1,668 @@
-# 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 <foo@bar>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: I2P routerconsole\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-20 11:55+0000\n"
-"PO-Revision-Date: 2009-10-19 12:59+0000\n"
-"Last-Translator: foo <foo@bar>\n"
-"Language-Team: foo <foo@par>\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:95
-msgid "config update"
-msgstr ""
-
-#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:334
-msgid "Update policy"
-msgstr ""
-
-#: src/net/i2p/router/web/CSSHelper.java:36
-#: 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/ConfigUpdateHelper.java:90
-msgid "Notify only"
-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:344
-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:270
-msgid "Help with firewall configuration"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:272
-msgid "Check NAT/firewall"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:309
-msgid "Configure router bandwidth allocation"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:311
-msgid "Bandwidth in/out"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:328
-msgid "Total"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:336
-msgid "Used"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:346
-msgid "Tunnels in/out"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:351
-msgid "Exploratory"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:359
-msgid "Client"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:367
-msgid "Participating"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:373
-msgid "What's in the router's job queue?"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:375
-msgid "Congestion"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:380
-msgid "Job lag"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:386
-msgid "Message delay"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:392
-msgid "Tunnel lag"
-msgstr ""
-
-#: src/net/i2p/router/web/SummaryBarRenderer.java:398
-msgid "Backlog"
-msgstr ""
+# 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 <foo@bar>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: I2P routerconsole\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-10-23 12:49+0000\n"
+"PO-Revision-Date: \n"
+"Last-Translator: walking <walking@mail.i2p>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:96
+msgid "config advanced"
+msgstr "高级设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:223
+msgid "I2P Advanced Configuration"
+msgstr "I2P 高级设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:325
+msgid "Advanced I2P Configuration"
+msgstr "I2P 高级设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:329
+msgid "NOTE"
+msgstr "注意"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configadvanced_jsp.java:331
+msgid "Some changes may require a restart to take effect."
+msgstr "某些设置需要程序重启后生效。"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:95
+msgid "config clients"
+msgstr "升级设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:222
+msgid "I2P Client Configuration"
+msgstr "I2P 客户程序设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:332
+msgid "Client Configuration"
+msgstr "客户程序设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:334
+msgid ""
+"The Java clients listed below are started by the router and run in the same "
+"JVM."
+msgstr "下面列出的Java客户端随路由器启动并运行于同一JVM中。"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:340
+msgid "WebApp Configuration"
+msgstr "WebApp 设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configclients_jsp.java:344
+msgid "All changes require restart to take effect."
+msgstr "所有更改均需要程序重启才能生效。"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:95
+msgid "config keyring"
+msgstr "钥匙环设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:209
+msgid "I2P Keyring Configuration"
+msgstr "I2P 钥匙环设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:318
+msgid "Keyring"
+msgstr "钥匙环"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:320
+msgid "The router keyring is used to decrypt encrypted leaseSets."
+msgstr "路由的钥匙环被用来解密和加密 leaseSets."
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:323
+msgid ""
+"The keyring may contain keys for local or remote encrypted destinations."
+msgstr "钥匙环可以包含本地和远程的加密目标(Destination)."
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:333
+msgid "Manual Keyring Addition"
+msgstr "手动添加钥匙环"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:335
+msgid "Enter keys for encrypted remote destinations here."
+msgstr "在此处添加远程加密目标的密钥。"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:337
+msgid "Dest. name, hash, or full key"
+msgstr "目标(Dest.)名称, HASH, 或完整公钥"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configkeyring_jsp.java:339
+msgid "Encryption Key"
+msgstr "加密密钥"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:96
+msgid "config logging"
+msgstr "日志设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:223
+msgid "I2P Logging Configuration"
+msgstr "I2P 记录设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:325
+msgid "Configure I2P Logging Options"
+msgstr "设置 I2P 记录选项"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:327
+msgid "Logging filename"
+msgstr "日志文件名称"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:331
+msgid "(the symbol '@' will be replaced during log rotation)"
+msgstr "(日志轮转时符号'@'将被替换)"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:333
+msgid "Log record format"
+msgstr "日志记录格式"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:337
+msgid "Log date format"
+msgstr "日志日期格式"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:341
+msgid "Max log file size"
+msgstr "日志最大体积"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:345
+msgid "Default log level"
+msgstr "默认日志等级"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configlogging_jsp.java:349
+msgid "Log level overrides"
+msgstr "等级外日志项目"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:95
+msgid "config peers"
+msgstr "节点设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:209
+msgid "I2P Peer Configuration"
+msgstr "I2P 节点设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:330
+msgid "Manual Peer Controls"
+msgstr "手动节点控制"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:332
+msgid "Router Hash"
+msgstr "路由器 HASH"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:336
+msgid "Manually Ban / Unban a Peer"
+msgstr "手动封锁/解封某个节点"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:338
+msgid ""
+"Banning will prevent the participation of this peer in tunnels you create."
+msgstr "封锁将阻止节点参与您的隧道创建"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:344
+msgid "Adjust Profile Bonuses"
+msgstr "调整节点评分"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:352
+msgid "Speed"
+msgstr "速度"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configpeer_jsp.java:356
+msgid "Capacity"
+msgstr "容量"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:95
+msgid "config service"
+msgstr "服务设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:209
+msgid "I2P Service Configuration"
+msgstr "I2P 服务设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:310
+msgid "Shutdown the router"
+msgstr "关闭路由器"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:318
+msgid "Systray integration"
+msgstr "使用系统托盘"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:320
+msgid "Run on startup"
+msgstr "系统启动时运行"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:328
+msgid "Debugging"
+msgstr "调试"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:332
+msgid "Launch browser on router startup?"
+msgstr "路由器启动时运行浏览器?"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:96
+msgid "config stats"
+msgstr "统计设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:210
+msgid "I2P Stats Configuration"
+msgstr "I2P 统计设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:326
+msgid "Configure I2P Stat Collection"
+msgstr "设置 I2P 统计项"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:328
+msgid "Enable full stats?"
+msgstr "启用完整统计?"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:335
+msgid "change requires restart to take effect"
+msgstr "设置需要程序重启后才能生效。"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:337
+msgid "Stat file"
+msgstr "统计文件"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:341
+msgid "Filter"
+msgstr "过滤器"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:343
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:352
+msgid "toggle all"
+msgstr "全部切换"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:354
+msgid "Log"
+msgstr "日志"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:356
+msgid "Graph"
+msgstr "统计图"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configstats_jsp.java:395
+msgid "Advanced filter"
+msgstr "高级过滤器"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:95
+msgid "config tunnels"
+msgstr "隧道设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:222
+msgid "I2P Tunnel Configuration"
+msgstr "I2P 隧道设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:95
+msgid "config update"
+msgstr "升级设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:209
+msgid "I2P Update Configuration"
+msgstr "I2P 更新设置"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:326
+msgid "Check for I2P and news updates"
+msgstr "检查I2P软件及新闻更新"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:328
+msgid "News &amp; I2P Updates"
+msgstr "软件及新闻更新"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:332
+msgid "Update In Progress"
+msgstr "更新中"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:338
+msgid "News URL"
+msgstr "新闻链接"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:342
+msgid "Refresh frequency"
+msgstr "更新频率"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:346
+msgid "Update policy"
+msgstr "升级策略"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:350
+msgid "Update through the eepProxy?"
+msgstr "通过eepProxy更新?"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:354
+msgid "eepProxy host"
+msgstr "eepProxy主机"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:358
+msgid "eepProxy port"
+msgstr "eepProxy端口"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:362
+msgid "Update URLs"
+msgstr "更新链接"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:366
+msgid "Trusted keys"
+msgstr "可信公钥"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:370
+msgid "Update with unsigned development builds?"
+msgstr "更新包括未签名的开发版?"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:374
+msgid "Unsigned Build URL"
+msgstr "未签名软件链接"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:106
+msgid "Page Not Found"
+msgstr "页面未找到"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:230
+msgid ""
+"Sorry! You appear to be requesting a non-existent Router Console page or "
+"resource."
+msgstr "抱歉!您请求的页面或资源不存在。"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:232
+msgid "Error 404"
+msgstr "错误 404"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error_jsp.java:237
+msgid "not found"
+msgstr "未找到"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:95
+msgid "graphs"
+msgstr "统计图"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/graphs_jsp.java:209
+msgid "I2P Performance Graphs"
+msgstr "I2P 性能图表"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:94
+msgid "home"
+msgstr "主页"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/index_jsp.java:215
+#: src/net/i2p/router/web/CSSHelper.java:36
+#: src/net/i2p/router/web/SummaryBarRenderer.java:26
+#: src/net/i2p/router/web/SummaryBarRenderer.java:28
+msgid "I2P Router Console"
+msgstr "I2P 路由控制台"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:94
+msgid "job queue"
+msgstr "作业队列"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/jobs_jsp.java:208
+msgid "I2P Router Job Queue"
+msgstr "I2P 路由器作业队列"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:94
+msgid "logs"
+msgstr "日志"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:208
+msgid "I2P Router Logs"
+msgstr "I2P 路由器日志"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:210
+msgid "I2P Version & Running Environment"
+msgstr "I2P 版本及运行环境"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/logs_jsp.java:212
+msgid "Please include this information in bug reports"
+msgstr "报告问题时请包括以下信息"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:94
+msgid "network database summary"
+msgstr "I2P 网络数据库概况"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/netdb_jsp.java:208
+msgid "I2P Network Database Summary"
+msgstr "I2P 网络数据库概况"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldstats_jsp.java:94
+msgid "statistics"
+msgstr "统计数据"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/oldstats_jsp.java:223
+msgid "I2P Router Statistics"
+msgstr "I2P 路由器统计数据"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:94
+msgid "peer connections"
+msgstr "节点连接"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/peers_jsp.java:208
+msgid "I2P Network Peers"
+msgstr "I2P 网络节点"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:94
+msgid "peer profiles"
+msgstr "节点信息"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/profiles_jsp.java:208
+msgid "I2P Network Peer Profiles"
+msgstr "I2P 网络节点信息"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:94
+msgid "tunnel summary"
+msgstr "隧道概况"
+
+#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/tunnels_jsp.java:208
+msgid "I2P Tunnel Summary"
+msgstr "I2P 隧道概况"
+
+#: src/net/i2p/router/web/ConfigUpdateHelper.java:90
+msgid "Notify only"
+msgstr "只提示"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:42
+msgid "I2P Services"
+msgstr "I2P 服务"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:48
+msgid "Manage your I2P hosts file here (I2P domain name resolution)"
+msgstr "管理您的 I2P HOST表(I2P域名解析表)"
+
+#: 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 "内建的匿名 BitTorrent 客户端"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:56
+msgid "Torrents"
+msgstr "匿名BT"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:60
+msgid "Anonymous webmail client"
+msgstr "匿名Web邮件客户端"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:62
+msgid "Webmail"
+msgstr "匿名邮箱"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:66
+msgid "Anonymous resident webserver"
+msgstr "内置的匿名Web服务器"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:68
+msgid "Webserver"
+msgstr "匿名主页"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:72
+msgid "Configure I2P Router"
+msgstr "设置 I2P 路由器"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:74
+msgid "I2P Internals"
+msgstr "I2P内部设置"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:80
+#: src/net/i2p/router/web/SummaryBarRenderer.java:344
+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 "包含所有已知I2P路由器的列表"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:100
+msgid "NetDB"
+msgstr "NetDB"
+
+#: 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 "显示I2P路由器的负载与工作状况"
+
+#: 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 "I2P路由帮助"
+
+#: 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 "您I2P路由的唯一身份为"
+
+#: 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 "如何正确配置防火墙和(物理)路由器优化I2P性能"
+
+#: 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:270
+msgid "Help with firewall configuration"
+msgstr "如何配置防火墙"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:272
+msgid "Check NAT/firewall"
+msgstr "检查NAT/防火墙"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:309
+msgid "Configure router bandwidth allocation"
+msgstr "设置路由的带宽分配"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:311
+msgid "Bandwidth in/out"
+msgstr "带宽(上/下行)"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:328
+msgid "Total"
+msgstr "总计"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:336
+msgid "Used"
+msgstr "已使用"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:346
+msgid "Tunnels in/out"
+msgstr "通道(上/下行)"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:351
+msgid "Exploratory"
+msgstr "探测"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:359
+msgid "Client"
+msgstr "客户"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:367
+msgid "Participating"
+msgstr "共享"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:373
+msgid "What's in the router's job queue?"
+msgstr "查看路由的作业队列"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:375
+msgid "Congestion"
+msgstr "拥堵"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:380
+msgid "Job lag"
+msgstr "作业延迟"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:386
+msgid "Message delay"
+msgstr "消息延迟"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:392
+msgid "Tunnel lag"
+msgstr "隧道延迟"
+
+#: src/net/i2p/router/web/SummaryBarRenderer.java:398
+msgid "Backlog"
+msgstr "积压"
diff --git a/history.txt b/history.txt
index ba49a9f94d598fc9cf85c2db92f0bf04ffdc7afd..b141d99945afdde7373cb78e9d60ec044ef2d6ca 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,54 @@
+2009-10-21 dr|z3d
+    * Enhance index.jsp with "paperclips" for the main links
+    * Tighten sidepanel layout to gain us some vertical screen real estate
+    * Update news.xml with the correct link for Chinese translation page
+
+2009-10-20 zzz
+    * I2NP: Remove old TunnelCreateMessage and TunnelCreateStatusMessage
+    * Logger: Don't kill the whole JVM if we can't open the log file
+    * MessageHistory: Cleanups
+    * NetDb: Move renderStatusHTML to routerconsole
+    * Router Console translation infrastructure:
+      - Persistent lang setting with routerconsole.lang=xx
+      - Loading any page with ?lang=xx changes the persistent setting
+      - Add a custom Jetty handler to load foo_xx.jsp if it
+        exists for language xx. This is for jsp files with lots
+        of text in them. Otherwise use inline translate methods.
+        Not for included jsps.
+      - Add a script to create and update messages_xx.po translation
+        files, and create ResourceBundles from them
+      - Add class to translate strings from cached ResourceBundles
+      - Add translate wrappers to HelperBase, FormHandler, and *Renderer,
+        so calls can be made from both jsp and java files
+      - Add example translations on configupdate.jsp - two in
+        the jsp itself and one in the helper.
+      - This is for strings in routerconsole only. Will be expanded
+        to other webapps and the router later.
+    * summarynoframe.jsp:
+      - Refactor to SummaryBarRenderer (saves 100KB)
+      - Add translate tags
+      - Use context RNG for nonces
+      - Transitional HTML style for input tags
+    * TunnelDispatcher: Drop messages that expire far in the future
+    * TunnelPoolManager: Move renderStatusHTML to routerconsole
+
+2009-10-16 dr|z3d
+    * Extensive UI whitespace cleanups and positional finessing.
+
+2009-10-16 zzz
+    * Crypto: Two more test classes out of the lib
+    * FloodfillMonitor: Slow down the volunteers again
+    * i2psnark: Add TPB tracker
+    * NetDb: Rework part 1 of N:
+      - Flood only to those closest to the key
+      - Java 5 fixups
+    * oldconsole.jsp: Remove almost all of it, add lines for tino
+    * ProfileOrganizerRenderer:
+      - Move to routerconsole
+      - Write directly to Writer for speed
+    * Router: Add router.hideFloodfillParticipant option for testing
+    * StatisticsManager: Cleanup after release
+
 * 2009-10-12  0.7.7 released
 
 2009-10-11 zzz
diff --git a/installer/resources/themes/console/classic/console.css b/installer/resources/themes/console/classic/console.css
index e04eae9553b7d80e962fb5e586723634fe0e6e4c..b09b508ad1b548b014fb6ec53452612754329f01 100644
--- a/installer/resources/themes/console/classic/console.css
+++ b/installer/resources/themes/console/classic/console.css
@@ -68,8 +68,8 @@ div.warning {
      border: 5px solid #fb7;
      text-align: left;
      color: inherit;
-     background-image:url("../images/errortriangle.png");
-     background-position: 17px center;
+     background-image:url("../images/itoopie_sm.png");     
+     background-position: 12px center;
      background-repeat:no-repeat;
      -moz-border-radius: 15px;
      -moz-box-shadow: inset 0px 0px 0px 2px #f60;
@@ -169,11 +169,10 @@ div.routersummary hr {
 
 div.routersummary h3 {
      border: 0px solid #f00;
-/*     border-bottom: 1px solid #99f !important;*/
-     font-size: 10pt;
+     font-size: 9.5pt;
      letter-spacing: 0.05em;
      margin: -7px 1px -7px 1px;
-     padding: 5px 0px 5px 0px;
+     padding: 1px 0;
      background: #c5d5fb;
      text-transform: uppercase;
 }
@@ -181,10 +180,10 @@ div.routersummary h3 {
 div.routersummary h4 {
      border: 0px solid #f00;
      border-bottom: 0 !important;
-     font-size: 9pt;
+     font-size: 8.5pt;
      letter-spacing: 0.05em;
      margin: -7px 1px -7px 1px !important;
-     padding: 2px 3px 3px 3px;
+     padding: 1px 3px;
      background: #c1d1f7;
      text-transform: capitalize;
      text-decoration: none !important;
@@ -194,11 +193,11 @@ div.routersummary h4 {
 div.routersummary table {
      border: 0;
      text-align: center !important;
-     margin: -5px 5px -5px 2px;
+     margin: -5px 4px -5px 3px;
      width: 180px !important;
      overflow: hidden;
      font-size: 8pt;
-     padding: 0px -10px;
+     padding: 0 -10px;
      background-image: none !important;
      background-color: transparent !important;
 }
@@ -209,8 +208,24 @@ div.routersummary tr {
      border: 0 !important;
 }
 
+div.tunnels table{
+     margin: 0 !important;
+}
+
+.tunnels tr {
+     padding: 2px 0 !important;
+     margin-left: -7px !important;
+}
+     
 div.routersummary form {
-     margin-top: 8px;
+     margin-top: -6px !important;
+     margin-bottom: -4px !important;     
+}
+
+div.refresh {
+     margin-top: 10px !important;
+     margin-bottom: 10px !important;
+     padding: 2px 0 !important;
 }
 
 div.routersummary p {
@@ -227,21 +242,11 @@ div.routersummary a:hover {
 }
 
 div.routersummary td {
-     padding: 2px 4px;
+     padding: 0 4px;
      background-image: none !important;
      border: 0 !important;
 }
 
-div.routersummary tr:nth-child(even) {
-     background-color: #f60;
-     background-image: none !important;
-}
-
-div.routersummarytr:nth-child(odd) {
-     background-color: #f00;
-     background-image: none !important;
-}
-
 div.warning h3 {
      border-bottom: 5px solid #fb7;
      padding-bottom: 10px;
@@ -249,7 +254,7 @@ div.warning h3 {
 
 div.main {
      margin: 0px 0px 0px 195px;
-     padding: 15px;
+     padding: 15px 15px 10px 15px;
      background: #eef;
      border: 5px solid #bbf;
      border-top: 0;
@@ -260,35 +265,74 @@ div.main {
 }
 
 div.main ul {
-     margin: 0;
+     margin: -10px 0 -10px -10px;
 }
 
 div.main li {
      padding: 0 0 5px 0;
      list-style: square;
+     word-wrap: break-word;
+     margin-right: 20px;
 }
 
 div.main li:first-child {
-     padding-top: 5px;
+     padding-top: 15px;
+}
+
+div.main hr:last-child {
+     margin: 15px 0 10px 0;
 }
 
 div.main textarea {
      width: 98% !important; 
      margin: 2px 0 2px 5px;
+     min-height: 96px;
+}
+
+div.main h2 {
+     margin-top: 20px;
+     margin-bottom: -5px;
+}
+
+div.welcome {
+     margin-top: 5px;
+}
+
+div.main h2:first-child, div.main h3:first-child {
+     margin-top: 0px; 
+     margin-bottom: -5px;
+}
+
+div.wideload h2 {
+     margin-bottom: 0px !important;
+}
+
+div.wideload h3:first-child {
+     margin-top: 0 !important;
+}
+
+div.wideload h3 {
+     margin-top: 15px !important;      
+     margin-bottom: 0px !important;
+}
+
+div.wideload p !important {
+     margin-top: 5px;
 }
 
 div.news {
      margin: -5px 0px 0 195px;
-     padding: -10px 15px 8px 15px;
+     padding: -10px 0px 8px 0px;
      background: #ffffc0;
      border: 5px solid #bbf;
-     text-align: justify;
-     color: inherit;
+     text-align: right;
+     color: #770;
      min-width: 600px;
      padding-bottom: 8px;
      padding-left: 10px;
      padding-right: 10px;
      -moz-box-shadow: inset 0px 0px 0px 1px #99f;
+     font-size: 7pt;
 }
 
 /* convert the list entry to our title */
@@ -296,34 +340,50 @@ div.news {
 div.news li {
      text-align: justify;
      list-style: none;
-     margin: -15px 15px -20px -20px;
+     margin: 15px 15px -10px -20px;
      padding: 0px 0 15px 0;
-     border-bottom: 5px solid #cc7;
+     border-bottom: 2px dotted #cc7;
      border-top: 0px solid #cc7;     
-     padding: 3px 5px 5px 5px;
-     font-size: 12pt;
+     padding: 3px 5px 5px 0;
+     font-size: 10pt;
      color: #540;
 }
 
 div.news p {
      color: #330;
+     font-size: 9pt;
+     margin-bottom: -10px;
+}
+/*
+div.news p:first-child {
+     padding-top: 15px !important;
+}
+
+ 
+div.news p:nth-child(2n) {
+     padding-top: 15px !important;
+}
+*/
+div.news p:last-child {
+     margin-bottom: 10px;
 }
+
 div.news a:link {
-     color: #773;
+     color: #663;
      text-shadow: 0px 0px 1px rgba(128, 128, 48, 0.3);
 }
 
 div.news a:visited {
-     color: #f00 !important;
+     color: #773 !important;
      text-shadow: 0px 0px 1px rgba(128, 128, 48, 0.3);
 }
 
 div.news hr {
      color: #cc7;
      background: #cc7;
-     height: 2px;
-     border: 0px solid #cc7;
-     margin: 5px 0;
+     height: 1px;
+     border: 0px solid #cccc77;
+     margin: 2px 0 0 0;
 }
 
 div.confignav {
@@ -339,10 +399,14 @@ div.configure {
      padding: 0px 20px 0px 20px;
 }
 
+div.configure hr {
+     margin: 15px 0;
+}
+
 div.configure table {
      font-size: 9pt;
      font-weight: bold;
-     -moz-box-shadow: inset 0px 0px 1px 1px #001;
+     border: 1px solid #bbf;
 }
 
 div.configure tr, div.configure td {
@@ -353,6 +417,23 @@ div.configure tr {
      -moz-box-shadow: inset 0px 0px 1px 0px #bbf;
 }
 
+div.configure li:first-child, div.main li:first-child {
+     margin-top: -10px;
+}
+
+div.configure li:last-child {
+     margin-bottom: -5px;
+}
+
+div.configure h2:first-child {
+     margin-top: 15px;
+}
+
+.topshimten {
+     margin-top: 15px;
+     margin-bottom: 15px;
+} 
+
 div.messages {
      padding: 0px 10px;
      background: #fff;
@@ -367,8 +448,8 @@ div.messages {
 }
 
 div.messages li, div.messages ul {
-     padding: 15px 0 5px 5px;
-     margin: -15px 0 0 0;
+     padding: 10px 0 0 5px;
+     margin: -10px 0 0 0;
 }
 
 div.messages span.error {
@@ -397,17 +478,18 @@ h1 {
 h2 {
      font-size: 14pt;
      padding: 0px 10px 10px 10px;
-     border-bottom: 5px solid #bbf;
-     border-top: 0px solid #bbf;
+     border-bottom: 3px solid #aaf;
+     border-top: 0px solid #aaf;
      letter-spacing: 0.04em;
 }
 
 h3 {
      font-size: 12pt;
      padding: 0 10px 10px 10px;
-     border-bottom: 5px solid #bbf;
-     border-top: 0px solid #bbf;
+     border-bottom: 3px solid #aaf;
+     border-top: 0px solid #aaf;
      letter-spacing: 0.04em;
+     margin-bottom: 10px;
 }
 
 .proxyfooter{
@@ -417,7 +499,7 @@ h3 {
 
 table {
      border-collapse: collapse; 
-     border: 5px solid #bbf;
+     border: 1px solid #bbf;
      margin: 0 0 5px 0;
      cell-padding: 1px;
      font-size: 7.5pt;
@@ -442,7 +524,7 @@ th {
      background-color: #fff;
      padding: 8px 2px;
      text-align: center;
-     border-bottom: 1px solid #88f;
+     border-bottom: 1px solid #bbf;
 }
 
 tt {
@@ -466,11 +548,11 @@ tr:nth-child(odd) {
 }
 
 hr {
-     color: #bbf;
-     background: #bbf;
-     height: 5px;
-     border: 0px solid #bbf;
-     margin: 5px 0;
+     color: #aaf;
+     background: #aaf;
+     height: 3px;
+     border: 0px solid #aaf;
+     margin: 3px 0;
 }
 
 .statusnotes {
@@ -484,6 +566,58 @@ hr {
      border-top: 0;
      padding: 4px 0 2px 0;
 }
+
+div.joblog {
+     margin: 10px 0;
+     line-height: 130% !important;
+}
+
+div.joblog:li {
+     word-wrap: break-word !important;
+     text-align: justify !important;
+     line-height: 80% !important;
+}
+
+div.joblog:ul {
+     word-wrap: break-word !important;
+     text-align: justify;
+}
+
+div.joblog li:first-child {
+     margin-top: -10px;
+}
+
+div.joblog li:last-child {
+     margin-bottom: -10px;
+}
+
+div.joblog form:first-child {
+     margin-top: 10px;
+}
+
+div.joblog table {
+     margin-top: 15px;
+}
+
+div.joblog p {
+     line-height: 130%;
+}
+
+div.joblog h3 {
+     margin: 10px 0 20px 0;
+}
+
+div.joblog h3:first-child {
+     margin: 5px 0 15px 0;
+}
+
+div.joblog hr {
+     margin: 15px 0 15px;
+}
+
+div.joblog ol {
+     margin-bottom: 0px;
+}
  
 input {
      margin: 3px 5px 3px 0;
@@ -512,13 +646,14 @@ p {
 
 .formaction {
      text-align: right;
+     margin: -10px -5px;
 }
 
 .langbox {
-     margin: 20px -15px 0px 5px;
+     margin: 10px -20px 0px 5px;
      color: #001;
      font-size: 7pt;
-     width: 180px;
+     width: 220px;
      text-align: center;
      float: right;
      valign: middle;
@@ -528,6 +663,16 @@ p {
      padding: 0 2px; /* Ignored by IE8 */
 }
 
+.links {
+     padding-bottom: -2px;
+     text-align: justify;
+     margin-top: 5px !important;
+}
+
+.links li {
+     list-style-image: url("../images/link.png") !important;
+}
+
 a:link{
      color: #006;
      text-decoration: none;
@@ -565,7 +710,7 @@ tt {
 }
 
 .tablefooter {
-     border: 1px solid #88f;
+     border: 1px solid #bbf;
 }
 
 .tablefooter tr, .tablefooter td {
@@ -575,15 +720,17 @@ tt {
      line-height: 150%;
      word-wrap: nowrap;
      padding: 8px 1px;
+     border-top: 2px solid #bbf;
 }
 
 .tidylist {
      text-align: justify;
      padding-right: 30px;
+     margin-right: 20px;
 }
 
 div.graphspanel {
-     padding: 20px 10px;
+     padding: 15px 5px 20px 5px;
      margin: -20px;
      background: #ddf url('images/lightbluetile.png');
      -moz-border-radius: 4px;
@@ -595,11 +742,12 @@ div.graphspanel {
 }
 
 div.graphspanel img {
-     border: 1px solid #99f;
+     border: 1px solid #77f;
      padding: 2px;
      margin: 6px;
-     background: #ddf;
-     -moz-box-shadow: inset 0px 0px 1px 1px #99f;
+     background: #ccf;
+     -moz-box-shadow: inset 0px 0px 0px 0px #002;
+     opacity: 0.9;
 }
 
 div.graphspanel img:hover {
@@ -609,17 +757,19 @@ div.graphspanel img:hover {
      text-align: center !important;
      background: #001;
      -moz-box-shadow: inset 0px 0px 2px 1px #f60;
+     opacity: 1;
 }
 
 div.graphspanel hr {
-     margin: 20px 0;
+     margin: 10px 0;
 }
 
-div.graphspanel form {
+div.graphspanel form:last-child {
      text-align: left;
      margin: 0 20px;
 }
 
 div.graphspanel h3 {
      text-align: left;
+     margin: 10px 20px 10px 20px;
 }
\ No newline at end of file
diff --git a/installer/resources/themes/console/dark/console.css b/installer/resources/themes/console/dark/console.css
index 7f2a7f204579441c01ee96ea58f7253741081fee..7ea556b58f4b94bf83cd0107ada4914ab051e6d8 100644
--- a/installer/resources/themes/console/dark/console.css
+++ b/installer/resources/themes/console/dark/console.css
@@ -124,10 +124,10 @@ div.routersummary hr {
 
 div.routersummary h3 {
      border: 0;
-     font-size: 10pt;
+     font-size: 9.5pt;
      letter-spacing: 0.04em;
-     margin: -7px -9px -10px -9px;
-     padding: 3px 0px 5px 0px;
+     margin: -7px -9px -8px -9px;
+     padding: 2px 0 3px 0 !important;
      background: #007;
      text-transform: uppercase;
      -moz-border-radius: 0;
@@ -143,7 +143,7 @@ div.routersummary h4 {
      font-size: 8.5pt;
      letter-spacing: 0.03em;
      margin: -7px -9px -10px -9px !important;
-     padding: 2px 3px 5px 3px;
+     padding: 1px 3px 4px 3px;
      background: #005;
      text-transform: capitalize;
      text-decoration: none !important;
@@ -154,11 +154,11 @@ div.routersummary h4 {
 div.routersummary table {
      border: 0;
      text-align: center !important;
-     margin: -1px -4px -4px -4px;
+     margin: -5px -4px -5px -5px !important;
      width: 185px !important;
      overflow: hidden;
      font-size: 8pt;
-     padding: 0px -10px;
+     padding: 0 -10px;
      background-image: none !important;
      background-color: transparent !important;
 }
@@ -170,13 +170,23 @@ div.routersummary tr {
 }
 
 div.routersummary form {
-     margin-top: 8px;
+     margin: -6px 0 -7px;
+}
+
+div.routersummary form:first-child {
+     margin: 6px 0 -4px 0 !important;
 }
 
 div.routersummary p {
      padding: 0;
 }     
 
+div.refresh {
+     margin-top: -10px !important;
+     margin-bottom: -4px !important;
+     padding: 2px 0 0px 0 !important;
+}
+
 div.routersummary a:link, div.routersummary a:visited {
      text-shadow: 0px 0px 1px rgba(192, 192, 255, 0.5);
 }
@@ -187,20 +197,27 @@ div.routersummary a:hover {
 }
 
 div.routersummary td {
-     padding: 2px 4px;
+     padding: 0px 2px 0px 2px;
      background-image: none !important;
      border: 0 !important;
 }
 
+div routersummary hr:last-child {
+     margin-top: 5px;
+     margin-bottom: -5px !important;
+}
 
-div.routersummary tr:nth-child(even) {
-     background-color: #f60;
-     background-image: none !important;
+div.tunnels {
+     padding-top: 3px !important;
+     margin-left: -2px;
 }
 
-div.routersummarytr:nth-child(odd) {
-     background-color: #f00;
-     background-image: none !important;
+div.tunnels table {
+     margin: -3px 0 !important;
+}
+
+div.tunnels td {
+     padding: 1px 2px 1px 2px;
 }
 
 div.warning {
@@ -214,8 +231,8 @@ div.warning {
      -khtml-border-radius: 4px;
      border-radius: 4px;
      text-align: justify;
-     background-image:url("images/errortriangle.png");
-     background-position:15px center;
+     background-image:url("../images/itoopie_sm.png");
+     background-position:10px center;
      background-repeat:no-repeat;
      -moz-box-shadow: inset 0px 0px 0px 1px #f00;
      -khtml-box-shadow: inset 0px 0px 0px 1px #f00;
@@ -269,16 +286,17 @@ div.main textarea {
 
 div.news {
      margin: 15px 15px 15px 220px;
-     padding: 20px 30px 20px 30px;
+     padding: 5px 30px 10px 30px;
      border: 1px solid #99f;
      background: #004;
      background-image: -moz-linear-gradient(top, bottom, from(#003), to(#005), color-stop(30%, #003), color-stop(100%, #001));
 /*     background: #003 url("images/darkbluetile.png");*/
-     color: #eef;
+     color: #aaf;
      border-radius: 4px;
      -moz-border-radius: 4px;
      -khtml-border-radius: 4px;
-     text-align: justify;
+     font-size: 7.5pt;
+     text-align: right;
      -moz-box-shadow: inset 0px 0px 1px 0px #eef;
      -khtml-box-shadow: inset 0px 0px 1px 0px #eef;
      box-shadow: inset 0px 0px 1px 0px #eef;
@@ -287,12 +305,34 @@ div.news {
 div.news li {
      text-align: justify;
      list-style: url('images/info_dark.png');
-     margin: 0 10px 0 30px;
-     padding: 5px;
+     margin: 0 10px 0 20px;
+     padding: 5px 5px 5px 0;
      vertical-align: middle;
      word-wrap: break-word;
+     color: #99f;
+}
+
+div.news h4 {
+     border-bottom: 1px;
+     border-bottom-style: dotted;
+     border-bottom-color: #99f;
+     padding: 0 0 5px 0;
+     margin: 5px 0 10px 0;
+     font-size: 10pt;
+     opacity: 0.8;
+     text-transform: capitalize;
+}
+
+div.news p {
+     margin-top: -5px;
+     font-size: 8.5pt;
+     color: #eef;
 }
 
+div.news hr {
+     margin: -2px 0 5px 0;
+}     
+
 div.confignav {
      padding: 15px 10px !important;
      margin: 15px 0;
@@ -301,7 +341,7 @@ div.confignav {
      -khtml-border-radius: 4px;
      border-radius: 4px;
      border: 1px solid #99f;
-     font-size: 10pt !important;
+     font-size: 9.5pt !important;
      font-weight: bold !important;
      line-height: 160% !important;
      -moz-box-shadow: inset 0px 0px 1px 0px #eef;
@@ -486,6 +526,14 @@ div.main li {
      text-align: justify !important;
 }
 
+.tidylist:first-child {
+     padding-top: 5px;
+}
+
+.tidylist:last-child {
+     padding-bottom: 5px;
+}
+
 ol {
      display: inline;
      margin: 1px 0 0 0;
@@ -493,7 +541,7 @@ ol {
 }
 
 ul {
-     display: inline;
+/*     display: inline; */
      margin: 0;
      padding: 0;
 }
@@ -511,7 +559,7 @@ a:link, h2 a:link{
 }
 
 a:visited{
-     color: #7bb;
+     color: #77f;
      text-decoration: none;
      font-weight: bold;     
      word-wrap: break-word;
@@ -525,10 +573,14 @@ a:hover{
 }
 
 .links {
-     list-style-image: url("images/link_dark.png");
-     margin: 0 5px 0 0px;
-     padding: 0px 5px;
+     padding-bottom: -2px;
      text-align: justify;
+     margin-top: 10px;
+     margin-bottom: -10px;
+}
+
+.links li {
+     list-style-image: url("../images/link_dark.png") !important;
 }
 
 p {
@@ -574,7 +626,7 @@ h2 {
      -moz-border-radius: 4px;
      -khtml-border-radius: 4px;
      vertical-align: middle;
-     margin: 15px 0 15px 0 !important;
+     margin: 15px 0 12px 0 !important;
      -moz-box-shadow: inset 0px 0px 1px 0px #eef;
      -khtml-box-shadow: inset 0px 0px 1px 0px #eef;
      box-shadow: inset 0px 0px 1px 0px #eef;
@@ -594,12 +646,11 @@ h3 {
      border: 1px solid #99f;
      border-left: 5px solid #99f;
      padding: 3px 5px 3px 5px;
-/*     margin: 20px 0 15px 0;*/
+     margin: 12px 0 10px 0;
      border-radius: 0 4px 4px 0;
      -moz-border-radius: 0 4px 4px 0;
      -khtml-border-radius: 0 4px 4px 0;
      background: #002;
-/*     background: url(images/lightbluebg.png);*/
 }
 
 h4 {
@@ -676,6 +727,11 @@ hr {
      margin: 10px 0;
 }
 
+hr:last-child {
+     margin-top: 20px;
+     margin-bottom: 20px;
+}
+
 sidebarlogo {
      text-align: center;
 }
@@ -792,8 +848,8 @@ form {}
      color: #eef;
      text-align: center;
      border: 1px solid #99f !important;
-     border-top: 0px !important;
-     margin: -5px 0 5px 0; 
+/*     border-top: 0px !important;*/
+     margin: -3px 0 5px 0; 
      padding: 7px;
      background: #004;
      -moz-box-shadow: inset 0px 0px 0px 1px #009;
@@ -801,7 +857,7 @@ form {}
      box-shadow: inset 0px 0px 0px 1px #009;
 }
 
-.joblog {
+div.joblog {
      margin: 	15px 0 15px 0;
      padding: 5px 20px 10px 20px !important;
      border: 1px solid #99f;
@@ -811,7 +867,7 @@ form {}
      border-radius: 4px;
      -moz-border-radius: 4px;
      -khtml-border-radius: 4px;
-     text-align: justify;
+     text-align: justify !important;
      -moz-box-shadow: inset 0px 0px 1px 0px #eef;
      -khtml-box-shadow: inset 0px 0px 1px 0px #eef;
      box-shadow: inset 0px 0px 1px 0px #eef;
@@ -820,18 +876,35 @@ form {}
  
  div.joblog:li {
      word-wrap: break-word !important;
-     text-align: justify;
+     text-align: justify !important;
+     line-height: 80% !important;
 }
 
- .joblog:ul {
+div.joblog:ul {
      word-wrap: break-word !important;
      text-align: justify;
 }
 
+div.joblog li:first-child {
+     margin-top: 10px;
+}
+
+div.joblog li:last-child {
+     margin-bottom: 0;
+}
+
 div.joblog form:first-child {
      margin-top: 10px;
 }
 
+div.joblog table {
+     margin-top: 15px;
+}
+
+div.joblog p {
+     line-height: 130%;
+}
+
 .smallhead {
      font-size: 7pt
 }
diff --git a/installer/resources/themes/console/images/itoopie_sm.png b/installer/resources/themes/console/images/itoopie_sm.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c9b87d573bdff9a98db1fb8da68ffec4140d2e6
Binary files /dev/null and b/installer/resources/themes/console/images/itoopie_sm.png differ
diff --git a/installer/resources/themes/console/images/link.png b/installer/resources/themes/console/images/link.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0eba7969888b86b7f9b554434dc9750c1218c9e
Binary files /dev/null and b/installer/resources/themes/console/images/link.png differ
diff --git a/installer/resources/themes/console/images/link_dark.png b/installer/resources/themes/console/images/link_dark.png
new file mode 100644
index 0000000000000000000000000000000000000000..e33c92544f0daf08363c3a6156beb43d1f22d4b4
Binary files /dev/null and b/installer/resources/themes/console/images/link_dark.png differ
diff --git a/installer/resources/themes/console/light/console.css b/installer/resources/themes/console/light/console.css
index 55db139fbf4b98f2bf746d0f4cebce1169f74efc..cd413faf445d08e54e4a1e0436bcffa3d7bbc1b8 100644
--- a/installer/resources/themes/console/light/console.css
+++ b/installer/resources/themes/console/light/console.css
@@ -119,12 +119,17 @@ div.routersummary hr {
      -moz-box-shadow: inset 0px 1px 1px 1px #001;
 }
 
+div routersummary hr:last-child {
+     margin-top: 5px;
+     margin-bottom: -5px !important;
+}
+
 div.routersummary h3 {
      border: 0;
-     font-size: 10pt;
+     font-size: 9.5pt;
      letter-spacing: 0.04em;
      margin: -7px -9px -7px -9px;
-     padding: 5px 0px 5px 0px;
+     padding: 1px 0;
      background: #c5d5fb;
      text-transform: uppercase;
      background-image: -moz-linear-gradient(top, bottom, from(#ddf), to(#c5d5fb), color-stop(25%, #c5d5fb), color-stop(100%, #ddf));
@@ -136,7 +141,7 @@ div.routersummary h4 {
      font-size: 8.5pt;
      letter-spacing: 0.02em;
      margin: -7px -9px -7px -9px !important;
-     padding: 2px 3px 3px 3px;
+     padding: 0px 3px 1px 3px;
      background: #c1d1f7;
      text-transform: capitalize;
      text-decoration: none !important;
@@ -146,7 +151,7 @@ div.routersummary h4 {
 div.routersummary table {
      border: 0;
      text-align: center !important;
-     margin: -2px -4px;
+     margin: -7px -5px -6px -5px;
      width: 185px !important;
      overflow: hidden;
      font-size: 8pt;
@@ -161,14 +166,36 @@ div.routersummary tr {
      border: 0 !important;
 }
 
+div.tunnels {
+     margin-top: 6px !important;
+     margin-left: -2px !important;
+     margin-bottom: 3px !important;
+     padding-top: 3px !important;
+}
+
+.tunnels tr {
+     padding: 4px 0 !important;
+}
+
 div.routersummary form {
-     margin-top: 8px;
+     margin: -6px 0 -5px 0;
+}
+
+div.routersummary form:last-child {
+     margin: 0 !important;
+     padding: 0;
 }
 
 div.routersummary p {
      padding: 0;
 }     
 
+div.refresh {
+     margin-top: -6px !important;
+     margin-bottom: 0px !important;
+     padding: 2px 0 0px 0 !important;
+}
+
 div.routersummary a:link, div.routersummary a:visited {
      text-shadow: 0px 0px 1px rgba(0, 0, 32, 0.5);
 }
@@ -179,26 +206,16 @@ div.routersummary a:hover {
 }
 
 div.routersummary td {
-     padding: 2px 4px;
+     padding: 1px 3px;
      background-image: none !important;
      border: 0 !important;
 }
 
-div.routersummary tr:nth-child(even) {
-     background-color: #f60;
-     background-image: none !important;
-}
-
-div.routersummarytr:nth-child(odd) {
-     background-color: #f00;
-     background-image: none !important;
-}
-
 /* proxy error messages */
 
 div.warning {
      margin: 5px 20px 10px 240px;
-     padding: 0px 25px 20px 75px;
+     padding: 5px 25px 20px 75px;
      background: #fff;
      border: 1px solid #002;
      text-align: left;
@@ -207,11 +224,12 @@ div.warning {
      -khtml-border-radius: 4px;
      border-radius: 4px;
      text-align: justify;
-     background-image:url("images/errortriangle.png");
-     background-position:15px center;
+     background-image:url("../images/itoopie_sm.png");     
+     background-position:10px center;
      background-repeat:no-repeat;
      -moz-box-shadow: inset 0px 0px 1px 0px #d00;
      word-wrap: break-word;
+     min-width: 400px;
 }
 
 /* console error messages */
@@ -260,6 +278,10 @@ div.main hr, hr {
      margin: 10px 0;
 }
 
+hr:last-child {
+     margin-top: 20px !important;
+}
+
 div.main textarea {
      background: #eef;
      color: #001;
@@ -268,18 +290,24 @@ div.main textarea {
 
 div.news {
      margin: 0px 15px 10px 220px;
-     padding: 10px 25px 15px 25px;
+     padding: 10px 25px 7px 25px;
      border: 1px solid #003;
      color: #410;
      border-radius: 4px;
      -moz-border-radius: 4px;
      -khtml-border-radius: 4px;
-     text-align: justify !important;
+     text-align: right !important;
+     font-size: 7pt;
      line-height: 140%;
      background: #fea url('images/sandtile.png');
      -moz-box-shadow: inset 0px 0px 1px 0px #410;
 }
 
+div.news p {
+     font-size: 8.5pt;
+     text-align: justify !important;
+}
+
 div.news a:link{
      color: #630;
      text-decoration: none;
@@ -303,13 +331,13 @@ div.news hr{
      background: #410;
      height: 1px;
      border: 0px solid #410;
-     margin: 10px 0;
+     margin: 10px 0 5px;
 }
 
 div.news li {
      text-align: justify;
      list-style: none;
-     margin: 0 0 20px 0 !important;
+     margin: 10px 0 20px 0 !important;
      padding: 5px 0;
      vertical-align: bottom;
      border: 1px solid #410;
@@ -320,7 +348,7 @@ div.news li {
      -khtml-border-radius: 0 4px 4px 0;
      background: #fb1;
      font-size: 10pt;
-     opacity: 0.8;
+     opacity: 0.7;
 }
 
 div.news h4 {
@@ -338,7 +366,7 @@ div.confignav {
      -khtml-border-radius: 4px;
      border-radius: 4px;
      border: 1px solid #000022;
-     font-size: 10pt !important;
+     font-size: 9.5pt !important;
      font-weight: bold !important;
      line-height: 160% !important;
      -moz-box-shadow: inset 0px 0px 1px 0px #002;
@@ -508,10 +536,21 @@ div.main li {
      word-wrap: break-word;
 }
 
+div.main li:first-child {
+     margin-top: 10px;
+}
 .tidylist {
      text-align: justify !important;
 }
 
+.tidylist li:first-child {
+     margin-top: -10px !important;
+}
+
+.tidylist:last-child {
+     padding-bottom: 5px;
+}
+
 ol {
 
      margin: 1px 0 0 5px;
@@ -520,7 +559,7 @@ ol {
 
 ul {
      display: inline;
-     margin: 5px 0;
+     margin: 0;
      padding: 0;
 }
 
@@ -530,14 +569,14 @@ code {
 }
 
 a:link{
-     color: #007;
+     color: #008;
      text-decoration: none;
      font-weight: bold;
      word-wrap: break-word;
 }
 
 a:visited{
-     color: #606;
+     color: #004;
      text-decoration: none;
      font-weight: bold;
 }
@@ -554,10 +593,23 @@ a:active{
      font-weight: bold;
 }
 
-.links {
-     list-style: url(images/link.png);
-     margin: 10px 5px 0 0px;
-     padding: 10px 20px 10px 30px;
+.links li {
+     list-style: url(../images/link.png) !important;
+     padding-bottom: -2px;
+     text-align: justify;
+     line-height: 120% !important;
+}
+
+.links li:first-child {
+     padding-top: 0 !important;
+}
+
+.links li:last-child {
+     padding-bottom: -15px !important;
+}
+
+.links ul {
+     margin-top: -5px !important;
 }
 
 p {
@@ -595,7 +647,7 @@ h2 {
      border-radius: 4px;
      -moz-border-radius: 4px;
      -khtml-border-radius: 4px;
-     margin: 15px 0px 15px 0 !important;
+     margin: 15px 0px 12px 0 !important;
      -moz-box-shadow: inset 0px 0px 1px 0px #002;
      word-wrap: break-word;
 }
@@ -612,7 +664,7 @@ h3 {
      border: 1px solid #002;
      border-left: 5px solid #002;
      padding: 3px 5px 3px 5px;
-     margin: 15px 0 15px 0;
+     margin: 12px 0 12px 0;
      border-radius: 0 4px 4px 0;
      -moz-border-radius: 0 4px 4px 0;
      -khtml-border-radius: 0 4px 4px 0;
@@ -803,7 +855,7 @@ form {}
      background: #bcf;
      -moz-box-shadow: inset 0px 0px 2px 1px #eef;
 }
-
+/*
 .joblog {
      margin: 15px 0;
      padding: 10px 20px !important;
@@ -830,6 +882,59 @@ form {}
 .joblog table {
      margin-top: 10px;
 }
+*/
+
+div.joblog {
+     margin: 15px 0;
+     padding: 10px 20px !important;
+     border: 1px solid #003;
+     background-color: #004;
+     background: #ddf url('images/lightbluetile.png');
+     color: #001;
+     border-radius: 4px;
+     -moz-border-radius: 4px;
+     -khtml-border-radius: 4px;
+     text-align: justify;
+     -moz-box-shadow: inset 0px 0px 1px 0px #002;
+     overflow: auto;
+ }
+ 
+ div.joblog:ul {
+     word-wrap: break-word !important;
+     text-align: justify;
+     line-height: 100% !important;
+}
+
+ div.joblog:li {
+     word-wrap: break-word !important;
+     text-align: justify !important;
+     line-height: 80% !important;
+     padding: 0;
+}
+
+div.joblog li:first-child {
+     margin-top: 10px;
+
+}
+div.joblog li:last-child {
+     margin-bottom: 5px;
+}
+
+div.joblog form:first-child {
+     margin-top: 10px;
+}
+
+div.joblog table {
+     margin-top: 15px;
+}
+
+div.joblog p {
+     line-height: 130%;
+}
+
+div.joblog hr {
+     margin: 15px 0;
+}
 
 .smallhead {
      font-size: 7pt
diff --git a/news.xml b/news.xml
index 7f0fd04f309b8572b9e235286da443e1d5d0eaa5..4dd4db902de3261049733a2fdd6641a45e108fd8 100644
--- a/news.xml
+++ b/news.xml
@@ -9,14 +9,21 @@
             publicurl="http://dev.i2p.net/pipermail/i2p/2005-July/000826.html"
             anonlogs="http://i2p/Nf3ab-ZFkmI-LyMt7GjgT-jfvZ3zKDl0L96pmGQXF1B82W2Bfjf0n7~288vafocjFLnQnVcmZd~-p0-Oolfo9aW2Rm-AhyqxnxyLlPBqGxsJBXjPhm1JBT4Ia8FB-VXt0BuY0fMKdAfWwN61-tj4zIcQWRxv3DFquwEf035K~Ra4SWOqiuJgTRJu7~o~DzHVljVgWIzwf8Z84cz0X33pv-mdG~~y0Bsc2qJVnYwjjR178YMcRSmNE0FVMcs6f17c6zqhMw-11qjKpY~EJfHYCx4lBWF37CD0obbWqTNUIbL~78vxqZRT3dgAgnLixog9nqTO-0Rh~NpVUZnoUi7fNR~awW5U3Cf7rU7nNEKKobLue78hjvRcWn7upHUF45QqTDuaM3yZa7OsjbcH-I909DOub2Q0Dno6vIwuA7yrysccN1sbnkwZbKlf4T6~iDdhaSLJd97QCyPOlbyUfYy9QLNExlRqKgNVJcMJRrIual~Lb1CLbnzt0uvobM57UpqSAAAA/meeting141"
             publiclogs="http://www.i2p.net/meeting141" />
+
+<h4><ul><li>2009-10-18: Website &amp; Console Translation - Help Needed!</li></ul></h4>
+
 <p>
+Shortly after the release of <a href="http://www.i2p2.i2p/release-0.7.7.html">I2P version 0.7.7</a>, we are happy to announce the first stage of the <a href="http://i2p2.i2p/index_zh.html">Chinese translation</a> of the <a href="http://www.i2p2.i2p">website</a>, thanks to our new Chinese translator, "walking". This we hope is the start of a bigger trend to get the website and console translated into YOUR language. Please visit the #i2p chat channel on <a href="irc://irc.freenode.net/i2p"> Freenode IRC</a> or anonymously over I2P via <a href="irc://127.0.0.1:6668/i2p">localhost:6668</a> if you wish to help. We appeal at this time especially to French and Spanish translators, since we seem to have plenty of you running I2P!</p>
+
 <h4><ul><li>2009-10-12: <b>0.7.7 <a href="http://www.i2p2.i2p/release-0.7.7.html">Released</a></b></li></ul></h4>
-</p><p>
+<p>
 I2P version 0.7.7 contains several anonymity improvements.
 The use of session keys for crypto was completely reworked,
-and I2PSnark now uses its own tunnels for tracker communication.
+and <a href="/i2psnark">I2PSnark</a> now uses its own tunnels for tracker communication.
 Work continues on improving the router console,
-including conformance to HTML standards and better support of UTF-8.
+including conformance to HTML standards, better support of UTF-8, and dr|z3d's ongoing
+<a href="/configui.jsp">console theme</a> wizardry, including an extensively 
+reworked "classic" theme optimized for less capable computers or browsers.
 </p><p>
 Work also continues on increasing speeds, both by reducing the
 number of session keys transferred, by improving the
diff --git a/readme.html b/readme.html
index 077d776cc9b8199f8265b46c70489f470b92d6c8..fdb3682a96027f05b6da97b8671e5e2a0e9f2bc9 100644
--- a/readme.html
+++ b/readme.html
@@ -6,7 +6,7 @@
     <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> 
     <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Welcome to I2P!</h2>
+<div class="welcome"><h2>Welcome to I2P!</h2></div>
 <p>If you've just started I2P, the Active: numbers on the left should start to 
   grow over the next few minutes and you'll see a "shared clients" local destination 
   listed on the left (if not, <a href="#trouble">see below</a>). Once those show 
@@ -14,7 +14,7 @@ up, you can:</p>
 <ul>
   <li><b>browse "eepsites"</b> - on I2P there are anonymously hosted websites 
     - tell your browser to use the <b>HTTP proxy at 127.0.0.1 port 4444</b>, then 
-    browse to an eepsite:<br />
+    browse to an eepsite:<br>
     <ul class="links">
       <li><a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> 
         and <a href="http://perv.i2p/stats.cgi">perv.i2p</a>: sites tracking active 
@@ -37,7 +37,7 @@ up, you can:</p>
     </ul><br>
       There are many more eepsites - just follow the links from the ones you see, 
       bookmark your favorites, and visit them often! 
-    </li><br>
+    </li>
     <ul>
       <li class="tidylist"><b>browse the web</b> - there is currently an HTTP 
         "outproxy" in I2P hooked up to your own HTTP proxy on port 4444 - simply 
diff --git a/readme_de.html b/readme_de.html
index 14dcc90eae3ab0375cab5b43550fe77dbacea508..54dbcb242ba51ba90dc7ba01bc15c80e71815d5d 100644
--- a/readme_de.html
+++ b/readme_de.html
@@ -1,22 +1,22 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Willkommen zu I2P!</h2>
+<div class="welcome"><h2>Willkommen zu I2P!</h2></div>
 <p>Wenn Du gerade I2P gestartet hast, sollten die "Active:" Zahlen links in den n&auml;chsten paar Minuten anwachsen und Du siehst dann dort ein "shared clients" lokales Ziel gelistet (falls nicht, <a href="#trouble">siehe Unten</a>). Sobald das erscheint, kannst Du:</p>
 <ul>
- <li class="tidylist"><b>"Eepsites" besuchen</b> - In I2P sind anonym gehostete Websites - 
-     Stelle Deinen Browser so ein, &uuml;ber den <b>HTTP proxy: 127.0.0.1 port 4444</b> zu surfen, dann besuche eine Eepsite:<br />
+ <li><b>"Eepsites" besuchen</b> - In I2P sind anonym gehostete Websites - 
+     Stelle Deinen Browser so ein, &uuml;ber den <b>HTTP proxy: 127.0.0.1 port 4444</b> zu surfen, dann besuche eine Eepsite:<br>
      <ul class="links">
-         <li class="tidylist"><a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> und
+         <li><a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> und
              <a href="http://perv.i2p/stats.cgi">perv.i2p</a>: Webseiten, die aktive Eepsites beobachten</li>
-         <li class="tidylist"><a href="http://forum.i2p/">forum.i2p</a>: Eine sichere und anonyme Verbindung zu <a href="http://forum.i2p2.de/">forum.i2p2.de</a></li>
-         <li class="tidylist"><a href="http://www.i2p2.i2p/index_de.html">www.i2p2.i2p</a> und der Spiegel <a href="http://i2p-projekt.i2p/index_de.html">i2p-projekt.i2p</a>:
+         <li><a href="http://forum.i2p/">forum.i2p</a>: Eine sichere und anonyme Verbindung zu <a href="http://forum.i2p2.de/">forum.i2p2.de</a></li>
+         <li><a href="http://www.i2p2.i2p/index_de.html">www.i2p2.i2p</a> und der Spiegel <a href="http://i2p-projekt.i2p/index_de.html">i2p-projekt.i2p</a>:
               Sichere und anonyme Verbindung zu <a href="http://www.i2p2.de/index_de.html">www.i2p2.de</a></li>
-         <li class="tidylist"><a href="http://eepsites.i2p/">eepsites.i2p</a>: Eine anonym gehostete Suchseite f&uuml;r Eepsites</li>
-         <li class="tidylist"><a href="http://ugha.i2p/">ugha.i2p</a>: Ugha's Eepsite, ein &ouml;ffentliches Wiki mit vielen Links</li>
-         <li class="tidylist"><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: Freenet proxy</li>
-	 <li class="tidylist"><a href="http://echelon.i2p">echelon.i2p</a>: Software Archive und Informationen zu I2P</li>
-         <li class="tidylist"><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: Anonymer Pastebin</li>
+         <li><a href="http://eepsites.i2p/">eepsites.i2p</a>: Eine anonym gehostete Suchseite f&uuml;r Eepsites</li>
+         <li><a href="http://ugha.i2p/">ugha.i2p</a>: Ugha's Eepsite, ein &ouml;ffentliches Wiki mit vielen Links</li>
+         <li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: Freenet proxy</li>
+	 <li><a href="http://echelon.i2p">echelon.i2p</a>: Software Archive und Informationen zu I2P</li>
+         <li><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: Anonymer Pastebin</li>
 	</ul><br />
      Es gibt viel mehr Eepsites - folge einfach den Links die du findest,
      bookmarke Deine Favoriten und besuche sie oft!</li><br />
diff --git a/readme_fr.html b/readme_fr.html
index faaf90136ea58b1f6765a929560a1225be8f2ef1..a95ffe266843581412cf8da6975e8697219ceb90 100644
--- a/readme_fr.html
+++ b/readme_fr.html
@@ -1,24 +1,24 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Bienvenu a I2P!</h2>
+<div class="welcome"><h2>Bienvenu a I2P!</h2></div>
 <p>Si vous venez juste de lancer I2P, les chiffres sur la gauche &agrave; cot&eacute; de Active devraient commencer &agrave; augmenter dans les prochaines minutes et vous verrez un "Shared client" en destination locale list&eacute;s sur la gauche (si non, <a href=#trouble>voir plus bas</a>). Une fois qu'ils apparaissent, vous pouvez:</p>
 <ul>
-  <li class="tidylist"><b>parcourir les "eepsites"</b> - sur I2P il y a des sites web anonymes h&eacute;berg&eacute;s - dites &agrave; votre navigateur d'utiliser <b>le HTTP proxy a l'adresse 127.0.0.1 port 4444</b>, ensuite vous pouvez naviguer sur les eepsites:<br />
+  <li><b>parcourir les "eepsites"</b> - sur I2P il y a des sites web anonymes h&eacute;berg&eacute;s - dites &agrave; votre navigateur d'utiliser <b>le HTTP proxy a l'adresse 127.0.0.1 port 4444</b>, ensuite vous pouvez naviguer sur les eepsites:<br>
      <ul class="links">
-          <li class="tidylist"><a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> et
+          <li><a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> et
              <a href="http://perv.i2p/stats.cgi">perv.i2p</a>: listent les eepsites actifs</li>
-          <li class="tidylist"><a href="http://forum.i2p/">forum.i2p</a>: une connection s&eacute;curis&eacute;e et anonyme vers <a href="http://forum.i2p2.de/">forum.i2p2.de</a></li>
-          <li class="tidylist"><a href="http://www.i2p2.i2p/">www.i2p2.i2p</a> et le miroir <a href="http://i2p-projekt.i2p">i2p-projekt.i2p</a>:
+          <li><a href="http://forum.i2p/">forum.i2p</a>: une connection s&eacute;curis&eacute;e et anonyme vers <a href="http://forum.i2p2.de/">forum.i2p2.de</a></li>
+          <li><a href="http://www.i2p2.i2p/">www.i2p2.i2p</a> et le miroir <a href="http://i2p-projekt.i2p">i2p-projekt.i2p</a>:
               connections s&eacute;curis&eacute;es et anonyme vers <a href="http://www.i2p2.de/">www.i2p2.de</a></li>
-          <li class="tidylist"><a href="http://eepsites.i2p/">eepsites.i2p</a>: un moteur de recherche d'eepsites</li>
-          <li class="tidylist"><a href="http://ugha.i2p/">ugha.i2p</a>: l'eepsite d'ugha, un wiki que chaucun peut &eacute;diter ainsi que</li>
-          <li class="tidylist"><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: un proxy Freenet 0.5</li>
-	  <li class="tidylist"><a href="http://echelon.i2p">echelon.i2p</a>: archive</li>
-	  <li class="tidylist"><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: Pastebin anonyme</li>
-	  <br />
+          <li><a href="http://eepsites.i2p/">eepsites.i2p</a>: un moteur de recherche d'eepsites</li>
+          <li><a href="http://ugha.i2p/">ugha.i2p</a>: l'eepsite d'ugha, un wiki que chaucun peut &eacute;diter ainsi que</li>
+          <li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: un proxy Freenet 0.5</li>
+	  <li><a href="http://echelon.i2p">echelon.i2p</a>: archive</li>
+	  <li><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: Pastebin anonyme</li>
+	  <br>
      </ul>
-     Il y a bien plus d'eepsites - suivez juste les liens au d&eacute;part de ceux sur lesquels vous &ecirc;tes, mettez-les dans vos favoris et visitez-les souvent!</li><br />
+     Il y a bien plus d'eepsites - suivez juste les liens au d&eacute;part de ceux sur lesquels vous &ecirc;tes, mettez-les dans vos favoris et visitez-les souvent!</li><br>
   <li class="tidylist"><b>Parcourez le web</b> - Il y a pour l'instant un outproxy HTTP sur I2P attach&eacute; &agrave; votre propre proxy HTTP sur le port 4444 - vous devez simplement configurer le proxy de votre navigateur pour l'utiliser (comme expliqu&eacute; ci-dessus) et aller sur n'importe quel URL normale - vos requ&ecirc;tes seront relay&eacute;es par le r&eacute;seau i2p.</li>
   <li class="tidylist"><b>Transfer de fichiers</b> - Il y a un <a href="i2psnark/">port</a> int&eacute;gr&eacute; de <a href="http://www.klomp.org/snark/">Snark</a> le client <a href="http://www.bittorrent.com/">BitTorrent</a>.</li>
   <li class="tidylist"><b>Utiliser le service de mail anonyme</b> - Postman a cr&eacute;&eacute; un syt&egrave;me de mails compatible avec un client de messagerie normal (POP3 / SMTP) qui permet d'envoyer des emails autant au sein d'i2p que vers et &agrave; partir de l'internet normal! Cr&eacute;ez-vous un compte &agrave;  <a href="http://hq.postman.i2p/">hq.postman.i2p</a>.
diff --git a/readme_nl.html b/readme_nl.html
index 0e46e7a1fad2e0a63c39211b3bbfdfad74f9f150..71fe16cb17b919fb0f9c50bd20e955cad986b7a8 100644
--- a/readme_nl.html
+++ b/readme_nl.html
@@ -1,11 +1,11 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Welkom bij I2P!</h2>
+<div class="welcome"><h2>Welkom bij I2P!</h2></div>
 <p>Als je net I2P opgestart hebt, zullen de 'Active:' (Actieve) getallen aan de linkerkant in de komende minuten stijgen, en je zal een "Shared clients" (Gedeelde clients) lokale bestemming zien staan aan de linkerkant (indien niet, <a href=#trouble>zie hieronder</a>). Eenmaal je deze bestemming ziet, kan je:</p>
 <ul>
- <li><b>surfen naar "eepsites"</b> - op I2P zijn er anonieme websites - stel je browser in om de <b>HTTP proxy op 127.0.0.1, poort 4444</b> te gebruiken, en surf vervolgens naar een eepsite:<br /><br />
-     <ul>
+ <li><b>surfen naar "eepsites"</b> - op I2P zijn er anonieme websites - stel je browser in om de <b>HTTP proxy op 127.0.0.1, poort 4444</b> te gebruiken, en surf vervolgens naar een eepsite:<br>
+     <ul class="links">
          <li><a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> en
              <a href="http://perv.i2p/stats.cgi">perv.i2p</a>: sites die lijsten bijhouden van actieve eepsites</li>
          <li><a href="http://forum.i2p/">forum.i2p</a>: een beveiligde en anonieme verbinding naar <a href="http://forum.i2p2.de/">forum.i2p2.de</a></li>
@@ -16,23 +16,23 @@
          <li><a href="http://fproxy.tino.i2p">fproxy.tino.i2p</a>: proxy naar het Freenet-netwerk</li>
          <li><a href="http://echelon.i2p">echelon.i2p</a>: software 
         archive and information for I2P</li>
-	       <li class="tidylist"><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: anonieme Pastebin</li>         
-     </ul><br />
-     Er zijn nog veel meer eepsites - volg gewoon de links vanaf diegene die je ziet. Voeg de beste toe aan je favorieten, en bezoek ze regelmatig!</li><br />
- <li><b>surfen op het web</b> - er is momenteel een HTTP "outproxy" in I2P, vastgehaakt aan je eigen HTTP proxy op poort 4444 - stel eenvoudigweg de proxy van je browser in om deze te gebruiken (zoals hierboven voor eepsites) en ga naar een willekeurige normale URL - je verzoeken voor websites worden rondgestuurd via het I2P-network.</li>
- <li><b>bestanden versturen</b> - er is een geintegreerde <a href="i2psnark/">aangepaste versie</a> van de
+	       <li><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: anonieme Pastebin</li>         
+     </ul><br>
+     Er zijn nog veel meer eepsites - volg gewoon de links vanaf diegene die je ziet. Voeg de beste toe aan je favorieten, en bezoek ze regelmatig!</li>
+<ul><li class="tidylist"><b>surfen op het web</b> - er is momenteel een HTTP "outproxy" in I2P, vastgehaakt aan je eigen HTTP proxy op poort 4444 - stel eenvoudigweg de proxy van je browser in om deze te gebruiken (zoals hierboven voor eepsites) en ga naar een willekeurige normale URL - je verzoeken voor websites worden rondgestuurd via het I2P-network.</li>
+ <li class="tidylist"><b>bestanden versturen</b> - er is een geintegreerde <a href="i2psnark/">aangepaste versie</a> van de
      <a href="http://www.klomp.org/snark/">Snark</a> <a href="http://www.bittorrent.com/">BitTorrent</a>
      client.</li>
- <li><b>anonieme e-mail gebruiken</b> - postman heeft een e-mailsysteem gecreerd, compatibel met normale e-mail
+ <li class="tidylist"><b>anonieme e-mail gebruiken</b> - postman heeft een e-mailsysteem gecreerd, compatibel met normale e-mail
      clients (POP3 / SMTP) dat toelaat e-mail binnen I2P evenals e-mail van en naar het gewone internet te versturen.
      Maak je eigen account op <a href="http://hq.postman.i2p/">hq.postman.i2p</a>.
      In i2p zit een gebundelde <a href="/susimail/susimail">susimail</a>,
      een webgebaseerde anonimiteits-georienteerde pop3/smtp-client ingesteld om postman zijn e-mailservices te gebruiken.</li>
- <li><b>anoniem chatten</b> - start je eigen IRC-client op en verbind met
+ <li class="tidylist"><b>anoniem chatten</b> - start je eigen IRC-client op en verbind met
      de server op <b>127.0.0.1 poort 6668</b>.  Dit wijst naar een of twee anoniem gehoste
      IRC servers, maar zowel jij als zei weten niet waar de andere is.</li>
- <li><b>anoniem bloggen</b> - neem een kijkje bij <a href="http://syndie.i2p2.de/">Syndie</a></li>
- <li>en veel meer</li>
+ <li class="tidylist"><b>anoniem bloggen</b> - neem een kijkje bij <a href="http://syndie.i2p2.de/">Syndie</a></li>
+ <li class="tidylist">en veel meer</li>
 </ul>
 
 <h2>Wil je je eigen eepsite?</h2>
diff --git a/readme_sv.html b/readme_sv.html
index 8d35f797da7e340a79d33732dca8535a7e7ef40e..4c02cfcdfb9591ffc22b800bc21702837bc59891 100644
--- a/readme_sv.html
+++ b/readme_sv.html
@@ -1,7 +1,7 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Welcome to I2P!</h2>
+<div class="welcome"><h2>Welcome to I2P!</h2></div>
 <p>Om du just har startat I2P kommer de "Aktiva: #/#" b&ouml;rja &ouml;ka inom 
 n&aring;gra f&aring; minuter och du kommer se en destination kallad "delade 
 klienter" p&aring; den v&auml;nstra listan (om inte <a href="#trouble">se 
@@ -9,7 +9,7 @@ nedan</a>). N&auml;r de syns kan du:</p>
 <ul>
  <li><b>surfa p&aring; "eepsidor"</b> - inom I2P finns det anonyma sajter - 
      st&auml;ll in din webbl&auml;sare till att anv&auml;nda <b>HTTP proxy vid 
-127.0.0.1 port 4444</b>, surfa sen till en eepsida:<br /> 
+127.0.0.1 port 4444</b>, surfa sen till en eepsida:<br>
      <ul class="links">
          <li><a 
 href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> och
@@ -30,9 +30,9 @@ wiki som alla kan f&ouml;r&auml;ndra, inneh&aring;ller m&aring;nga l&auml;nkar</
 Freenet proxy</li>
 	 <li><a href="http://echelon.i2p">echelon.i2p</a>: programvaruförråd och information om I2P</li>
 	 <li><a href="http://paste.i2p2.i2p">paste.i2p2.i2p</a>: anonym och säker pastebin</li>
-     </ul><br />
+     </ul><br>
      Det finns m&aring;nga fler eepsidor - f&ouml;lj bara l&auml;nkarna fr&aring;n dom du ser,
-     spara dina favoriter och bes&ouml;k dom ofta!</li><br />
+     spara dina favoriter och bes&ouml;k dom ofta!</li><br>
  <li><b>surfa p&aring; n&auml;tet</b> - det finns f&ouml;r n&auml;rvarande en "utproxy" i I2P 
 som &auml;r ansluten
      till din egen HTTP proxt p&aring; port 4444 - st&auml;ll helt enkelt in din 
diff --git a/readme_zh.html b/readme_zh.html
index fd3e85ff96d14fd1e14f4bb2efad5b60238cc1d9..82bf1abf1ed45f673b5a132fbbb7b85dcd0248e8 100644
--- a/readme_zh.html
+++ b/readme_zh.html
@@ -6,10 +6,10 @@
     <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> 
     <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>欢迎使用 I2P!</h2>
-<p>如果 I2P 已经运行,未来的几分钟里控制台左侧的活动节点(Active)数量将会增加,并会出现名为共享客户端("shared clients") 的本地目标。(如果没有,请见 <a href="/i2p-zhcn/i2psrc/i2p.i2p/readme_zh.html#trouble">疑难解答</a>)。待出现以上消息后,您可以:</p>
+<div class="welcome"><h2>欢迎使用 I2P!</h2></div>
+<p>如果 I2P 已经运行,未来的几分钟里控制台左侧的活动节点(Active)数量将会增加,并会出现名为共享客户端("shared clients") 的本地目标。(如果没有,请见 <a href="#trouble">疑难解答</a>)。待出现以上消息后,您可以:</p>
 <ul>
- <li><B>浏览 I2P 站点 "eepsites"</B> -  I2P 网络内匿名运行的小站 - 您要首先设置浏览器的 <b>HTTP 代理</b> 为 127.0.0.1:4444 然后才能浏览 I2P 站点 - <ul>
+ <li><B>浏览 I2P 站点 "eepsites"</B> -  I2P 网络内匿名运行的小站 - 您要首先设置浏览器的 <b>HTTP 代理</b> 为 127.0.0.1:4444 然后才能浏览 I2P 站点 - <ul class="links">
          <li><a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p</a> 和 <a href="http://perv.i2p/stats.cgi">perv.i2p</a>:&nbsp;这两个站点用于跟踪哪些 I2P 站点在线。</li>
          <li><a href="http://forum.i2p/">forum.i2p</a>:I2P官方论坛 <a href="http://forum.i2p2.de/">forum.i2p2.de</a>&nbsp;的匿名入口&nbsp;(个人的I2P站点会在论坛的EEPSITE讨论区发布)</li>
          <li><a href="http://www.i2p2.i2p/">www.i2p2.i2p</a> 与镜像 <a href="http://i2p-projekt.i2p/">i2p-projekt.i2p</a>:&nbsp;可以安全匿名的访问I2P官网 <a href="http://www.i2p2.de/">www.i2p2.de</a></li>
@@ -21,7 +21,7 @@
      </ul> <br>
       I2P网络中还有很多其他网站(EEPSITE) - 访问上面的网站你会找到更多,收藏你喜爱的 I2P 网站,别忘了常去看看!</li><br>
  <li><b>浏览 Web 网页</b> - 目前 IP2 网络中的出口代理("Outproxy")只有一个,它以HTTP代理的形式挂接在本地计算机的4444端口上。- 将浏览器的代理设置指向为上述地址(127.0.0.1:4444)后,访问任何普通链接即可 - 您的HTTP请求将在 I2P 网络内部传递。</li>
- <li><b>文件交换</b> - I2P的其中一个本地&nbsp;<a href="/i2p-zhcn/i2psrc/i2p.i2p/i2psnark/">端口</a>&nbsp;用于内置的&nbsp;<a href="http://www.klomp.org/snark/">Snark</a> <a href="http://www.bittorrent.com/">BitTorrent</a> 客户端。</li>
+ <li><b>文件交换</b> - I2P的其中一个本地&nbsp;<a href="/i2psnark">端口</a>&nbsp;用于内置的&nbsp;<a href="http://www.klomp.org/snark/">Snark</a> <a href="http://www.bittorrent.com/">BitTorrent</a> 客户端。</li>
  <li><b>匿名电邮</b> - POSTMAN 建立了兼容普通邮件客户端 (POP3 / SMTP)的邮件系统,这个系统可以在 I2P 网络内部收发 Email 也可以收发来自外部 Internet 的邮件!I2P的邮件帐户请到 <a href="http://hq.postman.i2p/">hq.postman.i2p</a> 申请。I2P中集成了Web界面的pop3/stmp邮件客户端 <a href="/susimail/susimail">SUSIMail</a>,并已设置好使用POSTMAN 的邮件服务。</li>
  <li><b>匿名聊天</b> - 打开你的 IRC 聊天程序,连接至 <b>127.0.0.1:6668&nbsp;</b>即可访问I2P的匿名 IRC 服务器,但无论你还是服务器都不知道聊天的人在哪里。</li>
  <li><b>匿名博客</b> - 请访问 <a href="http://syndie.i2p2.de/">Syndie</a></li>
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index 8aa072fcf9438648320c85ef3852d1e13da4f6b8..b54d1de4bcebaa2676a267138f4700e337aabb2f 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -18,7 +18,7 @@ public class RouterVersion {
     /** deprecated */
     public final static String ID = "Monotone";
     public final static String VERSION = CoreVersion.VERSION;
-    public final static long BUILD = 0;
+    public final static long BUILD = 5;
     /** for example "-test" */
     public final static String EXTRA = "";
     public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
index 29aac8f7b11f2fde3fb8a95f07bce5174056d1b8..743acf17a6afbc19eda6a499f817adeec6006e48 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
@@ -642,11 +642,11 @@ public class NTCPTransport extends TransportImpl {
         long totalRecv = 0;
 
         StringBuilder buf = new StringBuilder(512);
-        buf.append("<p><b id=\"ntcpcon\"><h3>NTCP connections: ").append(peers.size());
+        buf.append("<div class=\"wideload\"><h3 id=\"ntcpcon\">NTCP connections: ").append(peers.size());
         buf.append(". Limit: ").append(getMaxConnections());
         buf.append(". Timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));
-        buf.append(".</b></h3>\n" +
-                   "<div class=\"wideload\"><table>\n" +
+        buf.append(".</h3>\n" +
+                   "<table>\n" +
                    "<tr><th><a href=\"#def.peer\">Peer</a></th>" +
                    "<th>Dir</th>" +
                    "<th align=\"right\"><a href=\"#def.idle\">Idle</a></th>" +
@@ -730,7 +730,7 @@ public class NTCPTransport extends TransportImpl {
                        "</td></tr>\n");
         }
 
-        buf.append("</table></div></p>\n");
+        buf.append("</table>\n");
         out.write(buf.toString());
         buf.setLength(0);
     }
diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index 06b429889e06725d35110919bea90604b0b2b79c..2bdf8a466f82fc781ce8754b21ae3802330f4b5e 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -1771,7 +1771,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         buf.append(". Limit: ").append(getMaxConnections());
         buf.append(". Timeout: ").append(DataHelper.formatDuration(_expireTimeout));
         buf.append(".</h3>\n");
-        buf.append("<div class=\"wideload\"><table>\n");
+        buf.append("<table>\n");
         buf.append("<tr><th class=\"smallhead\" nowrap><a href=\"#def.peer\">Peer</a>");
         if (sortFlags != FLAG_ALPHA)
             buf.append(" <a href=\"").append(urlBase).append("?sort=0\">V</a> ");
@@ -2002,7 +2002,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         buf.append(sendTotal).append("</b></td> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n");
         buf.append("      <td align=\"center\"><b>").append(resentTotal);
         buf.append("</b></td> <td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n");
-        buf.append(" </tr></table></div></p><p>\n");
+        buf.append(" </tr></table></div>\n");
         long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
         // NPE here early
         double averagePacketSize = _context.statManager().getRate("udp.sendPacketSize").getLifetimeAverageValue();
@@ -2011,7 +2011,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         double nondupSent = ((double)bytesTransmitted - ((double)resentTotal)*averagePacketSize);
         double bwResent = (nondupSent <= 0 ? 0d : ((((double)resentTotal)*averagePacketSize) / nondupSent));
         buf.append("<h3>Percentage of bytes retransmitted (lifetime): ").append(formatPct(bwResent));
-        buf.append("</h3><i>(Includes retransmission required by packet loss)</i><br></p>\n");
+        buf.append("</h3><i>(Includes retransmission required by packet loss)</i>\n");
         out.write(buf.toString());
         buf.setLength(0);
         out.write(KEY);
@@ -2031,7 +2031,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
     }
     
     private static final String KEY = "<h3>Definitions:</h3><div class=\"configure\">" +
-        "<br><b id=\"def.peer\">Peer</b>: the remote peer.<br>\n" +
+        "<p><b id=\"def.peer\">Peer</b>: the remote peer.<br>\n" +
         "<b id=\"def.dir\">Dir</b>: v means they offer to introduce us, ^ means we offer to introduce them.<br>\n" +
         "<b id=\"def.idle\">Idle</b>: the idle time is how long since a packet has been received or sent.<br>\n" +
         "<b id=\"def.rate\">In/out</b>: the rates show a smoothed inbound and outbound transfer rate (KBytes per second).<br>\n" +
@@ -2049,10 +2049,10 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         "<b id=\"def.send\">TX</b>: the number of packets sent to the peer.<br>\n" +
         "<b id=\"def.recv\">RX</b>: the number of packets received from the peer.<br>\n" +
         "<b id=\"def.resent\">ReTX</b>: the number of packets retransmitted to the peer.<br>\n" +
-        "<b id=\"def.dupRecv\">DupRX</b>: the number of duplicate packets received from the peer." +
+        "<b id=\"def.dupRecv\">DupRX</b>: the number of duplicate packets received from the peer.</p>" +
         "</div>\n";
     
-    /**
+    /*
      * Cache the bid to reduce object churn
      */
     private class SharedBid extends TransportBid {