forked from I2P_Developers/i2p.i2p
merge of '2640744244f35bbe1cfa2738209238b69696c3aa'
and 'a9276b7c162ada9a117bde0a54aa4da8fdc05773'
This commit is contained in:
@ -39,6 +39,7 @@ trans.zh_CN = apps/i2psnark/locale/messages_zh.po
|
||||
source_file = apps/desktopgui/locale/messages_en.po
|
||||
source_lang = en
|
||||
trans.nl = apps/desktopgui/locale/messages_nl.po
|
||||
trans.ru = apps/desktopgui/locale/messages_ru.po
|
||||
trans.zh_CN = apps/desktopgui/locale/messages_zh.po
|
||||
|
||||
[main]
|
||||
|
45
apps/desktopgui/locale/messages_ru.po
Normal file
45
apps/desktopgui/locale/messages_ru.po
Normal file
@ -0,0 +1,45 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the desktopgui package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P desktopgui\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-02-14 18:14+0000\n"
|
||||
"PO-Revision-Date: 2011-02-15 00:18+0500\n"
|
||||
"Last-Translator: Hidden Z <hiddenz@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
msgid "Start I2P"
|
||||
msgstr "Запустить I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "I2P is starting!"
|
||||
msgstr "I2P запускается!"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
#, fuzzy
|
||||
msgid "Starting"
|
||||
msgstr "Запускается"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:25
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr "Запустить I2P браузер"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:49
|
||||
msgid "Restart I2P"
|
||||
msgstr "Перезапустить I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
msgid "Stop I2P"
|
||||
msgstr "Остановить I2P"
|
||||
|
@ -56,9 +56,10 @@ public class Main {
|
||||
*/
|
||||
public static void beginStartup(String[] args) {
|
||||
try {
|
||||
String headless = RouterManager.getRouterContext().getProperty("router.isHeadless");
|
||||
String headless = System.getProperty("java.awt.headless");
|
||||
boolean isHeadless = Boolean.parseBoolean(headless);
|
||||
if(isHeadless) {
|
||||
log.warn("Headless environment: not starting desktopgui!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -857,20 +857,53 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write("<td class=\"center " + rowClass + "\">");
|
||||
out.write(statusString + "</td>\n\t");
|
||||
|
||||
// (i) icon column
|
||||
out.write("<td class=\"" + rowClass + "\">");
|
||||
if (isValid && meta.getAnnounce() != null) {
|
||||
// Link to local details page - note that trailing slash on a single-file torrent
|
||||
// gets us to the details page instead of the file.
|
||||
//StringBuilder buf = new StringBuilder(128);
|
||||
//buf.append("<a href=\"").append(snark.getBaseName())
|
||||
// .append("/\" title=\"").append(_("Torrent details"))
|
||||
// .append("\"><img alt=\"").append(_("Info")).append("\" border=\"0\" src=\"")
|
||||
// .append(_imgPath).append("details.png\"></a>");
|
||||
//out.write(buf.toString());
|
||||
|
||||
// Link to tracker details page
|
||||
String trackerLink = getTrackerLink(meta.getAnnounce(), snark.getInfoHash());
|
||||
if (trackerLink != null)
|
||||
out.write(trackerLink);
|
||||
}
|
||||
|
||||
// File type icon column
|
||||
out.write("</td>\n<td class=\"" + rowClass + "\">");
|
||||
if (isValid) {
|
||||
// Link to local details page - note that trailing slash on a single-file torrent
|
||||
// gets us to the details page instead of the file.
|
||||
StringBuilder buf = new StringBuilder(128);
|
||||
buf.append("<a href=\"").append(snark.getBaseName())
|
||||
.append("/\" title=\"").append(_("Torrent details"))
|
||||
.append("\"><img alt=\"").append(_("Info")).append("\" border=\"0\" src=\"")
|
||||
.append(_imgPath).append("details.png\"></a>");
|
||||
out.write(buf.toString());
|
||||
.append("\">");
|
||||
out.write(buf.toString());
|
||||
}
|
||||
String icon;
|
||||
if (isMultiFile)
|
||||
icon = "folder";
|
||||
else if (isValid)
|
||||
icon = toIcon(meta.getName());
|
||||
else
|
||||
icon = "magnet";
|
||||
if (isValid) {
|
||||
out.write(toImg(icon, _("Info")));
|
||||
out.write("</a>");
|
||||
} else {
|
||||
out.write(toImg(icon));
|
||||
}
|
||||
|
||||
out.write("</td>\n<td class=\"" + rowClass + "\">");
|
||||
StringBuilder buf = null;
|
||||
// Torrent name column
|
||||
out.write("</td><td class=\"snarkTorrentName " + rowClass + "\">");
|
||||
if (remaining == 0 || isMultiFile) {
|
||||
buf = new StringBuilder(128);
|
||||
StringBuilder buf = new StringBuilder(128);
|
||||
buf.append("<a href=\"").append(snark.getBaseName());
|
||||
if (isMultiFile)
|
||||
buf.append('/');
|
||||
@ -882,22 +915,6 @@ public class I2PSnarkServlet extends Default {
|
||||
buf.append("\">");
|
||||
out.write(buf.toString());
|
||||
}
|
||||
String icon;
|
||||
if (isMultiFile)
|
||||
icon = "folder";
|
||||
else if (isValid)
|
||||
icon = toIcon(meta.getName());
|
||||
else
|
||||
icon = "magnet";
|
||||
if (remaining == 0 || isMultiFile) {
|
||||
out.write(toImg(icon, _("Open")));
|
||||
out.write("</a>");
|
||||
} else {
|
||||
out.write(toImg(icon));
|
||||
}
|
||||
out.write("</td><td class=\"snarkTorrentName " + rowClass + "\">");
|
||||
if (remaining == 0 || isMultiFile)
|
||||
out.write(buf.toString());
|
||||
out.write(filename);
|
||||
if (remaining == 0 || isMultiFile)
|
||||
out.write("</a>");
|
||||
@ -1169,7 +1186,7 @@ public class I2PSnarkServlet extends Default {
|
||||
out.write(_("From URL"));
|
||||
out.write(":<td><input type=\"text\" name=\"newURL\" size=\"85\" value=\"" + newURL + "\"");
|
||||
out.write("title=\"");
|
||||
out.write(_("Torrent file must originate from an I2P-based tracker"));
|
||||
out.write(_("Enter the torrent file download URL (I2P only), magnet link, or maggot link"));
|
||||
out.write("\"> \n");
|
||||
// not supporting from file at the moment, since the file name passed isn't always absolute (so it may not resolve)
|
||||
//out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>");
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2ptunnel\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-01-17 18:54+0000\n"
|
||||
"PO-Revision-Date: 2011-01-18 00:34+0500\n"
|
||||
"POT-Creation-Date: 2011-02-14 18:14+0000\n"
|
||||
"PO-Revision-Date: 2011-02-14 23:24+0500\n"
|
||||
"Last-Translator: Hidden Z <hiddenz@mail.i2p>\n"
|
||||
"Language-Team: foo <foo@bar>\n"
|
||||
"Language: \n"
|
||||
@ -32,81 +32,90 @@ msgstr "Jump-сервисы, которые, возможно, знают нуж
|
||||
msgid "internal"
|
||||
msgstr "внутренний"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:170
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:171
|
||||
msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."
|
||||
msgstr "Неправильно переданная форма, возможно вы использовали действие браузера \"назад\" или \"обновить\". Пожалуйста повторите попытку."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:217
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:218
|
||||
msgid "Configuration reloaded for all tunnels"
|
||||
msgstr "Конфигурация для всех туннелей перечитана"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:229
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:230
|
||||
msgid "Starting tunnel"
|
||||
msgstr "Запуск туннеля"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:242
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:243
|
||||
msgid "Stopping tunnel"
|
||||
msgstr "Остановка туннеля"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:389
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:311
|
||||
msgid "Configuration changes saved"
|
||||
msgstr "Настройки сохранены"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:314
|
||||
msgid "Failed to save configuration"
|
||||
msgstr "Не удалось сохранить настройки"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
|
||||
msgid "New Tunnel"
|
||||
msgstr "Новый туннель"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:409
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
|
||||
msgid "Standard client"
|
||||
msgstr "Обычный клиент"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:410
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
|
||||
msgid "HTTP client"
|
||||
msgstr "HTTP-клиент"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:411
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
|
||||
msgid "IRC client"
|
||||
msgstr "IRC-клиент"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:412
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:421
|
||||
msgid "Standard server"
|
||||
msgstr "Обычный сервер"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:413
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:422
|
||||
msgid "HTTP server"
|
||||
msgstr "HTTP-сервер"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:414
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:423
|
||||
msgid "SOCKS 4/4a/5 proxy"
|
||||
msgstr "SOCKS 4/4a/5 прокси"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:415
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:424
|
||||
msgid "SOCKS IRC proxy"
|
||||
msgstr "SOCKS IRC прокси"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:416
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:425
|
||||
msgid "CONNECT/SSL/HTTPS proxy"
|
||||
msgstr "CONNECT/SSL/HTTPS прокси"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:417
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:426
|
||||
msgid "IRC server"
|
||||
msgstr "IRC-сервер"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:427
|
||||
msgid "Streamr client"
|
||||
msgstr "Streamr-клиент"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:428
|
||||
msgid "Streamr server"
|
||||
msgstr "Streamr-сервер"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:429
|
||||
msgid "HTTP bidir"
|
||||
msgstr "HTTP bidir (экспериментальный двунаправленный режим, инструкцию спрашивайте у sponge)"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:508
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:290
|
||||
msgid "Host not set"
|
||||
msgstr "Хост не задан"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:512
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:521
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:272
|
||||
msgid "Port not set"
|
||||
msgstr "Порт не задан"
|
||||
@ -560,8 +569,8 @@ msgid "Access List"
|
||||
msgstr "Список доступа"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:451
|
||||
msgid "Inbound connection limits (0 to disable)"
|
||||
msgstr "Ограничение входящих соединений (0 для отключения)"
|
||||
msgid "Inbound connection limits (0=unlimited)"
|
||||
msgstr "Ограничение входящих соединений (0=неограниченно)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
|
||||
msgid "Per client"
|
||||
@ -584,8 +593,8 @@ msgid "Total"
|
||||
msgstr "Всего"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:475
|
||||
msgid "Max concurrent connections (0 to disable)"
|
||||
msgstr "Максимум одновременных соединений (0 для отключения)"
|
||||
msgid "Max concurrent connections (0=unlimited)"
|
||||
msgstr "Максимум одновременных соединений (0=неограниченно)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
|
||||
msgid "New Certificate type"
|
||||
|
@ -55,50 +55,17 @@ public class RouterConsoleRunner {
|
||||
private static final String DEFAULT_WEBAPPS_DIR = "./webapps/";
|
||||
private static final String USAGE = "Bad RouterConsoleRunner arguments, check clientApp.0.args in your clients.config file! " +
|
||||
"Usage: [[port host[,host]] [-s sslPort [host[,host]]] [webAppsDir]]";
|
||||
private static final String PROP_HEADLESS = "router.isHeadless";
|
||||
|
||||
static {
|
||||
System.setProperty("org.mortbay.http.Version.paranoid", "true");
|
||||
|
||||
//Check if we are in a headless environment, set properties accordingly
|
||||
List<RouterContext> contexts = RouterContext.listContexts();
|
||||
if(contexts != null && contexts.size() > 0) {
|
||||
RouterContext context = contexts.get(0);
|
||||
String headless = context.getProperty(PROP_HEADLESS);
|
||||
if(headless == null) {
|
||||
/*
|
||||
* Let's check if we are in a headless environment.
|
||||
* We do this by setting headless to false
|
||||
* and trying to get the graphics environment.
|
||||
* If this fails, we should be headless.
|
||||
*/
|
||||
System.setProperty("java.awt.headless", "false");
|
||||
try {
|
||||
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||
ge.isHeadlessInstance();
|
||||
context.setProperty(PROP_HEADLESS, "false");
|
||||
}
|
||||
catch(InternalError e) {
|
||||
context.setProperty(PROP_HEADLESS, "true");
|
||||
}
|
||||
context.router().setConfigSetting(PROP_HEADLESS, context.getProperty(PROP_HEADLESS));
|
||||
context.router().saveConfig();
|
||||
context.router().shutdown(0);
|
||||
}
|
||||
boolean isHeadless = true;
|
||||
try {
|
||||
isHeadless = Boolean.parseBoolean(headless);
|
||||
}
|
||||
catch(Exception e) {
|
||||
//Incorrect setting, let's choose headless for safety
|
||||
isHeadless = true;
|
||||
}
|
||||
if(isHeadless) {
|
||||
System.setProperty("java.awt.headless", "true");
|
||||
}
|
||||
else {
|
||||
System.setProperty("java.awt.headless", "false");
|
||||
}
|
||||
String headless = "java.awt.headless";
|
||||
if(GraphicsEnvironment.isHeadless()) {
|
||||
System.setProperty(headless, "true");
|
||||
}
|
||||
else {
|
||||
System.setProperty(headless, "false");
|
||||
}
|
||||
}
|
||||
|
||||
@ -359,13 +326,13 @@ public class RouterConsoleRunner {
|
||||
}
|
||||
|
||||
try {
|
||||
//TODO: move away from routerconsole into a separate application.
|
||||
//ApplicationManager?
|
||||
VersionComparator v = new VersionComparator();
|
||||
if(v.compare(System.getProperty("java.runtime.version"), "1.6") >= 0) {
|
||||
//TODO: move away from routerconsole into a separate application.
|
||||
//ApplicationManager?
|
||||
VersionComparator v = new VersionComparator();
|
||||
if(v.compare(System.getProperty("java.runtime.version"), "1.6") >= 0) {
|
||||
String[] args = new String[0];
|
||||
net.i2p.desktopgui.Main.beginStartup(args);
|
||||
}
|
||||
net.i2p.desktopgui.Main.beginStartup(args);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
}
|
||||
|
@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P routerconsole\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-01-17 18:53+0000\n"
|
||||
"PO-Revision-Date: 2011-01-18 01:19+0500\n"
|
||||
"POT-Creation-Date: 2011-02-14 18:14+0000\n"
|
||||
"PO-Revision-Date: 2011-02-14 23:21+0500\n"
|
||||
"Last-Translator: Hidden Z <hiddenz@mail.i2p>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: \n"
|
||||
@ -84,21 +84,21 @@ msgstr[0] "{0} день"
|
||||
msgstr[1] "{0} дней"
|
||||
msgstr[2] "{0} дней"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:126
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:122
|
||||
#, java-format
|
||||
msgid "Banned by router hash: {0}"
|
||||
msgstr "Забанен по хэшу маршрутизатора: {0}"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:128
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:124
|
||||
msgid "Banned by router hash"
|
||||
msgstr "Забанен по хэшу маршрутизатора"
|
||||
|
||||
#. Temporary reason, until the job finishes
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:673
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:669
|
||||
msgid "IP banned"
|
||||
msgstr "IP заблокирован"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:743
|
||||
#: ../../../router/java/src/net/i2p/router/Blocklist.java:739
|
||||
#, java-format
|
||||
msgid "IP banned by blocklist.txt entry {0}"
|
||||
msgstr "IP заблокирован по записи в blocklist.txt: {0}"
|
||||
@ -152,12 +152,12 @@ msgstr "Принимаем туннели"
|
||||
msgid "Rejecting tunnels"
|
||||
msgstr "Не принимаем туннели"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:98
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:105
|
||||
#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20
|
||||
msgid "Reseeding"
|
||||
msgstr "Начальная загрузка"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:121
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:128
|
||||
#, java-format
|
||||
msgid "Reseed fetched only 1 router."
|
||||
msgid_plural "Reseed fetched only {0} routers."
|
||||
@ -165,29 +165,29 @@ msgstr[0] "При начальной загрузке получены данн
|
||||
msgstr[1] "При начальной загрузке получены данные только о {0} роутерах."
|
||||
msgstr[2] "При начальной загрузке получены данные только о {0} роутерах."
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:128
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:135
|
||||
msgid "Reseed failed."
|
||||
msgstr "Попытка начальной загрузки провалилась."
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:129
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:136
|
||||
#, java-format
|
||||
msgid "See {0} for help."
|
||||
msgstr "Смотрите {0} для помощи."
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:130
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:137
|
||||
msgid "reseed configuration page"
|
||||
msgstr "страница настройки начальной загрузки"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:231
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:239
|
||||
msgid "Reseeding: fetching seed URL."
|
||||
msgstr "Производится начальная загрузка: загружается URL каталога маршрутизаторов."
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:272
|
||||
#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:281
|
||||
#, java-format
|
||||
msgid "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)."
|
||||
msgstr "Производится начальная загрузка: получение информации о маршрутизаторах ({0} удачно, {1} ошибок)."
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:513
|
||||
#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:512
|
||||
msgid "NetDb entry"
|
||||
msgstr "показать описание в NetDb"
|
||||
|
||||
@ -196,38 +196,38 @@ msgstr "показать описание в NetDb"
|
||||
msgid "No transports (hidden or starting up?)"
|
||||
msgstr "Нет транспортных протоколов (в скрытом режиме или запущен недавно?)"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:452
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:450
|
||||
msgid "Unreachable on any transport"
|
||||
msgstr "Недоступен по всем транспортным протоколам"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:501
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:499
|
||||
msgid "Router Transport Addresses"
|
||||
msgstr "Адреса транспортов маршрутизатора"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:506
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:504
|
||||
#, java-format
|
||||
msgid "{0} is used for outbound connections only"
|
||||
msgstr "{0} используется только для исходящих соединений"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:520
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:518
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:123
|
||||
msgid "Help"
|
||||
msgstr "Справка"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:521
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:519
|
||||
msgid "Your transport connection limits are automatically set based on your configured bandwidth."
|
||||
msgstr "Лимиты транспортных соединений назначены автоматически на основе заданной вами пропускной способности."
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:523
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:521
|
||||
msgid "To override these limits, add the settings i2np.ntcp.maxConnections=nnn and i2np.udp.maxConnections=nnn on the advanced configuration page."
|
||||
msgstr "Для переопределения этих лимитов добавьте параметры i2np.ntcp.maxConnections=nnn и i2np.udp.maxConnections=nnn на странице расширенных настроек."
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:525
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:523
|
||||
#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:257
|
||||
msgid "Definitions"
|
||||
msgstr "Условные обозначения"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:524
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:735
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1890
|
||||
#: ../java/src/net/i2p/router/web/ConfigPeerHandler.java:24
|
||||
@ -239,149 +239,149 @@ msgstr "Условные обозначения"
|
||||
msgid "Peer"
|
||||
msgstr "Пир"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:524
|
||||
msgid "The remote peer, identified by router hash"
|
||||
msgstr "Уникальный идентификатор пира (несколько начальных символов из хеша его маршрутизатора)"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:527
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:525
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:736
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1894
|
||||
msgid "Dir"
|
||||
msgstr "Направление"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
|
||||
msgid "Inbound connection"
|
||||
msgstr "Входящее соединение"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
|
||||
msgid "Outbound connection"
|
||||
msgstr "Исходящее соединение"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:532
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530
|
||||
msgid "They offered to introduce us (help other peers traverse our firewall)"
|
||||
msgstr "Этот пир предлагает себя в качестве нашего посредника (для того, чтобы другие пиры могли соединяться с нами в обход нашего брандмауэра)"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:532
|
||||
msgid "We offered to introduce them (help other peers traverse their firewall)"
|
||||
msgstr "Мы предлагаем себя в качестве посредника для этого пира (для того, чтобы другие пиры могли соединяться с ним в обход его брандмауэра)"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
|
||||
msgid "How long since a packet has been received / sent"
|
||||
msgstr "Сколько прошло времени после приёма/передачи последнего пакета"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:737
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1895
|
||||
msgid "Idle"
|
||||
msgstr "Неактивен"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:738
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1900
|
||||
#: ../java/src/net/i2p/router/web/TunnelRenderer.java:156
|
||||
msgid "In/Out"
|
||||
msgstr "Приём/Передача"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
|
||||
msgid "The smoothed inbound / outbound transfer rate (KBytes per second)"
|
||||
msgstr "Усреднённые скорости приёма / передачи (КБайт/сек) "
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
|
||||
msgid "How long ago this connection was established"
|
||||
msgstr "Время жизни соединения"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:739
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1905
|
||||
msgid "Up"
|
||||
msgstr "Подключен"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:740
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1907
|
||||
msgid "Skew"
|
||||
msgstr "Сдвиг"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
|
||||
msgid "The difference between the peer's clock and your own"
|
||||
msgstr "Разница хода часов между пиром и нами"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
|
||||
msgid "The congestion window, which is how many bytes can be sent without an acknowledgement"
|
||||
msgstr "<i>Congestion Window.</i> Окно насыщения — количество байт, которое мы можем послать до ожидания подтверждения"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
|
||||
msgid "The number of sent messages awaiting acknowledgement"
|
||||
msgstr "Количество отправленных сообщений ожидающих подтверждения"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
|
||||
msgid "The maximum number of concurrent messages to send"
|
||||
msgstr "Максимальное количество параллельно отправляемых сообщений"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
|
||||
msgid "The number of pending sends which exceed congestion window"
|
||||
msgstr "Количество ожидающих посылок превосходящих размер окна насыщения"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
|
||||
msgid "The slow start threshold"
|
||||
msgstr "<i>Slow Start Threshold.</i> Величина порога медленного старта"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542
|
||||
msgid "The round trip time in milliseconds"
|
||||
msgstr "<i>Round-Trip Time.</i> Время между отправкой запроса и получением ответа (миллисекунды)"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1917
|
||||
msgid "Dev"
|
||||
msgstr "Отклонение"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
|
||||
msgid "The standard deviation of the round trip time in milliseconds"
|
||||
msgstr "Среднеквадратическое отклонение RTT (миллисекунды)"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
|
||||
msgid "The retransmit timeout in milliseconds"
|
||||
msgstr "<i>Retransmit Time-Out.</i> Время ожидания подтверждения перед повторной посылкой пакета (миллисекунды)"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
|
||||
msgid "Current maximum send packet size / estimated maximum receive packet size (bytes)"
|
||||
msgstr "<i>Maximum Transfer Unit.</i> Текущий максимальный размер исходящего пакета / максимальный размер принятого пакета (байт) "
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:741
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1924
|
||||
msgid "TX"
|
||||
msgstr "Передано"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
|
||||
msgid "The total number of packets sent to the peer"
|
||||
msgstr "Общее количество посланных пиру пакетов"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
|
||||
#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:742
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1926
|
||||
msgid "RX"
|
||||
msgstr "Принято"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
|
||||
msgid "The total number of packets received from the peer"
|
||||
msgstr "Общее количество принятых от пира пакетов"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1929
|
||||
msgid "Dup TX"
|
||||
msgstr "Повт. принято"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
|
||||
msgid "The total number of packets retransmitted to the peer"
|
||||
msgstr "Общее количество повторно посланных пиру пакетов"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
|
||||
#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1931
|
||||
msgid "Dup RX"
|
||||
msgstr "Повт. передано"
|
||||
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551
|
||||
#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
|
||||
msgid "The total number of duplicate packets received from the peer"
|
||||
msgstr "Общее количество повторно принятых от пира пакетов"
|
||||
|
||||
@ -2184,79 +2184,51 @@ msgid "Rekeying after graceful shutdown"
|
||||
msgstr "Смена ключа после плавного выключения"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:80
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:335
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:323
|
||||
msgid "Run I2P on startup"
|
||||
msgstr "Запускать I2P при старте"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:82
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:337
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:325
|
||||
msgid "Don't run I2P on startup"
|
||||
msgstr "Не запускать I2P при старте"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:84
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:355
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:343
|
||||
msgid "Dump threads"
|
||||
msgstr "Вывести список потоков"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:91
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:323
|
||||
msgid "Show systray icon"
|
||||
msgstr "Показать значок статуса"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:96
|
||||
msgid "System tray icon enabled."
|
||||
msgstr "Включен значок-индикатор статуса в области уведомлений."
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:98
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:110
|
||||
msgid "System tray icon feature not supported on this platform. Sorry!"
|
||||
msgstr "Вывод индикаторов в области уведомлений на этой платформе не поддерживается. Извините!"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:101
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:113
|
||||
msgid "Warning: unable to contact the systray manager"
|
||||
msgstr "Предупреждение: Не удалось соединиться с менеджером области уведомлений"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:103
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:325
|
||||
msgid "Hide systray icon"
|
||||
msgstr "Спрятать значок статуса"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:108
|
||||
msgid "System tray icon disabled."
|
||||
msgstr "Выключен значок-индикатор статуса в области уведомлений."
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:115
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:363
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:351
|
||||
msgid "View console on startup"
|
||||
msgstr "Открывать веб-консоль при запуске I2P"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:117
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:93
|
||||
msgid "Console is to be shown on startup"
|
||||
msgstr "Веб-консоль будет открываться при запуске I2P"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:118
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:365
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:94
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:353
|
||||
msgid "Do not view console on startup"
|
||||
msgstr "Не открывать веб-консоль при запуске I2P"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:120
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:96
|
||||
msgid "Console is not to be shown on startup"
|
||||
msgstr "Веб-консоль не будет открываться при запуске I2P"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:129
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:105
|
||||
msgid "Service installed"
|
||||
msgstr "Служба установлена"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:131
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:107
|
||||
msgid "Warning: unable to install the service"
|
||||
msgstr "Предупреждение: не удалось установить службу"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:137
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:113
|
||||
msgid "Service removed"
|
||||
msgstr "Служба удалена"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:139
|
||||
#: ../java/src/net/i2p/router/web/ConfigServiceHandler.java:115
|
||||
msgid "Warning: unable to remove the service"
|
||||
msgstr "Предупреждение: не удалось удалить службу"
|
||||
|
||||
@ -2500,7 +2472,7 @@ msgstr "Строить график средних значений"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/GraphHelper.java:152
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:417
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:333
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:321
|
||||
msgid "or"
|
||||
msgstr "или"
|
||||
|
||||
@ -2768,127 +2740,127 @@ msgstr "Загружается плагин"
|
||||
msgid "{0}B transferred"
|
||||
msgstr "{0} байт скачано"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:152
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:153
|
||||
msgid "Plugin downloaded"
|
||||
msgstr "Плагин загружен"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:157
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:344
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:158
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:345
|
||||
#, java-format
|
||||
msgid "Cannot create plugin directory {0}"
|
||||
msgstr "Не удалось создать директорию плагина {0}"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:166
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:167
|
||||
#: ../java/src/net/i2p/router/web/UpdateHandler.java:298
|
||||
#, java-format
|
||||
msgid "from {0}"
|
||||
msgstr "из {0}"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:176
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:177
|
||||
#, java-format
|
||||
msgid "Plugin from {0} is corrupt"
|
||||
msgstr "Загруженный из {0} плагин поврежден"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:187
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:188
|
||||
#, java-format
|
||||
msgid "Plugin from {0} does not contain the required configuration file"
|
||||
msgstr "Загруженный из {0} плагин не содержит необходимого файла настроек"
|
||||
|
||||
#. updateStatus("<b>" + "Plugin contains an invalid key" + ' ' + pubkey + ' ' + signer + "</b>");
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:200
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:201
|
||||
#, java-format
|
||||
msgid "Plugin from {0} contains an invalid key"
|
||||
msgstr "Загруженный из {0} плагин содержит некорректный ключ"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:219
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:228
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:237
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:220
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:229
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:238
|
||||
#, java-format
|
||||
msgid "Plugin signature verification of {0} failed"
|
||||
msgstr "Плагин {0} содержит недействительную подпись"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:252
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:253
|
||||
#, java-format
|
||||
msgid "Plugin from {0} has invalid name or version"
|
||||
msgstr "Загруженный из {0} плагин имеет некорректное название или версию"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:257
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:258
|
||||
#, java-format
|
||||
msgid "Plugin {0} has mismatched versions"
|
||||
msgstr "Плагин {0} содержит несовпадающие версии"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:265
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:266
|
||||
#, java-format
|
||||
msgid "This plugin requires I2P version {0} or higher"
|
||||
msgstr "Для этого плагина требуется версия I2P {0} и выше"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:273
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:274
|
||||
#, java-format
|
||||
msgid "This plugin requires Java version {0} or higher"
|
||||
msgstr "Для этого плагина требуется версия Java {0} и выше"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:281
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:282
|
||||
msgid "Downloaded plugin is for new installs only, but the plugin is already installed"
|
||||
msgstr "Загруженный инсталлятор плагина предназначен только для первоначальной установки, но такой плагин уже установлен"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:293
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:294
|
||||
msgid "Installed plugin does not contain the required configuration file"
|
||||
msgstr "Установленный плагин не содержит необходимого файла настроек"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:301
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:302
|
||||
msgid "Signature of downloaded plugin does not match installed plugin"
|
||||
msgstr "Подпись загруженного плагина не совпадает с установленным плагином"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:308
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:309
|
||||
#, java-format
|
||||
msgid "Downloaded plugin version {0} is not newer than installed plugin"
|
||||
msgstr "Версия скачанного плагина {0} не новее версии уже установленного плагина"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:315
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:316
|
||||
#, java-format
|
||||
msgid "Plugin update requires installed plugin version {0} or higher"
|
||||
msgstr "Для обновления плагина требуется установленная версия плагина {0} и выше"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:322
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:323
|
||||
#, java-format
|
||||
msgid "Plugin update requires installed plugin version {0} or lower"
|
||||
msgstr "Для обновления плагина требуется установленная версия плагина {0} и ниже"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:339
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:340
|
||||
msgid "Plugin is for upgrades only, but the plugin is not installed"
|
||||
msgstr "Загруженный инсталлятор плагина предназначен только для обновления, но такой плагин ещё не был установлен"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:352
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:353
|
||||
#, java-format
|
||||
msgid "Failed to install plugin in {0}"
|
||||
msgstr "Не удалось установить плагин в {0}"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:359
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:360
|
||||
#, java-format
|
||||
msgid "Plugin {0} installed, router restart required"
|
||||
msgstr "Плагин {0} установлен, требуется перезапуск маршрутизатора"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:361
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:362
|
||||
#, java-format
|
||||
msgid "Plugin {0} installed"
|
||||
msgstr "Плагин {0} установлен"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:379
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:380
|
||||
#, java-format
|
||||
msgid "Plugin {0} installed and started"
|
||||
msgstr "Плагин {0} установлен и запущен"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:382
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:383
|
||||
#, java-format
|
||||
msgid "Plugin {0} installed but failed to start, check logs"
|
||||
msgstr "Плагин {0} установлен, но при его запуске произошел сбой, загляните в логи"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:384
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:385
|
||||
#, java-format
|
||||
msgid "Plugin {0} installed but failed to start"
|
||||
msgstr "Плагин {0} установлен, но при его запуске произошел сбой"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:394
|
||||
#: ../java/src/net/i2p/router/web/PluginUpdateHandler.java:395
|
||||
#, java-format
|
||||
msgid "Failed to download plugin from {0}"
|
||||
msgstr "Не удалось скачать плагин из {0}"
|
||||
@ -3214,37 +3186,44 @@ msgstr "Среднее"
|
||||
msgid "Highest average"
|
||||
msgstr "Максимальное среднее"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:202
|
||||
#. breaking the sentence like before makes translation in my language impossible.
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:201
|
||||
#, java-format
|
||||
msgid "in this period which ended {0} ago."
|
||||
msgstr "в этом периоде который закончился {0} назад."
|
||||
msgid "There were {0} event(s) in this period"
|
||||
msgstr "Было {0} событий в этом периоде"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:204
|
||||
#. buf.append(' ');
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:203
|
||||
#, java-format
|
||||
msgid " which ended {0} ago."
|
||||
msgstr "который закончился {0} назад."
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:205
|
||||
msgid "No events"
|
||||
msgstr "Нет событий"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:210
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:211
|
||||
msgid "Average event count"
|
||||
msgstr "Среднее число событий"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:212
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:213
|
||||
msgid "Events in peak period"
|
||||
msgstr "Событий за период пика"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:220
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:221
|
||||
msgid "Graph Data"
|
||||
msgstr "График данных"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:222
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:223
|
||||
msgid "Graph Event Count"
|
||||
msgstr "График количества событий"
|
||||
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:225
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:226
|
||||
msgid "Export Data as XML"
|
||||
msgstr "Экспорт данных в XML"
|
||||
|
||||
#. Display the strict average
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:230
|
||||
#: ../java/src/net/i2p/router/web/StatsGenerator.java:231
|
||||
msgid "Lifetime average value"
|
||||
msgstr "Среднее значение за время работы"
|
||||
|
||||
@ -4363,7 +4342,7 @@ msgid "Specify Port"
|
||||
msgstr "Задать порт вручную"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/config_jsp.java:509
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:339
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:327
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configtunnels_jsp.java:330
|
||||
msgid "Note"
|
||||
msgstr "ВНИМАНИЕ"
|
||||
@ -5020,58 +4999,42 @@ msgid "After tearing down the router, it will wait 1 minute before starting back
|
||||
msgstr " "
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:315
|
||||
msgid "Systray integration"
|
||||
msgstr "Интеграция в область уведомлений"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:317
|
||||
msgid "On the windows platform, there is a small application to sit in the system tray, allowing you to view the router's status"
|
||||
msgstr "Если Вы работаете под Windows, у Вас есть возможность отслеживать статус маршрутизатора через значок в области уведомлений"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:319
|
||||
msgid "(later on, I2P client applications will be able to integrate their own functionality into the system tray as well)."
|
||||
msgstr "(когда-нибудь и клиентские приложения для I2P будут там доступны)."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:321
|
||||
msgid "If you are on windows, you can either enable or disable that icon here."
|
||||
msgstr "Если Вы пользуетесь I2P под Windows, то здесь Вы можете настроить отображение этого значка."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:327
|
||||
msgid "Run on startup"
|
||||
msgstr "Автоматический запуск I2P"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:329
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:317
|
||||
msgid "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."
|
||||
msgstr "Вы можете настроить автоматическую загрузку маршрутизатора при каждом запуске Windows. В зависимости от выбранной кнопки I2P немедленно установит или удалит свою службу из списка служб Windows."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:331
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:319
|
||||
msgid "If you prefer the command line, you can also run the "
|
||||
msgstr "Если Вам удобно работать через командную строку, попробуйте использовать "
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:341
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:329
|
||||
msgid "If you are running I2P as service right now, removing it will shut down your router immediately."
|
||||
msgstr "Если служба I2P уже была запущена, при выборе варианта <b>\"Не запускать I2P при старте\"</b> маршрутизатор будет моментально остановлен."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:343
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:331
|
||||
msgid "You may want to consider shutting down gracefully, as above, then running uninstall_i2p_service_winnt.bat."
|
||||
msgstr "Возможно лучше плавно остановить маршрутизатор и после этого запустить файл C:\\Program Files\\I2P\\uninstall_i2p_service_winnt.bat."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:347
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:335
|
||||
msgid "Debugging"
|
||||
msgstr "Отладка"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:349
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:337
|
||||
msgid "View the job queue"
|
||||
msgstr "Просмотр очереди заданий"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:353
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:341
|
||||
msgid "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>."
|
||||
msgstr "В некоторых случаях для отладки может пригодиться список состояний потоков I2P-маршутизатора. Для получения такого списка нажмите эту кнопку. Список будет сохранен в файле <a href=\"logs.jsp#servicelogs\">wrapper.log</a>."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:359
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:347
|
||||
msgid "Launch browser on router startup?"
|
||||
msgstr "Запускать браузер при старте I2P?"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:361
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configservice_jsp.java:349
|
||||
msgid "I2P's main configuration interface is this web console, so for your convenience I2P can launch a web browser on startup pointing at"
|
||||
msgstr "Основной интерфейс настройки I2P это веб-консоль. Здесь можно выбрать автоматическое открытие при запуске маршрутизатора страницы"
|
||||
|
||||
@ -5434,6 +5397,48 @@ msgstr "обзор туннелей"
|
||||
msgid "I2P Tunnel Summary"
|
||||
msgstr "Обзор туннелей I2P"
|
||||
|
||||
#~ msgid "Show systray icon"
|
||||
#~ msgstr "Показать значок статуса"
|
||||
|
||||
#~ msgid "System tray icon enabled."
|
||||
#~ msgstr "Включен значок-индикатор статуса в области уведомлений."
|
||||
|
||||
#~ msgid "System tray icon feature not supported on this platform. Sorry!"
|
||||
#~ msgstr ""
|
||||
#~ "Вывод индикаторов в области уведомлений на этой платформе не "
|
||||
#~ "поддерживается. Извините!"
|
||||
|
||||
#~ msgid "Warning: unable to contact the systray manager"
|
||||
#~ msgstr ""
|
||||
#~ "Предупреждение: Не удалось соединиться с менеджером области уведомлений"
|
||||
|
||||
#~ msgid "Hide systray icon"
|
||||
#~ msgstr "Спрятать значок статуса"
|
||||
|
||||
#~ msgid "System tray icon disabled."
|
||||
#~ msgstr "Выключен значок-индикатор статуса в области уведомлений."
|
||||
|
||||
#~ msgid "Systray integration"
|
||||
#~ msgstr "Интеграция в область уведомлений"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "On the windows platform, there is a small application to sit in the "
|
||||
#~ "system tray, allowing you to view the router's status"
|
||||
#~ msgstr ""
|
||||
#~ "Если Вы работаете под Windows, у Вас есть возможность отслеживать статус "
|
||||
#~ "маршрутизатора через значок в области уведомлений"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "(later on, I2P client applications will be able to integrate their own "
|
||||
#~ "functionality into the system tray as well)."
|
||||
#~ msgstr "(когда-нибудь и клиентские приложения для I2P будут там доступны)."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If you are on windows, you can either enable or disable that icon here."
|
||||
#~ msgstr ""
|
||||
#~ "Если Вы пользуетесь I2P под Windows, то здесь Вы можете настроить "
|
||||
#~ "отображение этого значка."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Ensure that nothing blocks outbound HTTP, check <a target=\"_top\" href="
|
||||
#~ "\"logs.jsp\">logs</a> and if nothing helps, read the <a target=\"_top\" "
|
||||
|
@ -36,7 +36,7 @@ public class DateAndFlags extends DataStructureImpl {
|
||||
/**
|
||||
* @param flags 0 - 65535
|
||||
*/
|
||||
public DateAndFlags(int flags, long date) {
|
||||
public DateAndFlags(long date, int flags) {
|
||||
_flags = flags;
|
||||
_date = date;
|
||||
}
|
||||
@ -44,7 +44,7 @@ public class DateAndFlags extends DataStructureImpl {
|
||||
/**
|
||||
* @param flags 0 - 65535
|
||||
*/
|
||||
public DateAndFlags(int flags, Date date) {
|
||||
public DateAndFlags(Date date, int flags) {
|
||||
_flags = flags;
|
||||
_date = date.getTime();
|
||||
}
|
||||
|
@ -5,10 +5,10 @@ import java.util.List;
|
||||
import net.i2p.I2PAppContext;
|
||||
|
||||
class Executor implements Runnable {
|
||||
private I2PAppContext _context;
|
||||
private final I2PAppContext _context;
|
||||
private Log _log;
|
||||
private final List _readyEvents;
|
||||
private SimpleStore runn;
|
||||
private final SimpleStore runn;
|
||||
|
||||
public Executor(I2PAppContext ctx, Log log, List events, SimpleStore x) {
|
||||
_context = ctx;
|
||||
@ -31,9 +31,10 @@ class Executor implements Runnable {
|
||||
try {
|
||||
evt.timeReached();
|
||||
} catch (Throwable t) {
|
||||
log("wtf, event borked: " + evt, t);
|
||||
log("Executing task " + evt + " exited unexpectedly, please report", t);
|
||||
}
|
||||
long time = _context.clock().now() - before;
|
||||
// FIXME _log won't be non-null unless we already had a CRIT
|
||||
if ( (time > 1000) && (_log != null) && (_log.shouldLog(Log.WARN)) )
|
||||
_log.warn("wtf, event execution took " + time + ": " + evt);
|
||||
}
|
||||
|
@ -30,10 +30,10 @@ public class SimpleScheduler {
|
||||
public static SimpleScheduler getInstance() { return _instance; }
|
||||
private static final int MIN_THREADS = 2;
|
||||
private static final int MAX_THREADS = 4;
|
||||
private I2PAppContext _context;
|
||||
private Log _log;
|
||||
private ScheduledThreadPoolExecutor _executor;
|
||||
private String _name;
|
||||
private final I2PAppContext _context;
|
||||
private final Log _log;
|
||||
private final ScheduledThreadPoolExecutor _executor;
|
||||
private final String _name;
|
||||
private int _count;
|
||||
private final int _threads;
|
||||
|
||||
@ -42,7 +42,6 @@ public class SimpleScheduler {
|
||||
_context = I2PAppContext.getGlobalContext();
|
||||
_log = _context.logManager().getLog(SimpleScheduler.class);
|
||||
_name = name;
|
||||
_count = 0;
|
||||
long maxMemory = Runtime.getRuntime().maxMemory();
|
||||
_threads = (int) Math.max(MIN_THREADS, Math.min(MAX_THREADS, 1 + (maxMemory / (32*1024*1024))));
|
||||
_executor = new ScheduledThreadPoolExecutor(_threads, new CustomThreadFactory());
|
||||
@ -139,7 +138,7 @@ public class SimpleScheduler {
|
||||
try {
|
||||
_timedEvent.timeReached();
|
||||
} catch (Throwable t) {
|
||||
_log.log(Log.CRIT, _name + " wtf, event borked: " + _timedEvent, t);
|
||||
_log.log(Log.CRIT, _name + ": Scheduled task " + _timedEvent + " exited unexpectedly, please report", t);
|
||||
}
|
||||
long time = System.currentTimeMillis() - before;
|
||||
if (time > 1000 && _log.shouldLog(Log.WARN))
|
||||
|
@ -14,6 +14,8 @@ import net.i2p.I2PAppContext;
|
||||
* appropriate time. The method that is fired however should NOT block (otherwise
|
||||
* they b0rk the timer).
|
||||
*
|
||||
* WARNING - Deprecated.
|
||||
* This is an inefficient mess. Use SimpleScheduler or SimpleTimer2 if possible.
|
||||
*/
|
||||
public class SimpleTimer {
|
||||
private static final SimpleTimer _instance = new SimpleTimer();
|
||||
|
@ -29,10 +29,10 @@ public class SimpleTimer2 {
|
||||
public static SimpleTimer2 getInstance() { return _instance; }
|
||||
private static final int MIN_THREADS = 2;
|
||||
private static final int MAX_THREADS = 4;
|
||||
private I2PAppContext _context;
|
||||
private final I2PAppContext _context;
|
||||
private static Log _log; // static so TimedEvent can use it
|
||||
private ScheduledThreadPoolExecutor _executor;
|
||||
private String _name;
|
||||
private final ScheduledThreadPoolExecutor _executor;
|
||||
private final String _name;
|
||||
private int _count;
|
||||
private final int _threads;
|
||||
|
||||
@ -223,7 +223,7 @@ public class SimpleTimer2 {
|
||||
try {
|
||||
timeReached();
|
||||
} catch (Throwable t) {
|
||||
_log.log(Log.CRIT, _pool + " wtf, event borked: " + this, t);
|
||||
_log.log(Log.CRIT, _pool + ": Timed task " + this + " exited unexpectedly, please report", t);
|
||||
}
|
||||
long time = System.currentTimeMillis() - before;
|
||||
if (time > 500 && _log.shouldLog(Log.WARN))
|
||||
|
12
history.txt
12
history.txt
@ -1,6 +1,15 @@
|
||||
2011-02-15 zzz
|
||||
* i2psnark: Details link shuffle, mostly restore 0.8.3 behavior
|
||||
* Profiles: Punish rejections more, in an attempt to spread the
|
||||
load more through the network
|
||||
* Timers: Log cleanup
|
||||
|
||||
2011-02-14 Mathiasdm
|
||||
* Fix headless issue without reboot
|
||||
|
||||
2011-02-13 zzz
|
||||
* Connect Client: Minor NPE fix cleanup
|
||||
* JobQueue: Prevet NPE at shutdown (thanks liberty)
|
||||
* JobQueue: Prevent NPE at shutdown (thanks liberty)
|
||||
* GeoIP: Prevent startup NPE (ticket #413, thanks RN)
|
||||
* NetDB: Prevent ExpireLeaseJob NPE (thanks sponge)
|
||||
|
||||
@ -18,6 +27,7 @@
|
||||
* I2CP: Correctly close internal connections on the router side
|
||||
when closed by the client, was causing massive memory leak
|
||||
for internal clients using lots of sessions (thanks sponge)
|
||||
(ticket #397)
|
||||
* i2psnark:
|
||||
- Improved magnet link parsing, use tr parameter if present
|
||||
* i2ptunnel: Change shared clients default for new clients to false
|
||||
|
@ -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 = 10;
|
||||
public final static long BUILD = 12;
|
||||
|
||||
/** for example "-test" */
|
||||
public final static String EXTRA = "";
|
||||
|
@ -11,7 +11,7 @@ class CapacityCalculator {
|
||||
private static final I2PAppContext _context = I2PAppContext.getGlobalContext();
|
||||
|
||||
/** used to adjust each period so that we keep trying to expand the peer's capacity */
|
||||
static long GROWTH_FACTOR = 5;
|
||||
static final long GROWTH_FACTOR = 5;
|
||||
|
||||
/** the calculator estimates over a 1 hour period */
|
||||
private static long ESTIMATE_PERIOD = 60*60*1000;
|
||||
@ -83,37 +83,42 @@ class CapacityCalculator {
|
||||
*
|
||||
* Let A = accects, R = rejects, F = fails
|
||||
* @return estimated and adjusted accepts per hour, for the given period
|
||||
* which is, more or less, max(0, 5 + (A * (A / (A + R))) - (4 * F))
|
||||
* which is, more or less, max(0, 5 + (A * (A / (A + 2R))) - (4 * F))
|
||||
*/
|
||||
private static double estimateCapacity(RateStat acceptStat, RateStat rejectStat, RateStat failedStat, int period) {
|
||||
Rate curAccepted = acceptStat.getRate(period);
|
||||
Rate curRejected = rejectStat.getRate(period);
|
||||
Rate curFailed = failedStat.getRate(period);
|
||||
|
||||
long eventCount = 0;
|
||||
if (curAccepted != null)
|
||||
double eventCount = 0;
|
||||
if (curAccepted != null) {
|
||||
eventCount = curAccepted.getCurrentEventCount() + curAccepted.getLastEventCount();
|
||||
// Punish for rejections.
|
||||
// We don't want to simply do eventCount -= rejected or we get to zero with 50% rejection,
|
||||
// and we don't want everybody to be at zero during times of congestion.
|
||||
if (eventCount > 0) {
|
||||
long rejected = curRejected.getCurrentEventCount() + curRejected.getLastEventCount();
|
||||
eventCount = eventCount * eventCount / (eventCount + rejected);
|
||||
// Punish for rejections.
|
||||
// We don't want to simply do eventCount -= rejected or we get to zero with 50% rejection,
|
||||
// and we don't want everybody to be at zero during times of congestion.
|
||||
if (eventCount > 0 && curRejected != null) {
|
||||
long rejected = curRejected.getCurrentEventCount() + curRejected.getLastEventCount();
|
||||
if (rejected > 0)
|
||||
eventCount *= eventCount / (eventCount + (2 * rejected));
|
||||
}
|
||||
}
|
||||
|
||||
double stretch = ((double)ESTIMATE_PERIOD) / period;
|
||||
double val = eventCount * stretch;
|
||||
long failed = 0;
|
||||
|
||||
// Let's say a failure is 4 times worse than a rejection.
|
||||
// It's actually much worse than that, but with 2-hop tunnels and a 8-peer
|
||||
// fast pool, for example, you have a 1/7 chance of being falsely blamed.
|
||||
// We also don't want to drive everybody's capacity to zero, that isn't helpful.
|
||||
if (curFailed != null)
|
||||
failed = (long) (0.5 + (4.0 * (curFailed.getCurrentTotalValue() + curFailed.getLastTotalValue()) / 100.0));
|
||||
if (failed > 0) {
|
||||
//if ( (period <= 10*60*1000) && (curFailed.getCurrentEventCount() > 0) )
|
||||
// return 0.0d; // their tunnels have failed in the last 0-10 minutes
|
||||
//else
|
||||
val -= failed * stretch;
|
||||
if (curFailed != null) {
|
||||
double failed = curFailed.getCurrentTotalValue() + curFailed.getLastTotalValue();
|
||||
if (failed > 0) {
|
||||
//if ( (period <= 10*60*1000) && (curFailed.getCurrentEventCount() > 0) )
|
||||
// return 0.0d; // their tunnels have failed in the last 0-10 minutes
|
||||
//else
|
||||
// .04 = 4.0 / 100.0 adjustment to failed
|
||||
val -= 0.04 * failed * stretch;
|
||||
}
|
||||
}
|
||||
|
||||
val += GROWTH_FACTOR;
|
||||
|
Reference in New Issue
Block a user