diff --git a/www.i2p2/pages/_layout_zh.html b/www.i2p2/pages/_layout_zh.html
new file mode 100644
index 00000000..c8c04397
--- /dev/null
+++ b/www.i2p2/pages/_layout_zh.html
@@ -0,0 +1,25 @@
+{% set lang = "zh" %}
+{% include "_urlify" %}
+
+
+
+
+ {% filter capture('title') %}{% block title %}{% endblock %}{% endfilter %} - I2P
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {% block content %}{% endblock %}
+
+
+
diff --git a/www.i2p2/pages/download_zh.html b/www.i2p2/pages/download_zh.html
new file mode 100644
index 00000000..a612474a
--- /dev/null
+++ b/www.i2p2/pages/download_zh.html
@@ -0,0 +1,61 @@
+{% extends "_layout_zh.html" %}
+{% block title %}下载{% endblock %}
+{% block content %}
+下载 I2P
+依赖关系
+Sun Java 1.5 或更高版本,或等效的 JRE。
+(推荐使用 Sun Java 1.6 )
+
+确定您安装的 Java 版本可以点这里
+或在命令行中输入 java -version 。
+全新安装
+
+图形安装程序:
+ i2pinstall-0.7.7.exe
+ (SHA256 4f237aeff2a35a10cf633731ffda59c745ce1e1c2aed998b5deb306c0082fc42 sig )
+ 下载以上文件并运行如果你不是 windows 用户,可以输入 java -jar i2pinstall-0.7.7.exe
(没错,就这么写)
+命令行安装(即无头安装):
+ 下载上面的图形安装程序并在命令行状态下运行 java -jar i2pinstall-0.7.7.exe -console
。
+ 以上方法适用于 windows,linux, 和 mac (没错,确实可行).
+用源码安装:
+ i2psource-0.7.7.tar.bz2
+ (SHA256 88e9f63f0bd6923130656a2c00936064ecd6d4ec122f9037da22fd77e5ae827b sig ) 此外,你也可以从 monotone 中下载源码。 执行 (tar xjvf i2psource-0.7.7.tar.bz2 ; cd i2p-0.7.7 ; ant pkg)
+ ,然后运行图形安装程序或进行命令行安装。
+
+
+以上文件的签名由 zzz 发布。
+这里有他的公钥 。
+
+完成安装
+
+在 Windows 系统中,安装程序运行后,点击 "启动 I2P" 按钮即可启动 路由控制台 ,里面有进一步的说明。
+
+在类 Unix 系统中,使用 "i2prouter" 脚本可以将 I2P 以服务方式运行。该脚本位于 I2P 文件夹中。在命令行控制台中切换到以上目录,执行 "sh i2prouter status" 可以显示路由器的状态。 "start", "stop" 和 "restart" 参数可以控制服务状态。路由控制台总可以通过这个地址 访问。如果用户使用 OpenSolaris 及其它不支持封装 (i2psvc) 的系统,可以通过执行 "sh runplain.sh" 启动i2p路由器。
+
+第一次安装时,如果可能请记得 调整您的 NAT/防火墙 。 记住 I2P 所使用的公网端口(可以自定义),它与相关端口的描述在这里 。如果您在防火墙/路由器里成功的打开了TCP的入站端口,请在I2P路由的 配置 页面同时打开入站TCP功能。
+
+同时,查看并调整设置 页面中的 带宽设置 。默认的 96 KBps 下载 / 40 KBps 上传速度很缓慢。
+
+旧版升级:
+I2P新版发布时,通过自动和手动方式都可以更新。
+如果你使用 0.7.5 及以后的版本,有新版发布时,路由器会自动检测到。 升级只需点一下路由控制台中新出现的 'Download Update'(下载更新) 按钮。
+如果你还在运行 0.7.4 及更老的版本,请看 0.7.5 发布说明 了解如何设置您的路由器自动接收更新。
+如果你还在运行 0.6.1.30 或更原始的版本, 请看有关如何设置路由器接收更新的 操作说明 。
+
+
+ 如果你已经按 操作说明 重新设置好, 路由控制台 中会出现下载和安装新版用的链接。你只需要点一下这个链接。
+ 此外,你可以通过下面的方法手动更新。
+
+
+旧版升级 (手动方法):
+
+下载 i2pupdate-0.7.7.zip (SHA256 0c9d8b08d9a561d3d70d99ca6e3ccd3f0d14d3abdd5e23a598dbbf7832b7bc03
+ sig ) 放入 I2P 安装文件夹并 改名为 i2pupdate.zip . (此外,您还可以在得到前述的源码包后运行 "ant updater",将生成的 i2pupdate.zip 复制到您的 I2P 安装目录中)。不要 将此文件解压缩。
+点击 "Graceful restart" (平滑重启)
+去喝杯咖啡,11分钟后就完成了。
+
+
+本文件已由 zzz 签名,
+签名公钥 。
+
+{% endblock %}
\ No newline at end of file
diff --git a/www.i2p2/pages/faq_zh.html b/www.i2p2/pages/faq_zh.html
new file mode 100644
index 00000000..22387834
--- /dev/null
+++ b/www.i2p2/pages/faq_zh.html
@@ -0,0 +1,171 @@
+{% extends "_layout_zh.html" %}
+{% block title %}
+常见问答
+{% endblock %}
+{% block content %}
+I2P - 常见问答
+我想我发现了软件的一个错误,到哪报告?(链接 )
+以下这些地方都可以,你可以任选其一。
+
+请提供 router log及wrapper log中的相关信息。
+
+我的地址簿中缺少很多匿名小站的地址。有没有什么好的地址簿订阅链接?(链接 )
+程序默认的订阅链接为 http://www.i2p2.i2p/hosts.txt ,这个地址簿很少更新。如果你没有订阅其他的地址簿,可能总要为必须使用链接“Jump”(跳转)而烦恼。
这里有一些公共地址簿的订阅链接。你可能会愿意将其中的一两个添加到你的 susidns 订阅列表 中。没有必要全部订阅,因为这些地址簿之间会周期性的相互同步。使用 cgi-bin 程序的链接会自动缩减重复记录,它们应该更加高效。注意:订阅 hosts.txt 服务存在“信任”风险。因为恶意地址簿的订阅会返回错误的地址。所以订阅前请想清楚您是否信任这些地址簿。出现在以下列表中并不代表认可。
+
+
+What happened to *.i2p.net?What happened to jrandom?Is I2P dead?(链接 )
+
+Jrandom was the lead developer of i2p and
+Syndie for several years.
+We expect jrandom to be absent for at least the remainder of 2008.
+The *.i2p.net domains were left in a non-functioning state after a power
+outage at the hosting company.
+
+See this page for jrandom's parting message and additional information
+ on the migration of *.i2p.net to
+this website .
+
+I2P is not dead, it remains in active development and we anticipate
+several releases in 2009.
+
+
+我的路由器非常占 CPU?!?(链接 )
+有很多原因可能造成高 CPU 占用率。这里开了一份对照表:
+你否在使用 Sun Java 还是其他版本?(在命令行中输入 java -version 尅有看到版本) 我们收到过使用其他版本的Java造成高 CPU 占用的报告。 你是否在通过 i2p 下BT?尝试减少种子的数量、设置带宽限制或干脆暂时关掉看是否有帮助。 你的带宽限制是否设置的过高?或许通过计算机的流量太高,造成路由过载。尝试在 config.jsp 中减少 Share Bandwidth (共享带宽)的比例。 你是否在使用最新版的 I2P?新近的版本有多项性能提升和错误修正。 你是否为 I2P 配置了足够的内存?查看 graphs.jsp 中的内存曲线图,看内存使用是否标记为 "pegged",这表示Java虚拟机花费了大量时间在回收内存。在 wrapper.config 中将 wrapper.java.maxmemory 设置调大。 CPU 占用率超出你的预期还是始终维持在 100%?如果始终维持在100%,可能是出现了程序错误。查看 logs 可以帮助寻找原因。 你可能在运行非原生版本而是基于 Java 的 BigInteger 库,当你在使用的一个全新的或不常见的系统或硬件(64-bit, OS X, OpenSolaris 等)时,尤其可能碰到这种情况。具体的诊断,编译和测试方法,参见 jbigi的主页 。 如果你的原生 jbigi 库工作正常,造成高 CPU 的最主要原因可能是参与其他节点的路由隧道创建。它会占用 CPU ,因为每个(隧道中的)跳点都必须对数据进行一层解密。你可以通过两种方法限制参与流量 - 在 config.jsp 中降低Share Bandwidth(共享带宽),或在configadvanced.jsp 中设置 router.maxParticipatingTunnels=nnn 。
+
+我反对 I2P 网络中的一些内容。如何阻止传输、保存或访问他们?(链接 )
+嗯... I2P 是个匿名网络,所以这个问题实在很难回答。I2P 设计来为任何个人使用而不检查过滤任何类型的数据。让您的计算机远离这些数据 (尽管它们已经层层加密) 的方法只有不用 I2P。Freedom of speech总会有代价。当然,让我们将你的问题分为 3 个部分来讨论:
+传输 - 所有 I2P 数据均经过多层加密、多次路由。您无从知道数据的内容,来源或目的地。您所路由的所有数据都限制在 I2P 网络内部,您并不是(类似Tor的) 出口节点 (出口代理)。您唯一的选择只有拒绝路由 任何 数据。这一点可以通过设置共享带宽或最大共享通道数量为 0 来实现(参见上面的说明)。当然不这样做最好,你可以通过为他人路由数据帮助 I2P 网络的运行。超过 95% 的用户为他人路由数据。储存 - I2P 没有分布式内容储存功能。你一定是想起 了Freenet 。但 I2P 不为任何人保存任何内容。访问 - 如果您不喜欢某些 eepsite ,不去看就是了。或者,使用过滤式代理例如 Privoxy 等 “网络保姆”。
+
+
+我的 Active peers(活动节点) / Known peers(已知节点) / Participating tunnels (共享隧道)/ 连接数/ bandwidth (带宽)总是不停的变化!哪里出了问题?(链接 )
+不。这很正常。所有路由器都会根据网络状况和需要作出动态调整。
+
+我的路由器已经运行几分钟了连接数仍然为0或很少。 (链接 )
+reseed (补种 - 即bootstrap引导网络启动)链接已改变。如果这是第一次安装I2P软件,又恰巧装了旧版本 (0.6.1.30 或更早),或者很早以前装的I2P很久没用了,您需要改变上面的地址并在路由控制台中选择 "Reseed"(补种)。您的路由器运行后,在 configadvanced.jsp 中添加一行 i2p.reseedURL=http://netdb.i2p2.de/ 或 i2p.reseedURL=http://i2pdb.tin0.de/netDb/ (任选其一),点击 "应用",最后点击右侧的链接 "reseed"(补种) 。
这个方法适用于 0.6.1.27 或更高版本的 I2P 。如果您在运行 0.6.1.31 或更高版本,可能用不着这样做。如果运行中的 I2P 为 0.6.1.26 或更早的版本,参见下面的 手动补种(ReSeed)操作指南 或安装 最新发布的版本 。其他可能有效的方法 - 将 wrapper.java.additional.5=-Di2p.reseedURL=http://netdb.i2p2.de/ 添加至 wrapper.config 中,完全关闭再启动路由器后点 "reseed"(补种)。如果此方法可行请告诉我们。
+
+我的路由器中Active(活动) 节点很少,是否正常?(链接 )
+如果数量大于10 就没关系。 0.6.1.31 及 0.6.1.32 版中的变化改进了路由器的效率和并有效的降低了活动节点的数量。任何时候,路由器 应 总是与少量的节点间维护连接。让路由器与其他节点 "较好地相连" 的最好办法是增加共享带宽。
+
+我的路由器是否会成为访问普通互联网的 "出口节点" ?我不想做出口。(链接 )
+不。与 Tor 不同, "出口节点" 或 "出口代理" 并不是 I2P 网络固有的一部分。只有正确设置并运行额外代理程序的志愿者才能向 Internet 转接数据。只有非常非常少的人会这样做。
+
+我无法通过 I2P 访问普通的Internet。(链接 )
+见上。I2P网络中的 HTTP "出口代理" 非常少。它们不是 I2P 网络固有的一部分,可能不在线。此外,过去的出口代理 squid.i2p, true.i2p, 和 krabs.i2p 已经销声匿迹。目前仅存的出口代理是 false.i2p。使用这个代理时,编辑 eepProxy 的 i2ptunnel 设置 并在出口代理列表中只填 'false.2p' 。然后停止并重新启动 eepProxy。如果不管用,出口代理可能目前不在线。这不是 I2P 的问题。如果你使用匿名网络的主要原因仅仅是匿名访问常规网络,可以试试 Tor 。
+
+我通过 I2P 不能访问 https:// 或 ftp:// 网站。(链接 )
+ I2P 网络中没有使用 HTTPS 加密的必要,因为所有数据都已经端到端加密。I2P 出于技术原因不支持FTP 。
至于通过 HTTPS 或 FTP 协议访问常规网络,问题是 I2P 网络内没人架设支持 HTTPS 或 FTP 的 "出口代理"。如果有人愿意架设,I2P完全支持 HTTPS 协议。FTP 可能不行。实际上,谈到其他任何类型的出口代理能不能用,设置好你的出口并指向(在I2P中设置的)一个标准隧道,一试便知。上面解释过多次了,任何类型的出口代理都不属于I2P网络的核心部分,他们是志愿者个人提供的服务,他们的运行并不可靠。如果你也想架设出口代理,请考虑清楚其中可能的隐患。与有关代理的外部程序架设问题可以来问,但I2P 社区不保证能提供你需要的技术帮助。
+
+使用出口代理安全吗?(链接 )
+这需要你自己判断。这要看你在做什么,你的 安全模型 是怎样的,你是否信任出口代理的管理员。
与 Tor 一样, I2P 并不能神奇地将整个Inernet加密。你可能受到出口代理管理员的侦听。 Tor 的常见问题 页面有很好的解释了这个问题。I2P 内没人架设 HTTPS 出口代理,在普通HTTP代理面前你无法隐藏自己的数据。
此外,如果你使用了相同的隧道("共享客户端"),还可能受到出口代理及其他I2P服务管理员间的共谋攻击。 zzz.i2p 上有关于这一点的进一步讨论。
+
+如何访问常规 Internet 上的 IRC、 BT 或其他服务?(链接 )
+不能。必须有人为这些服务架设出口代理。目前只有两种服务有出口代理: HTTP 和 电子邮件。还没有 SOCKS 出口代理。如果需要 SOCKS 出口代理,也许你该尝试 Tor 。
+
+I2P 中的很多匿名站点(eepsite)都下线了吗?(链接 )
+如果你指过去曾出现过的所有eepsite,是的,大部分都下线了。eepsite和创建它的人们来来去去。开始 I2P 之旅的第一步最好是查看一下都有哪些eepsite网站在线。inproxy.tino.i2p 和 perv.i2p 会跟踪活动的 eepsite 站点。
+
+如何建立我自己的 eepsite 站点?(链接 )
+点一下路由控制台顶部的 我的 Eepsite 链接 ,里面有详细的操作指南。
+
+为什么 I2P 这么慢?(链接 )
+为什么用 I2P 下载,BT,看网页等等都比正常慢?I2P网络内数据的加密和路由增加了额外的数据量,限制了带宽。 匿名总要有代价。
+此外,大家可能需要放宽带宽限制。两个主要设置项是 configuration(配置)页面 入站和出站带宽限制。在默认设置 32KBps 下, I2PSnark 的速度一般不会超过 15KBps 。增大这些设置 (在实际带宽范围内) 将增加 I2PSnark 及其他潜在程序的速度。
此外,你是否已经设置了足够的共享带宽,允许共享隧道经过您的路由器呢?信不信由你,打开共享流量能够保持路由器在 I2P 网络中有效整合,帮助获得更好的传输速度。
I2P 仍在改进中。很多改进和修正在不断地应用到 I2P 中。总的来说,运行最新版会得到更好的性能。如果还没有 安装最新版 。
+
+有关 Bittorrent / I2PSnark / Azureus I2P 插件的问题?(链接 )
+参见 I2P Bittorrent 常见问答 (公网链接)
+
+
如何连接 I2P 内的 IRC 服务器?(链接 )
+在 I2PTunnel configuration(I2P隧道配置)页面 中,启动 ircProxy。之后通过 IRC 客户端连接到本机 localhost 的 6668 端口。
怎样远程访问I2P的Web控制台或使用密码保护?(链接 )
+出于安全考虑,I2P 路由的管理员控制台默认监听于本地接口。不过远程访问的设置也很简单:
+
+
+打开文件 clients.config 将clientApp.0.args=7657 127.0.0.1 ./webapps/
替换为 clientApp.0.args=7657 0.0.0.0 ./webapps/
+转到 http://localhost:7657/configadvanced.jsp 并插入新选项: consolePassword=foo
(或你需要的其他密码)
+转到 http://localhost:7657/index.jsp 点 "Graceful restart", 重启Java虚拟机重新载入客户端程序
+
+
+启动后,就可以远程访问控制台了。控制台会询问用户名和密码,用户名为 "admin" 密码为刚刚你在第二步中设置的密码。注意: 上面的 0.0.0.0
设置了 网络接口 ,而非网络地址或子网掩码。0.0.0.0 表示 "绑定到所有接口",这样 127.0.0.1:7657 和任何 LAN/WAN IP都可以访问。
+
+如何使用远程计算机上的程序?(链接 )
+默认情况下, 路由器的 I2CP 界面 (端口 7654) 绑定在 127.0.0.1上。要与 0.0.0.0 绑定,可以设置路由器高级设置选项为 i2cp.tcp.bindAllInterfaces=true 并重启。
+
+什么是 "eepsite" ?(链接 )
+ eepsite 是匿名运行的站点 - 可以通过I2P的HTTP代理(一般是 localhost:4444)浏览。
+
+控制台中的 Active x/y 数字是什么意思?(链接 )
+x 为最近一分钟内路由器曾与其成功收发消息的节点数量, y 为最近一小时内发现的节点数量。
+
+能否将 I2P 作为 SOCKS 代理使用?(链接 )
+ I2P 自 0.7.1 版开始支持 SOCKS 代理(与Tor类似)。I2P 支持 SOCKS 4/4a/5 。由于没人架设 SOCKS 出口代理,所以此功能用途有限。
而且,很多程序可能泄露敏感信息。I2P 只能过滤连接数据,如果你使用的程序会将敏感信息作为数据内容发送,I2P则无法保护你的匿名性。例如,一些电子邮件客户端会将用户的IP发送给邮件服务器。 I2P 无法过滤这些信息,因此通过 I2P 'socksify' 普通程序是可行的但存在风险。
要了解更多有关 socks 代理程序的信息。socks 页面 中有些有用的提示。
+
+ I2P 使用哪些端口?(链接 )
+下面是默认端口列表, (当然,所有端口通过参数都可以自定义):
+
+
+
+
面向 Internet 的端口
+
+ 出站 UDP 端口 8887 连接至任意远程UDP端口,允许响应。
+ 出站 TCP 随机高端端口至任意远程TCP端口
+ (可选, 推荐使用) 入站 UDP 端口8887 连接自任意远程端口。
+ (可选,推荐使用)入站 TCP 端口 8887 连接自远程任意端口 I2P 默认不接收 TCP 入站连接。 要设置接收入站连接,你可以设置 I2P 自动检测地址和端口 通过 UDP 传输,或者手动输入IP地址 (或 DNS 域名) 及 TCP 端口。你可以在 Configuration(设置)页面启动此功能。
+ 出站 UDP 端口 123,允许响应 I2P 网络内部的时间同步需要此端口 (使用 SNTP 协议- 随机查询 pool.ntp.org 内的 SNTP 主机或用户指定的服务器)
+
+
+
+
+
+
I2P 本地端口 ,默认情况下,除非经过特殊设置,只监听本地连接:
+ 1900: UPnP SSDP UDP 多播监听端口。不能修改。绑定至所有接口。可以在 config.jsp 中禁用。
+ 2827: BOB bridge, 供客户程序用的高级 socket API 默认关闭。可以在 configclients.jsp 中打开/关闭。可以在 bob.config 文件中进行修改。
+ 4444: HTTP 代理 可以在路由控制台的 i2ptunnel 页面中禁用或修改。
+ 6668: IRC 代理 可以在路由控制台的 i2ptunnel 页面中禁用或修改。
+ 7652: UPnP HTTP TCP 事件监听端口。绑定于 LAN 地址上。可以通过高级设置 i2np.upnp.HTTPPort=nnnn 进行修改。可以在 config.jsp 中禁用。
+ 7653: UPnP SSDP UDP 搜索应答端口。绑定至所有接口。可以通过高级设置 i2np.upnp.SSDPPort=nnnn 修改。可以在 config.jsp 中禁用。
+ 7654: I2P 客户程序协议端口,供客户程序使用。可以通过高级设置选项 i2cp.port 进行修改, 但不推荐这样做。
+ 7655: SAM bridge的 UDP 端口。供客户程序使用的高级 socket API 仅在 SAM V3 客户端请求 UDP 会话时启动。可以在 configclients.jsp 中打开/关闭。可以在 clients.config 文件中通过 SAM 命令行选项 sam.udp.port=nnnn 修改
+ 7656: SAM bridge, 供客户程序使用的高级 socket API 从0.6.5的开始安装后默认关闭。可以在 configclients.jsp 中打开/关闭。可以在 clients.config 文件中修改。
+ 7657: 路由器控制台端口 可以在 clients.config 文件中修改
+ 7658: eepsite站点隧道 可以在 clients.config 文件中禁用
+ 7659: 出站邮件端口指向 smtp.postman.i2p 可以在路由控制台的 i2ptunnel 页面中禁用或修改。
+ 7660: 入站邮件端口指向 pop.postman.i2p 可以在路由控制台的 i2ptunnel 页面中禁用或修改。
+ 8998: mtn.i2p2.i2p (Monotone - 默认关闭) 可以在路由控制台的 i2ptunnel 页面中禁用或修改。
+ 32000: 本地封装服务的控制通道
+
+
+
+
+
+本地的 I2P 端口和 I2PTunnel(I2P隧道)端口不需要允许外部计算机访问,但本地计算机 *应该* 可以访问。你也可以通过 I2PTunnel页面 http://localhost:7657/i2ptunnel/ 创建其他的I2P隧道实例。(此后,可能需要在防火墙中允许本地地址访问这些端口,除非有需要不要放行远程访问。)
+
+总的来说,I2P不需要远程节点连入,但如果你能设置你的NAT/防火墙允许到本地8887端口的UDP或TCP连接,I2P会获得更好的性能。此外I2P还必须能够向任意远程节点发送UDP出站数据包 (使用PeerGuardian之类的软件随机封堵IP只会让你的体验变糟,不要这样做)。
+
+如何手动补种(帮助网络启动)?(链接 )
+I2P 路由器只需要补种一次,以便它在第一次启动后能找到I2P网络。补种不过就是向预定义的URL发送 HTTP GET 请求获取目录列表并下载一些 "routerInfo" 文件。
+
+自动补种失败的常见症状是(路由控制台左侧的已知节点) "Known" 显示的数值很小 (通常少于5个) 且不增长。如果防火墙限制出站通信,拦截了连接补种请求,就会发生这种情况。
+
+为 I2P 路由器手动补种方法如下:
+
+
+
+我有问题要问!(链接 )
+太棒了!来 IRC irc.freenode.net #i2p 找我们聊聊或到 论坛 发帖,我们会把你的问题(很可能连同回答)添加到这里。
+{% endblock %}
diff --git a/www.i2p2/pages/index_zh.html b/www.i2p2/pages/index_zh.html
new file mode 100644
index 00000000..1224649c
--- /dev/null
+++ b/www.i2p2/pages/index_zh.html
@@ -0,0 +1,53 @@
+{% extends "_layout_zh.html" %}
+{% block title %}I2P Anonymous Network{% endblock %}
+{% block content %}
+
+
+
最新版本:
+
+2009-07-31 -
I2P 0.7.7 - {{ urlify("release-0.7.7", "Announcement", "html")}}
+-
下载
+
+2007-09-28 -
Syndie 1.101a -
+
+-
下载
+
+
+
+
+
+I2P 是一个匿名网络项目,它提供了一个简单的网络层供对身份敏感的程序进行安全的匿名通讯。I2P 网络是动态的分布式网络,它在设计上并不信任网络中的任何一方,其中的所有数据都经过多层加密。
+
+很多程序可以使用 I2P,他们的用途涉及 Email,P2P,IRC 聊天等。
+
+I2P 项目成立于 2003 年意在为建立和谐社会的人们提供一套安全、匿名、免受审查的通讯系统。I2P 的开发致力于建立一套低延迟、全分布式、自主管理、可扩展、适应性强的匿名安全网络。它的目标在于能够在充满敌意的网络环境内成功运行。~I2P网络的各个部分都是开源免费的,这既可以保证 I2P 软件的真实有效,又方便人们捐献代码帮助 I2P 改进。
+
+匿名性不存在是和否这样的绝对状态 - I2P的努力不并在于实现所谓的 "完美匿名",而在于让针对匿名性的攻击消耗更多的资源以至于难以进行。I2P 属于低延迟混淆网络(例如Tor网络),这种类型的网络系统所提供的匿名性存在限制,但基于I2P的程序例如Syndie , I2P Mail,及 I2PSnark 扩展了它并提供了额外的功能性和保护。
+
+I2P 仍然处于开发状态目前 I2P 网络的规模还不大,缺乏广泛的学术审查,请不要指望它特供“有保证”的匿名性。出于低延迟混淆网络(例如Tor网络)自身的限制,在拥有无限资源的攻击者面前,I2P 并不是无懈可击的。
+
+I2P 运行时通过其他节点路由数据,其工作方式见下图。所有数据均经过端到端加密。关于 I2P 工作原理的更多信息请看 介绍 .
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/www.i2p2/pages/installation_zh.html b/www.i2p2/pages/installation_zh.html
new file mode 100644
index 00000000..e3369ff4
--- /dev/null
+++ b/www.i2p2/pages/installation_zh.html
@@ -0,0 +1 @@
+{% extends "_layout_zh.html" %} {% block title %}安装{% endblock %} {% block content %}详情参见 下载 页面。{% endblock %}
\ No newline at end of file
diff --git a/www.i2p2/pages/links_zh.html b/www.i2p2/pages/links_zh.html
new file mode 100644
index 00000000..01947778
--- /dev/null
+++ b/www.i2p2/pages/links_zh.html
@@ -0,0 +1,35 @@
+{% extends "_layout_zh.html" %}
+{% block title %}
+链接
+{% endblock %}
+{% block content %}
+推荐链接 & 资源
+
+{% endblock %}
diff --git a/www.i2p2/pages/not_found_zh.html b/www.i2p2/pages/not_found_zh.html
new file mode 100644
index 00000000..95b66982
--- /dev/null
+++ b/www.i2p2/pages/not_found_zh.html
@@ -0,0 +1,7 @@
+{% extends "_layout_zh.html" %}
+{% block title %}
+未找到
+{% endblock %}
+{% block content %}
+您搜索的页面或资源的名称不正确或不存在或已被删除。
+{% endblock %}
\ No newline at end of file
diff --git a/www.i2p2/static/images/endToEndEncryption_zh.png b/www.i2p2/static/images/endToEndEncryption_zh.png
new file mode 100644
index 00000000..480426e5
Binary files /dev/null and b/www.i2p2/static/images/endToEndEncryption_zh.png differ
diff --git a/www.i2p2/static/images/zh.png b/www.i2p2/static/images/zh.png
new file mode 100644
index 00000000..89144146
Binary files /dev/null and b/www.i2p2/static/images/zh.png differ
diff --git a/www.i2p2/static/styles/light_zh.css b/www.i2p2/static/styles/light_zh.css
new file mode 100644
index 00000000..91c4ed3f
--- /dev/null
+++ b/www.i2p2/static/styles/light_zh.css
@@ -0,0 +1,481 @@
+body {
+ font-family: arial;
+ font-size: 12pt;
+ color: #fff;
+ margin: 1em 0em;
+ padding: 0em;
+ text-align: center;
+ background-color: #000022;
+ background: url(/_static/images/darkbluetile.png);
+ background-repeat: repeat;
+ background-position: top center;
+/* color: black;*/
+}
+
+a:link{color:#007}
+a:visited{color:#606}
+a:hover{color:#ff6600}
+a:active{color:#900}
+
+.hide {
+ display: none;
+}
+
+img {
+ border: none
+}
+
+div.logo {
+ float: left;
+/* left: 1em;
+ top: 1em;
+ margin: 0em; */
+ left: 10px;
+ top: 0px;
+/* padding: .5em;*/
+ padding: 7px 10px 0px 20px;
+ text-align: left;
+ font-color: #fff;
+}
+
+div.menu {
+ width: 8em;
+ /* height: 5em; */
+ /* position: fixed; */
+ float: left;
+ /* left: 1em; */
+ /* top: 1em; */
+ /*margin: 0em;*/
+/* padding: .5em;*/
+ margin: 0px 20px 20px 0px;
+ padding: 5px 20px 20px 20px;
+ text-align: left;
+ border: 1px solid #000022;
+ border-top: 1px solid #000;
+ border-left: 0px;
+ background-color: #ddddff;
+ color: black;
+ font-size: 1em;
+ line-height:6px
+ clear: left; /* fixes a bug in Opera */
+ -moz-border-radius: 0px 0px 4px 0px;
+ -moz-box-shadow: inset 0px 0px 2px 0px #55f;
+ background: url(/_static/images/tabletile.png);
+}
+
+/*
+div.menu a:link {
+border:1px solid #000022;
+border-left: 3px solid #000022;
+margin: 10px 0;
+padding: 2px 5px;
+text-decoration: none;
+line-height: 240%;
+-moz-border-radius: 3px 3px 3px 3px;
+background-color: #9999ff;
+}
+*/
+div.warning {
+ margin: 0em 1em 1em 12em;
+ padding: .5em 1em;
+ background-color: #FEE;
+ border: medium solid #FBB;
+ text-align: left;
+ color: inherit;
+}
+
+div.main {
+ margin: 0px 0px 0px 0px;
+ padding: 25px 40px 20px 190px;
+ background-color: #eeeeff;
+ text-align: justify;
+ color: #000011;
+ border-top: 1px solid #000;
+ border-bottom: 1px solid #000;
+ line-height: 21px;
+}
+
+div.main h1 {
+ text-align: left;
+ color: #000022;
+ padding-left: 10px;
+ margin-bottom: 20px;
+ margin-top: 5px;
+ font-size: 16pt;
+ font-family:"黑体";
+ font-weight: bold;
+ font-style: normal;
+ letter-spacing: 0.06em;
+ text-shadow: 1px 1px 2px rgba(0, 0, 176, 0.9);
+ white-space: normal;
+ background-color: #ddddff;
+ -moz-box-shadow: 0 2px 2px 1px #ccccff;
+ /*background: url(/_static/images/tabletitlelight.png);
+ background-repeat: repeat-x;*/
+ border: 1px solid #000022;
+ -moz-border-radius: 4px 4px 4px 4px;
+}
+
+.links {
+
+}
+
+.links ul {
+list-style-image: url(/_static/images/link.png);
+margin: 0 5px 0 0px;
+padding: 0px 5px;
+}
+
+.links ul li {
+list-style-image: url(/_static/images/link.png);
+margin: 0 5px 0 40px;
+padding: 0px 5px;
+}
+
+/*
+li.gap {
+ margin-top: 1em;
+ margin-bottom: 1em;
+} */
+
+li {
+ padding: 5px 0px 5px 0px;
+ margin: 0px 10px;
+}
+
+li.gap {
+ margin: 10px 10px;
+}
+
+span.permalink {
+ font-size: small;
+}
+
+ul {
+ margin: 10px 20px 15px 20px;
+ padding: 5px 0px 5px 20px;
+/*border-bottom: 1px solid #000022;*/
+}
+
+.irclog p {
+ font-size: small;
+ margin: 0 0 0 4em;
+ text-indent: -4em;
+}
+
+h1 {
+ color: #9999ff;
+ font-family:"SimHei","黑体";
+ text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.9);
+ text-align: right;
+ padding-right: 20px;
+ padding-bottom: 5px;
+ padding-top: 5px;
+ font-style: italic;
+ font-size: 22pt;
+ font-weight: lighter;
+ letter-spacing: 0.2em;
+ text-transform: uppercase;
+ white-space: nowrap;
+/* border: 1px solid #000022;
+ -moz-border-radius: 4px 4px 4px 4px;
+ background-color: #000022; */
+}
+
+
+h2{
+ color: #000011;
+ font-family:"SimSun";
+ font-size: 12pt;
+ text-shadow: 1px 1px 2px rgba(55,55,55, 0.9);
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: #000022;
+ padding-bottom: 5px;
+}
+
+
+h3{
+ color: #000011;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: #000022;
+ padding-bottom: 3px;
+ font-family:"SimSun";
+ font-size: 12pt;
+ text-shadow: 1px 1px 2px rgba(55, 55, 55, 0.9);
+}
+
+
+a.fade img {
+filter:alpha(opacity=100);
+-moz-opacity: 1.0;
+opacity: 1.0;
+/*padding: 5px 0px;
+border-top: 1px solid #fff;
+border-bottom: 1px solid #fff;*/
+}
+
+a.fade:hover img {
+filter:alpha(opacity=60);
+-moz-opacity: 0.6;
+opacity: 0.6;
+/*padding: 5px 0px;
+border-top: 1px solid #fff;
+border-bottom: 1px solid #fff;*/
+}
+
+.news {
+ margin: 0px 5px 0px 10px;
+ padding: 10px 15px 15px 15px;
+ border: 1px solid #000022;
+ background-color: #ffeeaa;
+ color: black;
+ -moz-border-radius: 4px 4px 4px 4px;
+ -moz-box-shadow: 0 2px 2px 1px #bbbbff;
+ float: left;
+ width: auto;
+}
+
+.version {
+ margin: 0px 20px 30px 10px;
+ padding: 10px 15px 15px 15px;
+ border: 1px solid #000022;
+ background-color: #aaffaa;
+ color: black;
+ -moz-border-radius: 4px 4px 4px 4px;
+ -moz-box-shadow: 0 2px 2px 1px #bbbbff;
+ float: left;
+ width: auto;
+}
+
+.box {
+ margin: 30px 0px 5px 0px;
+ padding: 10px 10px 10px 10px;
+ border: 1px solid #000022;
+ background-color: #ffffff;
+ color: black;
+ font-size: 8pt;
+ -moz-border-radius: 4px 4px 4px 4px;
+ -moz-box-shadow: 0 2px 2px 1px #bbbbff;
+ width:auto;
+ align: center;
+ }
+
+ .underline {
+ border-bottom: 1px solid #000022;
+ padding: 5px 0px 5px 0px;
+ margin: 0px 0px 10px 0px;
+ -moz-border-radius: 4px 4px 4px 4px;
+ }
+
+ pre {
+ white-space: pre-wrap;
+ font-size: 9pt;
+ font-family: "Lucida Console", "Courier New", Courier, mono;
+
+ }
+
+table {
+ border-collapse: collapse;
+ width: 100%;
+ border: 1px solid #000022;
+ margin: 10px 0px 10px 0px;
+ cell-padding: 1px;
+ }
+
+table.invisible {
+ border-collapse: collapse;
+ width: 100%;
+ margin: 10px 0px 10px 0px;
+ }
+
+th {
+ padding: 0 10px;
+ text-align: left;
+ }
+
+
+
+tr.invisible td {
+ background: #eeeeff;
+ border: 1px solid #000022;
+ padding: 5px 10px;
+ }
+
+tr:nth-child(even)
+ {
+ border: 1px solid #000022;
+ padding: 5px 10px;
+ background: #bbf;
+ background-image:url('/_static/images/tabletile.png');
+ }
+
+tr:nth-child(odd)
+ {
+ border: 1px solid #000022;
+ padding: 5px 10px;
+ background: #bbf;
+ background-image:url('/_static/images/tabletile_alt.png');
+ }
+
+/*
+tr:first-child {
+ background-color: #ff6600;
+ }
+*/
+
+
+td {
+ border: 1px solid #000022;
+ padding: 5px 10px;
+/* background: #eeeeff;*/
+ }
+
+td.invisible {
+ border: 0px;
+ padding: 5px;
+ background: #eeeff;
+ }
+
+/*
+td:first-child {
+background-color: #eeeeff;
+ background-color: #ff6600;
+ padding: 10px 10px;
+ }
+*/
+
+/*
+td+td {
+ border: 1px solid #000022;
+ text-align: left;
+ background-color: #eeeeff;
+ }
+*/
+
+tr {
+ background-color: #eeeeff;
+ border: 0px none #eeeeff;
+ }
+
+td.title {
+ background-color: #ff6600;
+ border: 1px solid #ff6600;
+ text-align: left;
+ }
+
+table.announce {
+ background: #eeeeff;
+ border: 0;
+ padding: 5px 10px;
+ }
+
+ tr.announce {
+ background: #eeeeff;
+ border: 0;
+ padding: 5px 10px;
+ }
+
+tr:nth-child(even).announce {
+ background: #eeeeff;
+ border: 0;
+ padding: 5px 10px;
+ }
+
+tr:nth-child(odd).announce {
+ background: #eeeeff;
+ border: 0;
+ padding: 5px 10px;
+ }
+td.announce {
+ background: #eeeeff;
+ border: 0;
+ padding: 5px 10px;
+ }
+
+.lang {
+ padding: 0 5px 0 5px;
+ }
+
+.langbox {
+ margin: 10px 0px 10px 0px;
+ padding: 7px 0 5px 0;
+ border: 1px solid #002;
+ background-color: #e4e4ff;
+ color: black;
+ font-size: 8pt;
+ -moz-border-radius: 4px 4px 4px 4px;
+/* -moz-box-shadow: 0 2px 2px 1px #bbbbff; */
+ clear: both;
+ width:auto;
+ align: center;
+ background: url(/_static/images/tabletitlelight.png);
+ -moz-box-shadow: inset 0px 0px 2px 0px #55f;
+ }
+
+ .themebox {
+ margin: 4px 0px 10px 0px;
+ padding: 5px 0 3px 0;
+ border: 1px solid #002;
+ background-color: #e4e4ff;
+ color: black;
+ font-size: 8pt;
+ -moz-border-radius: 4px 4px 4px 4px;
+/* -moz-box-shadow: 0 2px 2px 1px #bbbbff; */
+ clear: both;
+ width:auto;
+ align: center;
+ background: url(/_static/images/tabletitlelight.png);
+ -moz-box-shadow: inset 0px 0px 2px 0px #55f;
+ }
+
+.footer {
+ font-size: 8pt;
+ text-align: center;
+ padding: 8px 0 0 0;
+ }
+
+.toc {
+ border: 1px solid #000022;
+ font-size: 8pt;
+ background-color: #bbbbff;
+ word-wrap: none;
+ text-indent: 10px;
+ padding: 0px;
+
+}
+.contentlist {
+ line-height: 40%;
+ list-style-type: square;
+}
+
+.helplist {
+ list-style-image: url(/_static/images/help.png);
+}
+
+.infolist {
+ list-style-image: url(/_static/images/info.png);
+}
+
+.downloadlist {
+ list-style-image: url(/_static/images/download.png);
+}
+
+.targetlist {
+ list-style-image: url(/_static/images/target.png);
+margin: -10px -5px 0px -5px;
+}
+
+.uhoh {
+border: 1px solid #f00;
+-moz-border-radius: 8px;
+margin: 0 20px 0 0;
+padding: 10px 15px;
+width: 90%;
+text-align: justify;
+background: #ffffff;
+color: red;
+font-weight: bold;
+font-size: 9pt;
+}