diff --git a/.tx/config b/.tx/config index b8009fb43a5e73a8763e6ea0645d3d48542f742f..e0c7bde27719e5435562039edb8ab187c36b2590 100644 --- a/.tx/config +++ b/.tx/config @@ -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] diff --git a/apps/desktopgui/locale/messages_ru.po b/apps/desktopgui/locale/messages_ru.po new file mode 100644 index 0000000000000000000000000000000000000000..a5d936a669c7c5dc094eb634c8536c98a02be4d6 --- /dev/null +++ b/apps/desktopgui/locale/messages_ru.po @@ -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" + diff --git a/apps/desktopgui/src/net/i2p/desktopgui/Main.java b/apps/desktopgui/src/net/i2p/desktopgui/Main.java index 8cd1ea707d0c980b24d2bc345839ecac2002e92e..993970e30c8a32c1c5407eda8910eea1a6fc586b 100644 --- a/apps/desktopgui/src/net/i2p/desktopgui/Main.java +++ b/apps/desktopgui/src/net/i2p/desktopgui/Main.java @@ -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; } } diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index a3d77a814a88df19d08969eafc906db5ca144d21..77207ec08acd336a002927092dff51d4e1bf50fd 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -857,29 +857,33 @@ 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()); - } - - out.write("</td>\n<td class=\"" + rowClass + "\">"); - StringBuilder buf = null; - if (remaining == 0 || isMultiFile) { - buf = new StringBuilder(128); - buf.append("<a href=\"").append(snark.getBaseName()); - if (isMultiFile) - buf.append('/'); - buf.append("\" title=\""); - if (isMultiFile) - buf.append(_("View files")); - else - buf.append(_("Open file")); - buf.append("\">"); + .append("\">"); out.write(buf.toString()); } String icon; @@ -889,15 +893,28 @@ public class I2PSnarkServlet extends Default { icon = toIcon(meta.getName()); else icon = "magnet"; - if (remaining == 0 || isMultiFile) { - out.write(toImg(icon, _("Open"))); + if (isValid) { + out.write(toImg(icon, _("Info"))); out.write("</a>"); } else { out.write(toImg(icon)); } + + // Torrent name column out.write("</td><td class=\"snarkTorrentName " + rowClass + "\">"); - if (remaining == 0 || isMultiFile) + if (remaining == 0 || isMultiFile) { + StringBuilder buf = new StringBuilder(128); + buf.append("<a href=\"").append(snark.getBaseName()); + if (isMultiFile) + buf.append('/'); + buf.append("\" title=\""); + if (isMultiFile) + buf.append(_("View files")); + else + buf.append(_("Open file")); + buf.append("\">"); 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>"); diff --git a/apps/i2psnark/locale/messages_ru.po b/apps/i2psnark/locale/messages_ru.po index ed82ff35c9c065dcf7c797927f043ccf067fb41a..f1e0f7be297b7c2f98ce7579cb6edc5984222a07 100644 --- a/apps/i2psnark/locale/messages_ru.po +++ b/apps/i2psnark/locale/messages_ru.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: I2P i2psnark\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-13 19:43+0000\n" -"PO-Revision-Date: 2010-12-16 00:10+0500\n" +"POT-Creation-Date: 2011-02-15 17:24+0000\n" +"PO-Revision-Date: 2011-02-15 22:27+0500\n" "Last-Translator: Hidden Z <hiddenz@mail.i2p>\n" "Language-Team: foo <foo@bar>\n" "Language: \n" @@ -19,318 +19,371 @@ msgstr "" "X-Poedit-Language: Russian\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -#: ../java/src/org/klomp/snark/SnarkManager.java:94 -#, java-format -msgid "Adding torrents in {0} minutes" -msgstr "Торренты будут подгружены через {0} минут(Ñ‹)" - -#: ../java/src/org/klomp/snark/SnarkManager.java:296 +#: ../java/src/org/klomp/snark/SnarkManager.java:307 #, java-format msgid "Total uploaders limit changed to {0}" msgstr "Ðовое значение лимита количеÑтва Ñлотов отдачи: {0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:298 +#: ../java/src/org/klomp/snark/SnarkManager.java:309 #, java-format msgid "Minimum total uploaders limit is {0}" msgstr "Минимально допуÑтимое значение Ð´Ð»Ñ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑтва Ñлотов: {0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:310 +#: ../java/src/org/klomp/snark/SnarkManager.java:321 #, java-format msgid "Up BW limit changed to {0}KBps" msgstr "Ðовое значение лимита ÑкороÑти отдачи: {0} KBps" -#: ../java/src/org/klomp/snark/SnarkManager.java:312 +#: ../java/src/org/klomp/snark/SnarkManager.java:323 #, java-format msgid "Minimum up bandwidth limit is {0}KBps" msgstr "Минимально допуÑтимое значение Ð´Ð»Ñ Ð»Ð¸Ð¼Ð¸Ñ‚Ð° ÑкороÑти отдачи: {0} KBps" -#: ../java/src/org/klomp/snark/SnarkManager.java:324 +#: ../java/src/org/klomp/snark/SnarkManager.java:335 #, java-format -msgid "Startup delay limit changed to {0} minutes" -msgstr "Ðовое значение задержки запуÑка: {0} минут(Ñ‹)" +msgid "Startup delay changed to {0}" +msgstr "Задержка запуÑка изменена на {0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:371 +#: ../java/src/org/klomp/snark/SnarkManager.java:386 msgid "I2CP and tunnel changes will take effect after stopping all torrents" msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек I2CP и туннелей вÑтупÑÑ‚ в Ñилу поÑле оÑтановки вÑех торрентов." -#: ../java/src/org/klomp/snark/SnarkManager.java:378 +#: ../java/src/org/klomp/snark/SnarkManager.java:393 msgid "Disconnecting old I2CP destination" msgstr "РаÑÑоединÑемÑÑ Ð¿Ð¾ Ñтарому адреÑу I2CP" -#: ../java/src/org/klomp/snark/SnarkManager.java:382 +#: ../java/src/org/klomp/snark/SnarkManager.java:397 #, java-format msgid "I2CP settings changed to {0}" msgstr "Ðовые параметры I2CP: {0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:386 +#: ../java/src/org/klomp/snark/SnarkManager.java:402 msgid "Unable to connect with the new settings, reverting to the old I2CP settings" msgstr "Ðе удалоÑÑŒ ÑоединитьÑÑ Ñ Ð¸Ñпользованием новых наÑтроек I2CP, возвращаемÑÑ Ðº Ñтарым наÑтройкам" -#: ../java/src/org/klomp/snark/SnarkManager.java:390 +#: ../java/src/org/klomp/snark/SnarkManager.java:406 msgid "Unable to reconnect with the old settings!" msgstr "Ðе удалоÑÑŒ переÑоединитьÑÑ Ñ Ð¸Ñпользованием Ñтарых наÑтроек I2CP!" -#: ../java/src/org/klomp/snark/SnarkManager.java:392 +#: ../java/src/org/klomp/snark/SnarkManager.java:408 msgid "Reconnected on the new I2CP destination" msgstr "ПереÑоединилиÑÑŒ по новому адреÑу I2CP" -#: ../java/src/org/klomp/snark/SnarkManager.java:403 +#: ../java/src/org/klomp/snark/SnarkManager.java:418 #, java-format msgid "I2CP listener restarted for \"{0}\"" msgstr "I2CP-приёмник перезапущен Ð´Ð»Ñ \"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:414 +#: ../java/src/org/klomp/snark/SnarkManager.java:429 msgid "Enabled autostart" msgstr "ÐвтоÑтарт включен" -#: ../java/src/org/klomp/snark/SnarkManager.java:416 +#: ../java/src/org/klomp/snark/SnarkManager.java:431 msgid "Disabled autostart" msgstr "ÐвтоÑтарт выключен" -#: ../java/src/org/klomp/snark/SnarkManager.java:422 +#: ../java/src/org/klomp/snark/SnarkManager.java:437 msgid "Enabled open trackers - torrent restart required to take effect." msgstr "Включено иÑпользование открытых трекеров. ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк торрента, чтобы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñтупили в Ñилу." -#: ../java/src/org/klomp/snark/SnarkManager.java:424 +#: ../java/src/org/klomp/snark/SnarkManager.java:439 msgid "Disabled open trackers - torrent restart required to take effect." msgstr "Отключено иÑпользование открытых трекеров. ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк торрента, чтобы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñтупили в Ñилу." -#: ../java/src/org/klomp/snark/SnarkManager.java:431 +#: ../java/src/org/klomp/snark/SnarkManager.java:447 msgid "Open Tracker list changed - torrent restart required to take effect." msgstr "Изменен ÑпиÑок открытых трекеров. ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк торрента, чтобы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñтупили в Ñилу." -#: ../java/src/org/klomp/snark/SnarkManager.java:438 +#: ../java/src/org/klomp/snark/SnarkManager.java:454 #, java-format msgid "{0} theme loaded, return to main i2psnark page to view." msgstr "{0} тема загружена, вернитеÑÑŒ на оÑновную Ñтраницу i2psnark Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра." -#: ../java/src/org/klomp/snark/SnarkManager.java:445 +#: ../java/src/org/klomp/snark/SnarkManager.java:461 msgid "Configuration unchanged." msgstr "ÐаÑтройки не изменилиÑÑŒ." -#: ../java/src/org/klomp/snark/SnarkManager.java:455 +#: ../java/src/org/klomp/snark/SnarkManager.java:471 #, java-format msgid "Unable to save the config to {0}" msgstr "Ðе удалоÑÑŒ Ñохранить наÑтройки в {0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:494 +#: ../java/src/org/klomp/snark/SnarkManager.java:536 msgid "Connecting to I2P" msgstr "УÑтанавливаетÑÑ Ñоединение Ñ I2P" -#: ../java/src/org/klomp/snark/SnarkManager.java:497 +#: ../java/src/org/klomp/snark/SnarkManager.java:539 msgid "Error connecting to I2P - check your I2CP settings!" msgstr "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ I2P, проверьте наÑтройки I2CP!" -#: ../java/src/org/klomp/snark/SnarkManager.java:506 +#: ../java/src/org/klomp/snark/SnarkManager.java:548 #, java-format msgid "Error: Could not add the torrent {0}" msgstr "Ошибка: Ðе удалоÑÑŒ добавить торрент {0}" #. catch this here so we don't try do delete it below -#: ../java/src/org/klomp/snark/SnarkManager.java:528 +#: ../java/src/org/klomp/snark/SnarkManager.java:570 #, java-format msgid "Cannot open \"{0}\"" msgstr "Ðе удалоÑÑŒ открыть \"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:541 +#. TODO - if the existing one is a magnet, delete it and add the metainfo instead? +#: ../java/src/org/klomp/snark/SnarkManager.java:586 +#: ../java/src/org/klomp/snark/SnarkManager.java:661 +#: ../java/src/org/klomp/snark/SnarkManager.java:716 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1971 +#, java-format +msgid "Torrent with this info hash is already running: {0}" +msgstr "Торрент Ñ Ñ‚Ð°ÐºÐ¸Ð¼ info hash уже запущен: {0}" + +#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName())); +#: ../java/src/org/klomp/snark/SnarkManager.java:593 #, java-format -msgid "Warning - Ignoring non-i2p tracker in \"{0}\", will announce to i2p open trackers only" -msgstr "Внимание: указанные в \"{0}\" не-i2p трекеры будут проигнорированы, будут иÑпользоватьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ открытые i2p трекеры" +msgid "Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers only." +msgstr "Внимание - в \"{0}\" не найдено I2P трекеров, анонÑирование будет производитьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на открытых трекерах I2P." -#: ../java/src/org/klomp/snark/SnarkManager.java:543 +#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName())); +#: ../java/src/org/klomp/snark/SnarkManager.java:598 #, java-format -msgid "Warning - Ignoring non-i2p tracker in \"{0}\", and open trackers are disabled, you must enable open trackers before starting the torrent!" -msgstr "Внимание: указанные в \"{0}\" не-i2p трекеры будут проигнорированы, однако иÑпользование открытых i2p трекеров отключено, Ð’Ñ‹ должны включить поддержку открытых i2p трекеров перед запуÑком Ñтого торрента!" +msgid "Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is enabled before starting this torrent." +msgstr "Внимание - в \"{0}\" не найдено I2P трекеров. Перед запуÑком торрента убедитеÑÑŒ, что иÑпользование открытых трекеров включено." -#: ../java/src/org/klomp/snark/SnarkManager.java:563 +#: ../java/src/org/klomp/snark/SnarkManager.java:619 #, java-format msgid "Torrent in \"{0}\" is invalid" msgstr "Торрент в \"{0}\" некорректен" -#: ../java/src/org/klomp/snark/SnarkManager.java:578 +#: ../java/src/org/klomp/snark/SnarkManager.java:624 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1994 +#, java-format +msgid "ERROR - Out of memory, cannot create torrent from {0}" +msgstr "ОШИБКР- нехватка памÑти, невозможно Ñоздать торрент из {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:635 #, java-format msgid "Torrent added and started: \"{0}\"" msgstr "Торрент добавлен и запущен: \"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:580 +#: ../java/src/org/klomp/snark/SnarkManager.java:637 #, java-format msgid "Torrent added: \"{0}\"" msgstr "Торрент добавлен: \"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:734 +#: ../java/src/org/klomp/snark/SnarkManager.java:672 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:489 +#, java-format +msgid "Fetching {0}" +msgstr "Получение торрента: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:675 +#, java-format +msgid "We have no saved peers and no other torrents are running. Fetch of {0} will not succeed until you start another torrent." +msgstr "Мы не имеем Ñохранённых пиров и нет других запущенных торрентов. Загрузка {0} не будет уÑпешна пока вы не запуÑтите другой торрент." + +#: ../java/src/org/klomp/snark/SnarkManager.java:679 +#, java-format +msgid "Adding {0}" +msgstr "Добавление {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:726 +#: ../java/src/org/klomp/snark/SnarkManager.java:749 +#: ../java/src/org/klomp/snark/SnarkManager.java:1174 +#, java-format +msgid "Failed to copy torrent file to {0}" +msgstr "Ðе удалоÑÑŒ Ñкопировать торрент в: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:972 #, java-format msgid "Too many files in \"{0}\" ({1}), deleting it!" msgstr "Слишком много файлов в торренте \"{0}\" ({1}), удалÑем его!" -#: ../java/src/org/klomp/snark/SnarkManager.java:736 +#: ../java/src/org/klomp/snark/SnarkManager.java:974 #, java-format msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!" msgstr "Торрент \"{0}\" Ñодержит единÑтвенный файл заканчивающийÑÑ Ð½Ð° \".torrent\", удалÑем его!" -#: ../java/src/org/klomp/snark/SnarkManager.java:738 +#: ../java/src/org/klomp/snark/SnarkManager.java:976 #, java-format msgid "No pieces in \"{0}\", deleting it!" msgstr "Ð’ торренте \"{0}\" не оказалоÑÑŒ ни одной чаÑти, удалÑем его!" -#: ../java/src/org/klomp/snark/SnarkManager.java:740 +#: ../java/src/org/klomp/snark/SnarkManager.java:978 #, java-format msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!" msgstr "Слишком много чаÑтей в торренте \"{0}\" (наш предел {1}), удалÑем его!" -#: ../java/src/org/klomp/snark/SnarkManager.java:742 +#: ../java/src/org/klomp/snark/SnarkManager.java:980 #, java-format msgid "Pieces are too large in \"{0}\" ({1}B), deleting it." msgstr "Слишком крупные чаÑти в торренте \"{0}\" ({1}B), удалÑем его." -#: ../java/src/org/klomp/snark/SnarkManager.java:743 +#: ../java/src/org/klomp/snark/SnarkManager.java:981 #, java-format msgid "Limit is {0}B" msgstr "Ðаш предел {0}B" -#: ../java/src/org/klomp/snark/SnarkManager.java:751 +#: ../java/src/org/klomp/snark/SnarkManager.java:989 #, java-format msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\"" msgstr "Торренты крупнее чем {0}B пока не поддерживаетÑÑ, удалÑем \"{1}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:767 +#: ../java/src/org/klomp/snark/SnarkManager.java:1005 #, java-format msgid "Error: Could not remove the torrent {0}" msgstr "Ошибка: Ðевозможно удалить торрент {0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:794 +#: ../java/src/org/klomp/snark/SnarkManager.java:1026 +#: ../java/src/org/klomp/snark/SnarkManager.java:1044 #, java-format msgid "Torrent stopped: \"{0}\"" msgstr "Торрент оÑтановлен: \"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:814 +#: ../java/src/org/klomp/snark/SnarkManager.java:1065 #, java-format msgid "Torrent removed: \"{0}\"" msgstr "Торрент удален: \"{0}\"" -#: ../java/src/org/klomp/snark/SnarkManager.java:852 +#: ../java/src/org/klomp/snark/SnarkManager.java:1073 +#, java-format +msgid "Adding torrents in {0}" +msgstr "Добавление торрентов через {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1122 #, java-format msgid "Download finished: {0}" msgstr "Закачка завершена: {0}" -#: ../java/src/org/klomp/snark/SnarkManager.java:880 +#: ../java/src/org/klomp/snark/SnarkManager.java:1170 +#, java-format +msgid "Metainfo received for {0}" +msgstr "Метаданные получены Ð´Ð»Ñ {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1171 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:524 +#, java-format +msgid "Starting up torrent {0}" +msgstr "ЗапуÑкаем торрент: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1225 msgid "Unable to connect to I2P!" msgstr "Ðе удалоÑÑŒ уÑтановить Ñоединение Ñ I2P!" -#: ../java/src/org/klomp/snark/SnarkManager.java:886 +#: ../java/src/org/klomp/snark/SnarkManager.java:1231 #, java-format msgid "Unable to add {0}" msgstr "Ðе удаётÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:205 msgid "I2PSnark - Anonymous BitTorrent Client" msgstr "I2PSnark — Ðнонимный BitTorrent Клиент" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:198 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:218 msgid "Torrents" msgstr "Торренты" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:201 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:208 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:977 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:221 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:228 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1024 msgid "I2PSnark" msgstr "I2PSnark" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:205 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:225 msgid "Refresh page" msgstr "Обновить Ñтраницу" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:210 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:230 msgid "Forum" msgstr "Форум" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:264 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1483 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:284 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1715 msgid "Status" msgstr "СтатуÑ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:270 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:272 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:292 msgid "Hide Peers" msgstr "ÑпрÑтать ÑпиÑок пиров" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:277 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:279 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:299 msgid "Show Peers" msgstr "показать ÑпиÑок пиров" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:286 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1464 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:306 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1639 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1655 msgid "Torrent" msgstr "Торрент" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:310 msgid "Estimated time remaining" msgstr "Примерное оÑтавшееÑÑ Ð²Ñ€ÐµÐ¼Ñ" #. Translators: Please keep short or translate as " " -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:293 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313 msgid "ETA" msgstr "ОÑталоÑÑŒ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317 msgid "Downloaded" msgstr "Получено" #. Translators: Please keep short or translate as " " -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:300 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:314 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:320 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:334 msgid "RX" msgstr "ПринÑто" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:304 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324 msgid "Uploaded" msgstr "Отдано" #. Translators: Please keep short or translate as " " -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:307 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:327 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:344 msgid "TX" msgstr "Отдано" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:312 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:332 msgid "Down Rate" msgstr "СкороÑÑ‚ÑŒ загрузки" #. Translators: Please keep short or translate as " " -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:326 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:337 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346 msgid "Rate" msgstr "СкороÑÑ‚ÑŒ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:322 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342 msgid "Up Rate" msgstr "СкороÑÑ‚ÑŒ отдачи" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:340 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:364 msgid "Stop all torrents and the I2P tunnel" msgstr "ОÑтановить вÑе торренты и закрыть Ñоединение Ñ I2P" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366 msgid "Stop All" msgstr "ОÑтановить вÑе" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:351 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:375 msgid "Start all torrents and the I2P tunnel" msgstr "ЗапуÑтить вÑе торренты и открыть Ñоединение Ñ I2P" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:353 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377 msgid "Start All" msgstr "ЗапуÑтить вÑе" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:372 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:396 msgid "No torrents loaded." msgstr "Ðет загруженных торрентов." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:401 msgid "Totals" msgstr "Ð’Ñего" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:379 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403 #, java-format msgid "1 torrent" msgid_plural "{0} torrents" @@ -338,7 +391,7 @@ msgstr[0] "{0} торрент" msgstr[1] "{0} торрента" msgstr[2] "{0} торрентов" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:382 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:406 #, java-format msgid "1 connected peer" msgid_plural "{0} connected peers" @@ -346,98 +399,95 @@ msgstr[0] "{0} подÑоединенный пир" msgstr[1] "{0} подÑоединенных пиров" msgstr[2] "{0} подÑоединенных пиров" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:454 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:495 #, java-format -msgid "Fetching {0}" -msgstr "Получение торрента: {0}" - -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:458 -msgid "Invalid URL - must start with http://" -msgstr "Ðекорректный URL, должен начинатьÑÑ Ñ http://" +msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\"" +msgstr "Ðекорректный URL: должен начинатьÑÑ Ñ \"http://\", \"{0}\", или \"{1}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:489 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:543 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:570 #, java-format -msgid "Starting up torrent {0}" -msgstr "ЗапуÑкаем торрент: {0}" +msgid "Magnet deleted: {0}" +msgstr "Magnet удален: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:509 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:527 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:551 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:576 #, java-format msgid "Torrent file deleted: {0}" msgstr "Удален торрент: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:533 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:543 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:582 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:592 #, java-format msgid "Data file deleted: {0}" msgstr "Файл удален: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:535 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:545 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594 #, java-format msgid "Data file could not be deleted: {0}" msgstr "Ðе удалоÑÑŒ удалить файл: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:554 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:603 #, java-format msgid "Data dir deleted: {0}" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð°: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:587 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:636 msgid "Error creating torrent - you must select a tracker" msgstr "Торрент не Ñоздан — вы должны указать трекер" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:602 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:652 #, java-format msgid "Torrent created for \"{0}\"" msgstr "Создан торрент Ð´Ð»Ñ \"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:605 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:654 #, java-format msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\"" msgstr "Многие I2P трекеры требуют зарегиÑтрировать на них торрент перед началом раздачи — пожалуйÑта проверьте требуетÑÑ Ð»Ð¸ Ñто перед запуÑком \"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:607 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:656 #, java-format msgid "Error creating a torrent for \"{0}\"" msgstr "Ошибка при Ñоздании торрента длÑ: \"{0}\"" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:610 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:659 #, java-format msgid "Cannot create a torrent for the nonexistent data: {0}" msgstr "Ðевозможно Ñоздать торрент Ð´Ð»Ñ Ð½ÐµÑущеÑтвующего файла или директории: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:613 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:662 msgid "Error creating torrent - you must enter a file or directory" msgstr "Торрент не Ñоздан — вы должны указать файл или директорию" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:616 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665 msgid "Stopping all torrents and closing the I2P tunnel." msgstr "ОÑтанавливаем вÑе торренты и закрываем Ñоединение Ñ I2P" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:627 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:676 msgid "I2P tunnel closed." msgstr "Соединение Ñ I2P закрыто." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:630 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679 msgid "Opening the I2P tunnel and starting all torrents." msgstr "СоединÑемÑÑ Ñ I2P и запуÑкаем вÑе торренты." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:759 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:764 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:770 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:802 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:813 msgid "Tracker Error" msgstr "Ошибка Трекера" # TODO should replace "uploader limit NN peers" with "global number of upload slots: NN" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:762 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:766 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:778 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:782 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:790 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:794 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:799 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:803 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:809 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:821 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:825 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:833 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:842 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:846 #, java-format msgid "1 peer" msgid_plural "{0} peers" @@ -445,279 +495,296 @@ msgstr[0] "{0} пир" msgstr[1] "{0} пира" msgstr[2] "{0} пиров" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:775 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:780 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:823 msgid "Seeding" msgstr "РаздаетÑÑ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:784 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1533 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:827 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1661 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1766 msgid "Complete" msgstr "Завершен" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:792 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:830 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:835 msgid "OK" msgstr "ЗагружаетÑÑ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:796 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:801 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:839 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:844 msgid "Stalled" msgstr "ПроÑтаивает" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:808 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:848 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:851 msgid "No Peers" msgstr "Ðет Пиров" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:810 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:853 msgid "Stopped" msgstr "ОÑтановлен" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837 -#, java-format -msgid "Details at {0} tracker" -msgstr "Детали на трекере {0}" +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:885 +msgid "Torrent details" +msgstr "ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:838 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:897 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1156 msgid "Info" msgstr "ИнформациÑ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:853 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:912 msgid "View files" msgstr "Открыть директорию" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:855 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:914 msgid "Open file" msgstr "Открыть файл" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:865 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1569 -msgid "Open" -msgstr "Открыть" - -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:909 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:956 msgid "Stop the torrent" msgstr "ОÑтановить торрент" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:911 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958 msgid "Stop" msgstr "ОÑтановить" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:921 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967 msgid "Start the torrent" msgstr "ЗапуÑтить торрент" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:923 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:969 msgid "Start" msgstr "ЗапуÑтить" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:933 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:979 msgid "Remove the torrent from the active list, deleting the .torrent file" msgstr "Удалить торрент из ÑпиÑка и Ñ Ð´Ð¸Ñка" #. Can't figure out how to escape double quotes inside the onclick string. #. Single quotes in translate strings with parameters must be doubled. #. Then the remaining single quite must be escaped -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:938 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:984 #, java-format msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?" msgstr "Ð’Ñ‹ дейÑтвительно хотите удалить \\''{0}.torrent\\''? (загруженные файлы удалÑÑ‚ÑŒÑÑ ÐЕ будут)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:941 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:987 msgid "Remove" msgstr "Удалить" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:950 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:997 msgid "Delete the .torrent file and the associated data file(s)" msgstr "Удалить торрент и Ñтереть загруженные файлы" #. Can't figure out how to escape double quotes inside the onclick string. #. Single quotes in translate strings with parameters must be doubled. #. Then the remaining single quite must be escaped -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:955 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1002 #, java-format msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?" msgstr "Ð’Ñ‹ дейÑтвительно хотите удалить торрент \\''{0}\\'' и вÑе загруженные файлы?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1005 msgid "Delete" msgstr "Стереть" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:991 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1038 msgid "Unknown" msgstr "ÐеизвеÑтный" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1001 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1050 msgid "Seed" msgstr "Сид" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1019 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1073 msgid "Uninteresting (The peer has no pieces we need)" msgstr "Uninteresting (У пира нет нужных нам чаÑтей торрента)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1021 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1075 msgid "Choked (The peer is not allowing us to request pieces)" msgstr "Choked (Ðтот пир не позволÑет нам запрашивать чаÑти торрента)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1035 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1095 msgid "Uninterested (We have no pieces the peer needs)" msgstr "Uninterested (У Ð½Ð°Ñ Ð½ÑƒÐ¶Ð½Ñ‹Ñ… Ñтому пиру чаÑтей торрента)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1037 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1097 msgid "Choking (We are not allowing the peer to request pieces)" msgstr "Choking (Мы не позволÑем Ñтому пиру запрашивать у Ð½Ð°Ñ Ñ‡Ð°Ñти торрента)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1092 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1155 +#, java-format +msgid "Details at {0} tracker" +msgstr "Детали на трекере {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1184 msgid "Add Torrent" msgstr "Добавить Торрент" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1094 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1186 msgid "From URL" msgstr "Из URL" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1097 -msgid "Torrent file must originate from an I2P-based tracker" -msgstr "Торрент-файл должен быть Ñ I2P-трекера" +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1189 +msgid "Enter the torrent file download URL (I2P only), magnet link, or maggot link" +msgstr "Введите URL (только I2P) Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ торрент-файла, magnet-ÑÑылку, или maggot-ÑÑылку" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1102 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1194 msgid "Add torrent" msgstr "Добавить торрент" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1105 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1197 #, java-format msgid "You can also copy .torrent files to: {0}." msgstr "Либо вы можете проÑто Ñкопировать .torrent-файлы в директорию {0}." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1107 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1199 msgid "Removing a .torrent will cause it to stop." msgstr "Удаление .torrent-файла приведёт к оÑтановке торрента." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1131 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1222 msgid "Create Torrent" msgstr "Создать Торрент" #. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n"); -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1134 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1225 msgid "Data to seed" msgstr "Файлы Ð´Ð»Ñ Ñ€Ð°Ð·Ð´Ð°Ñ‡Ð¸" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1138 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1229 msgid "File or directory to seed (must be within the specified path)" msgstr "Файл или Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ð´Ð°Ñ‡Ð¸ (вводите только название файла или директории, указание абÑолютных путей не поддерживаетÑÑ)" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1140 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1231 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1680 msgid "Tracker" msgstr "Трекер" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1142 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1233 msgid "Select a tracker" msgstr "Выбрать трекер" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1155 +#. out.write(_("Open trackers and DHT only")); +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1238 +msgid "Open trackers only" +msgstr "Только открытые трекеры" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1253 msgid "or" msgstr "или" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1158 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1256 msgid "Specify custom tracker announce URL" msgstr "Задать URL анонÑера вручную" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1161 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1259 msgid "Create torrent" msgstr "Создать торрент" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1180 -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1317 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1277 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1416 msgid "Configuration" msgstr "ÐаÑтройки" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1184 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1281 msgid "Data directory" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1186 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283 msgid "Edit i2psnark.config and restart to change" msgstr "Ð”Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐ¹Ñ‚Ðµ файл i2psnark.config и перезагрузите I2PSnark" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1190 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1287 msgid "Auto start" msgstr "ÐвтозапуÑк" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1194 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291 msgid "If checked, automatically start torrents that are added" msgstr "ÐвтоматичеÑки запуÑкать торренты поÑле добавлениÑ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1198 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295 msgid "Theme" msgstr "Тема" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1211 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1308 msgid "Startup delay" msgstr "Задержка запуÑка" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1213 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1310 msgid "minutes" msgstr "минут" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1237 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1334 msgid "Total uploader limit" msgstr "Ограничение количеÑтва Ñлотов отдачи" # TODO should replace "uploader limit NN peers" with "global number of upload slots: NN" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1240 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1337 msgid "peers" msgstr "пиров" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1244 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1341 msgid "Up bandwidth limit" msgstr "Ограничение ÑкороÑти отдачи" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1247 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1344 msgid "Half available bandwidth recommended." msgstr "РекомендуетÑÑ Ð¸Ñпользовать половину от доÑтупной пропуÑкной ÑпоÑобноÑти." -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1249 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1346 msgid "View or change router bandwidth" msgstr "ПоÑмотреть/наÑтроить Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÑкороÑти в маршрутизаторе I2P" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1253 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1350 msgid "Use open trackers also" msgstr "Дополнительно иÑпользовать открытые трекеры" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1257 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1354 msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file" msgstr "ÐнонÑировать торренты на открытых трекерах, дополнительно к тем, что указаны внутри торрента" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1261 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1358 msgid "Open tracker announce URLs" msgstr "URL открытых трекеров" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1273 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1370 msgid "Inbound Settings" msgstr "ВходÑщие туннели" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1279 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1376 msgid "Outbound Settings" msgstr "ИÑходÑщие туннели" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1286 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1384 msgid "I2CP host" msgstr "ÐÐ´Ñ€ÐµÑ I2CP" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1389 msgid "I2CP port" msgstr "Порт I2CP" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1303 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1402 msgid "I2CP options" msgstr "Параметры I2CP" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1308 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1407 msgid "Save configuration" msgstr "Сохранить наÑтройки" +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1432 +#, java-format +msgid "Invalid magnet URL {0}" +msgstr "Ðеправильный magnet URL {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1466 +#, java-format +msgid "Invalid info hash in magnet URL {0}" +msgstr "Ðеправильный info hash в magnet URL {0}" + #. * dummies for translation -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1325 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1496 #, java-format msgid "1 hop" msgid_plural "{0} hops" @@ -725,7 +792,7 @@ msgstr[0] "{0} хоп" msgstr[1] "{0} хопа" msgstr[2] "{0} хопов" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1326 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1497 #, java-format msgid "1 tunnel" msgid_plural "{0} tunnels" @@ -733,86 +800,111 @@ msgstr[0] "{0} туннель" msgstr[1] "{0} туннелÑ" msgstr[2] "{0} туннелей" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1480 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1659 +msgid "Completion" +msgstr "Загружено" + +#. else unknown +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1712 msgid "Size" msgstr "Размер" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1487 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1668 +msgid "Files" +msgstr "Файлов" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1670 +msgid "Pieces" +msgstr "ЧаÑти" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1671 +msgid "Piece size" +msgstr "Размер чаÑти" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1693 +msgid "Magnet link" +msgstr "Magnet ÑÑылка" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1710 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1749 +msgid "Directory" +msgstr "ДиректориÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1719 msgid "Priority" msgstr "Приоритет" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1492 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1724 msgid "Up to higher level directory" msgstr "Перейти в директорию уровнем выше" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1517 -msgid "Directory" -msgstr "ДиректориÑ" - # This debug error message intentionally left in English -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1522 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1754 msgid "Torrent not found?" msgstr "Torrent not found?" # This debug error message intentionally left in English -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1530 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1763 msgid "File not found in torrent?" msgstr "File not found in torrent?" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1543 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1776 msgid "complete" msgstr "Ñкачано" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1544 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1777 msgid "bytes remaining" msgstr "байт оÑталоÑÑŒ" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1595 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1802 +msgid "Open" +msgstr "Открыть" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1828 msgid "High" msgstr "Ð’Ñ‹Ñокий" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1600 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1833 msgid "Normal" msgstr "Ðормальный" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1605 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1838 msgid "Skip" msgstr "ПропуÑтить" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1614 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1847 msgid "Save priorities" msgstr "Сохранить приоритеты" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1726 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1962 #, java-format msgid "Torrent fetched from {0}" msgstr "Получен торрент из: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1746 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1984 #, java-format msgid "Torrent already running: {0}" msgstr "Торрент уже запущен: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1748 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1986 #, java-format msgid "Torrent already in the queue: {0}" msgstr "Торрент уже в очереди: {0}" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1755 -#, java-format -msgid "Failed to copy torrent file to {0}" -msgstr "Ðе удалоÑÑŒ Ñкопировать торрент в: {0}" - -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1759 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1992 #, java-format msgid "Torrent at {0} was not valid" msgstr "Торрент полученный из {0} некорректен" -#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1764 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1999 #, java-format msgid "Torrent was not retrieved from {0}" msgstr "Ðе удалоÑÑŒ получить торрент из: {0}" +#~ msgid "Torrent file must originate from an I2P-based tracker" +#~ msgstr "Торрент-файл должен быть Ñ I2P-трекера" + #~ msgid "size: {0}B" #~ msgstr "размер: {0}B" @@ -831,9 +923,6 @@ msgstr "Ðе удалоÑÑŒ получить торрент из: {0}" #~ msgid "Downloading" #~ msgstr "Идёт загрузка" -#~ msgid "File" -#~ msgstr "Файл" - #~ msgid "FileSize" #~ msgstr "Размер Файла" diff --git a/apps/i2ptunnel/locale/messages_ru.po b/apps/i2ptunnel/locale/messages_ru.po index 2b9790b67c9b28447e93a7529065ee24b44c7db6..d9075fa847924db8d15c451f41c3a5393f896c44 100644 --- a/apps/i2ptunnel/locale/messages_ru.po +++ b/apps/i2ptunnel/locale/messages_ru.po @@ -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" diff --git a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java index 9f280ef2af47371f4fcb3f4b37d2500f2229e1b7..fe53abdb11f98f8c2bc13a81b58bf04ae32ef343 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java @@ -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(); } diff --git a/apps/routerconsole/locale/messages_ru.po b/apps/routerconsole/locale/messages_ru.po index f9f42f85ef626cc066ba49af6e55e0dbdfcdcae1..4f54c4fa49b2f236e40c697bb812b092c16121ab 100644 --- a/apps/routerconsole/locale/messages_ru.po +++ b/apps/routerconsole/locale/messages_ru.po @@ -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\" " diff --git a/core/java/src/net/i2p/data/DateAndFlags.java b/core/java/src/net/i2p/data/DateAndFlags.java index 70f88ce655b27e4af5ca9bea42d624a5656f409f..0810cddca6e9db88719b7ace262f38803c0ca30b 100644 --- a/core/java/src/net/i2p/data/DateAndFlags.java +++ b/core/java/src/net/i2p/data/DateAndFlags.java @@ -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(); } diff --git a/core/java/src/net/i2p/util/Executor.java b/core/java/src/net/i2p/util/Executor.java index 8092d7ac447ee98f152306101d59e925fb18baf6..3c81d46f157f581455d30c4ea19f52b2b6232e19 100644 --- a/core/java/src/net/i2p/util/Executor.java +++ b/core/java/src/net/i2p/util/Executor.java @@ -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); } diff --git a/core/java/src/net/i2p/util/SimpleScheduler.java b/core/java/src/net/i2p/util/SimpleScheduler.java index f764debe99f6cad3d730c64bae342b9679011d13..951f5929eb5cf6c1489ad053f203f3dc4983e4ac 100644 --- a/core/java/src/net/i2p/util/SimpleScheduler.java +++ b/core/java/src/net/i2p/util/SimpleScheduler.java @@ -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)) diff --git a/core/java/src/net/i2p/util/SimpleTimer.java b/core/java/src/net/i2p/util/SimpleTimer.java index f428afceb91be35badc734c848d48d3aa33123bd..ee3f35120f9b37363d1163cb9b4287706e740229 100644 --- a/core/java/src/net/i2p/util/SimpleTimer.java +++ b/core/java/src/net/i2p/util/SimpleTimer.java @@ -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(); diff --git a/core/java/src/net/i2p/util/SimpleTimer2.java b/core/java/src/net/i2p/util/SimpleTimer2.java index 44e405b2484bb1287f8154f93e114026f538aaa1..a497915e2358e4db6081a1c91fa5fd54559d27e2 100644 --- a/core/java/src/net/i2p/util/SimpleTimer2.java +++ b/core/java/src/net/i2p/util/SimpleTimer2.java @@ -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)) diff --git a/history.txt b/history.txt index 550bf530414381fb585c3f075ff6ca9263e4cd2a..4aa6626fac9656225dd48551d5054d667226b2ce 100644 --- a/history.txt +++ b/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 diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 7ca1a3ec2c4e6b0a58a1f89cf73e6cb3036dcf84..e36cd3b14352a16a1e79c5fea474cb2f20cbaa5c 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 10; + public final static long BUILD = 12; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java index 9d23ceddf5349216fa082977b47ca235d6a0e3f1..96570260c5de43c09b24efe897e8ca963b4a0b8c 100644 --- a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java +++ b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java @@ -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;