<%@page contentType="text/html"%><%@page pageEncoding="UTF-8"%><% // note that for the helper we use a session scope, not a request scope, // so that we can access the NDT test results. // The MLabHelper singleton will prevent multiple simultaneous tests, even across sessions. // page ID final int LAST_PAGE = 6; String pg = request.getParameter("page"); int ipg; if (pg == null) { ipg = 1; } else { try { ipg = Integer.parseInt(pg); if (request.getParameter("prev") != null) { // previous button handling if (ipg == 5) ipg = 2; else ipg -= 2; } if (ipg <= 0 || ipg > LAST_PAGE) { ipg = 1; } else if (ipg == 3 && request.getParameter("skipbw") != null) { ipg++; // skip bw test } } catch (NumberFormatException nfe) { ipg = 1; } } // detect completion boolean done = request.getParameter("done") != null || request.getParameter("skip") != null; if (done) { // tell wizard helper we're done String i2pcontextId = request.getParameter("i2p.contextId"); try { if (i2pcontextId != null) { session.setAttribute("i2p.contextId", i2pcontextId); } else { i2pcontextId = (String) session.getAttribute("i2p.contextId"); } } catch (IllegalStateException ise) {} wizhelper.setContextId(i2pcontextId); wizhelper.complete(); // redirect to /home response.setStatus(307); response.setHeader("Cache-Control","no-cache"); String req = request.getRequestURL().toString(); int slash = req.indexOf("/welcome"); if (slash >= 0) req = req.substring(0, slash) + "/home"; else // shouldn't happen req = "http://127.0.0.1:7657/home"; response.setHeader("Location", req); // force commitment response.getOutputStream().close(); return; } %> <%@include file="css.jsi" %> <%=intl.title("New Install Wizard")%> <% wizhelper.setContextId(i2pcontextId); if (ipg == 3) { %> <% } // ipg == 3 %>
<% // Bind the session-scope Helper to the request-scope Handler formhandler.setWizardHelper(wizhelper); %>
<%@include file="formhandler.jsi" %>
<% if (ipg == 1) { // language selection %> <%-- needed for CSS: --%>
<%-- needed for lang setting in css.jsi: --%>

<%=uihelper._t("Select Language")%>

<%=intl._t("Please select your preferred language")%>

<%=intl._t("This project is supported by Transifex and OTF through the Localization Lab.")%> <%=intl._t("Thank you to all of the volunteers all over the world who help keep our project")%> <%=intl._t("accessible. I2P is always looking for support to keep its documentation up to date,")%> <%=intl._t("please consider supporting our translation efforts.")%>

<% } else if (ipg == 2) { // Overview of bandwidth test %>

<%=intl._t("Bandwidth Test")%>

<%=intl._t("I2P will now test your internet connection to identify the optimal speed settings.")%> <%=intl._t("Bandwidth participation improves the anonymity level of all users on the network and maximizes your download speed.")%> <%=intl._t("This is done using the third-party M-Lab service.")%> <%=intl._t("During this time you will be connected directly to M-Lab's service, with your real IP address.")%>

<%=intl._t("Please review the M-Lab privacy policies linked below.")%> <%=intl._t("If you do not wish to run the M-Lab bandwidth test, you may skip it by clicking the button below.")%>

<%=intl._t("M-Lab Privacy Policy")%>
<%=intl._t("M-Lab Name Server Privacy Policy")%>

<% } else if (ipg == 3) { // Bandwidth test in progress (w/ AJAX) %>

<%=intl._t("Bandwidth Test in Progress")%>

<%=intl._t("Javascript is disabled - wait 60 seconds for the bandwidth test to complete and then click Next")%>

<%=intl._t("While the I2P router software is getting ready to go, it's testing your bandwidth, obtaining an initial")%> <%=intl._t("set of peers from a reseed server, making it's first few exploratory peer connections, and getting.")%> <%=intl._t("integrated with the rest of the network.")%>

<%=intl._t("To learn more about these topics and what functions they perform for I2P, you can visit our")%> <%=intl._t("web site")%><%=intl._t(", our")%> <%=intl._t("wiki")%><%=intl._t(", or contact us on our")%> <%=intl._t("forums")%> <%=intl._t("to get help from the community.")%>

<% } else if (ipg == 4) { // Bandwidth test results // and/or manual bw entry? %> <% if (request.getParameter("skipbw") == null) { // don't display this if we skipped the test %>

<%=intl._t("Bandwidth Test Results")%>

<% if (wizhelper.isNDTSuccessful()) { // don't display this if test failed %> <% } // sucessful %>
<%=intl._t("Test server location")%><%=wizhelper.getServerLocation()%>
<%=intl._t("Completion status")%><%=wizhelper.getCompletionStatus()%>
<%=intl._t("Details")%><%=wizhelper.getDetailStatus()%>
<%=intl._t("Downstream Bandwidth")%><%=net.i2p.data.DataHelper.formatSize2Decimal(wizhelper.getDownBandwidth())%>Bps <%=intl._t("Upstream Bandwidth")%><%=net.i2p.data.DataHelper.formatSize2Decimal(wizhelper.getUpBandwidth())%>Bps
<%=intl._t("Share of Bandwidth for I2P")%><%=Math.round(net.i2p.router.web.helpers.WizardHelper.BW_SCALE * 100)%>%
<% } // skipbw %>

<%=intl._t("Bandwidth Configuration")%>

<%-- display burst, set standard, handler will fix up --%>
<%=intl._t("I2P will work best if you configure your rates to match the speed of your internet connection.")%>
" > <%=intl._t("KBps In")%> ()
" > <%=intl._t("KBps Out")%> ()
<%=intl._t("Share")%> ()
<% int share = Math.round(wizhelper.getShareBandwidth() * 1.024f); if (share < 12) { out.print(""); out.print(intl._t("NOTE")); out.print(": "); out.print(intl._t("You have configured I2P to share only {0} KBps.", share)); out.print("
"); out.print(intl._t("I2P requires at least 12KBps to enable sharing. ")); out.print(intl._t("By donating your bandwidth to participating traffic, you not only help others, you improve ")); out.print(intl._t("your own anonymity by creating cover traffic.")); out.print("
"); out.print(intl._t("We recommend sharing 75% or more for I2P, but you can adjust based on your needs.")); } else { out.print(intl._t("You have configured I2P to share {0} KBps.", share)); out.print("
"); out.print(intl._t("By donating your bandwidth to participating traffic, you not only help others, you improve ")); out.print(intl._t("your own anonymity by creating cover traffic.")); out.print("
"); out.print(intl._t("We recommend sharing 75% or more for I2P, but you can adjust based on your needs.")); } %>
<% } else if (ipg == 5) { // Browser setup %>

<%=intl._t("Browser and Application Setup")%>

<%=intl._t("Your browser needs to be configured to work with I2P.")%> <%=intl._t("We have instructions for configuring both Firefox and Chromium based browsers with I2P.")%> <%=intl._t("You can find these instructions on our website")%>. <% if (net.i2p.util.SystemVersion.isWindows()) { %>

<%=intl._t("Otherwise, the recommended way to browse I2P websites is with a separate profile in the Firefox browser.")%>

  1. <%=intl._t("Install Firefox")%>
  2. <%=intl._t("Install the I2P Firefox profile")%>
<% } //isWindows() %>

<%=intl._t("The I2P router also comes with it's own versions of common, useful internet applications like")%> <%=intl._t("bittorrent")%> <%=intl._t("and")%> <%=intl._t("e-mail")%> <%=intl._t("so you can keep doing the things you need to do.")%> <%=intl._t("These applications work with I2P automatically and require no additional configuration.")%>

<%=intl._t("Normally, I2P addresses are long and random. To help make I2P addresses easier to read and remember,")%> <%=intl._t("the I2P router also includes it's own built-in")%> <%=intl._t("Address Book")%> <%=intl._t("so you can")%> <%=intl._t("privately assign human-readable names to the sites you like to visit.")%> <%=intl._t("The Address Book can also be used to subscribe to lists of URL's shared by other I2P users who choose")%> <%=intl._t("to distribute their own lists of hostnames and addresses.")%>

<% } else if (ipg == LAST_PAGE) { // Done %>

<%=intl._t("Welcome to I2P!")%>

<%=intl._t("When you start I2P for the first time, it needs need to integrate with the I2P network. It may also")%> <%=intl._t("indicate that it is temporarily \"Rejecting Tunnels.\" This is a normal part of the process. Please be patient.")%>

<%=intl._t("Green circles in the sidebar area of the I2P Router Console indicate that you are ready to use I2P")%> <%=intl._t("for browsing or applications.")%>

<% } else { %>
unknown wizard page
<% } %>
<% if (ipg != 1) { %> " > <% } if (ipg != LAST_PAGE) { %> " > <% if (ipg == 2) { %> " > <% } else if (ipg == 3) { %> " > <% } %> " > <% } else { %> " > <% } %>