From 9ba8f53ec7e505735bf056b345e14c1f6c2313fe Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 15 Jun 2016 15:03:17 +0000 Subject: [PATCH] Translate: Add method to set language in standalone app context i2psnark: - add form to set language in standalone context - add Ukrainian and Japanese translations --- .tx/config | 2 + apps/i2psnark/java/build.xml | 3 + .../src/org/klomp/snark/SnarkManager.java | 45 +- .../snark/standalone/ConfigUIHelper.java | 122 ++ .../org/klomp/snark/web/I2PSnarkServlet.java | 21 +- apps/i2psnark/locale/messages_ja.po | 1393 ++++++++++++++++ apps/i2psnark/locale/messages_uk.po | 1408 +++++++++++++++++ build.xml | 3 +- core/java/src/net/i2p/util/Translate.java | 33 +- 9 files changed, 3021 insertions(+), 9 deletions(-) create mode 100644 apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java create mode 100644 apps/i2psnark/locale/messages_ja.po create mode 100644 apps/i2psnark/locale/messages_uk.po diff --git a/.tx/config b/.tx/config index 2e0c8650ae..5d3b2f7042 100644 --- a/.tx/config +++ b/.tx/config @@ -156,6 +156,7 @@ trans.fi = apps/i2psnark/locale/messages_fi.po trans.fr = apps/i2psnark/locale/messages_fr.po trans.hu = apps/i2psnark/locale/messages_hu.po trans.it = apps/i2psnark/locale/messages_it.po +trans.ja = apps/i2psnark/locale/messages_ja.po trans.nb = apps/i2psnark/locale/messages_nb.po trans.nl = apps/i2psnark/locale/messages_nl.po trans.pl = apps/i2psnark/locale/messages_pl.po @@ -166,6 +167,7 @@ trans.ru_RU = apps/i2psnark/locale/messages_ru.po trans.sk = apps/i2psnark/locale/messages_sk.po trans.sv_SE = apps/i2psnark/locale/messages_sv.po trans.tr_TR = apps/i2psnark/locale/messages_tr.po +trans.uk_UA = apps/i2psnark/locale/messages_uk.po trans.vi = apps/i2psnark/locale/messages_vi.po trans.zh_CN = apps/i2psnark/locale/messages_zh.po diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml index 214ffa2375..7d80438e4a 100644 --- a/apps/i2psnark/java/build.xml +++ b/apps/i2psnark/java/build.xml @@ -211,6 +211,9 @@ <zipfileset src="../../ministreaming/java/build/mstreaming.jar" /> <zipfileset src="../../streaming/java/build/streaming.jar" /> <zipfileset src="../../systray/java/build/systray.jar" /> + <!-- Countries translations. The i2psnark translations are in the war but it's easier to put these here --> + <!-- 300KB just to translate "Brazil", but why not... --> + <fileset dir="../../routerconsole/java/build/obj" includes="net/i2p/router/countries/*.class" /> <manifest> <attribute name="Main-Class" value="org.klomp.snark.standalone.RunStandalone"/> <attribute name="Implementation-Version" value="${full.version}" /> diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java index e9736fab87..b249f72966 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java +++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java @@ -42,6 +42,7 @@ import net.i2p.util.SecureDirectory; import net.i2p.util.SecureFileOutputStream; import net.i2p.util.SimpleTimer; import net.i2p.util.SimpleTimer2; +import net.i2p.util.Translate; import org.klomp.snark.dht.DHT; import org.klomp.snark.dht.KRPC; @@ -127,6 +128,8 @@ public class SnarkManager implements CompleteListener { public static final String PROP_PRIVATETRACKERS = "i2psnark.privatetrackers"; private static final String PROP_USE_DHT = "i2psnark.enableDHT"; private static final String PROP_SMART_SORT = "i2psnark.smartSort"; + private static final String PROP_LANG = "i2psnark.lang"; + private static final String PROP_COUNTRY = "i2psnark.country"; public static final int MIN_UP_BW = 10; public static final int DEFAULT_MAX_UP_BW = 25; @@ -254,6 +257,13 @@ public class SnarkManager implements CompleteListener { //_context.addShutdownTask(new SnarkManagerShutdown()); _idleChecker = new IdleChecker(this, _peerCoordinatorSet); _idleChecker.schedule(5*60*1000); + if (!_context.isRouterContext()) { + String lang = _config.getProperty(PROP_LANG); + if (lang != null) { + String country = _config.getProperty(PROP_COUNTRY, ""); + Translate.setLanguage(lang, country); + } + } } /** @@ -774,19 +784,22 @@ public class SnarkManager implements CompleteListener { public void updateConfig(String dataDir, boolean filesPublic, boolean autoStart, boolean smartSort, String refreshDelay, String startDelay, String pageSize, String seedPct, String eepHost, String eepPort, String i2cpHost, String i2cpPort, String i2cpOpts, - String upLimit, String upBW, boolean useOpenTrackers, boolean useDHT, String theme) { + String upLimit, String upBW, boolean useOpenTrackers, boolean useDHT, String theme, + String lang) { synchronized(_configLock) { locked_updateConfig(dataDir, filesPublic, autoStart, smartSort,refreshDelay, startDelay, pageSize, seedPct, eepHost, eepPort, i2cpHost, i2cpPort, i2cpOpts, - upLimit, upBW, useOpenTrackers, useDHT, theme); + upLimit, upBW, useOpenTrackers, useDHT, theme, + lang); } } private void locked_updateConfig(String dataDir, boolean filesPublic, boolean autoStart, boolean smartSort, String refreshDelay, String startDelay, String pageSize, String seedPct, String eepHost, String eepPort, String i2cpHost, String i2cpPort, String i2cpOpts, - String upLimit, String upBW, boolean useOpenTrackers, boolean useDHT, String theme) { + String upLimit, String upBW, boolean useOpenTrackers, boolean useDHT, String theme, + String lang) { boolean changed = false; boolean interruptMonitor = false; //if (eepHost != null) { @@ -893,6 +906,32 @@ public class SnarkManager implements CompleteListener { } + // Standalone (app context) language. + // lang will generally be null since it is hidden from the form if in router context. + + if (lang != null && !_context.isRouterContext() && + lang.length() >= 2 && lang.length() <= 6) { + int under = lang.indexOf('_'); + String nlang, ncountry; + if (under > 0 && lang.length() > under + 1) { + nlang = lang.substring(0, under); + ncountry = lang.substring(under + 1); + } else { + nlang = lang; + ncountry = ""; + } + String olang = _config.getProperty(PROP_LANG); + String ocountry = _config.getProperty(PROP_COUNTRY); + if (!nlang.equals(olang) || !ncountry.equals(ocountry)) { + changed = true; + _config.setProperty(PROP_LANG, nlang); + _config.setProperty(PROP_COUNTRY, ncountry); + Translate.setLanguage(nlang, ncountry); + } + } + + + // Start of I2CP stuff. // i2cpHost will generally be null since it is hidden from the form if in router context. diff --git a/apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java b/apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java new file mode 100644 index 0000000000..59f9662725 --- /dev/null +++ b/apps/i2psnark/java/src/org/klomp/snark/standalone/ConfigUIHelper.java @@ -0,0 +1,122 @@ +package org.klomp.snark.standalone; + +import net.i2p.I2PAppContext; +import net.i2p.util.Translate; + +/** + * Standalone (app context) only. + * Copied from ConfigUIHelper. + * @since 0.9.27 + */ +public class ConfigUIHelper { + + private static final String CHECKED = " selected=\"selected\" "; + private static final String BUNDLE_NAME = "org.klomp.snark.web.messages"; + private static final String COUNTRY_BUNDLE_NAME = "net.i2p.router.countries.messages"; + + /** + * Each language has the ISO code, the flag, the name, and the optional country name. + * Alphabetical by the ISO code please. + * See http://en.wikipedia.org/wiki/ISO_639-1 . + * Any language-specific flag added to the icon set must be + * added to the top-level build.xml for the updater. + * As of 0.9.12, ISO 639-2 three-letter codes are supported also. + * + * Note: we don't currently _x the language strings, + * we'll just rely on the JVM's translations for now. + * Country flag unused. + */ + private static final String langs[][] = { + { "ar", "lang_ar", "Arabic", null }, + { "cs", "cz", "Czech", null }, + //{ "da", "dk", "Danish", null }, + { "de", "de", "German", null }, + //{ "et", "ee", "Estonian", null }, + //{ "el", "gr", "Greek", null }, + { "en", "us", "English", null }, + { "es", "es", "Spanish", null }, + { "fi", "fi", "Finnish", null }, + { "fr", "fr", "French", null }, + { "hu", "hu", "Hungarian", null }, + { "it", "it", "Italian", null }, + { "ja", "jp", "Japanese", null }, + //{ "mg", "mg", "Malagasy", null }, + { "nl", "nl", "Dutch", null }, + { "nb", "no", "Norwegian Bokmaal", null }, + { "pl", "pl", "Polish", null }, + { "pt", "pt", "Portuguese", null }, + { "pt_BR", "br", "Portuguese", "Brazil" }, + { "ro", "ro", "Romanian", null }, + { "ru", "ru", "Russian", null }, + { "sk", "sk", "Slovak", null }, + { "sv", "se", "Swedish", null }, + { "tr", "tr", "Turkish", null }, + { "uk", "ua", "Ukrainian", null }, + { "vi", "vn", "Vietnamese", null }, + { "zh", "cn", "Chinese", null }, + //{ "zh_TW", "tw", "Chinese", "Taiwan" }, + { "xx", "a1", "Debug: Find untagged strings", null }, + }; + + /** + * Standalone (app context) only. + * Copied from ConfigUIHelper. + * @return HTML + * @since 0.9.27 + */ + public static String getLangSettings(I2PAppContext ctx) { + String clang = Translate.getLanguage(ctx); + String current = clang; + String country = Translate.getCountry(ctx); + if (country != null && country.length() > 0) + current += '_' + country; + // find best match + boolean found = false; + for (int i = 0; i < langs.length; i++) { + if (langs[i][0].equals(current)) { + found = true; + break; + } + } + if (!found) { + if (country != null && country.length() > 0) { + current = clang; + for (int i = 0; i < langs.length; i++) { + if (langs[i][0].equals(current)) { + found = true; + break; + } + } + } + if (!found) + current = "en"; + } + StringBuilder buf = new StringBuilder(512); + buf.append("<select name=\"lang\">\n"); + for (int i = 0; i < langs.length; i++) { + String lang = langs[i][0]; + if (lang.equals("xx") && !isAdvanced()) + continue; + buf.append("<option "); + if (lang.equals(current)) + buf.append(CHECKED); + buf.append("value=\"").append(lang).append("\">"); + int under = lang.indexOf('_'); + String slang = (under > 0) ? lang.substring(0, under) : lang; + // we don't actually have translations for these, see above + buf.append(Translate.getDisplayLanguage(slang, langs[i][2], ctx, BUNDLE_NAME)); + String name = langs[i][3]; + if (name != null) { + buf.append(" (") + .append(Translate.getString(name, ctx, COUNTRY_BUNDLE_NAME)) + .append(')'); + } + buf.append("</option>\n"); + } + buf.append("</select>\n"); + return buf.toString(); + } + + /** if necessary */ + private static boolean isAdvanced() { return false; } +} 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 fd914e27bc..d2eb393bcb 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -44,6 +44,7 @@ import org.klomp.snark.Storage; import org.klomp.snark.Tracker; import org.klomp.snark.TrackerClient; import org.klomp.snark.dht.DHT; +import org.klomp.snark.standalone.ConfigUIHelper; /** * Refactored to eliminate Jetty dependencies. @@ -954,6 +955,7 @@ public class I2PSnarkServlet extends BasicServlet { } else *****/ if (newURL != null) { + newURL = newURL.trim(); String newDir = req.getParameter("nofilter_newDir"); File dir = null; if (newDir != null) { @@ -1141,9 +1143,10 @@ public class I2PSnarkServlet extends BasicServlet { boolean useDHT = req.getParameter("useDHT") != null; //String openTrackers = req.getParameter("openTrackers"); String theme = req.getParameter("theme"); + String lang = req.getParameter("lang"); _manager.updateConfig(dataDir, filesPublic, autoStart, smartSort, refreshDel, startupDel, pageSize, seedPct, eepHost, eepPort, i2cpHost, i2cpPort, i2cpOpts, - upLimit, upBW, useOpenTrackers, useDHT, theme); + upLimit, upBW, useOpenTrackers, useDHT, theme, lang); // update servlet try { setResourceBase(_manager.getDataDir()); @@ -2198,9 +2201,19 @@ public class I2PSnarkServlet extends BasicServlet { + (smartSort ? "checked " : "") + "title=\""); out.write(_t("If checked, ignore words such as 'the' when sorting")); - out.write("\" >" + + out.write("\" >"); - "<tr><td>"); + if (!_context.isRouterContext()) { + try { + out.write("<tr><td>"); + out.write(_t("Language")); + out.write(": <td>"); + // class only in standalone builds + out.write(ConfigUIHelper.getLangSettings(_context)); + } catch (Throwable t) {} + } + + out.write("<tr><td>"); out.write(_t("Theme")); out.write(": <td><select name='theme'>"); String theme = _manager.getTheme(); @@ -2358,7 +2371,7 @@ public class I2PSnarkServlet extends BasicServlet { "<tr><td colspan=\"2\"> \n" + // spacer "</table></div></div></form>"); } - + /** @since 0.9 */ private void writeTrackerForm(PrintWriter out, HttpServletRequest req) throws IOException { StringBuilder buf = new StringBuilder(1024); diff --git a/apps/i2psnark/locale/messages_ja.po b/apps/i2psnark/locale/messages_ja.po new file mode 100644 index 0000000000..35848e954d --- /dev/null +++ b/apps/i2psnark/locale/messages_ja.po @@ -0,0 +1,1393 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the i2psnark package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# +# Translators: +# a1678991 <nfgantanku@yahoo.co.jp>, 2014-2015 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-25 12:28+0000\n" +"PO-Revision-Date: 2016-05-25 12:33+0000\n" +"Last-Translator: zzzi2p\n" +"Language-Team: Japanese (http://www.transifex.com/otf/I2P/language/ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../java/src/org/klomp/snark/IdleChecker.java:75 +msgid "No more torrents running." +msgstr "ã“れ以上ã®torrentを実行ã—ãªã„ã§ãã ã•ã„。" + +#: ../java/src/org/klomp/snark/IdleChecker.java:76 +#: ../java/src/org/klomp/snark/SnarkManager.java:2542 +#: ../java/src/org/klomp/snark/SnarkManager.java:2553 +msgid "I2P tunnel closed." +msgstr "I2Pトンãƒãƒ«ã¯é–‰ã˜ã¦ã„ã¾ã™ã€‚" + +#: ../java/src/org/klomp/snark/MagnetURI.java:42 +#: ../java/src/org/klomp/snark/MagnetURI.java:52 +#: ../java/src/org/klomp/snark/SnarkManager.java:2224 +msgid "Magnet" +msgstr "マグãƒãƒƒãƒˆ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:794 +#, java-format +msgid "Total uploaders limit changed to {0}" +msgstr "最大アップãƒãƒ¼ãƒ‰åˆ¶é™ã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:796 +#, java-format +msgid "Minimum total uploaders limit is {0}" +msgstr "最低アップãƒãƒ¼ãƒ‰ãƒªãƒŸãƒƒãƒˆã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:808 +#, java-format +msgid "Up BW limit changed to {0}KBps" +msgstr "アップãƒãƒ¼ãƒ‰å¸¯åŸŸåˆ¶é™ã¯{0}Kbpsã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:810 +#, java-format +msgid "Minimum up bandwidth limit is {0}KBps" +msgstr "最低アップãƒãƒ¼ãƒ‰å¸¯åŸŸã¯{0}KBpsã§ã™" + +#: ../java/src/org/klomp/snark/SnarkManager.java:822 +#, java-format +msgid "Startup delay changed to {0}" +msgstr "起動延滞時間ã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:833 +#, java-format +msgid "Refresh time changed to {0}" +msgstr "更新時間ã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:835 +msgid "Refresh disabled" +msgstr "æ›´æ–°ã¯ç„¡åŠ¹ã§ã™" + +#: ../java/src/org/klomp/snark/SnarkManager.java:851 +#, java-format +msgid "Page size changed to {0}" +msgstr "ページサイズã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:860 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:960 +msgid "Data directory must be an absolute path" +msgstr "フォルダã¯çµ¶å¯¾ãƒ‘スã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“。" + +#: ../java/src/org/klomp/snark/SnarkManager.java:862 +msgid "Data directory does not exist" +msgstr "ãã®ãƒ•ã‚©ãƒ«ãƒ€ã¯å˜åœ¨ã—ã¾ã›ã‚“" + +#: ../java/src/org/klomp/snark/SnarkManager.java:864 +msgid "Not a directory" +msgstr "フォルダã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +#: ../java/src/org/klomp/snark/SnarkManager.java:866 +msgid "Unreadable" +msgstr "èªã¿å–ã‚Šä¸å¯ã§ã™" + +#: ../java/src/org/klomp/snark/SnarkManager.java:871 +#, java-format +msgid "Data directory changed to {0}" +msgstr "フォルダã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:926 +msgid "I2CP and tunnel changes will take effect after stopping all torrents" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:930 +#, java-format +msgid "I2CP options changed to {0}" +msgstr "I2CPオプションã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:936 +msgid "Disconnecting old I2CP destination" +msgstr "å¤ã„I2CPé€ä¿¡å…ˆã‚’切æ–ã—ã¦ã„ã¾ã™" + +#: ../java/src/org/klomp/snark/SnarkManager.java:938 +#, java-format +msgid "I2CP settings changed to {0}" +msgstr "I2CPè¨å®šã¯{0}ã«å¤‰æ›´ã•ã‚Œã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:943 +msgid "" +"Unable to connect with the new settings, reverting to the old I2CP settings" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:947 +msgid "Unable to reconnect with the old settings!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:949 +msgid "Reconnected on the new I2CP destination" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:956 +#, java-format +msgid "I2CP listener restarted for \"{0}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:970 +msgid "New files will be publicly readable" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:972 +msgid "New files will not be publicly readable" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:979 +msgid "Enabled autostart" +msgstr "自動開始を有効化" + +#: ../java/src/org/klomp/snark/SnarkManager.java:981 +msgid "Disabled autostart" +msgstr "自動開始を無効化" + +#: ../java/src/org/klomp/snark/SnarkManager.java:988 +msgid "Enabled smart sort" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:990 +msgid "Disabled smart sort" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:997 +msgid "Enabled open trackers - torrent restart required to take effect." +msgstr "オープントラッカーを有効化 - ã“ã®ã‚ªãƒ—ションã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚" + +#: ../java/src/org/klomp/snark/SnarkManager.java:999 +msgid "Disabled open trackers - torrent restart required to take effect." +msgstr "オープントラッカーを無効化 - ã“ã®ã‚ªãƒ—ションã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1006 +msgid "Enabled DHT." +msgstr "DHTを有効化" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1008 +msgid "Disabled DHT." +msgstr "DHTを無効化" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1010 +msgid "DHT change requires tunnel shutdown and reopen" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1017 +#, java-format +msgid "{0} theme loaded, return to main i2psnark page to view." +msgstr "{0} テーマãŒèªã¿è¾¼ã¾ã‚Œã¾ã—ãŸã€‚I2psnarkã®ãƒˆãƒƒãƒ—ページã«æˆ»ã£ã¦ãã ã•ã„" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1027 +msgid "Configuration unchanged." +msgstr "è¨å®šã¯å¤‰æ›´ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1059 +msgid "Open Tracker list changed - torrent restart required to take effect." +msgstr "オープントラッカーリストãŒå¤‰æ›´ã•ã‚Œã¾ã—㟠- ã“ã®ã‚ªãƒ—ションã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1069 +msgid "Private tracker list changed - affects newly created torrents only." +msgstr "プライベートトラッカーリストãŒå¤‰æ›´ã•ã‚Œã¾ã—㟠- æ–°ã—ã作æˆã•ã‚ŒãŸtorrentã®ã¿ã«å½±éŸ¿ã—ã¾ã™" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1115 +#, java-format +msgid "Unable to save the config to {0}" +msgstr "{0} ã®è¨å®šã‚’ä¿å˜ã§ãã¾ã›ã‚“" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1196 +msgid "Connecting to I2P" +msgstr "I2Pã«æŽ¥ç¶šã—ã¦ã„ã¾ã™" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1199 +msgid "Error connecting to I2P - check your I2CP settings!" +msgstr "I2P接続ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠- I2CPè¨å®šã‚’確èªã—ã¦ä¸‹ã•ã„ï¼" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1208 +#: ../java/src/org/klomp/snark/SnarkManager.java:2273 +#, 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:1231 +#, java-format +msgid "Cannot open \"{0}\"" +msgstr "\"{0}\" ã‚’é–‹ã‘ã¾ã›ã‚“" + +#. TODO - if the existing one is a magnet, delete it and add the metainfo +#. instead? +#: ../java/src/org/klomp/snark/SnarkManager.java:1250 +#: ../java/src/org/klomp/snark/SnarkManager.java:1391 +#: ../java/src/org/klomp/snark/SnarkManager.java:1479 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:166 +#, java-format +msgid "Torrent with this info hash is already running: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1256 +#, java-format +msgid "ERROR - No I2P trackers in private torrent \"{0}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1258 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and" +" DHT only." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1261 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", and open trackers are disabled, will " +"announce to DHT only." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1263 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", and DHT and open trackers are " +"disabled, you should enable open trackers or DHT before starting the " +"torrent." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1289 +#, java-format +msgid "Torrent in \"{0}\" is invalid" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1295 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1044 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1071 +#, java-format +msgid "Torrent file deleted: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1298 +#, java-format +msgid "Torrent file moved from {0} to {1}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1302 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:193 +#, java-format +msgid "ERROR - Out of memory, cannot create torrent from {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1324 +#, java-format +msgid "Torrent added and started: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1326 +#, java-format +msgid "Torrent added: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1402 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:93 +#, java-format +msgid "Fetching {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1408 +#, java-format +msgid "" +"Open trackers are disabled and we have no DHT peers. Fetch of {0} may not " +"succeed until you start another torrent, enable open trackers, or enable " +"DHT." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1412 +#, java-format +msgid "Adding {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1445 +#, java-format +msgid "Download already running: {0}" +msgstr "ã™ã§ã«ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã•ã‚Œã¦ã„ã¾ã™ {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1490 +#: ../java/src/org/klomp/snark/SnarkManager.java:1516 +#: ../java/src/org/klomp/snark/SnarkManager.java:2154 +#, java-format +msgid "Failed to copy torrent file to {0}" +msgstr "{0} ã¸ã®torrentファイルã®ã‚³ãƒ”ーã«å¤±æ•—ã—ã¾ã—ãŸã€‚" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1930 +#, java-format +msgid "Too many files in \"{0}\" ({1})!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1932 +#, java-format +msgid "Torrent file \"{0}\" cannot end in \".torrent\"!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1934 +#, java-format +msgid "No pieces in \"{0}\"!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1936 +#, java-format +msgid "Too many pieces in \"{0}\", limit is {1}!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1938 +#, java-format +msgid "Pieces are too large in \"{0}\" ({1}B)!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1939 +#, java-format +msgid "Limit is {0}B" +msgstr "制é™ã¯ {0}B ã§ã™" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1941 +#, java-format +msgid "Torrent \"{0}\" has no data!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1949 +#, java-format +msgid "Torrents larger than {0}B are not supported yet \"{1}\"!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1966 +#, java-format +msgid "Error: Could not remove the torrent {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1989 +#: ../java/src/org/klomp/snark/SnarkManager.java:2008 +#, java-format +msgid "Torrent stopped: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2028 +#, java-format +msgid "Torrent removed: \"{0}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2036 +#, java-format +msgid "Adding torrents in {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2070 +#, java-format +msgid "Up bandwidth limit is {0} KBps" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2095 +#, java-format +msgid "Download finished: {0}" +msgstr "" + +#. addMessage(_t("Metainfo received for {0}", snark.getName())); +#: ../java/src/org/klomp/snark/SnarkManager.java:2151 +#: ../java/src/org/klomp/snark/SnarkManager.java:2434 +#, java-format +msgid "Starting up torrent {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2166 +#, java-format +msgid "Error on torrent {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2267 +msgid "Unable to connect to I2P!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2433 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:130 +msgid "Opening the I2P tunnel" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2453 +msgid "Opening the I2P tunnel and starting all torrents." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2516 +msgid "Stopping all torrents and closing the I2P tunnel." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2535 +msgid "Closing I2P tunnel after notifying trackers." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2597 +#, java-format +msgid "Finished recheck of torrent {0}, now {1} complete" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2599 +#, java-format +msgid "Finished recheck of torrent {0}, unchanged" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2603 +#, java-format +msgid "Error checking the torrent {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/TrackerClient.java:245 +#, java-format +msgid "No valid trackers for {0} - enable opentrackers or DHT?" +msgstr "" + +#: ../java/src/org/klomp/snark/UpdateHandler.java:49 +#: ../java/src/org/klomp/snark/UpdateRunner.java:228 +msgid "Updating" +msgstr "" + +#: ../java/src/org/klomp/snark/UpdateRunner.java:115 +#, java-format +msgid "Updating from {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:80 +#, java-format +msgid "Download torrent file from {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:103 +#, java-format +msgid "Torrent was not retrieved from {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:157 +#, java-format +msgid "Torrent fetched from {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:178 +#, java-format +msgid "Torrent already running: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:180 +#, java-format +msgid "Torrent already in the queue: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:191 +#, java-format +msgid "Torrent at {0} was not valid" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:270 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1780 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2702 +msgid "I2PSnark" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:275 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2167 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2450 +msgid "Configuration" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:277 +msgid "Anonymous BitTorrent Client" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:291 +msgid "Router is down" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:308 +msgid "Torrents" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:319 +msgid "Refresh page" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:328 +msgid "Forum" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:343 +msgid "Click \"Add torrent\" button to fetch torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397 +msgid "clear messages" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:452 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3084 +msgid "Status" +msgstr "状態" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:454 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:540 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:601 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3057 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3074 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3086 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3098 +#, java-format +msgid "Sort by {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:465 +msgid "Hide Peers" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:471 +msgid "Show Peers" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:494 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2688 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2722 +msgid "Torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3057 +msgid "File type" +msgstr "" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:512 +msgid "ETA" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:515 +msgid "Estimated time remaining" +msgstr "" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:538 +msgid "RX" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:540 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:541 +msgid "Downloaded" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:540 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2882 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3072 +msgid "Size" +msgstr "" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:569 +msgid "TX" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2900 +msgid "Upload ratio" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:572 +msgid "Uploaded" +msgstr "" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584 +msgid "RX Rate" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:587 +msgid "Down Rate" +msgstr "" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:599 +msgid "TX Rate" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:601 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:602 +msgid "Up Rate" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:618 +msgid "Stop all torrents and the I2P tunnel" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:620 +msgid "Stop All" +msgstr "å…¨ã¦åœæ¢" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:632 +msgid "Start all stopped torrents" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:634 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:648 +msgid "Start All" +msgstr "å…¨ã¦é–‹å§‹" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:646 +msgid "Start all torrents and the I2P tunnel" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:671 +msgid "No torrents loaded." +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677 +msgid "Totals" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679 +#, java-format +msgid "1 torrent" +msgid_plural "{0} torrents" +msgstr[0] "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:684 +#, java-format +msgid "1 connected peer" +msgid_plural "{0} connected peers" +msgstr[0] "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691 +#, java-format +msgid "1 DHT peer" +msgid_plural "{0} DHT peers" +msgstr[0] "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:698 +msgid "Dest" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:826 +msgid "First" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:826 +msgid "First page" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:836 +msgid "Prev" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:836 +msgid "Previous page" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:869 +msgid "Next" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:869 +msgid "Next page" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:877 +msgid "Last" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:877 +msgid "Last page" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:964 +msgid "Data directory cannot be created" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:974 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1187 +#, java-format +msgid "Cannot add torrent {0} inside another torrent: {1}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:995 +#, java-format +msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1036 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1065 +#, java-format +msgid "Magnet deleted: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1063 +#, java-format +msgid "Download deleted: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1080 +#, java-format +msgid "Data file deleted: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1082 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1091 +#, java-format +msgid "Data file could not be deleted: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1107 +#, java-format +msgid "Directory could not be deleted: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1114 +#, java-format +msgid "Directory deleted: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1166 +#, java-format +msgid "Cannot add a torrent ending in \".torrent\": {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1171 +#, java-format +msgid "Torrent with this name is already running: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1177 +#, java-format +msgid "Cannot add a torrent including an I2P directory: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1192 +#, java-format +msgid "Cannot add torrent {0} including another torrent: {1}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1218 +msgid "Error - Cannot include alternate trackers without a primary tracker" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1231 +msgid "Error - Cannot mix private and public trackers in a torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1253 +#, java-format +msgid "Torrent created for \"{0}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1255 +#, java-format +msgid "" +"Many I2P trackers require you to register new torrents before seeding - " +"please do so before starting \"{0}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1257 +#, java-format +msgid "Error creating a torrent for \"{0}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1261 +#, java-format +msgid "Cannot create a torrent for the nonexistent data: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1264 +msgid "Error creating torrent - you must enter a file or directory" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2434 +msgid "Delete selected" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2436 +msgid "Save tracker configuration" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1312 +msgid "Removed" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1344 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2433 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2435 +msgid "Add tracker" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1367 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1370 +msgid "Enter valid tracker name and URLs" +msgstr "" + +#. "<input type=\"reset\" class=\"cancel\" +#. value=\"").append(_t("Cancel")).append("\">\n" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1372 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2438 +msgid "Restore defaults" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1375 +msgid "Restored default trackers" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1487 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1488 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2961 +msgid "Checking" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1491 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1492 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2968 +msgid "Allocating" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1507 +msgid "Tracker Error" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1509 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1539 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1544 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1555 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1560 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1566 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1571 +#, java-format +msgid "1 peer" +msgid_plural "{0} peers" +msgstr[0] "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1519 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1520 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2966 +msgid "Starting" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1528 +msgid "Seeding" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1532 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1546 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1547 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2895 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3151 +msgid "Complete" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1551 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1552 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1557 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1558 +msgid "OK" +msgstr "OK" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1562 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1563 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1568 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1569 +msgid "Stalled" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1573 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1574 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1577 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1578 +msgid "No Peers" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1580 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1581 +msgid "Stopped" +msgstr "åœæ¢ã—ã¾ã—ãŸ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1610 +msgid "Torrent details" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1645 +msgid "View files" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1647 +msgid "Open file" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1699 +msgid "Stop the torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1701 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2973 +msgid "Stop" +msgstr "åœæ¢" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1714 +msgid "Start the torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1716 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2975 +msgid "Start" +msgstr "開始" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1729 +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 quote must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1734 +#, java-format +msgid "" +"Are you sure you want to delete the file \\''{0}\\'' (downloaded data will " +"not be deleted) ?" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1738 +msgid "Remove" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1751 +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 quote must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1756 +#, java-format +msgid "" +"Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded " +"data?" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1760 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2392 +msgid "Delete" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1796 +msgid "Unknown" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1808 +msgid "Seed" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1831 +msgid "Uninteresting (The peer has no pieces we need)" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1833 +msgid "Choked (The peer is not allowing us to request pieces)" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1853 +msgid "Uninterested (We have no pieces the peer needs)" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1855 +msgid "Choking (We are not allowing the peer to request pieces)" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1971 +#, java-format +msgid "Details at {0} tracker" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1988 +msgid "Info" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2061 +msgid "Add Torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2064 +msgid "From URL" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2067 +msgid "" +"Enter the torrent file download URL (I2P only), magnet link, maggot link, or" +" info hash" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2072 +msgid "Add torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2076 +msgid "Data dir" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2079 +#, java-format +msgid "Enter the directory to save the data in (default {0})" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2083 +#, java-format +msgid "You can also copy .torrent files to: {0}." +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2085 +msgid "Removing a .torrent will cause it to stop." +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2098 +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:2101 +msgid "Data to seed" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2105 +#, java-format +msgid "File or directory to seed (full path or within the directory {0} )" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2108 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2365 +msgid "Trackers" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2110 +msgid "Primary" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2112 +msgid "Alternates" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2115 +msgid "Create torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2133 +msgid "none" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2171 +msgid "Data directory" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2176 +msgid "Files readable by all" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2180 +msgid "If checked, other users may access the downloaded files" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2184 +msgid "Auto start torrents" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2188 +msgid "If checked, automatically start torrents that are added" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2192 +msgid "Smart torrent sorting" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2196 +msgid "If checked, ignore words such as 'the' when sorting" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2200 +msgid "Theme" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2214 +msgid "Refresh time" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2227 +msgid "Never" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2233 +msgid "Startup delay" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2235 +msgid "minutes" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2239 +msgid "Page size" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2241 +msgid "torrents" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2265 +msgid "Total uploader limit" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2268 +msgid "peers" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2272 +msgid "Up bandwidth limit" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2275 +msgid "Half available bandwidth recommended." +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2277 +msgid "View or change router bandwidth" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2281 +msgid "Use open trackers also" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2285 +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:2289 +msgid "Enable DHT" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2293 +msgid "If checked, use DHT" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2309 +msgid "Inbound Settings" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2316 +msgid "Outbound Settings" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2325 +msgid "I2CP host" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2330 +msgid "I2CP port" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2345 +msgid "I2CP options" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2350 +msgid "Save configuration" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2370 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3057 +msgid "Name" +msgstr "åå‰" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2372 +msgid "Website URL" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2374 +msgid "Standard" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2376 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3184 +msgid "Open" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2378 +msgid "Private" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2380 +msgid "Announce URL" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2424 +msgid "Add" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2467 +#, java-format +msgid "Invalid magnet URL {0}" +msgstr "" + +#. * dummies for translation +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2475 +#, java-format +msgid "1 hop" +msgid_plural "{0} hops" +msgstr[0] "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2476 +#, java-format +msgid "1 tunnel" +msgid_plural "{0} tunnels" +msgstr[0] "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2732 +msgid "Torrent file" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2740 +msgid "Data location" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2749 +msgid "Info hash" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2768 +msgid "Primary Tracker" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2777 +msgid "Tracker List" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2802 +msgid "Comment" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2814 +msgid "Created" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2825 +msgid "Created By" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2835 +msgid "Added" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2844 +msgid "Completed" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2856 +msgid "Magnet link" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2871 +msgid "Private torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2891 +msgid "Completion" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2920 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3086 +msgid "Remaining" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2929 +msgid "Skipped" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2939 +msgid "Files" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2946 +msgid "Pieces" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2952 +msgid "Piece size" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2964 +msgid "Refresh page for results" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2976 +msgid "Force Recheck" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3037 +msgid "Directory" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3096 +msgid "Priority" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3108 +msgid "Up to higher level directory" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3142 +msgid "Torrent not found?" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3148 +msgid "File not found in torrent?" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3161 +msgid "complete" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3162 +msgid "remaining" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3208 +msgid "High" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3213 +msgid "Normal" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3218 +msgid "Skip" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3228 +msgid "Set all high" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3230 +msgid "Set all normal" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3232 +msgid "Skip all" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3233 +msgid "Save priorities" +msgstr "" diff --git a/apps/i2psnark/locale/messages_uk.po b/apps/i2psnark/locale/messages_uk.po new file mode 100644 index 0000000000..bb0d8046d8 --- /dev/null +++ b/apps/i2psnark/locale/messages_uk.po @@ -0,0 +1,1408 @@ +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the i2psnark package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# +# Translators: +# Denis Lysenko <gribua@gmail.com>, 2015 +# madjong <madjong@i2pmail.org>, 2014 +# puxud <puxud@alivance.com>, 2014 +# zzzi2p, 2016 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-25 12:28+0000\n" +"PO-Revision-Date: 2016-06-15 14:40+0000\n" +"Last-Translator: zzzi2p\n" +"Language-Team: Ukrainian (Ukraine) (http://www.transifex.com/otf/I2P/language/uk_UA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uk_UA\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/IdleChecker.java:75 +msgid "No more torrents running." +msgstr "Більше немає запущених торрентів." + +#: ../java/src/org/klomp/snark/IdleChecker.java:76 +#: ../java/src/org/klomp/snark/SnarkManager.java:2542 +#: ../java/src/org/klomp/snark/SnarkManager.java:2553 +msgid "I2P tunnel closed." +msgstr "I2P-тунель закритий." + +#: ../java/src/org/klomp/snark/MagnetURI.java:42 +#: ../java/src/org/klomp/snark/MagnetURI.java:52 +#: ../java/src/org/klomp/snark/SnarkManager.java:2224 +msgid "Magnet" +msgstr "Magnet" + +#: ../java/src/org/klomp/snark/SnarkManager.java:794 +#, java-format +msgid "Total uploaders limit changed to {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:796 +#, java-format +msgid "Minimum total uploaders limit is {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:808 +#, java-format +msgid "Up BW limit changed to {0}KBps" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:810 +#, java-format +msgid "Minimum up bandwidth limit is {0}KBps" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:822 +#, java-format +msgid "Startup delay changed to {0}" +msgstr "Затримка запуÑку змінена на {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:833 +#, java-format +msgid "Refresh time changed to {0}" +msgstr "Ð§Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ на {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:835 +msgid "Refresh disabled" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾" + +#: ../java/src/org/klomp/snark/SnarkManager.java:851 +#, java-format +msgid "Page size changed to {0}" +msgstr "Ðовий розмір Ñторінки: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:860 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:960 +msgid "Data directory must be an absolute path" +msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð´Ð°Ð½Ð¸Ñ… повинна бути абÑолютним шлÑхом" + +#: ../java/src/org/klomp/snark/SnarkManager.java:862 +msgid "Data directory does not exist" +msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð´Ð°Ð½Ð¸Ñ… не Ñ–Ñнує" + +#: ../java/src/org/klomp/snark/SnarkManager.java:864 +msgid "Not a directory" +msgstr "Ðе директоріÑ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:866 +msgid "Unreadable" +msgstr "Ðеможливо прочитати" + +#: ../java/src/org/klomp/snark/SnarkManager.java:871 +#, java-format +msgid "Data directory changed to {0}" +msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð´Ð°Ð½Ð¸Ñ… змінена на {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:926 +msgid "I2CP and tunnel changes will take effect after stopping all torrents" +msgstr "Зміни налаштувать I2CP Ñ– тунелів заÑтоÑуютьÑÑ Ð¿Ñ–ÑÐ»Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐºÐ¸ вÑÑ–Ñ… торрентів" + +#: ../java/src/org/klomp/snark/SnarkManager.java:930 +#, java-format +msgid "I2CP options changed to {0}" +msgstr "Параметри I2CP змінені на {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:936 +msgid "Disconnecting old I2CP destination" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:938 +#, java-format +msgid "I2CP settings changed to {0}" +msgstr "Ðові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ I2CP: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:943 +msgid "" +"Unable to connect with the new settings, reverting to the old I2CP settings" +msgstr "Ðе вдалоÑÑ Ð·â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð· викориÑтаннÑм нових налаштувань I2CP, Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ попередніх налаштувань" + +#: ../java/src/org/klomp/snark/SnarkManager.java:947 +msgid "Unable to reconnect with the old settings!" +msgstr "Ðеможливо перез’єднатиÑÑŒ із Ñтарими налаштуваннÑми!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:949 +msgid "Reconnected on the new I2CP destination" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:956 +#, java-format +msgid "I2CP listener restarted for \"{0}\"" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:970 +msgid "New files will be publicly readable" +msgstr "Ðові файли будуть публічно доÑтупні Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" + +#: ../java/src/org/klomp/snark/SnarkManager.java:972 +msgid "New files will not be publicly readable" +msgstr "Ðові файли не будуть доÑтупні Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–Ñ‡Ð½Ð¾" + +#: ../java/src/org/klomp/snark/SnarkManager.java:979 +msgid "Enabled autostart" +msgstr "ÐвтозапуÑк увімкнено" + +#: ../java/src/org/klomp/snark/SnarkManager.java:981 +msgid "Disabled autostart" +msgstr "ÐвтозапуÑк вимкнено" + +#: ../java/src/org/klomp/snark/SnarkManager.java:988 +msgid "Enabled smart sort" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:990 +msgid "Disabled smart sort" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:997 +msgid "Enabled open trackers - torrent restart required to take effect." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:999 +msgid "Disabled open trackers - torrent restart required to take effect." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1006 +msgid "Enabled DHT." +msgstr "DHT увімкнено." + +#: ../java/src/org/klomp/snark/SnarkManager.java:1008 +msgid "Disabled DHT." +msgstr "DHT вимкнено." + +#: ../java/src/org/klomp/snark/SnarkManager.java:1010 +msgid "DHT change requires tunnel shutdown and reopen" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1017 +#, java-format +msgid "{0} theme loaded, return to main i2psnark page to view." +msgstr "Тема {0} завантажена, повернітьÑÑ Ð´Ð¾ головної Ñторінки I2PSnark щоб переглÑнути." + +#: ../java/src/org/klomp/snark/SnarkManager.java:1027 +msgid "Configuration unchanged." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ змінені." + +#: ../java/src/org/klomp/snark/SnarkManager.java:1059 +msgid "Open Tracker list changed - torrent restart required to take effect." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1069 +msgid "Private tracker list changed - affects newly created torrents only." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1115 +#, java-format +msgid "Unable to save the config to {0}" +msgstr "Ðеможливо зберегти Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1196 +msgid "Connecting to I2P" +msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· I2P" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1199 +msgid "Error connecting to I2P - check your I2CP settings!" +msgstr "Помилка Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· I2P - перевірте ваші Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ I2CP!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1208 +#: ../java/src/org/klomp/snark/SnarkManager.java:2273 +#, 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:1231 +#, java-format +msgid "Cannot open \"{0}\"" +msgstr "Ðеможливо відкрити \"{0}\"" + +#. TODO - if the existing one is a magnet, delete it and add the metainfo +#. instead? +#: ../java/src/org/klomp/snark/SnarkManager.java:1250 +#: ../java/src/org/klomp/snark/SnarkManager.java:1391 +#: ../java/src/org/klomp/snark/SnarkManager.java:1479 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:166 +#, java-format +msgid "Torrent with this info hash is already running: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1256 +#, java-format +msgid "ERROR - No I2P trackers in private torrent \"{0}\"" +msgstr "ПОМИЛКÐ: Ðемає I2P трекерів у оÑобиÑтому торренті \"{0}\"" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1258 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and" +" DHT only." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1261 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", and open trackers are disabled, will " +"announce to DHT only." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1263 +#, java-format +msgid "" +"Warning - No I2P trackers in \"{0}\", and DHT and open trackers are " +"disabled, you should enable open trackers or DHT before starting the " +"torrent." +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1289 +#, java-format +msgid "Torrent in \"{0}\" is invalid" +msgstr "Торрент у \"{0}\" неправильний/пошкоджений" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1295 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1044 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1071 +#, java-format +msgid "Torrent file deleted: {0}" +msgstr "Торрент файл видалено: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1298 +#, java-format +msgid "Torrent file moved from {0} to {1}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1302 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:193 +#, java-format +msgid "ERROR - Out of memory, cannot create torrent from {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1324 +#, java-format +msgid "Torrent added and started: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1326 +#, java-format +msgid "Torrent added: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1402 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:93 +#, java-format +msgid "Fetching {0}" +msgstr "ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ€Ñ€ÐµÐ½Ñ‚Ñƒ: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1408 +#, java-format +msgid "" +"Open trackers are disabled and we have no DHT peers. Fetch of {0} may not " +"succeed until you start another torrent, enable open trackers, or enable " +"DHT." +msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸Ñ… трекерів заборонено Ñ– немає DHT пірів. ÐŸÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ {0} не може бути завершено. ЗапуÑÑ‚Ñ–Ñ‚ÑŒ інший торрент або дозвольте викориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸Ñ… трекерів Ñ–/або DHT." + +#: ../java/src/org/klomp/snark/SnarkManager.java:1412 +#, java-format +msgid "Adding {0}" +msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1445 +#, java-format +msgid "Download already running: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1490 +#: ../java/src/org/klomp/snark/SnarkManager.java:1516 +#: ../java/src/org/klomp/snark/SnarkManager.java:2154 +#, java-format +msgid "Failed to copy torrent file to {0}" +msgstr "Ðеможливо Ñкопіювати торрент файл до {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1930 +#, java-format +msgid "Too many files in \"{0}\" ({1})!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1932 +#, java-format +msgid "Torrent file \"{0}\" cannot end in \".torrent\"!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1934 +#, java-format +msgid "No pieces in \"{0}\"!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1936 +#, java-format +msgid "Too many pieces in \"{0}\", limit is {1}!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1938 +#, java-format +msgid "Pieces are too large in \"{0}\" ({1}B)!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1939 +#, java-format +msgid "Limit is {0}B" +msgstr "Ліміт: {0}Б" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1941 +#, java-format +msgid "Torrent \"{0}\" has no data!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1949 +#, java-format +msgid "Torrents larger than {0}B are not supported yet \"{1}\"!" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1966 +#, java-format +msgid "Error: Could not remove the torrent {0}" +msgstr "Помилка: неможливо видалити торрент {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:1989 +#: ../java/src/org/klomp/snark/SnarkManager.java:2008 +#, java-format +msgid "Torrent stopped: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2028 +#, java-format +msgid "Torrent removed: \"{0}\"" +msgstr "Торрент вилучено: {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2036 +#, java-format +msgid "Adding torrents in {0}" +msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ€Ñ€ÐµÐ½Ñ‚Ñ–Ð² у {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2070 +#, java-format +msgid "Up bandwidth limit is {0} KBps" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2095 +#, java-format +msgid "Download finished: {0}" +msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾: {0}" + +#. addMessage(_t("Metainfo received for {0}", snark.getName())); +#: ../java/src/org/klomp/snark/SnarkManager.java:2151 +#: ../java/src/org/klomp/snark/SnarkManager.java:2434 +#, java-format +msgid "Starting up torrent {0}" +msgstr "ЗапуÑк торренту {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2166 +#, java-format +msgid "Error on torrent {0}" +msgstr "Помилка торренту {0}" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2267 +msgid "Unable to connect to I2P!" +msgstr "Ðеможливо з’єднатиÑÑ Ð· I2P!" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2433 +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:130 +msgid "Opening the I2P tunnel" +msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÑƒÐ½ÐµÐ»ÑŽ I2P" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2453 +msgid "Opening the I2P tunnel and starting all torrents." +msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÑƒÐ½ÐµÐ»ÑŽ I2P Ñ– запуÑк вÑÑ–Ñ… торрентів." + +#: ../java/src/org/klomp/snark/SnarkManager.java:2516 +msgid "Stopping all torrents and closing the I2P tunnel." +msgstr "Ð—ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… торрентів Ñ– Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÑƒÐ½ÐµÐ»ÑŽ I2P." + +#: ../java/src/org/klomp/snark/SnarkManager.java:2535 +msgid "Closing I2P tunnel after notifying trackers." +msgstr "Ð’Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ‚ÑƒÐ½ÐµÐ»ÑŽ I2P піÑÐ»Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ñ€ÐµÐºÐµÑ€Ñ–Ð²." + +#: ../java/src/org/klomp/snark/SnarkManager.java:2597 +#, java-format +msgid "Finished recheck of torrent {0}, now {1} complete" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2599 +#, java-format +msgid "Finished recheck of torrent {0}, unchanged" +msgstr "" + +#: ../java/src/org/klomp/snark/SnarkManager.java:2603 +#, java-format +msgid "Error checking the torrent {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/TrackerClient.java:245 +#, java-format +msgid "No valid trackers for {0} - enable opentrackers or DHT?" +msgstr "Ð”Ð»Ñ {0} немає трекерів - включити відкриті трекери або DHT?" + +#: ../java/src/org/klomp/snark/UpdateHandler.java:49 +#: ../java/src/org/klomp/snark/UpdateRunner.java:228 +msgid "Updating" +msgstr "ОновленнÑ" + +#: ../java/src/org/klomp/snark/UpdateRunner.java:115 +#, java-format +msgid "Updating from {0}" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð· {0}" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:80 +#, java-format +msgid "Download torrent file from {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:103 +#, java-format +msgid "Torrent was not retrieved from {0}" +msgstr "Торрент не було отримано з {0}" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:157 +#, java-format +msgid "Torrent fetched from {0}" +msgstr "Отримано торрент із {0}" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:178 +#, java-format +msgid "Torrent already running: {0}" +msgstr "Торрент вже запущений: {0}" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:180 +#, java-format +msgid "Torrent already in the queue: {0}" +msgstr "Торрент вже в черзі: {0}" + +#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:191 +#, java-format +msgid "Torrent at {0} was not valid" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:270 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1780 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2702 +msgid "I2PSnark" +msgstr "I2PSnark" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:275 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2167 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2450 +msgid "Configuration" +msgstr "ÐалаштуваннÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:277 +msgid "Anonymous BitTorrent Client" +msgstr "Ðнонімний BitTorrent клієнт" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:291 +msgid "Router is down" +msgstr "Роутер не працює" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:308 +msgid "Torrents" +msgstr "Торренти" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:319 +msgid "Refresh page" +msgstr "Оновити Ñторінку" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:328 +msgid "Forum" +msgstr "Форум" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:343 +msgid "Click \"Add torrent\" button to fetch torrent" +msgstr "ÐатиÑніть \"Додати торрент\" щоб отримати торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397 +msgid "clear messages" +msgstr "очиÑтити повідомленнÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:452 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3084 +msgid "Status" +msgstr "СтатуÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:454 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:540 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:601 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3057 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3074 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3086 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3098 +#, java-format +msgid "Sort by {0}" +msgstr "Сортувати по {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:465 +msgid "Hide Peers" +msgstr "Приховати піри" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:471 +msgid "Show Peers" +msgstr "Показати піри" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:494 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2688 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2722 +msgid "Torrent" +msgstr "Торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3057 +msgid "File type" +msgstr "Тип файлу" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:512 +msgid "ETA" +msgstr "ЗалишилоÑÑŒ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:515 +msgid "Estimated time remaining" +msgstr "Приблизно залишилоÑÑŒ" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:538 +msgid "RX" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:540 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:541 +msgid "Downloaded" +msgstr "Завантажено" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:540 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2882 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3072 +msgid "Size" +msgstr "Розмір" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:569 +msgid "TX" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2900 +msgid "Upload ratio" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:572 +msgid "Uploaded" +msgstr "Вивантажено" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584 +msgid "RX Rate" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:587 +msgid "Down Rate" +msgstr "" + +#. Translators: Please keep short or translate as " " +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:599 +msgid "TX Rate" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:601 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:602 +msgid "Up Rate" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:618 +msgid "Stop all torrents and the I2P tunnel" +msgstr "Зупинити вÑÑ– торренти Ñ– I2P тунель" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:620 +msgid "Stop All" +msgstr "Зупинити вÑÑ–" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:632 +msgid "Start all stopped torrents" +msgstr "ЗапуÑтити вÑÑ– зупинені торренти" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:634 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:648 +msgid "Start All" +msgstr "ЗапуÑтити вÑÑ–" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:646 +msgid "Start all torrents and the I2P tunnel" +msgstr "ЗапуÑтити вÑÑ– торренти Ñ– I2P тунель" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:671 +msgid "No torrents loaded." +msgstr "Ðемає завантажених торрентів." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677 +msgid "Totals" +msgstr "Загалом" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679 +#, java-format +msgid "1 torrent" +msgid_plural "{0} torrents" +msgstr[0] "{0} торрент" +msgstr[1] "{0} торрентів" +msgstr[2] "{0} торрентів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:684 +#, java-format +msgid "1 connected peer" +msgid_plural "{0} connected peers" +msgstr[0] "{0} приєднаний пір" +msgstr[1] "{0} приєднаних пірів" +msgstr[2] "{0} приєднаних пірів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691 +#, java-format +msgid "1 DHT peer" +msgid_plural "{0} DHT peers" +msgstr[0] "{0} DHT пір" +msgstr[1] "{0} DHT пірів" +msgstr[2] "{0} DHT пірів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:698 +msgid "Dest" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:826 +msgid "First" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:826 +msgid "First page" +msgstr "Перша Ñторінка" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:836 +msgid "Prev" +msgstr "ПопереднÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:836 +msgid "Previous page" +msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñторінка" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:869 +msgid "Next" +msgstr "ÐаÑтупна" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:869 +msgid "Next page" +msgstr "ÐаÑтупна Ñторінка" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:877 +msgid "Last" +msgstr "ОÑтаннÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:877 +msgid "Last page" +msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ñторінка" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:964 +msgid "Data directory cannot be created" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:974 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1187 +#, java-format +msgid "Cannot add torrent {0} inside another torrent: {1}" +msgstr "Ðеможливо додати торрент {0} вÑередині іншого торренту: {1}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:995 +#, java-format +msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\"" +msgstr "Хибний URL: Повинен починатиÑÑ Ð· \"http://\", \"{0}\" або \"{1}\"" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1036 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1065 +#, java-format +msgid "Magnet deleted: {0}" +msgstr "Magnet видалено: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1063 +#, java-format +msgid "Download deleted: {0}" +msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1080 +#, java-format +msgid "Data file deleted: {0}" +msgstr "Файл з даними видалений: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1082 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1091 +#, java-format +msgid "Data file could not be deleted: {0}" +msgstr "Ðеможливо видалити файл з даними: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1107 +#, java-format +msgid "Directory could not be deleted: {0}" +msgstr "Ðеможливо вилучити директорію: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1114 +#, java-format +msgid "Directory deleted: {0}" +msgstr "Директорію видалено: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1166 +#, java-format +msgid "Cannot add a torrent ending in \".torrent\": {0}" +msgstr "Ðеможливо додати торрент, Ñкий закінчуєтьÑÑ Ð½Ð° \".torrent\": {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1171 +#, java-format +msgid "Torrent with this name is already running: {0}" +msgstr "Торрент з цією назвою вже запущений: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1177 +#, java-format +msgid "Cannot add a torrent including an I2P directory: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1192 +#, java-format +msgid "Cannot add torrent {0} including another torrent: {1}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1218 +msgid "Error - Cannot include alternate trackers without a primary tracker" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1231 +msgid "Error - Cannot mix private and public trackers in a torrent" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1253 +#, java-format +msgid "Torrent created for \"{0}\"" +msgstr "Торрент Ñтворений Ð´Ð»Ñ \"{0}\"" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1255 +#, 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:1257 +#, java-format +msgid "Error creating a torrent for \"{0}\"" +msgstr "Ðеможливо Ñтворити торрент Ð´Ð»Ñ \"{0}\"" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1261 +#, java-format +msgid "Cannot create a torrent for the nonexistent data: {0}" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1264 +msgid "Error creating torrent - you must enter a file or directory" +msgstr "Ðеможливо Ñтворити торрент: необхідно вибрати файл або директорію" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2434 +msgid "Delete selected" +msgstr "Видалити вибране" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2436 +msgid "Save tracker configuration" +msgstr "Зберегти Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€ÐµÐºÐµÑ€Ð°" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1312 +msgid "Removed" +msgstr "Видалено" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1344 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2433 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2435 +msgid "Add tracker" +msgstr "Додати трекер" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1367 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1370 +msgid "Enter valid tracker name and URLs" +msgstr "" + +#. "<input type=\"reset\" class=\"cancel\" +#. value=\"").append(_t("Cancel")).append("\">\n" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1372 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2438 +msgid "Restore defaults" +msgstr "Відновити Ñтандартні" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1375 +msgid "Restored default trackers" +msgstr "Відновлено Ñтандартні трекери" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1487 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1488 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2961 +msgid "Checking" +msgstr "Перевірка" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1491 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1492 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2968 +msgid "Allocating" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1507 +msgid "Tracker Error" +msgstr "Помилка трекеру" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1509 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1539 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1544 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1555 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1560 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1566 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1571 +#, java-format +msgid "1 peer" +msgid_plural "{0} peers" +msgstr[0] "{0} пір" +msgstr[1] "{0} пірів" +msgstr[2] "{0} пірів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1519 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1520 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2966 +msgid "Starting" +msgstr "ЗапуÑк" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1528 +msgid "Seeding" +msgstr "Роздаю" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1532 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1546 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1547 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2895 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3151 +msgid "Complete" +msgstr "Готово" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1551 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1552 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1557 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1558 +msgid "OK" +msgstr "ОК" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1562 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1563 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1568 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1569 +msgid "Stalled" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1573 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1574 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1577 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1578 +msgid "No Peers" +msgstr "Ðемає пірів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1580 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1581 +msgid "Stopped" +msgstr "Зупинено" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1610 +msgid "Torrent details" +msgstr "Деталі торрента" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1645 +msgid "View files" +msgstr "ПереглÑнути файли" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1647 +msgid "Open file" +msgstr "Відкрити файл" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1699 +msgid "Stop the torrent" +msgstr "Зупинити торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1701 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2973 +msgid "Stop" +msgstr "Зупинити" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1714 +msgid "Start the torrent" +msgstr "ЗапуÑтити торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1716 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2975 +msgid "Start" +msgstr "ЗапуÑтити" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1729 +msgid "Remove the torrent from the active list, deleting the .torrent file" +msgstr "Видалити торрент з активного Ñпику, Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ .torrent" + +#. 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 quote must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1734 +#, java-format +msgid "" +"Are you sure you want to delete the file \\''{0}\\'' (downloaded data will " +"not be deleted) ?" +msgstr "Ви дійÑно хочете видалити файл \\\"{0}\\\" (завантажені дані не буде видалено)?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1738 +msgid "Remove" +msgstr "Вилучити" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1751 +msgid "Delete the .torrent file and the associated data file(s)" +msgstr "Видалити .torrent файл Ñ– вÑÑ– пов’Ñзані з ним дані" + +#. 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 quote must be escaped +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1756 +#, 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:1760 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2392 +msgid "Delete" +msgstr "Видалити" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1796 +msgid "Unknown" +msgstr "Ðевідомо" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1808 +msgid "Seed" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1831 +msgid "Uninteresting (The peer has no pieces we need)" +msgstr "Uninteresting (Пір не має потрібних нам чаÑтин)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1833 +msgid "Choked (The peer is not allowing us to request pieces)" +msgstr "Choked (Пір не дозволÑÑ” нам запитувати чаÑтини)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1853 +msgid "Uninterested (We have no pieces the peer needs)" +msgstr "Uninterested (Ми не маємо потрібних піру чаÑтин)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1855 +msgid "Choking (We are not allowing the peer to request pieces)" +msgstr "Choking (Ми не дозволÑємо піру запитувати чаÑтини)" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1971 +#, java-format +msgid "Details at {0} tracker" +msgstr "Деталі на трекері {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1988 +msgid "Info" +msgstr "ІнформаціÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2061 +msgid "Add Torrent" +msgstr "Додати торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2064 +msgid "From URL" +msgstr "З URL" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2067 +msgid "" +"Enter the torrent file download URL (I2P only), magnet link, maggot link, or" +" info hash" +msgstr "Введіть URL-адреÑу торрент файлу (тільки I2P), поÑÐ¸Ð»Ð°Ð½Ð½Ñ Magnet або інфо хеш" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2072 +msgid "Add torrent" +msgstr "Додати торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2076 +msgid "Data dir" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2079 +#, java-format +msgid "Enter the directory to save the data in (default {0})" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2083 +#, java-format +msgid "You can also copy .torrent files to: {0}." +msgstr "Ви також можете Ñкопіювати .torrent файли до: {0}" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2085 +msgid "Removing a .torrent will cause it to stop." +msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ .torrent файлу Ñпричинить його зупинку." + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2098 +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:2101 +msgid "Data to seed" +msgstr "Дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ð°Ñ‡Ñ–" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2105 +#, java-format +msgid "File or directory to seed (full path or within the directory {0} )" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2108 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2365 +msgid "Trackers" +msgstr "Трекери" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2110 +msgid "Primary" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2112 +msgid "Alternates" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2115 +msgid "Create torrent" +msgstr "Створити торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2133 +msgid "none" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2171 +msgid "Data directory" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2176 +msgid "Files readable by all" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2180 +msgid "If checked, other users may access the downloaded files" +msgstr "Якщо вибрано, інші кориÑтувачі можуть мати доÑтуп до завантажених файлів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2184 +msgid "Auto start torrents" +msgstr "Ðвтоматично запуÑкати торренти" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2188 +msgid "If checked, automatically start torrents that are added" +msgstr "Якщо вибрано, автоматично запуÑкатиме торренти Ñкі були додані" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2192 +msgid "Smart torrent sorting" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2196 +msgid "If checked, ignore words such as 'the' when sorting" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2200 +msgid "Theme" +msgstr "Тема" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2214 +msgid "Refresh time" +msgstr "Оновити чаÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2227 +msgid "Never" +msgstr "Ðіколи" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2233 +msgid "Startup delay" +msgstr "Затримка перез автозапуÑком" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2235 +msgid "minutes" +msgstr "хвилин" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2239 +msgid "Page size" +msgstr "Розмір Ñторінки" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2241 +msgid "torrents" +msgstr "торрентів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2265 +msgid "Total uploader limit" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2268 +msgid "peers" +msgstr "піри" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2272 +msgid "Up bandwidth limit" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2275 +msgid "Half available bandwidth recommended." +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2277 +msgid "View or change router bandwidth" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2281 +msgid "Use open trackers also" +msgstr "ВикориÑтовувати також відкриті трекери" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2285 +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:2289 +msgid "Enable DHT" +msgstr "Увімкнути DHT" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2293 +msgid "If checked, use DHT" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2309 +msgid "Inbound Settings" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2316 +msgid "Outbound Settings" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2325 +msgid "I2CP host" +msgstr "I2CP хоÑÑ‚" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2330 +msgid "I2CP port" +msgstr "I2CP порт" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2345 +msgid "I2CP options" +msgstr "Параметри I2CP" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2350 +msgid "Save configuration" +msgstr "Зберегти налаштуваннÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2370 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3057 +msgid "Name" +msgstr "Ðазва" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2372 +msgid "Website URL" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2374 +msgid "Standard" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2376 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3184 +msgid "Open" +msgstr "Відкрити" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2378 +msgid "Private" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2380 +msgid "Announce URL" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2424 +msgid "Add" +msgstr "Додати" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2467 +#, java-format +msgid "Invalid magnet URL {0}" +msgstr "" + +#. * dummies for translation +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2475 +#, java-format +msgid "1 hop" +msgid_plural "{0} hops" +msgstr[0] "{0} хоп" +msgstr[1] "{0} хопів" +msgstr[2] "{0} хопів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2476 +#, java-format +msgid "1 tunnel" +msgid_plural "{0} tunnels" +msgstr[0] "{0} тунель" +msgstr[1] "{0} тунелÑ" +msgstr[2] "{0} тунелів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2732 +msgid "Torrent file" +msgstr "Торрент файл" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2740 +msgid "Data location" +msgstr "Ð Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2749 +msgid "Info hash" +msgstr "Інфо хеш" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2768 +msgid "Primary Tracker" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2777 +msgid "Tracker List" +msgstr "СпиÑок трекерів" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2802 +msgid "Comment" +msgstr "Коментар" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2814 +msgid "Created" +msgstr "Створено" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2825 +msgid "Created By" +msgstr "Створено" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2835 +msgid "Added" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2844 +msgid "Completed" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2856 +msgid "Magnet link" +msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Magnet" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2871 +msgid "Private torrent" +msgstr "ОÑобиÑтий торрент" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2891 +msgid "Completion" +msgstr "ЗавершеннÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2920 +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3086 +msgid "Remaining" +msgstr "ЗалишилоÑÑŒ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2929 +msgid "Skipped" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2939 +msgid "Files" +msgstr "Файли" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2946 +msgid "Pieces" +msgstr "ЧаÑтин" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2952 +msgid "Piece size" +msgstr "Розмір чаÑтин" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2964 +msgid "Refresh page for results" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2976 +msgid "Force Recheck" +msgstr "" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3037 +msgid "Directory" +msgstr "ДиректоріÑ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3096 +msgid "Priority" +msgstr "Пріоритет" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3108 +msgid "Up to higher level directory" +msgstr "Ðа рівень вище" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3142 +msgid "Torrent not found?" +msgstr "Торрент не знайдено?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3148 +msgid "File not found in torrent?" +msgstr "Файл не знайдено у торренті?" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3161 +msgid "complete" +msgstr "готово" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3162 +msgid "remaining" +msgstr "залишилоÑÑŒ" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3208 +msgid "High" +msgstr "ВиÑокий" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3213 +msgid "Normal" +msgstr "Ðормальний" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3218 +msgid "Skip" +msgstr "ПропуÑтити" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3228 +msgid "Set all high" +msgstr "ВиÑокий пріоритет вÑім" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3230 +msgid "Set all normal" +msgstr "Ðормальний пріоритет вÑім" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3232 +msgid "Skip all" +msgstr "ПропуÑтити вÑÑ–" + +#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:3233 +msgid "Save priorities" +msgstr "Зберегти пріоритети" diff --git a/build.xml b/build.xml index 90e8a1fac5..52598f9acf 100644 --- a/build.xml +++ b/build.xml @@ -1834,7 +1834,8 @@ </target> --> <!-- standalone i2psnark zip --> - <target name="i2psnark" depends="buildStreaming, buildJetty, buildSystray" > + <!-- console dependency for countries bundle --> + <target name="i2psnark" depends="buildStreaming, buildJetty, buildSystray, buildRouterConsole" > <ant dir="apps/i2psnark/java" target="standalone" /> <copy file="apps/i2psnark/java/i2psnark-standalone.zip" todir="." /> </target> diff --git a/core/java/src/net/i2p/util/Translate.java b/core/java/src/net/i2p/util/Translate.java index e76121c8a2..cf64a52802 100644 --- a/core/java/src/net/i2p/util/Translate.java +++ b/core/java/src/net/i2p/util/Translate.java @@ -27,10 +27,14 @@ public abstract class Translate { public static final String PROP_LANG = "routerconsole.lang"; /** @since 0.9.10 */ public static final String PROP_COUNTRY = "routerconsole.country"; - /** non-null, two-letter lower case, may be "" */ + /** non-null, two- or three-letter lower case, may be "" */ private static final String _localeLang = Locale.getDefault().getLanguage(); /** non-null, two-letter upper case, may be "" */ private static final String _localeCountry = Locale.getDefault().getCountry(); + /** App context only, two- or three-letter lower case, may be null */ + private static String _overrideLang = null; + /** App context only, two-letter upper case, may be "" or null */ + private static String _overrideCountry = null; private static final Map<String, ResourceBundle> _bundles = new ConcurrentHashMap<String, ResourceBundle>(16); private static final Set<String> _missing = new ConcurrentHashSet<String>(16); /** use to look for untagged strings */ @@ -139,6 +143,12 @@ public abstract class Translate { * @return lang in routerconsole.lang property, else current locale */ public static String getLanguage(I2PAppContext ctx) { + if (!ctx.isRouterContext()) { + synchronized(Translate.class) { + if (_overrideLang != null) + return _overrideLang; + } + } String lang = ctx.getProperty(PROP_LANG); if (lang == null || lang.length() <= 0) lang = _localeLang; @@ -151,11 +161,32 @@ public abstract class Translate { * @since 0.9.10 */ public static String getCountry(I2PAppContext ctx) { + if (!ctx.isRouterContext()) { + synchronized(Translate.class) { + if (_overrideCountry != null) + return _overrideCountry; + } + } // property may be empty so we don't have a non-default // language and a default country return ctx.getProperty(PROP_COUNTRY, _localeCountry); } + /** + * Only for use by standalone apps in App Context. + * NOT for use in Router Context. + * Does not persist, apps must implement their own persistence. + * Overrides in all contexts. + * + * @param lang Two- or three-letter lower case, or null for default + * @param country Two-letter upper case, or null for default, or "" for none + * @since 0.9.27 + */ + public synchronized static void setLanguage(String lang, String country) { + _overrideLang = lang; + _overrideCountry = country; + } + /** * cache both found and not found for speed * @param lang non-null, if "" returns null -- GitLab