Changeset 581cd72


Ignore:
Timestamp:
Feb 14, 2011 4:38:22 PM (9 years ago)
Author:
dev <dev@…>
Branches:
master
Children:
4c1f3a31, a6686cb
Parents:
271f330 (diff), 289c7d6 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge of '0d9093cdc66fad9b4827931caa079ad00f2a76f7'

and '8aecdabbd225a6ea26a3c20725aeabfedf2dbe1d'

Files:
8 added
8 deleted
48 edited

Legend:

Unmodified
Added
Removed
  • apps/BOB/src/net/i2p/BOB/BOB.java

    r271f330 r581cd72  
    121121        public final static String PROP_BOB_PORT = "BOB.port";
    122122        public final static String PROP_BOB_HOST = "BOB.host";
     123        public final static String PROP_CFG_VER = "BOB.CFG.VER";
    123124        private static NamedDB database;
    124125        private static Properties props = new Properties();
     
    210211                        if (!props.containsKey(I2PClient.PROP_TCP_HOST)) {
    211212                                props.setProperty(I2PClient.PROP_TCP_HOST, "localhost");
     213                                save = true;
    212214                        }
    213215                        if (!props.containsKey(I2PClient.PROP_TCP_PORT)) {
    214216                                props.setProperty(I2PClient.PROP_TCP_PORT, "7654");
    215                         }
    216                         if (!props.containsKey(I2PClient.PROP_RELIABILITY)) {
    217                                 props.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_BEST_EFFORT);
     217                                save = true;
    218218                        }
    219219                        if (!props.containsKey(PROP_BOB_PORT)) {
    220220                                props.setProperty(PROP_BOB_PORT, "2827"); // 0xB0B
     221                                save = true;
    221222                        }
    222223                        if (!props.containsKey("inbound.length")) {
    223224                                props.setProperty("inbound.length", "1");
     225                                save = true;
    224226                        }
    225227                        if (!props.containsKey("outbound.length")) {
    226228                                props.setProperty("outbound.length", "1");
     229                                save = true;
    227230                        }
    228231                        if (!props.containsKey("inbound.lengthVariance")) {
    229232                                props.setProperty("inbound.lengthVariance", "0");
     233                                save = true;
    230234                        }
    231235                        if (!props.containsKey("outbound.lengthVariance")) {
    232236                                props.setProperty("outbound.lengthVariance", "0");
     237                                save = true;
    233238                        }
    234239                        if (!props.containsKey(PROP_BOB_HOST)) {
    235240                                props.setProperty(PROP_BOB_HOST, "localhost");
     241                                save = true;
     242                        }
     243                        // PROP_RELIABILITY_NONE, PROP_RELIABILITY_BEST_EFFORT, PROP_RELIABILITY_GUARANTEED
     244                        if (!props.containsKey(PROP_CFG_VER)) {
     245                                props.setProperty(I2PClient.PROP_RELIABILITY, I2PClient.PROP_RELIABILITY_NONE);
     246                                props.setProperty(PROP_CFG_VER,"1");
     247                                save = true;
    236248                        }
    237249                        if (save) {
  • apps/BOB/src/net/i2p/BOB/DoCMDS.java

    r271f330 r581cd72  
    108108        private static final String C_zap = "zap";
    109109
    110         /* all the coomands available, plus description */
     110        /* all the commands available, plus description */
    111111        private static final String C_ALL[][] = {
    112112                {C_help, C_help + " <command> * Get help on a command."},
     
    963963                                                                                        break die;
    964964                                                                                }
    965 // Finally say OK.
     965                                                                                // Finally say OK.
    966966                                                                                out.println("OK Nickname set to " + Arg);
    967967                                                                        }
     
    14731473                                        out.print("ERROR A really bad error just happened, ");
    14741474                                } // quit
    1475 // Say goodbye.
     1475                                // Say goodbye.
    14761476
    14771477                                out.println("OK Bye!");
  • apps/desktopgui/build.xml

    r271f330 r581cd72  
    4646            <arg value="./bundle-messages.sh" />
    4747        </exec>
    48 
     48        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     49            <arg value="./bundle-messages.sh" />
     50        </exec>
    4951                <jar basedir="${build}" destfile="${dist}/${jar}">
    5052                        <manifest>
     
    7981            <arg value="-p" />
    8082        </exec>
     83        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     84            <arg value="./bundle-messages.sh" />
     85            <arg value="-p" />
     86        </exec>
    8187    </target>
    8288
  • apps/desktopgui/bundle-messages.sh

    r271f330 r581cd72  
    2020fi
    2121
     22# on windows, one must specify the path of commnad find
     23# since windows has its own retarded version of find.
     24if which find|grep -q -i windows ; then
     25        export PATH=.:/bin:/usr/local/bin:$PATH
     26fi
     27# Fast mode - update ondemond
     28echo Placing a file named messages_{LangCode}.only in locale folder,
     29echo will limit .po file update to the language specified by {LangCode}.
     30LG2=$(find locale -iname messages_*.only|tail -1)
     31[ LG2 ] && LG2=${LG2#locale/messages_} && LG2=${LG2%.only}
     32
    2233# add ../java/ so the refs will work in the po file
    2334JPATHS="src"
     
    2738        LG=${i#locale/messages_}
    2839        LG=${LG%.po}
     40       
     41        # skip, if specified
     42        if [ $LG2 ]; then
     43                [ $LG != $LG2 ] && continue || echo INFO: Language update is set to [$LG2] only.
     44        fi
    2945
    3046        if [ "$POUPDATE" = "1" ]
     
    3450        fi
    3551
    36     echo $LG
    3752        if [ -s build/net/i2p/desktopgui/messages_$LG.class -a \
    3853             build/net/i2p/desktopgui/messages_$LG.class -nt $i -a \
     
    8196        fi
    8297
    83         echo "Generating ${CLASS}_$LG ResourceBundle..."
     98    if [ "$LG" != "en" ]
     99    then
     100        # only generate for non-source language
     101        echo "Generating ${CLASS}_$LG ResourceBundle..."
    84102
    85         # convert to class files in build
    86         msgfmt --java --statistics -r $CLASS -l $LG -d build $i
    87         if [ $? -ne 0 ]
    88         then
    89                 echo 'Warning - msgfmt failed, not updating translations'
    90                 break
    91         fi
     103        # convert to class files in build
     104        msgfmt --java --statistics -r $CLASS -l $LG -d build $i
     105        if [ $? -ne 0 ]
     106        then
     107            echo 'Warning - msgfmt failed, not updating translations'
     108            break
     109        fi
     110    fi
    92111done
    93112rm -f $TMPFILE
  • apps/desktopgui/locale/messages_nl.po

    r271f330 r581cd72  
     1msgid ""
     2msgstr ""
     3"Project-Id-Version: \n"
     4"POT-Creation-Date: \n"
     5"PO-Revision-Date: \n"
     6"Last-Translator: \n"
     7"Language-Team: \n"
     8"MIME-Version: 1.0\n"
     9"Content-Type: text/plain; charset=utf-8\n"
     10"Content-Transfer-Encoding: 8bit\n"
     11# NL
     12
    113#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
    214msgid "Start I2P"
     
    2537#~ msgid "Browser not found"
    2638#~ msgstr "Browser niet gevonden"
    27 
    2839#~ msgid "The default browser for your system was not found."
    2940#~ msgstr "De standaard webbrowser voor je systeem werd niet gevonden."
     41
  • apps/desktopgui/src/net/i2p/desktopgui/Main.java

    r271f330 r581cd72  
    5656     */
    5757    public static void beginStartup(String[] args) {
    58         boolean wasHeadless = Boolean.valueOf(System.getProperty("java.awt.headless")).booleanValue();
    59         if(wasHeadless) {
    60             System.setProperty("java.awt.headless", "false");
     58        try {
     59            String headless = RouterManager.getRouterContext().getProperty("router.isHeadless");
     60            boolean isHeadless = Boolean.parseBoolean(headless);
     61            if(isHeadless) {
     62                return;
     63            }
    6164        }
    62         boolean headless_check = true;
    63         try {
    64             // X permissions error is a java.lang.InternalError (a Throwable)
    65             GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    66             headless_check = ge.isHeadlessInstance();
    67         } catch (Throwable t) {}
    68         if (wasHeadless)
    69             System.setProperty("java.awt.headless", "true");
    70         if (headless_check) {
     65        catch(Exception e) {
    7166            return;
    7267        }
  • apps/i2psnark/java/build.xml

    r271f330 r581cd72  
    6060        <!-- Update the messages_*.po files.
    6161             We need to supply the bat file for windows, and then change the fail property to true -->
    62         <exec executable="sh" osfamily="unix" failifexecutionfails="false" >
     62        <exec executable="sh" osfamily="unix" failifexecutionfails="true" >
    6363            <arg value="./bundle-messages.sh" />
    6464        </exec>
    65         <exec executable="sh" osfamily="mac" failifexecutionfails="false" >
     65        <exec executable="sh" osfamily="mac" failifexecutionfails="true" >
    6666            <arg value="./bundle-messages.sh" />
    6767        </exec>
    68         <exec executable="cmd" osfamily="windows" failifexecutionfails="false" >
    69             <arg value="/c" />
    70             <arg value="bundle-messages.bat" />
     68        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     69            <arg value="./bundle-messages.sh" />
    7170        </exec>
    7271    </target>
     
    8281            <arg value="-p" />
    8382        </exec>
    84         <exec executable="cmd" osfamily="windows" failifexecutionfails="true" >
    85             <arg value="/c" />
    86             <arg value="bundle-messages.bat" />
     83        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     84            <arg value="./bundle-messages.sh" />
    8785            <arg value="-p" />
    8886        </exec>
  • apps/i2psnark/java/bundle-messages.sh

    r271f330 r581cd72  
    1919fi
    2020
     21# on windows, one must specify the path of commnad find
     22# since windows has its own retarded version of find.
     23if which find|grep -q -i windows ; then
     24        export PATH=.:/bin:/usr/local/bin:$PATH
     25fi
     26# Fast mode - update ondemond
     27echo Placing a file named messages_{LangCode}.only in locale folder,
     28echo will limit .po file update to the language specified by {LangCode}.
     29LG2=$(find ../locale -iname messages_*.only|tail -1)
     30[ LG2 ] && LG2=${LG2#../locale/messages_} && LG2=${LG2%.only}
     31
    2132# add ../java/ so the refs will work in the po file
    2233JPATHS="../java/src"
     
    2637        LG=${i#../locale/messages_}
    2738        LG=${LG%.po}
     39
     40        # skip, if specified
     41        if [ $LG2 ]; then
     42                [ $LG != $LG2 ] && continue || echo INFO: Language update is set to [$LG2] only.
     43        fi
    2844
    2945        if [ "$POUPDATE" = "1" ]
     
    7187        fi
    7288
    73         echo "Generating ${CLASS}_$LG ResourceBundle..."
     89    if [ "$LG" != "en" ]
     90    then
     91        # only generate for non-source language
     92        echo "Generating ${CLASS}_$LG ResourceBundle..."
    7493
    75         # convert to class files in build/obj
    76         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
    77         if [ $? -ne 0 ]
    78         then
    79                 echo 'Warning - msgfmt failed, not updating translations'
    80                 break
    81         fi
     94        # convert to class files in build/obj
     95        msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     96        if [ $? -ne 0 ]
     97        then
     98            echo 'Warning - msgfmt failed, not updating translations'
     99            break
     100        fi
     101    fi
    82102done
    83103rm -f $TMPFILE
  • apps/i2psnark/java/src/org/klomp/snark/Snark.java

    r271f330 r581cd72  
    255255  private byte[] id;
    256256  private byte[] infoHash;
     257  private String additionalTrackerURL;
    257258  private final I2PSnarkUtil _util;
    258259  private final PeerCoordinatorSet _peerCoordinatorSet;
     
    454455   *  @param torrent a fake name for now (not a file name)
    455456   *  @param ih 20-byte info hash
     457   *  @param trackerURL may be null
    456458   *  @since 0.8.4
    457459   */
    458   public Snark(I2PSnarkUtil util, String torrent, byte[] ih,
     460  public Snark(I2PSnarkUtil util, String torrent, byte[] ih, String trackerURL,
    459461        CompleteListener complistener, PeerCoordinatorSet peerCoordinatorSet,
    460462        ConnectionAcceptor connectionAcceptor, boolean start, String rootDir)
     
    466468    this.torrent = torrent;
    467469    this.infoHash = ih;
     470    this.additionalTrackerURL = trackerURL;
    468471    this.rootDataDir = rootDir;
    469472    stopped = true;
     
    536539        }
    537540        // TODO pass saved closest DHT nodes to the tracker? or direct to the coordinator?
    538         trackerclient = new TrackerClient(_util, meta, coordinator, this);
     541        trackerclient = new TrackerClient(_util, meta, additionalTrackerURL, coordinator, this);
    539542    }
    540543
     
    565568             }
    566569        }
    567         TrackerClient newClient = new TrackerClient(_util, meta, coordinator, this);
     570        TrackerClient newClient = new TrackerClient(_util, meta, additionalTrackerURL, coordinator, this);
    568571        if (!trackerclient.halted())
    569572            trackerclient.halt();
    570573        trackerclient = newClient;
    571574        trackerclient.start();
     575    } else {
     576        debug("NOT starting TrackerClient???", NOTICE);
    572577    }
    573578  }
     
    824829        acceptor.restart();
    825830        return true;
     831    }
     832
     833    /**
     834     *  @return trackerURL string from magnet-mode constructor, may be null
     835     *  @since 0.8.4
     836     */
     837    public String getTrackerURL() {
     838        return additionalTrackerURL;
    826839    }
    827840
  • apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java

    r271f330 r581cd72  
    526526     *  @throws RuntimeException via Snark.fatal()
    527527     */
    528     public void addTorrent(String filename) { addTorrent(filename, false); }
     528    private void addTorrent(String filename) { addTorrent(filename, false); }
    529529
    530530    /**
     
    532532     *  @throws RuntimeException via Snark.fatal()
    533533     */
    534     public void addTorrent(String filename, boolean dontAutoStart) {
     534    private void addTorrent(String filename, boolean dontAutoStart) {
    535535        if ((!dontAutoStart) && !_util.connected()) {
    536536            addMessage(_("Connecting to I2P"));
     
    579579                    } catch (IOException e) {}
    580580                   
     581                    // This test may be a duplicate, but not if we were called
     582                    // from the DirMonitor, which only checks for dup torrent file names.
     583                    Snark snark = getTorrentByInfoHash(info.getInfoHash());
     584                    if (snark != null) {
     585                        // TODO - if the existing one is a magnet, delete it and add the metainfo instead?
     586                        addMessage(_("Torrent with this info hash is already running: {0}", snark.getBaseName()));
     587                        return;
     588                    }
     589
    581590                    if (!TrackerClient.isValidAnnounce(info.getAnnounce())) {
    582591                        if (_util.shouldUseOpenTrackers() && _util.getOpenTrackers() != null) {
    583                             addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName()));
    584                         } else if (_util.getDHT() != null) {
    585                             addMessage(_("Warning - No I2P trackers in \"{0}\", and open trackers are disabled, will announce to DHT only.", info.getName()));
     592                            //addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName()));
     593                            addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers only.", info.getName()));
     594                        //} else if (_util.getDHT() != null) {
     595                        //    addMessage(_("Warning - No I2P trackers in \"{0}\", and open trackers are disabled, will announce to DHT only.", info.getName()));
    586596                        } else {
    587                             addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName()));
     597                            //addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName()));
     598                            addMessage(_("Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is enabled before starting this torrent.", info.getName()));
    588599                            dontAutoStart = true;
    589600                        }
     
    633644     * @param name hex or b32 name from the magnet link
    634645     * @param ih 20 byte info hash
     646     * @param trackerURL may be null
     647     * @param udpateStatus should we add this magnet to the config file,
     648     *                     to save it across restarts, in case we don't get
     649     *                     the metadata before shutdown?
    635650     * @throws RuntimeException via Snark.fatal()
    636651     * @since 0.8.4
    637652     */
    638     public void addMagnet(String name, byte[] ih, boolean updateStatus) {
    639         Snark torrent = new Snark(_util, name, ih, this,
     653    public void addMagnet(String name, byte[] ih, String trackerURL, boolean updateStatus) {
     654        Snark torrent = new Snark(_util, name, ih, trackerURL, this,
    640655                                  _peerCoordinatorSet, _connectionAcceptor,
    641656                                  false, getDataDir().getPath());
     
    11411156            String name = (new File(getDataDir(), storage.getBaseName() + ".torrent")).getAbsolutePath();
    11421157            try {
     1158                // put the announce URL in the file
     1159                String announce = snark.getTrackerURL();
     1160                if (announce != null)
     1161                    meta = meta.reannounce(announce);
    11431162                synchronized (_snarks) {
    11441163                    locked_writeMetaInfo(meta, name);
     
    11731192                b64 = b64.replace('$', '=');
    11741193                byte[] ih = Base64.decode(b64);
    1175                 // ignore value
     1194                // ignore value - TODO put tracker URL in value
    11761195                if (ih != null && ih.length == 20)
    1177                     addMagnet("Magnet: " + I2PSnarkUtil.toHex(ih), ih, false);
     1196                    addMagnet("Magnet: " + I2PSnarkUtil.toHex(ih), ih, null, false);
    11781197                // else remove from config?
    11791198            }
     
    11811200    }
    11821201
     1202    /**
     1203     *  caller must synchronize on _snarks
     1204     */
    11831205    private void monitorTorrents(File dir) {
    11841206        String fileNames[] = dir.list(TorrentFilenameFilter.instance());
     
    12621284       ,"Welterde", "http://tracker.welterde.i2p/a=http://tracker.welterde.i2p/stats?mode=top5"
    12631285//       , "CRSTRACK", "http://b4G9sCdtfvccMAXh~SaZrPqVQNyGQbhbYMbw6supq2XGzbjU4NcOmjFI0vxQ8w1L05twmkOvg5QERcX6Mi8NQrWnR0stLExu2LucUXg1aYjnggxIR8TIOGygZVIMV3STKH4UQXD--wz0BUrqaLxPhrm2Eh9Hwc8TdB6Na4ShQUq5Xm8D4elzNUVdpM~RtChEyJWuQvoGAHY3ppX-EJJLkiSr1t77neS4Lc-KofMVmgI9a2tSSpNAagBiNI6Ak9L1T0F9uxeDfEG9bBSQPNMOSUbAoEcNxtt7xOW~cNOAyMyGydwPMnrQ5kIYPY8Pd3XudEko970vE0D6gO19yoBMJpKx6Dh50DGgybLQ9CpRaynh2zPULTHxm8rneOGRcQo8D3mE7FQ92m54~SvfjXjD2TwAVGI~ae~n9HDxt8uxOecAAvjjJ3TD4XM63Q9TmB38RmGNzNLDBQMEmJFpqQU8YeuhnS54IVdUoVQFqui5SfDeLXlSkh4vYoMU66pvBfWbAAAA.i2p/tracker/announce.php=http://crstrack.i2p/tracker/"
     1286       ,"Exotrack", "http://blbgywsjubw3d2zih2giokakhe3o2cko7jtte4risb3hohbcoyva.b32.i2p/announce.php=http://exotrack.i2p/"
    12641287    };
    12651288   
  • apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java

    r271f330 r581cd72  
    6666  private I2PSnarkUtil _util;
    6767  private final MetaInfo meta;
     68  private final String additionalTrackerURL;
    6869  private final PeerCoordinator coordinator;
    6970  private final Snark snark;
     
    7778  /**
    7879   * @param meta null if in magnet mode
     80   * @param additionalTrackerURL may be null, from the ?tr= param in magnet mode, otherwise ignored
    7981   */
    80   public TrackerClient(I2PSnarkUtil util, MetaInfo meta, PeerCoordinator coordinator, Snark snark)
     82  public TrackerClient(I2PSnarkUtil util, MetaInfo meta, String additionalTrackerURL,
     83                       PeerCoordinator coordinator, Snark snark)
    8184  {
    8285    super();
     
    8689    _util = util;
    8790    this.meta = meta;
     91    this.additionalTrackerURL = additionalTrackerURL;
    8892    this.coordinator = coordinator;
    8993    this.snark = snark;
    9094
    9195    this.port = 6881; //(port == -1) ? 9 : port;
    92 
    93     stop = false;
    94     started = false;
    9596  }
    9697
     
    139140    trackers = new ArrayList(2);
    140141    String primary = null;
    141     if (meta != null) {
     142    if (meta != null)
    142143        primary = meta.getAnnounce();
     144    else if (additionalTrackerURL != null)
     145        primary = additionalTrackerURL;
     146    if (primary != null) {
    143147        if (isValidAnnounce(primary)) {
    144             trackers.add(new Tracker(meta.getAnnounce(), true));
     148            trackers.add(new Tracker(primary, true));
    145149            _log.debug("Announce: [" + primary + "] infoHash: " + infoHash);
    146150        } else {
    147151            _log.warn("Skipping invalid or non-i2p announce: " + primary);
    148152        }
    149     }
    150     if (primary == null)
     153    } else {
     154        _log.warn("No primary announce");
    151155        primary = "";
     156    }
    152157    List tlist = _util.getOpenTrackers();
    153158    if (tlist != null) {
  • apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java

    r271f330 r581cd72  
    6666    public static final String PROP_CONFIG_FILE = "i2psnark.configFile";
    6767    /** BEP 9 */
    68     private static final String MAGNET = "magnet:?xt=urn:btih:";
     68    private static final String MAGNET = "magnet:";
     69    private static final String MAGNET_FULL = MAGNET + "?xt=urn:btih:";
    6970    /** http://sponge.i2p/files/maggotspec.txt */
    7071    private static final String MAGGOT = "maggot://";
     
    12171218        // todo remember this one with _lastAnnounceURL also
    12181219        out.write("<option value=\"none\">");
    1219         out.write(_("Open trackers and DHT only"));
     1220        //out.write(_("Open trackers and DHT only"));
     1221        out.write(_("Open trackers only"));
    12201222        out.write("</option>\n");
    12211223        Map trackers = _manager.getTrackers();
     
    13821384        out.write("<tr><td>");
    13831385        out.write(_("I2CP options"));
    1384         out.write(": <td><textarea name=\"i2cpOpts\" cols=\"60\" rows=\"1\" wrap=\"off\" >"
     1386        out.write(": <td><textarea name=\"i2cpOpts\" cols=\"60\" rows=\"1\" wrap=\"off\" spellcheck=\"false\" >"
    13851387                  + opts.toString() + "</textarea><br>\n");
    13861388
     
    14061408        String ihash;
    14071409        String name;
     1410        String trackerURL = null;
    14081411        if (url.startsWith(MAGNET)) {
    1409             ihash = url.substring(MAGNET.length()).trim();
    1410             int amp = ihash.indexOf('&');
    1411             if (amp >= 0)
    1412                 ihash = ihash.substring(0, amp);
     1412            // magnet:?xt=urn:btih:0691e40aae02e552cfcb57af1dca56214680c0c5&tr=http://tracker2.postman.i2p/announce.php
     1413            String xt = getParam("xt", url);
     1414            if (xt == null || !xt.startsWith("urn:btih:")) {
     1415                _manager.addMessage(_("Invalid magnet URL {0}", url));
     1416                return;
     1417            }
     1418            ihash = xt.substring("urn:btih:".length());
     1419            trackerURL = getParam("tr", url);
    14131420            name = "Magnet " + ihash;
     1421            String dn = getParam("dn", url);
     1422            if (dn != null)
     1423                name += " (" + Storage.filterName(dn) + ')';
    14141424        } else if (url.startsWith(MAGGOT)) {
     1425            // maggot://0691e40aae02e552cfcb57af1dca56214680c0c5:0b557bbdf8718e95d352fbe994dec3a383e2ede7
    14151426            ihash = url.substring(MAGGOT.length()).trim();
    14161427            int col = ihash.indexOf(':');
     
    14391450            return;
    14401451        }
    1441         _manager.addMagnet(name, ih, true);
     1452        _manager.addMagnet(name, ih, trackerURL, true);
     1453    }
     1454
     1455    private static String getParam(String key, String uri) {
     1456        int idx = uri.indexOf('?' + key + '=');
     1457        if (idx >= 0) {
     1458            idx += key.length() + 2;
     1459        } else {
     1460            idx = uri.indexOf('&' + key + '=');
     1461            if (idx >= 0)
     1462                idx += key.length() + 2;
     1463        }
     1464        if (idx < 0 || idx > uri.length())
     1465            return null;
     1466        String rv = uri.substring(idx);
     1467        idx = rv.indexOf('&');
     1468        if (idx >= 0)
     1469            rv = rv.substring(0, idx);
     1470        else
     1471            rv = rv.trim();
     1472        return rv;
    14421473    }
    14431474
     
    16441675            String hex = I2PSnarkUtil.toHex(snark.getInfoHash());
    16451676            buf.append("<br>").append(toImg("magnet", _("Magnet link"))).append(" <a href=\"")
    1646                .append(MAGNET).append(hex).append("\">")
    1647                .append(MAGNET).append(hex).append("</a>");
     1677               .append(MAGNET_FULL).append(hex).append("\">")
     1678               .append(MAGNET_FULL).append(hex).append("</a>");
    16481679            // We don't have the hash of the torrent file
    16491680            //buf.append("<br>").append(_("Maggot link")).append(": <a href=\"").append(MAGGOT).append(hex).append(':').append(hex).append("\">")
     
    18341865        else if (mime.equals("text/plain") || plc.endsWith(".nfo"))
    18351866            icon = "page";
    1836         else if (mime.equals("application/java-archive") || plc.endsWith(".war"))
     1867        else if (mime.equals("application/java-archive") || plc.endsWith(".war") ||
     1868                 plc.endsWith(".deb"))
    18371869            icon = "package";
    18381870        else if (plc.endsWith(".xpi2p"))
  • apps/i2psnark/locale/messages_fr.po

    r271f330 r581cd72  
    1616"Content-Type: text/plain; charset=UTF-8\n"
    1717"Content-Transfer-Encoding: 8bit\n"
     18"Plural-Forms: nplurals=2; plural=n>1\n"
    1819"X-Poedit-Language: French\n"
    1920
     
    3637#, java-format
    3738msgid "Up BW limit changed to {0}KBps"
    38 msgstr "La limite d'upload modifiée : {0} Ko/s"
     39msgstr "La limite dupload modifiée : {0} Ko/s"
    3940
    4041#: ../java/src/org/klomp/snark/SnarkManager.java:312
    4142#, java-format
    4243msgid "Minimum up bandwidth limit is {0}KBps"
    43 msgstr "La limite minimale d'upload est {0} Ko/s"
     44msgstr "La limite minimale dupload est {0} Ko/s"
    4445
    4546#: ../java/src/org/klomp/snark/SnarkManager.java:324
    4647#, java-format
    4748msgid "Startup delay limit changed to {0} minutes"
    48 msgstr "Delais de démarrage modifié : {0] minutes"
     49msgstr "Delais de démarrage modifié : {0} minutes"
    4950
    5051#: ../java/src/org/klomp/snark/SnarkManager.java:371
     
    123124#, java-format
    124125msgid "Error: Could not add the torrent {0}"
    125 msgstr "Erreur : Impossible d'ajouter le torrent : {0}"
     126msgstr "Erreur : Impossible dajouter le torrent : {0}"
    126127
    127128#. catch this here so we don't try do delete it below
     
    129130#, java-format
    130131msgid "Cannot open \"{0}\""
    131 msgstr "Impossible d'ouvrir: \"{0}\""
     132msgstr "Impossible douvrir: \"{0}\""
    132133
    133134#: ../java/src/org/klomp/snark/SnarkManager.java:541
     
    218219#, java-format
    219220msgid "Unable to add {0}"
    220 msgstr "Impossible d'ajouter {0}"
     221msgstr "Impossible dajouter {0}"
    221222
    222223#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185
     
    395396#, java-format
    396397msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\""
    397 msgstr "De nombreux trackers I2P nécessitent d'enregistrer les nouveaux torrents avant de seeder - faites-le avant de démarrer \"{0}\"!"
     398msgstr "De nombreux trackers I2P nécessitent denregistrer les nouveaux torrents avant de seeder - faites-le avant de démarrer \"{0}\"!"
    398399
    399400#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:607
     
    506507#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:921
    507508msgid "Start the torrent"
    508 msgstr "Arrêter le torrent"
     509msgstr "Démarrer le torrent"
    509510
    510511#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:923
     
    806807#, java-format
    807808msgid "Torrent was not retrieved from {0}"
    808 msgstr "Le torrent n'a pas été reçu par {0}"
     809msgstr "Le torrent na pas été reçu par {0}"
    809810
    810811#~ msgid "size: {0}B"
  • apps/i2psnark/locale/messages_nl.po

    r271f330 r581cd72  
    77msgid ""
    88msgstr ""
    9 "Project-Id-Version: I2P i2psnark\n"
     9"Project-Id-Version: I2P\n"
    1010"Report-Msgid-Bugs-To: \n"
    11 "POT-Creation-Date: 2011-01-20 19:26+0000\n"
    12 "PO-Revision-Date: 2010-06-15 09:07+0100\n"
    13 "Last-Translator: duck <duck@mail.i2p>\n"
    14 "Language-Team: duck <duck@mail.i2p>, monkeybrains <monkeybrains@mail.i2p>\n"
     11"POT-Creation-Date: 2011-02-13 17:44+0000\n"
     12"PO-Revision-Date: 2011-02-13 17:41+0000\n"
     13"Last-Translator: ducki2p <ducki2p@gmail.com>\n"
     14"Language-Team: Dutch <>\n"
    1515"MIME-Version: 1.0\n"
    1616"Content-Type: text/plain; charset=UTF-8\n"
    1717"Content-Transfer-Encoding: 8bit\n"
    18 "X-Poedit-Language: Dutch\n"
    19 
    20 #: ../java/src/org/klomp/snark/SnarkManager.java:94
    21 #, java-format
    22 msgid "Adding torrents in {0} minutes"
    23 msgstr "Torrents toevoegen in {0} minuten"
    24 
    25 #: ../java/src/org/klomp/snark/SnarkManager.java:296
     18"Language: nl\n"
     19"Plural-Forms: nplurals=2; plural=(n != 1)\n"
     20
     21#: ../java/src/org/klomp/snark/SnarkManager.java:307
    2622#, java-format
    2723msgid "Total uploaders limit changed to {0}"
    2824msgstr "Totale uploaders limiet gewijzigd in {0}"
    2925
    30 #: ../java/src/org/klomp/snark/SnarkManager.java:298
     26#: ../java/src/org/klomp/snark/SnarkManager.java:309
    3127#, java-format
    3228msgid "Minimum total uploaders limit is {0}"
    3329msgstr "Minimum totale uploaders limiet is {0}"
    3430
    35 #: ../java/src/org/klomp/snark/SnarkManager.java:310
     31#: ../java/src/org/klomp/snark/SnarkManager.java:321
    3632#, java-format
    3733msgid "Up BW limit changed to {0}KBps"
    3834msgstr "Up bandbreedte limiet gewijzigd in {0}KBps"
    3935
    40 #: ../java/src/org/klomp/snark/SnarkManager.java:312
     36#: ../java/src/org/klomp/snark/SnarkManager.java:323
    4137#, java-format
    4238msgid "Minimum up bandwidth limit is {0}KBps"
    4339msgstr "Minimum up bandbreedte limiet is {0}KBps"
    4440
    45 #: ../java/src/org/klomp/snark/SnarkManager.java:324
    46 #, java-format
    47 msgid "Startup delay limit changed to {0} minutes"
    48 msgstr "Startup vertragings limiet gewijzigd in {0} minuten"
    49 
    50 #: ../java/src/org/klomp/snark/SnarkManager.java:371
     41#: ../java/src/org/klomp/snark/SnarkManager.java:335
     42#, java-format
     43msgid "Startup delay changed to {0}"
     44msgstr "Opstartvertraging gewijzigd in {0}"
     45
     46#: ../java/src/org/klomp/snark/SnarkManager.java:386
    5147msgid "I2CP and tunnel changes will take effect after stopping all torrents"
    5248msgstr ""
    5349"I2CP en tunnel wijzigingen hebben pas effect na het stoppen van alle torrents"
    5450
    55 #: ../java/src/org/klomp/snark/SnarkManager.java:378
     51#: ../java/src/org/klomp/snark/SnarkManager.java:393
    5652msgid "Disconnecting old I2CP destination"
    5753msgstr "Oude I2CP destination wordt afgesloten"
    5854
    59 #: ../java/src/org/klomp/snark/SnarkManager.java:382
     55#: ../java/src/org/klomp/snark/SnarkManager.java:397
    6056#, java-format
    6157msgid "I2CP settings changed to {0}"
    6258msgstr "I2CP instellingen gewijzigd in {0}"
    6359
    64 #: ../java/src/org/klomp/snark/SnarkManager.java:386
     60#: ../java/src/org/klomp/snark/SnarkManager.java:402
    6561msgid ""
    6662"Unable to connect with the new settings, reverting to the old I2CP settings"
     
    6965"oude I2CP instellingen"
    7066
    71 #: ../java/src/org/klomp/snark/SnarkManager.java:390
     67#: ../java/src/org/klomp/snark/SnarkManager.java:406
    7268msgid "Unable to reconnect with the old settings!"
    7369msgstr "Kan niet opnieuw verbinden met de oude instellingen!"
    7470
    75 #: ../java/src/org/klomp/snark/SnarkManager.java:392
     71#: ../java/src/org/klomp/snark/SnarkManager.java:408
    7672msgid "Reconnected on the new I2CP destination"
    7773msgstr "Opnieuw verbonden met de nieuwe I2CP destination"
    7874
    79 #: ../java/src/org/klomp/snark/SnarkManager.java:403
     75#: ../java/src/org/klomp/snark/SnarkManager.java:418
    8076#, java-format
    8177msgid "I2CP listener restarted for \"{0}\""
    8278msgstr "I2CP listener herstart voor \"{0}\""
    8379
    84 #: ../java/src/org/klomp/snark/SnarkManager.java:414
     80#: ../java/src/org/klomp/snark/SnarkManager.java:429
    8581msgid "Enabled autostart"
    8682msgstr "Autostart ingeschakeld"
    8783
    88 #: ../java/src/org/klomp/snark/SnarkManager.java:416
     84#: ../java/src/org/klomp/snark/SnarkManager.java:431
    8985msgid "Disabled autostart"
    9086msgstr "Autostart uitgeschakeld"
    9187
    92 #: ../java/src/org/klomp/snark/SnarkManager.java:422
     88#: ../java/src/org/klomp/snark/SnarkManager.java:437
    9389msgid "Enabled open trackers - torrent restart required to take effect."
    9490msgstr "Open Trackers ingeschakeld - torrent herstart nodig."
    9591
    96 #: ../java/src/org/klomp/snark/SnarkManager.java:424
     92#: ../java/src/org/klomp/snark/SnarkManager.java:439
    9793msgid "Disabled open trackers - torrent restart required to take effect."
    9894msgstr "Open Trackers uitgeschakeld - torrent herstart nodig."
    9995
    100 #: ../java/src/org/klomp/snark/SnarkManager.java:431
     96#: ../java/src/org/klomp/snark/SnarkManager.java:447
    10197msgid "Open Tracker list changed - torrent restart required to take effect."
    10298msgstr "Open Tracker lijst gewijzigd - torrent herstart nodig."
    10399
    104 #: ../java/src/org/klomp/snark/SnarkManager.java:438
     100#: ../java/src/org/klomp/snark/SnarkManager.java:454
    105101#, java-format
    106102msgid "{0} theme loaded, return to main i2psnark page to view."
     
    108104"{0} thema geladen, ga naar de hoofd i2psnark pagina om deze te bekijken."
    109105
    110 #: ../java/src/org/klomp/snark/SnarkManager.java:445
     106#: ../java/src/org/klomp/snark/SnarkManager.java:461
    111107msgid "Configuration unchanged."
    112108msgstr "Configuratie ongewijzigd."
    113109
    114 #: ../java/src/org/klomp/snark/SnarkManager.java:455
     110#: ../java/src/org/klomp/snark/SnarkManager.java:471
    115111#, java-format
    116112msgid "Unable to save the config to {0}"
    117113msgstr "Kan de configuratie niet opslaan in {0}"
    118114
    119 #: ../java/src/org/klomp/snark/SnarkManager.java:494
     115#: ../java/src/org/klomp/snark/SnarkManager.java:536
    120116msgid "Connecting to I2P"
    121117msgstr "Verbinden met I2P"
    122118
    123 #: ../java/src/org/klomp/snark/SnarkManager.java:497
     119#: ../java/src/org/klomp/snark/SnarkManager.java:539
    124120msgid "Error connecting to I2P - check your I2CP settings!"
    125121msgstr "Fout bij verbinden met I2P - controlleer je I2CP instellingen!"
    126122
    127 #: ../java/src/org/klomp/snark/SnarkManager.java:506
     123#: ../java/src/org/klomp/snark/SnarkManager.java:548
    128124#, java-format
    129125msgid "Error: Could not add the torrent {0}"
     
    131127
    132128#. catch this here so we don't try do delete it below
    133 #: ../java/src/org/klomp/snark/SnarkManager.java:528
     129#: ../java/src/org/klomp/snark/SnarkManager.java:570
    134130#, java-format
    135131msgid "Cannot open \"{0}\""
    136132msgstr "Kan \"{0}\" niet openen"
    137133
    138 #: ../java/src/org/klomp/snark/SnarkManager.java:541
     134#. TODO - if the existing one is a magnet, delete it and add the metainfo instead?
     135#: ../java/src/org/klomp/snark/SnarkManager.java:586
     136#: ../java/src/org/klomp/snark/SnarkManager.java:661
     137#: ../java/src/org/klomp/snark/SnarkManager.java:716
     138#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1954
     139#, java-format
     140msgid "Torrent with this info hash is already running: {0}"
     141msgstr "Torrent met deze info hash is al actief: {0}"
     142
     143#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName()));
     144#: ../java/src/org/klomp/snark/SnarkManager.java:593
    139145#, java-format
    140146msgid ""
    141 "Warning - Ignoring non-i2p tracker in \"{0}\", will announce to i2p open "
    142 "trackers only"
    143 msgstr ""
    144 "Waarschuwing - Niet-I2P tracker in \"{0}\" wordt genegeerd, zal alleen "
    145 "aankondigen naar i2p open trackers"
    146 
    147 #: ../java/src/org/klomp/snark/SnarkManager.java:543
     147"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers "
     148"only."
     149msgstr ""
     150"Waarschuwing - Niet-I2P trackers in \"{0}\", zal alleen aankondigen bij I2P "
     151"open trackers."
     152
     153#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName()));
     154#: ../java/src/org/klomp/snark/SnarkManager.java:598
    148155#, java-format
    149156msgid ""
    150 "Warning - Ignoring non-i2p tracker in \"{0}\", and open trackers are "
    151 "disabled, you must enable open trackers before starting the torrent!"
    152 msgstr ""
    153 "Waarschuwing - Niet-I2P tracker in \"{0}\" wordt genegeerd, en open trackers "
    154 "zijn uitgeschakeld, je moet open trackers inschakelen voor het starten van "
    155 "de torrent!"
    156 
    157 #: ../java/src/org/klomp/snark/SnarkManager.java:563
     157"Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is "
     158"enabled before starting this torrent."
     159msgstr ""
     160"Waarschuwing - Niet-I2P Trackers gevonden in \"{0}\". Zorg ervoor dat Open "
     161"Tracker is ingeschakeld voordat je deze torrent start."
     162
     163#: ../java/src/org/klomp/snark/SnarkManager.java:619
    158164#, java-format
    159165msgid "Torrent in \"{0}\" is invalid"
    160166msgstr "Torrent in \"{0}\" is ongeldig"
    161167
    162 #: ../java/src/org/klomp/snark/SnarkManager.java:578
     168#: ../java/src/org/klomp/snark/SnarkManager.java:624
     169#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1977
     170#, java-format
     171msgid "ERROR - Out of memory, cannot create torrent from {0}"
     172msgstr "ERROR - Geen geheugen meer, kan geen torrent maken van {0}"
     173
     174#: ../java/src/org/klomp/snark/SnarkManager.java:635
    163175#, java-format
    164176msgid "Torrent added and started: \"{0}\""
    165177msgstr "Torrent toegevoegd en gestart: \"{0}\""
    166178
    167 #: ../java/src/org/klomp/snark/SnarkManager.java:580
     179#: ../java/src/org/klomp/snark/SnarkManager.java:637
    168180#, java-format
    169181msgid "Torrent added: \"{0}\""
    170182msgstr "Torrent toegevoegd: \"{0}\""
    171183
    172 #: ../java/src/org/klomp/snark/SnarkManager.java:734
     184#: ../java/src/org/klomp/snark/SnarkManager.java:672
     185#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:489
     186#, java-format
     187msgid "Fetching {0}"
     188msgstr "Downloaden {0}"
     189
     190#: ../java/src/org/klomp/snark/SnarkManager.java:675
     191#, java-format
     192msgid ""
     193"We have no saved peers and no other torrents are running. Fetch of {0} will "
     194"not succeed until you start another torrent."
     195msgstr ""
     196"We hebben geen opgeslagen peers en er zijn geen andere torrents actief. Het "
     197"ophalen van {0} zal niet lukken totdat je een andere torrent start."
     198
     199#: ../java/src/org/klomp/snark/SnarkManager.java:679
     200#, java-format
     201msgid "Adding {0}"
     202msgstr "Toevoegen van {0}"
     203
     204#: ../java/src/org/klomp/snark/SnarkManager.java:726
     205#: ../java/src/org/klomp/snark/SnarkManager.java:749
     206#: ../java/src/org/klomp/snark/SnarkManager.java:1174
     207#, java-format
     208msgid "Failed to copy torrent file to {0}"
     209msgstr "Kan het torrent bestand niet kopieren naar {0}"
     210
     211#: ../java/src/org/klomp/snark/SnarkManager.java:972
    173212#, java-format
    174213msgid "Too many files in \"{0}\" ({1}), deleting it!"
    175214msgstr "Te veel bestanden in \"{0}\" ({1}), wordt verwijderd!"
    176215
    177 #: ../java/src/org/klomp/snark/SnarkManager.java:736
     216#: ../java/src/org/klomp/snark/SnarkManager.java:974
    178217#, java-format
    179218msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
     
    181220"Torrent bestand \"{0}\" kan niet eindigen in \".torrent\", wordt verwijderd!"
    182221
    183 #: ../java/src/org/klomp/snark/SnarkManager.java:738
     222#: ../java/src/org/klomp/snark/SnarkManager.java:976
    184223#, java-format
    185224msgid "No pieces in \"{0}\",  deleting it!"
    186225msgstr "Geen stukken in \"{0}\",  wordt verwijderd!"
    187226
    188 #: ../java/src/org/klomp/snark/SnarkManager.java:740
     227#: ../java/src/org/klomp/snark/SnarkManager.java:978
    189228#, java-format
    190229msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
    191230msgstr "Te veel stukken in \"{0}\", limiet is {1}, wordt verwijderd!"
    192231
    193 #: ../java/src/org/klomp/snark/SnarkManager.java:742
     232#: ../java/src/org/klomp/snark/SnarkManager.java:980
    194233#, java-format
    195234msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
    196235msgstr "Stukken zijn te groot in \"{0}\" ({1}B), wordt verwijderd."
    197236
    198 #: ../java/src/org/klomp/snark/SnarkManager.java:743
     237#: ../java/src/org/klomp/snark/SnarkManager.java:981
    199238#, java-format
    200239msgid "Limit is {0}B"
    201240msgstr "Limiet is {0}B"
    202241
    203 #: ../java/src/org/klomp/snark/SnarkManager.java:751
     242#: ../java/src/org/klomp/snark/SnarkManager.java:989
    204243#, java-format
    205244msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
     
    207246"Torrents groter dan {0}B worden nog niet ondersteund, verwijder \"{1}\""
    208247
    209 #: ../java/src/org/klomp/snark/SnarkManager.java:767
     248#: ../java/src/org/klomp/snark/SnarkManager.java:1005
    210249#, java-format
    211250msgid "Error: Could not remove the torrent {0}"
    212251msgstr "Fout: Kan de torrent {0} niet verwijderen"
    213252
    214 #: ../java/src/org/klomp/snark/SnarkManager.java:794
     253#: ../java/src/org/klomp/snark/SnarkManager.java:1026
     254#: ../java/src/org/klomp/snark/SnarkManager.java:1044
    215255#, java-format
    216256msgid "Torrent stopped: \"{0}\""
    217257msgstr "Torrent gestopt: \"{0}\""
    218258
    219 #: ../java/src/org/klomp/snark/SnarkManager.java:814
     259#: ../java/src/org/klomp/snark/SnarkManager.java:1065
    220260#, java-format
    221261msgid "Torrent removed: \"{0}\""
    222262msgstr "Torrent verwijderd: \"{0}\""
    223263
    224 #: ../java/src/org/klomp/snark/SnarkManager.java:852
     264#: ../java/src/org/klomp/snark/SnarkManager.java:1073
     265#, java-format
     266msgid "Adding torrents in {0}"
     267msgstr "Toevoegen van torrents in {0}"
     268
     269#: ../java/src/org/klomp/snark/SnarkManager.java:1122
    225270#, java-format
    226271msgid "Download finished: {0}"
    227272msgstr "Download gereed: {0}"
    228273
    229 #: ../java/src/org/klomp/snark/SnarkManager.java:880
     274#: ../java/src/org/klomp/snark/SnarkManager.java:1170
     275#, java-format
     276msgid "Metainfo received for {0}"
     277msgstr "Metainfo ontvangen voor {0}"
     278
     279#: ../java/src/org/klomp/snark/SnarkManager.java:1171
     280#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:524
     281#, java-format
     282msgid "Starting up torrent {0}"
     283msgstr "Starten met torrent {0}"
     284
     285#: ../java/src/org/klomp/snark/SnarkManager.java:1225
    230286msgid "Unable to connect to I2P!"
    231287msgstr "Kan niet verbinden met I2P!"
    232288
    233 #: ../java/src/org/klomp/snark/SnarkManager.java:886
     289#: ../java/src/org/klomp/snark/SnarkManager.java:1231
    234290#, java-format
    235291msgid "Unable to add {0}"
    236292msgstr "Kan {0} niet toevoegen"
    237293
    238 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:196
     294#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:205
    239295msgid "I2PSnark - Anonymous BitTorrent Client"
    240296msgstr "I2PSnark - Anonieme BitTorrent Client"
    241297
    242 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:209
     298#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:218
    243299msgid "Torrents"
    244300msgstr "Torrents"
    245301
    246 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:212
    247 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:219
    248 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1003
     302#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:221
     303#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:228
     304#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1007
    249305msgid "I2PSnark"
    250306msgstr "I2PSnark"
    251307
    252 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:216
     308#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:225
    253309msgid "Refresh page"
    254310msgstr "Ververs pagina"
    255311
    256 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:221
     312#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:230
    257313msgid "Forum"
    258314msgstr "Forum"
    259315
    260 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:275
    261 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1509
     316#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:284
     317#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1698
    262318msgid "Status"
    263319msgstr "Status"
    264320
    265 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:281
    266 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:283
     321#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
     322#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:292
    267323msgid "Hide Peers"
    268324msgstr "Verberg Peers"
    269325
    270 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:288
    271 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
     326#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
     327#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:299
    272328msgid "Show Peers"
    273329msgstr "Toon Peers"
    274330
    275 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
    276 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1490
     331#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:306
     332#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1622
     333#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1638
    277334msgid "Torrent"
    278335msgstr "Torrent"
    279336
    280 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:301
     337#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:310
    281338msgid "Estimated time remaining"
    282339msgstr "Schatting resterende tijd"
    283340
    284341#. Translators: Please keep short or translate as " "
    285 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:304
     342#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313
    286343msgid "ETA"
    287344msgstr "ETA"
    288345
    289 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:308
     346#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
    290347msgid "Downloaded"
    291348msgstr "Gedownload"
    292349
    293350#. Translators: Please keep short or translate as " "
    294 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:311
    295 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:325
     351#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:320
     352#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:334
    296353msgid "RX"
    297354msgstr "RX"
    298355
    299 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:315
     356#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324
    300357msgid "Uploaded"
    301358msgstr "Geupload"
    302359
    303360#. Translators: Please keep short or translate as " "
    304 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:318
    305 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:335
     361#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:327
     362#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:344
    306363msgid "TX"
    307364msgstr "TX"
    308365
    309 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:323
     366#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:332
    310367msgid "Down Rate"
    311368msgstr "Down Snelheid"
    312369
    313370#. Translators: Please keep short or translate as " "
    314 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:328
    315371#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:337
     372#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346
    316373msgid "Rate"
    317374msgstr "Rato"
    318375
    319 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:333
     376#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342
    320377msgid "Up Rate"
    321378msgstr "Up Snelheid"
    322379
    323 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355
     380#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:364
    324381msgid "Stop all torrents and the I2P tunnel"
    325382msgstr "Stop alle torrents en de I2P tunnel"
    326383
    327 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:357
     384#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366
    328385msgid "Stop All"
    329386msgstr "Stop Alle"
    330387
    331 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366
     388#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:375
    332389msgid "Start all torrents and the I2P tunnel"
    333390msgstr "Start alle torrents en de I2P tunnel"
    334391
    335 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:368
     392#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377
    336393msgid "Start All"
    337394msgstr "Start Alle"
    338395
    339 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:387
     396#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:396
    340397msgid "No torrents loaded."
    341398msgstr "Geen torrents geladen."
    342399
    343 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:392
     400#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:401
    344401msgid "Totals"
    345402msgstr "Totalen"
    346403
    347 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:394
     404#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
    348405#, java-format
    349406msgid "1 torrent"
     
    352409msgstr[1] "{0} torrents"
    353410
    354 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397
     411#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:406
    355412#, java-format
    356413msgid "1 connected peer"
     
    359416msgstr[1] "{0} verbonden peers"
    360417
    361 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:480
    362 #, java-format
    363 msgid "Fetching {0}"
    364 msgstr "Downloaden {0}"
    365 
    366 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:484
    367 msgid "Invalid URL - must start with http://"
    368 msgstr "Ongeldige URL - moet beginnen met http://"
    369 
    370 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:515
    371 #, java-format
    372 msgid "Starting up torrent {0}"
    373 msgstr "Starten met torrent {0}"
    374 
    375 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:535
    376 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:553
     418#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:495
     419#, java-format
     420msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
     421msgstr "Ongeldige URL: moet beginnen met \"http://\", \"{0}\", of \"{1}\""
     422
     423#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:543
     424#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:570
     425#, java-format
     426msgid "Magnet deleted: {0}"
     427msgstr "Magnet verwijderd: {0}"
     428
     429#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:551
     430#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:576
    377431#, java-format
    378432msgid "Torrent file deleted: {0}"
    379433msgstr "Torrent bestand verwijderd: {0}"
    380434
    381 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:559
    382 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:569
     435#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:582
     436#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:592
    383437#, java-format
    384438msgid "Data file deleted: {0}"
    385439msgstr "Data bestand verwijderd: {0}"
    386440
    387 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:561
    388 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571
     441#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584
     442#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594
    389443#, java-format
    390444msgid "Data file could not be deleted: {0}"
    391445msgstr "Kan data bestand niet verwijderen: {0}"
    392446
    393 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:580
     447#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:603
    394448#, java-format
    395449msgid "Data dir deleted: {0}"
    396450msgstr "Data directory verwijderd: {0}"
    397451
    398 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:613
     452#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:636
    399453msgid "Error creating torrent - you must select a tracker"
    400454msgstr "Fout bij maken van torrent - je moet een tracker selecteren"
    401455
    402 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:628
     456#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:652
    403457#, java-format
    404458msgid "Torrent created for \"{0}\""
    405459msgstr "Torrent gemaakt voor \"{0}\""
    406460
    407 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:631
     461#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:654
    408462#, java-format
    409463msgid ""
     
    414468"seeden - doe dit voordat je \"{0}\" start"
    415469
    416 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:633
     470#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:656
    417471#, java-format
    418472msgid "Error creating a torrent for \"{0}\""
    419473msgstr "Fout bij het maken van een torrent voor \"{0}\""
    420474
    421 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:636
     475#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:659
    422476#, java-format
    423477msgid "Cannot create a torrent for the nonexistent data: {0}"
    424478msgstr "Kan geen torrent maken voor niet-bestaande data: {0}"
    425479
    426 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:639
     480#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:662
    427481msgid "Error creating torrent - you must enter a file or directory"
    428482msgstr ""
    429483"Fout bij het maken van de torrent - je moet een bestand of directory invullen"
    430484
    431 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:642
     485#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665
    432486msgid "Stopping all torrents and closing the I2P tunnel."
    433487msgstr "Stoppen van alle torrents en sluiten van I2P tunnel."
    434488
    435 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:653
     489#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:676
    436490msgid "I2P tunnel closed."
    437491msgstr "I2P tunnel gesloten."
    438492
    439 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:656
     493#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679
    440494msgid "Opening the I2P tunnel and starting all torrents."
    441495msgstr "Openen van de I2P tunnel en starten van alle torrents."
    442496
    443 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:785
    444 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:790
    445 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:796
     497#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:802
     498#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807
     499#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:813
    446500msgid "Tracker Error"
    447501msgstr "Tracker Fout"
    448502
    449 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:788
    450 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:792
    451 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:804
    452 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:808
    453 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:816
    454 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:820
     503#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805
     504#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:809
     505#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:821
    455506#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:825
    456 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:829
     507#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:833
     508#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837
     509#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:842
     510#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:846
    457511#, java-format
    458512msgid "1 peer"
     
    461515msgstr[1] "{0} peers"
    462516
    463 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:801
    464 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:806
     517#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818
     518#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:823
    465519msgid "Seeding"
    466520msgstr "Seeding"
    467521
    468 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:810
    469 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1559
     522#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:827
     523#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1644
     524#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1749
    470525msgid "Complete"
    471526msgstr "Voltooid"
    472527
    473 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:813
    474 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818
     528#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:830
     529#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:835
    475530msgid "OK"
    476531msgstr "OK"
    477532
    478 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:822
    479 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:827
     533#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:839
     534#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:844
    480535msgid "Stalled"
    481536msgstr "Vastgelopen"
    482537
    483 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:831
    484 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:834
     538#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:848
     539#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:851
    485540msgid "No Peers"
    486541msgstr "Geen Peers"
    487542
    488 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:836
     543#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:853
    489544msgid "Stopped"
    490545msgstr "Gestopt"
    491546
    492 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:863
    493 #, java-format
    494 msgid "Details at {0} tracker"
    495 msgstr "Details op de {0} tracker"
    496 
    497547#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:864
     548msgid "Torrent details"
     549msgstr "Torrent details"
     550
     551#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:865
     552#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1139
    498553msgid "Info"
    499554msgstr "Info"
     
    507562msgstr "Open bestand"
    508563
    509 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:891
    510 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1595
     564#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:893
     565#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1785
    511566msgid "Open"
    512567msgstr "Open"
    513568
    514 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:935
     569#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:939
    515570msgid "Stop the torrent"
    516571msgstr "Stop de torrent"
    517572
    518 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:937
     573#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:941
    519574msgid "Stop"
    520575msgstr "Stop"
    521576
    522 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:947
     577#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:950
    523578msgid "Start the torrent"
    524579msgstr "Start de torrent"
    525580
    526 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:949
     581#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:952
    527582msgid "Start"
    528583msgstr "Start"
    529584
    530 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:959
     585#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:962
    531586msgid "Remove the torrent from the active list, deleting the .torrent file"
    532587msgstr ""
     
    537592#. Single quotes in translate strings with parameters must be doubled.
    538593#. Then the remaining single quite must be escaped
    539 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:964
     594#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967
    540595#, java-format
    541596msgid ""
     
    546601"(gedownloade data zal niet worden verwijderd) ?"
    547602
    548 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967
     603#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:970
    549604msgid "Remove"
    550605msgstr "Weghalen"
    551606
    552 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:976
     607#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:980
    553608msgid "Delete the .torrent file and the associated data file(s)"
    554609msgstr "Verwijder het .torrent bestand en de gerelateerde data bestand(en)"
     
    557612#. Single quotes in translate strings with parameters must be doubled.
    558613#. Then the remaining single quite must be escaped
    559 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:981
     614#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985
    560615#, java-format
    561616msgid ""
     
    566621"verwijderen?"
    567622
    568 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:984
     623#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:988
    569624msgid "Delete"
    570625msgstr "Verwijderen"
    571626
    572 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1017
     627#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1021
    573628msgid "Unknown"
    574629msgstr "Onbekend"
    575630
    576 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1027
     631#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1033
    577632msgid "Seed"
    578633msgstr "Seed"
    579634
    580 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1045
     635#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1056
    581636msgid "Uninteresting (The peer has no pieces we need)"
    582637msgstr "Niet interessant (De peer heeft geen stukken die we nodig hebben)"
    583638
    584 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1047
     639#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1058
    585640msgid "Choked (The peer is not allowing us to request pieces)"
    586641msgstr "Verstikt (De peer laat ons niet toe om stukken op te vragen)"
    587642
    588 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1061
     643#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1078
    589644msgid "Uninterested (We have no pieces the peer needs)"
    590645msgstr "Niet geïnteresseerd (We heben geen stukken die de peer nodig heeft)"
    591646
    592 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1063
     647#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1080
    593648msgid "Choking (We are not allowing the peer to request pieces)"
    594649msgstr "Verstikt (We laten de peer niet toe om stukken op te vragen)"
    595650
    596 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1118
     651#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1138
     652#, java-format
     653msgid "Details at {0} tracker"
     654msgstr "Details op de {0} tracker"
     655
     656#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1167
    597657msgid "Add Torrent"
    598658msgstr "Torrent Toevoegen"
    599659
    600 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1120
     660#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1169
    601661msgid "From URL"
    602662msgstr "Van URL"
    603663
    604 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1123
     664#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1172
    605665msgid "Torrent file must originate from an I2P-based tracker"
    606666msgstr "Torrent bestand moet vaan een I2P tracker komen"
    607667
    608 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1128
     668#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1177
    609669msgid "Add torrent"
    610670msgstr "Torrent toevoegen"
    611671
    612 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1131
     672#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1180
    613673#, java-format
    614674msgid "You can also copy .torrent files to: {0}."
    615675msgstr "Je kan ook .torrent bestanden kopieren naar: {0}."
    616676
    617 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1133
     677#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1182
    618678msgid "Removing a .torrent will cause it to stop."
    619679msgstr "Verwijderen van een .torrent zorgt dat deze stopt."
    620680
    621 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1157
     681#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1205
    622682msgid "Create Torrent"
    623683msgstr "Creëer Torrent"
    624684
    625685#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
    626 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1160
     686#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1208
    627687msgid "Data to seed"
    628688msgstr "Data om te seeden"
    629689
    630 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1164
     690#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1212
    631691msgid "File or directory to seed (must be within the specified path)"
    632692msgstr ""
    633693"Bestand of directory om te seeden (moet binnen het gespecificeerde pad zijn)"
    634694
    635 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1166
     695#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1214
     696#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663
    636697msgid "Tracker"
    637698msgstr "Tracker"
    638699
    639 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1168
     700#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1216
    640701msgid "Select a tracker"
    641702msgstr "Selecteer een tracker"
    642703
    643 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1181
     704#. out.write(_("Open trackers and DHT only"));
     705#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1221
     706msgid "Open trackers only"
     707msgstr "Alleen Open trackers"
     708
     709#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1236
    644710msgid "or"
    645711msgstr "of"
    646712
    647 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1184
     713#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1239
    648714msgid "Specify custom tracker announce URL"
    649715msgstr "Specificeer aangepaste tracker aankondigings URL"
    650716
    651 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1187
     717#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242
    652718msgid "Create torrent"
    653719msgstr "Creëer torrent"
    654720
    655 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1206
    656 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1343
     721#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1260
     722#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1399
    657723msgid "Configuration"
    658724msgstr "Configuratie"
    659725
    660 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1210
     726#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1264
    661727msgid "Data directory"
    662728msgstr "Data directory"
    663729
    664 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1212
     730#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1266
    665731msgid "Edit i2psnark.config and restart to change"
    666732msgstr "Bewerk i2psnark.config en herstart de wijziging"
    667733
    668 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1216
     734#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1270
    669735msgid "Auto start"
    670736msgstr "Auto start"
    671737
    672 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1220
     738#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1274
    673739msgid "If checked, automatically start torrents that are added"
    674740msgstr "Indien aangevinkt, start toegevoegde torrents automatisch"
    675741
    676 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1224
     742#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278
    677743msgid "Theme"
    678744msgstr "Thema"
    679745
    680 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1237
     746#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291
    681747msgid "Startup delay"
    682748msgstr "Startup vertraging"
    683749
    684 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1239
     750#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1293
    685751msgid "minutes"
    686752msgstr "minuten"
    687753
    688 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1263
     754#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1317
    689755msgid "Total uploader limit"
    690756msgstr "Totale uploader limiet"
    691757
    692 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1266
     758#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1320
    693759msgid "peers"
    694760msgstr "peers"
    695761
    696 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1270
     762#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1324
    697763msgid "Up bandwidth limit"
    698764msgstr "Up bandbreedte limiet"
    699765
    700 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1273
     766#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1327
    701767msgid "Half available bandwidth recommended."
    702768msgstr "Helft van beschikbare bandbreedte aanbevolen."
    703769
    704 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1275
     770#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1329
    705771msgid "View or change router bandwidth"
    706772msgstr "Bekijk of wijzig router bandbreedte"
    707773
    708 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1279
     774#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1333
    709775msgid "Use open trackers also"
    710776msgstr "Gebruik ook open trackers"
    711777
    712 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283
     778#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1337
    713779msgid ""
    714780"If checked, announce torrents to open trackers as well as the tracker listed "
     
    718784"bestand"
    719785
    720 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1287
     786#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1341
    721787msgid "Open tracker announce URLs"
    722788msgstr "Open tracker aankondigings URLs"
    723789
    724 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1299
     790#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1353
    725791msgid "Inbound Settings"
    726792msgstr "Inkomende Instellingen"
    727793
    728 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1305
     794#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1359
    729795msgid "Outbound Settings"
    730796msgstr "Uitgaande Instellingen"
    731797
    732 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1312
     798#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1367
    733799msgid "I2CP host"
    734800msgstr "I2CP host"
    735801
    736 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1317
     802#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1372
    737803msgid "I2CP port"
    738804msgstr "I2CP poort"
    739805
    740 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1329
     806#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1385
    741807msgid "I2CP options"
    742808msgstr "I2CP opties"
    743809
    744 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1334
     810#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1390
    745811msgid "Save configuration"
    746812msgstr "Configuratie opslaan"
    747813
     814#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1415
     815#, java-format
     816msgid "Invalid magnet URL {0}"
     817msgstr "Ongeldige magnet URL {0}"
     818
     819#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1449
     820#, java-format
     821msgid "Invalid info hash in magnet URL {0}"
     822msgstr "Ongeldige info hash in magnet URL {0}"
     823
    748824#. * dummies for translation
    749 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1351
     825#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1479
    750826#, java-format
    751827msgid "1 hop"
     
    754830msgstr[1] "{0} hops"
    755831
    756 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1352
     832#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1480
    757833#, java-format
    758834msgid "1 tunnel"
     
    761837msgstr[1] "{0} tunnels"
    762838
    763 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1506
     839#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1642
     840msgid "Completion"
     841msgstr "Voltooiing"
     842
     843#. else unknown
     844#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1646
     845#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1695
    764846msgid "Size"
    765847msgstr "Grootte"
    766848
    767 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1513
     849#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1651
     850msgid "Files"
     851msgstr "Bestanden"
     852
     853#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1653
     854msgid "Pieces"
     855msgstr "Stukken"
     856
     857#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1654
     858msgid "Piece size"
     859msgstr "Stukgrootte"
     860
     861#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1676
     862msgid "Magnet link"
     863msgstr "Magnet link"
     864
     865#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1693
     866#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1732
     867msgid "Directory"
     868msgstr "Directory"
     869
     870#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1702
    768871msgid "Priority"
    769872msgstr "Prioriteit"
    770873
    771 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1518
     874#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1707
    772875msgid "Up to higher level directory"
    773876msgstr "Naar bovenliggende directory"
    774877
    775 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1543
    776 msgid "Directory"
    777 msgstr "Directory"
    778 
    779 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1548
     878#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1737
    780879msgid "Torrent not found?"
    781880msgstr "Torrent niet gevonden?"
    782881
    783 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1556
     882#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1746
    784883msgid "File not found in torrent?"
    785884msgstr "Bestand niet gevonden in torrent?"
    786885
    787 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1569
     886#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1759
    788887msgid "complete"
    789888msgstr "voltooid"
    790889
    791 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1570
     890#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1760
    792891msgid "bytes remaining"
    793892msgstr "bytes resterend"
    794893
    795 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1621
     894#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1811
    796895msgid "High"
    797896msgstr "Hoog"
    798897
    799 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1626
     898#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1816
    800899msgid "Normal"
    801900msgstr "Normaal"
    802901
    803 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1631
     902#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1821
    804903msgid "Skip"
    805904msgstr "Overslaan"
    806905
    807 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1640
     906#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1830
    808907msgid "Save priorities"
    809908msgstr "Prioriteiten opslaan"
    810909
    811 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1752
     910#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1945
    812911#, java-format
    813912msgid "Torrent fetched from {0}"
    814913msgstr "Torrent gedownload van {0}"
    815914
    816 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1772
     915#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1967
    817916#, java-format
    818917msgid "Torrent already running: {0}"
    819918msgstr "Torrent draait al: {0}"
    820919
    821 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1774
     920#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1969
    822921#, java-format
    823922msgid "Torrent already in the queue: {0}"
    824923msgstr "Torrent zit al in de wachtrij: {0}"
    825924
    826 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1781
    827 #, java-format
    828 msgid "Failed to copy torrent file to {0}"
    829 msgstr "Kan het torrent bestand niet kopieren naar {0}"
    830 
    831 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1785
     925#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1975
    832926#, java-format
    833927msgid "Torrent at {0} was not valid"
    834928msgstr "Torrent op {0} was niet geldig"
    835929
    836 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1790
     930#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1982
    837931#, java-format
    838932msgid "Torrent was not retrieved from {0}"
  • apps/i2psnark/locale/messages_zh.po

    r271f330 r581cd72  
    99"Project-Id-Version: I2P i2psnark\n"
    1010"Report-Msgid-Bugs-To: \n"
    11 "POT-Creation-Date: 2010-10-04 02:45+0000\n"
    12 "PO-Revision-Date: 2010-10-04 12:00+0800\n"
    13 "Last-Translator: walking <walking@mail.i2p>\n"
     11"POT-Creation-Date: 2011-02-12 11:39+0000\n"
     12"PO-Revision-Date: 2011-02-12 20:08+0800\n"
     13"Last-Translator: \n"
    1414"Language-Team: foo <foo@bar>\n"
    1515"MIME-Version: 1.0\n"
     
    1919"Plural-Forms: nplurals=1; plural=0\n"
    2020
    21 #: ../java/src/org/klomp/snark/SnarkManager.java:88
    22 #, java-format
    23 msgid "Adding torrents in {0} minutes"
    24 msgstr "{0}分钟内完成添加"
    25 
    26 #: ../java/src/org/klomp/snark/SnarkManager.java:258
     21#: ../java/src/org/klomp/snark/SnarkManager.java:307
    2722#, java-format
    2823msgid "Total uploaders limit changed to {0}"
    2924msgstr "总上传种子数限制已更新为{0}"
    3025
    31 #: ../java/src/org/klomp/snark/SnarkManager.java:260
     26#: ../java/src/org/klomp/snark/SnarkManager.java:309
    3227#, java-format
    3328msgid "Minimum total uploaders limit is {0}"
    3429msgstr "最低上传种子数限制为{0}"
    3530
    36 #: ../java/src/org/klomp/snark/SnarkManager.java:272
     31#: ../java/src/org/klomp/snark/SnarkManager.java:321
    3732#, java-format
    3833msgid "Up BW limit changed to {0}KBps"
    3934msgstr "上传带宽限制改为 {0} KBps"
    4035
    41 #: ../java/src/org/klomp/snark/SnarkManager.java:274
     36#: ../java/src/org/klomp/snark/SnarkManager.java:323
    4237#, java-format
    4338msgid "Minimum up bandwidth limit is {0}KBps"
    4439msgstr "最小上传带宽限制为 {0} KBps"
    4540
    46 #: ../java/src/org/klomp/snark/SnarkManager.java:286
    47 #, java-format
    48 msgid "Startup delay limit changed to {0} minutes"
    49 msgstr "启动延迟已更新为{0}"
    50 
    51 #: ../java/src/org/klomp/snark/SnarkManager.java:333
     41#: ../java/src/org/klomp/snark/SnarkManager.java:335
     42#, java-format
     43msgid "Startup delay changed to {0}"
     44msgstr "下载前的延迟已更新为{0}"
     45
     46#: ../java/src/org/klomp/snark/SnarkManager.java:386
    5247msgid "I2CP and tunnel changes will take effect after stopping all torrents"
    5348msgstr "I2CP与隧道设置的变化在所有种子停止后才能生效"
    5449
    55 #: ../java/src/org/klomp/snark/SnarkManager.java:339
     50#: ../java/src/org/klomp/snark/SnarkManager.java:393
    5651msgid "Disconnecting old I2CP destination"
    5752msgstr "正在断开旧的I2CP目标"
    5853
    59 #: ../java/src/org/klomp/snark/SnarkManager.java:343
     54#: ../java/src/org/klomp/snark/SnarkManager.java:397
    6055#, java-format
    6156msgid "I2CP settings changed to {0}"
    6257msgstr "I2CP设置改为{0}"
    6358
    64 #: ../java/src/org/klomp/snark/SnarkManager.java:347
     59#: ../java/src/org/klomp/snark/SnarkManager.java:402
    6560msgid "Unable to connect with the new settings, reverting to the old I2CP settings"
    6661msgstr "无法通过新设置连接,恢复I2CP的旧设置"
    6762
    68 #: ../java/src/org/klomp/snark/SnarkManager.java:351
     63#: ../java/src/org/klomp/snark/SnarkManager.java:406
    6964msgid "Unable to reconnect with the old settings!"
    7065msgstr "旧设置也无法连接!"
    7166
    72 #: ../java/src/org/klomp/snark/SnarkManager.java:353
     67#: ../java/src/org/klomp/snark/SnarkManager.java:408
    7368msgid "Reconnected on the new I2CP destination"
    7469msgstr "重新连接新I2CP目标"
    7570
    76 #: ../java/src/org/klomp/snark/SnarkManager.java:364
     71#: ../java/src/org/klomp/snark/SnarkManager.java:418
    7772#, java-format
    7873msgid "I2CP listener restarted for \"{0}\""
    7974msgstr "\"{0}\"的I2CP监听端口已启动"
    8075
    81 #: ../java/src/org/klomp/snark/SnarkManager.java:375
     76#: ../java/src/org/klomp/snark/SnarkManager.java:429
    8277msgid "Enabled autostart"
    8378msgstr "启用自动启动"
    8479
    85 #: ../java/src/org/klomp/snark/SnarkManager.java:377
     80#: ../java/src/org/klomp/snark/SnarkManager.java:431
    8681msgid "Disabled autostart"
    8782msgstr "禁用自动启动"
    8883
    89 #: ../java/src/org/klomp/snark/SnarkManager.java:383
     84#: ../java/src/org/klomp/snark/SnarkManager.java:437
    9085msgid "Enabled open trackers - torrent restart required to take effect."
    9186msgstr "启用OpenTracker-重新启动种子后生效"
    9287
    93 #: ../java/src/org/klomp/snark/SnarkManager.java:385
     88#: ../java/src/org/klomp/snark/SnarkManager.java:439
    9489msgid "Disabled open trackers - torrent restart required to take effect."
    9590msgstr "禁用OpenTracker - 重新启动种子后生效"
    9691
    97 #: ../java/src/org/klomp/snark/SnarkManager.java:392
     92#: ../java/src/org/klomp/snark/SnarkManager.java:447
    9893msgid "Open Tracker list changed - torrent restart required to take effect."
    9994msgstr "OpenTracker列表已改变 - 重新启动种子后生效"
    10095
    101 #: ../java/src/org/klomp/snark/SnarkManager.java:399
     96#: ../java/src/org/klomp/snark/SnarkManager.java:454
     97#, java-format
     98msgid "{0} theme loaded, return to main i2psnark page to view."
     99msgstr "{0} 主题已加载,浏览效果请到 i2psnark 主页。"
     100
     101#: ../java/src/org/klomp/snark/SnarkManager.java:461
    102102msgid "Configuration unchanged."
    103103msgstr "设置未改变"
    104104
    105 #: ../java/src/org/klomp/snark/SnarkManager.java:409
     105#: ../java/src/org/klomp/snark/SnarkManager.java:471
    106106#, java-format
    107107msgid "Unable to save the config to {0}"
    108108msgstr "无法保存设置到{0}"
    109109
    110 #: ../java/src/org/klomp/snark/SnarkManager.java:445
     110#: ../java/src/org/klomp/snark/SnarkManager.java:536
    111111msgid "Connecting to I2P"
    112112msgstr "正在连接到I2P"
    113113
    114 #: ../java/src/org/klomp/snark/SnarkManager.java:448
     114#: ../java/src/org/klomp/snark/SnarkManager.java:539
    115115msgid "Error connecting to I2P - check your I2CP settings!"
    116116msgstr "连接I2P时发生错误 - 请检查I2CP设置!"
    117117
    118 #: ../java/src/org/klomp/snark/SnarkManager.java:457
     118#: ../java/src/org/klomp/snark/SnarkManager.java:548
    119119#, java-format
    120120msgid "Error: Could not add the torrent {0}"
     
    122122
    123123#. catch this here so we don't try do delete it below
    124 #: ../java/src/org/klomp/snark/SnarkManager.java:479
     124#: ../java/src/org/klomp/snark/SnarkManager.java:570
    125125#, java-format
    126126msgid "Cannot open \"{0}\""
    127127msgstr "无法打开 \"{0}\""
    128128
    129 #: ../java/src/org/klomp/snark/SnarkManager.java:492
    130 #, java-format
    131 msgid "Warning - Ignoring non-i2p tracker in \"{0}\", will announce to i2p open trackers only"
    132 msgstr "警告 - 忽略\"{0}\"文件中I2P网络外的Tracker服务器,文件将仅发布至 I2P 内的 Open Tracker 服务器。"
    133 
    134 #: ../java/src/org/klomp/snark/SnarkManager.java:494
    135 #, java-format
    136 msgid "Warning - Ignoring non-i2p tracker in \"{0}\", and open trackers are disabled, you must enable open trackers before starting the torrent!"
    137 msgstr "警告 - 忽略\"{0}\"文件中I2P网络外的Tracker服务器,OpenTracker已禁用,启动此种子前您必须启用OpenTracker。"
    138 
    139 #: ../java/src/org/klomp/snark/SnarkManager.java:513
     129#. TODO - if the existing one is a magnet, delete it and add the metainfo instead?
     130#: ../java/src/org/klomp/snark/SnarkManager.java:586
     131#: ../java/src/org/klomp/snark/SnarkManager.java:661
     132#: ../java/src/org/klomp/snark/SnarkManager.java:716
     133#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1954
     134#, java-format
     135msgid "Torrent with this info hash is already running: {0}"
     136msgstr "具有相同Hash链接的种子已在下载中:{0}"
     137
     138#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName()));
     139#: ../java/src/org/klomp/snark/SnarkManager.java:593
     140#, java-format
     141msgid "Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers only."
     142msgstr "提示 - “{0}”文件中不包含 I2P Tracker服务器,文件将仅发布至 I2P 的 Open Tracker 。"
     143
     144#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName()));
     145#: ../java/src/org/klomp/snark/SnarkManager.java:598
     146#, java-format
     147msgid "Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is enabled before starting this torrent."
     148msgstr "警告 -“{0}”中不包含 I2P Tracker 服务器,下载此种子请先启用 Open Tracker。"
     149
     150#: ../java/src/org/klomp/snark/SnarkManager.java:619
    140151#, java-format
    141152msgid "Torrent in \"{0}\" is invalid"
    142153msgstr "无效种子 \"{0}\" "
    143154
    144 #: ../java/src/org/klomp/snark/SnarkManager.java:528
     155#: ../java/src/org/klomp/snark/SnarkManager.java:624
     156#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1977
     157#, java-format
     158msgid "ERROR - Out of memory, cannot create torrent from {0}"
     159msgstr "错误: 内存不足,无法为 {0} 创建种子。"
     160
     161#: ../java/src/org/klomp/snark/SnarkManager.java:635
    145162#, java-format
    146163msgid "Torrent added and started: \"{0}\""
    147164msgstr "已添加并启动种子:\"{0}\""
    148165
    149 #: ../java/src/org/klomp/snark/SnarkManager.java:530
     166#: ../java/src/org/klomp/snark/SnarkManager.java:637
    150167#, java-format
    151168msgid "Torrent added: \"{0}\""
    152169msgstr "已添加种子:\"{0}\""
    153170
    154 #: ../java/src/org/klomp/snark/SnarkManager.java:627
     171#: ../java/src/org/klomp/snark/SnarkManager.java:672
     172#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:489
     173#, java-format
     174msgid "Fetching {0}"
     175msgstr "正在获取{0}"
     176
     177#: ../java/src/org/klomp/snark/SnarkManager.java:675
     178#, java-format
     179msgid "We have no saved peers and no other torrents are running. Fetch of {0} will not succeed until you start another torrent."
     180msgstr "程序还不知道其他客户端的存在,目前也没有其他种子正在运行。在您启动其他种子前文件 {0} 无法成功下载。"
     181
     182#: ../java/src/org/klomp/snark/SnarkManager.java:679
     183#, java-format
     184msgid "Adding {0}"
     185msgstr "正在添加{0}"
     186
     187#: ../java/src/org/klomp/snark/SnarkManager.java:726
     188#: ../java/src/org/klomp/snark/SnarkManager.java:749
     189#: ../java/src/org/klomp/snark/SnarkManager.java:1174
     190#, java-format
     191msgid "Failed to copy torrent file to {0}"
     192msgstr "无法复制种子文件到{0}"
     193
     194#: ../java/src/org/klomp/snark/SnarkManager.java:972
    155195#, java-format
    156196msgid "Too many files in \"{0}\" ({1}), deleting it!"
    157197msgstr "\"{0}\" ({1}) 含有太多文件,删除之!"
    158198
    159 #: ../java/src/org/klomp/snark/SnarkManager.java:629
     199#: ../java/src/org/klomp/snark/SnarkManager.java:974
    160200#, java-format
    161201msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
    162202msgstr "种子文件 \"{0}\" 不以 \".torrent\"结尾,正在删除!"
    163203
    164 #: ../java/src/org/klomp/snark/SnarkManager.java:631
     204#: ../java/src/org/klomp/snark/SnarkManager.java:976
    165205#, java-format
    166206msgid "No pieces in \"{0}\",  deleting it!"
    167207msgstr "\"{0}\" 中没有数据片,删除之!"
    168208
    169 #: ../java/src/org/klomp/snark/SnarkManager.java:633
     209#: ../java/src/org/klomp/snark/SnarkManager.java:978
    170210#, java-format
    171211msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
    172212msgstr "\"{0}\" 中文件分片太多,限额为{1},删除之!"
    173213
    174 #: ../java/src/org/klomp/snark/SnarkManager.java:635
     214#: ../java/src/org/klomp/snark/SnarkManager.java:980
    175215#, java-format
    176216msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
    177217msgstr "\"{0}\" ({1}B) 中文件分片过大,删除之。"
    178218
    179 #: ../java/src/org/klomp/snark/SnarkManager.java:636
     219#: ../java/src/org/klomp/snark/SnarkManager.java:981
    180220#, java-format
    181221msgid "Limit is {0}B"
    182222msgstr "限额为 {0}B"
    183223
    184 #: ../java/src/org/klomp/snark/SnarkManager.java:644
     224#: ../java/src/org/klomp/snark/SnarkManager.java:989
    185225#, java-format
    186226msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
    187227msgstr "目前不支持大于{0}B 的种子,正在删除\"{1}\""
    188228
    189 #: ../java/src/org/klomp/snark/SnarkManager.java:660
     229#: ../java/src/org/klomp/snark/SnarkManager.java:1005
    190230#, java-format
    191231msgid "Error: Could not remove the torrent {0}"
    192232msgstr "错误:无法删除种子{0}"
    193233
    194 #: ../java/src/org/klomp/snark/SnarkManager.java:681
     234#: ../java/src/org/klomp/snark/SnarkManager.java:1026
     235#: ../java/src/org/klomp/snark/SnarkManager.java:1044
    195236#, java-format
    196237msgid "Torrent stopped: \"{0}\""
    197238msgstr "种子已停止:\"{0}\""
    198239
    199 #: ../java/src/org/klomp/snark/SnarkManager.java:696
     240#: ../java/src/org/klomp/snark/SnarkManager.java:1065
    200241#, java-format
    201242msgid "Torrent removed: \"{0}\""
    202243msgstr "种子已删除:\"{0}\""
    203244
    204 #: ../java/src/org/klomp/snark/SnarkManager.java:729
    205 #, java-format
    206 msgid "Download finished: \"{0}\""
    207 msgstr "下载已完成:\"{0}\""
    208 
    209 #: ../java/src/org/klomp/snark/SnarkManager.java:729
    210 #, java-format
    211 msgid "size: {0}B"
    212 msgstr "大小:{0}B"
    213 
    214 #: ../java/src/org/klomp/snark/SnarkManager.java:757
     245#: ../java/src/org/klomp/snark/SnarkManager.java:1073
     246#, java-format
     247msgid "Adding torrents in {0}"
     248msgstr "{0} 分钟内完成添加"
     249
     250#: ../java/src/org/klomp/snark/SnarkManager.java:1122
     251#, java-format
     252msgid "Download finished: {0}"
     253msgstr "下载已完成: {0}"
     254
     255#: ../java/src/org/klomp/snark/SnarkManager.java:1170
     256#, java-format
     257msgid "Metainfo received for {0}"
     258msgstr "已获得 {0} 的 Metainfo"
     259
     260#: ../java/src/org/klomp/snark/SnarkManager.java:1171
     261#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:524
     262#, java-format
     263msgid "Starting up torrent {0}"
     264msgstr "正在启动种子{0}"
     265
     266#: ../java/src/org/klomp/snark/SnarkManager.java:1225
    215267msgid "Unable to connect to I2P!"
    216268msgstr "无法连接至I2P!"
    217269
    218 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:174
     270#: ../java/src/org/klomp/snark/SnarkManager.java:1231
     271#, java-format
     272msgid "Unable to add {0}"
     273msgstr "添加{0}失败"
     274
     275#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:205
    219276msgid "I2PSnark - Anonymous BitTorrent Client"
    220277msgstr "I2PSnark - 匿名BitTorrent客户端"
    221278
    222 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185
     279#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:218
    223280msgid "Torrents"
    224281msgstr "种子"
    225282
    226 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:187
    227 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837
     283#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:221
     284#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:228
     285#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1007
    228286msgid "I2PSnark"
    229 msgstr ""
    230 
    231 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:191
     287msgstr "I2PSnark"
     288
     289#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:225
    232290msgid "Refresh page"
    233291msgstr "刷新页面"
    234292
    235 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:193
    236 msgid "<img border=\"0\" src=\"/themes/console/snark/images/arrow_refresh.png\"> I2PSnark"
    237 msgstr ""
    238 
    239 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:195
     293#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:230
    240294msgid "Forum"
    241295msgstr "论坛"
    242296
    243 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:240
    244 msgid "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"Torrent Status\">Status"
    245 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"种子状态\">状态"
    246 
    247 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:246
    248 msgid "<img border=\"0\" src=\"/themes/console/snark/images/showpeers.png\" title=\"Toggle Peer Visibility\" alt=\"Hide Peers\">"
    249 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/showpeers.png\" title=\"隐藏节点\" alt=\"隐藏节点\">"
    250 
    251 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:249
    252 msgid "<img border=\"0\" src=\"/themes/console/snark/images/hidepeers.png\" title=\"Toggle Peer Visibility\" alt=\"Show Peers\">"
    253 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/hidepeers.png\" title=\"显示节点\" alt=\"显示节点\">"
    254 
    255 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254
    256 msgid "<img border=\"0\" src=\"/themes/console/snark/images/torrent.png\" title=\"Loaded Torrents\">Torrent"
    257 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/torrent.png\" title=\"载入的种子\">种子"
    258 
    259 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:256
    260 msgid "<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title=\"Estimated Download Time\">ETA"
    261 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title=\"预计剩余时间\">预计剩余时间"
    262 
    263 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:258
    264 msgid "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Data Downloaded\">RX"
    265 msgstr "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"下载数据量\">下载"
    266 
    267 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:260
    268 msgid "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Data Uploaded\">TX"
    269 msgstr "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"上传数据量\">上传"
    270 
    271 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:262
    272 msgid "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Download Speed\">Rate"
    273 msgstr "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"下载速度\">下载速度"
    274 
    275 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:264
    276 msgid "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Upload Speed\">Rate"
    277 msgstr "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"上传速度\">上传速度"
    278 
    279 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:271
     297#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:284
     298#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1698
     299msgid "Status"
     300msgstr "状态"
     301
     302#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
     303#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:292
     304msgid "Hide Peers"
     305msgstr "隐藏用户"
     306
     307#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
     308#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:299
     309msgid "Show Peers"
     310msgstr "显示用户"
     311
     312#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:306
     313#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1622
     314#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1638
     315msgid "Torrent"
     316msgstr "种子"
     317
     318#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:310
     319msgid "Estimated time remaining"
     320msgstr "预计剩余时间"
     321
     322#. Translators: Please keep short or translate as " "
     323#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313
     324msgid "ETA"
     325msgstr "预计剩余时间"
     326
     327#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
     328msgid "Downloaded"
     329msgstr "已下载"
     330
     331#. Translators: Please keep short or translate as " "
     332#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:320
     333#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:334
     334msgid "RX"
     335msgstr "已接收"
     336
     337#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324
     338msgid "Uploaded"
     339msgstr "已上传"
     340
     341#. Translators: Please keep short or translate as " "
     342#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:327
     343#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:344
     344msgid "TX"
     345msgstr "已发送"
     346
     347#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:332
     348msgid "Down Rate"
     349msgstr "下载速度"
     350
     351#. Translators: Please keep short or translate as " "
     352#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:337
     353#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346
     354msgid "Rate"
     355msgstr "速度"
     356
     357#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342
     358msgid "Up Rate"
     359msgstr "上传速度"
     360
     361#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:364
    280362msgid "Stop all torrents and the I2P tunnel"
    281363msgstr "停止全部种子及I2P隧道"
    282364
    283 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:273
    284 msgid "<img src=\"/themes/console/snark/images/stop_all.png\" title=\"Stop All Torrents\" alt=\"Stop All\">"
    285 msgstr "<img src=\"/themes/console/snark/images/stop_all.png\" title=\"全部停止\" alt=\"全部停止\">"
    286 
    287 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:278
     365#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366
     366msgid "Stop All"
     367msgstr "停止全部"
     368
     369#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:375
    288370msgid "Start all torrents and the I2P tunnel"
    289371msgstr "启动全部种子及I2P隧道"
    290372
    291 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:280
    292 msgid "<img src=\"/themes/console/snark/images/start_all.png\" title=\"Start All Torrents\" alt=\"Start All\">"
    293 msgstr "<img src=\"/themes/console/snark/images/start_all.png\" title=\"全部开始\" alt=\"全部开始\">"
    294 
    295 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
     373#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377
     374msgid "Start All"
     375msgstr "启动全部"
     376
     377#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:396
    296378msgid "No torrents loaded."
    297379msgstr "未载入任何种子"
    298380
    299 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:302
     381#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:401
    300382msgid "Totals"
    301383msgstr "总计"
    302384
    303 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:304
     385#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
    304386#, java-format
    305387msgid "1 torrent"
     
    307389msgstr[0] "{0}个种子"
    308390
    309 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:307
     391#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:406
    310392#, java-format
    311393msgid "1 connected peer"
     
    313395msgstr[0] "{0}个已连接用户"
    314396
    315 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:336
    316 #, java-format
    317 msgid "Torrent file {0} does not exist"
    318 msgstr "种子文件{0}不存在"
    319 
    320 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346
    321 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1481
    322 #, java-format
    323 msgid "Torrent already running: {0}"
    324 msgstr "种子已启动:{0}"
    325 
    326 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:348
    327 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1483
    328 #, java-format
    329 msgid "Torrent already in the queue: {0}"
    330 msgstr "种子排队中:{0}"
    331 
    332 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:352
    333 #, java-format
    334 msgid "Copying torrent to {0}"
    335 msgstr "正在复制种子到{0}"
    336 
    337 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355
    338 #, java-format
    339 msgid "Unable to copy the torrent to {0}"
    340 msgstr "无法复制种子文件到{0}"
    341 
    342 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:355
    343 #, java-format
    344 msgid "from {0}"
    345 msgstr "来源{0}"
    346 
    347 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:363
    348 #, java-format
    349 msgid "Fetching {0}"
    350 msgstr "正在获取{0}"
    351 
    352 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:367
    353 msgid "Invalid URL - must start with http://"
    354 msgstr "无效链接 - 必须以http:// 开头"
    355 
    356 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397
    357 #, java-format
    358 msgid "Starting up torrent {0}"
    359 msgstr "正在启动种子{0}"
    360 
    361 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:417
    362 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:435
     397#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:495
     398#, java-format
     399msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
     400msgstr "无效链接 - 链接必须以“http://”,“{0}”或“{1}”开头"
     401
     402#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:543
     403#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:570
     404#, java-format
     405msgid "Magnet deleted: {0}"
     406msgstr "Magnet 已删除:{0}"
     407
     408#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:551
     409#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:576
    363410#, java-format
    364411msgid "Torrent file deleted: {0}"
    365412msgstr "种子文件已删除:{0}"
    366413
    367 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:441
    368 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:451
     414#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:582
     415#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:592
    369416#, java-format
    370417msgid "Data file deleted: {0}"
    371418msgstr "数据文件已删除:{0}"
    372419
    373 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:443
    374 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:453
     420#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584
     421#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594
    375422#, java-format
    376423msgid "Data file could not be deleted: {0}"
    377424msgstr "无法删除数据文件:{0}"
    378425
    379 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:462
     426#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:603
    380427#, java-format
    381428msgid "Data dir deleted: {0}"
    382429msgstr "数据文件夹已删除:{0}"
    383430
    384 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:494
     431#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:636
    385432msgid "Error creating torrent - you must select a tracker"
    386433msgstr "创建种子时发生错误 - 您必须选择一个Tracker"
    387434
    388 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:509
     435#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:652
    389436#, java-format
    390437msgid "Torrent created for \"{0}\""
    391438msgstr "种子创建成功\"{0}\""
    392439
    393 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:512
     440#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:654
    394441#, java-format
    395442msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\""
    396443msgstr "多数I2PTracker需要用户在做种前注册新种子 - 请在启动 \"{0}\"前到所使用的Tracker进行注册。"
    397444
    398 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514
     445#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:656
    399446#, java-format
    400447msgid "Error creating a torrent for \"{0}\""
    401448msgstr "创建种子时发生错误 \"{0}\""
    402449
    403 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:517
     450#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:659
    404451#, java-format
    405452msgid "Cannot create a torrent for the nonexistent data: {0}"
    406453msgstr "无法为不存在的数据文件创建种子:{0}"
    407454
    408 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:520
     455#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:662
    409456msgid "Error creating torrent - you must enter a file or directory"
    410457msgstr "创建种子时发生错误 - 必须指定文件或文件夹"
    411458
    412 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:523
     459#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665
    413460msgid "Stopping all torrents and closing the I2P tunnel."
    414461msgstr "正在停用所有种子并关闭I2P隧道。"
    415462
    416 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:532
     463#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:676
    417464msgid "I2P tunnel closed."
    418465msgstr "I2P隧道已关闭"
    419466
    420 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:535
     467#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679
    421468msgid "Opening the I2P tunnel and starting all torrents."
    422469msgstr "正在打开I2P隧道并启动所有种子"
    423470
    424 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657
    425 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:851
    426 msgid "Unknown"
    427 msgstr "未知"
    428 
    429 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660
    430 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665
    431 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:670
    432 msgid "TrackerErr"
     471#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:802
     472#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807
     473#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:813
     474msgid "Tracker Error"
    433475msgstr "Tracker错误"
    434476
    435 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663
    436 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666
    437 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677
    438 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:680
    439 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:688
    440 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691
    441 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:696
    442 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:699
     477#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805
     478#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:809
     479#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:821
     480#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:825
     481#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:833
     482#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:837
     483#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:842
     484#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:846
    443485#, java-format
    444486msgid "1 peer"
     
    446488msgstr[0] "{0}个用户"
    447489
    448 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:674
    449 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679
     490#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818
     491#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:823
    450492msgid "Seeding"
    451493msgstr "正做种"
    452494
    453 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:682
    454 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1317
     495#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:827
     496#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1644
     497#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1749
    455498msgid "Complete"
    456499msgstr "完成"
    457500
    458 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:685
    459 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:690
     501#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:830
     502#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:835
    460503msgid "OK"
    461504msgstr "确定"
    462505
    463 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:693
    464 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:698
     506#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:839
     507#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:844
    465508msgid "Stalled"
    466509msgstr "等待"
    467510
    468 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:701
     511#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:848
     512#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:851
    469513msgid "No Peers"
    470514msgstr "没有用户"
    471515
    472 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:703
     516#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:853
    473517msgid "Stopped"
    474518msgstr "已停用"
    475519
    476 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:718
     520#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:864
     521msgid "Torrent details"
     522msgstr "种子详情"
     523
     524#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:865
     525#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1139
     526msgid "Info"
     527msgstr "信息"
     528
     529#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:879
    477530msgid "View files"
    478531msgstr "浏览文件"
    479532
    480 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:720
     533#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:881
    481534msgid "Open file"
    482535msgstr "打开文件"
    483536
    484 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:750
    485 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967
    486 msgid "Tracker"
    487 msgstr "Tracker服务器"
    488 
    489 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:751
    490 msgid "<img border=\"0\" src=\"/themes/console/snark/images/details.png\">"
    491 msgstr ""
    492 
    493 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:785
     537#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:893
     538#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1785
     539msgid "Open"
     540msgstr "打开"
     541
     542#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:939
    494543msgid "Stop the torrent"
    495544msgstr "停止种子"
    496545
    497 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787
    498 msgid "<img src=\"/themes/console/snark/images/stop.png\" title=\"Stop Torrent\" alt=\"Stop\">"
    499 msgstr "<img src=\"/themes/console/snark/images/stop.png\" title=\"停止下载\" alt=\"停止\">"
    500 
    501 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:793
     546#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:941
     547msgid "Stop"
     548msgstr "停止"
     549
     550#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:950
    502551msgid "Start the torrent"
    503552msgstr "启动种子"
    504553
    505 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:795
    506 msgid "<img src=\"/themes/console/snark/images/start.png\" title=\"Start Torrent\" alt=\"Start\">"
    507 msgstr "<img src=\"/themes/console/snark/images/start.png\" title=\"开始下载\" alt=\"开始\">"
    508 
    509 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:800
     554#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:952
     555msgid "Start"
     556msgstr "启动"
     557
     558#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:962
    510559msgid "Remove the torrent from the active list, deleting the .torrent file"
    511560msgstr "取消下载任务并删除对应种子文件。"
     
    514563#. Single quotes in translate strings with parameters must be doubled.
    515564#. Then the remaining single quite must be escaped
    516 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805
     565#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:967
    517566#, java-format
    518567msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?"
    519568msgstr "您确定要删除文件“{0}.torrent”(下载的数据文件不会被删除)?"
    520569
    521 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:807
    522 msgid "<img src=\"/themes/console/snark/images/remove.png\" title=\"Remove Torrent\" alt=\"Remove\">"
    523 msgstr "<img src=\"/themes/console/snark/images/remove.png\" title=\"删除种子\" alt=\"删除种子\">"
    524 
    525 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:811
     570#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:970
     571msgid "Remove"
     572msgstr "移除"
     573
     574#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:980
    526575msgid "Delete the .torrent file and the associated data file(s)"
    527576msgstr "删除种子及所下载的文件"
     
    530579#. Single quotes in translate strings with parameters must be doubled.
    531580#. Then the remaining single quite must be escaped
    532 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:816
     581#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985
    533582#, java-format
    534583msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?"
    535584msgstr "您确定要删除种子“{0}”(下载的数据文件会一并被删除)?"
    536585
    537 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:818
    538 msgid "<img src=\"/themes/console/snark/images/delete.png\" title=\"Delete Torrent + Data\" alt=\"Delete\">"
    539 msgstr "<img src=\"/themes/console/snark/images/delete.png\" title=\"删除种子 + 数据\" alt=\"删除种子 + 数据\">"
    540 
    541 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:861
     586#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:988
     587msgid "Delete"
     588msgstr "删除"
     589
     590#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1021
     591msgid "Unknown"
     592msgstr "未知"
     593
     594#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1033
    542595msgid "Seed"
    543596msgstr "种子"
    544597
    545 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:879
     598#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1056
    546599msgid "Uninteresting (The peer has no pieces we need)"
    547600msgstr "无需要部分"
    548601
    549 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:881
     602#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1058
    550603msgid "Choked (The peer is not allowing us to request pieces)"
    551604msgstr "拒绝请求"
    552605
    553 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:895
     606#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1078
    554607msgid "Uninterested (We have no pieces the peer needs)"
    555608msgstr "无需要部分"
    556609
    557 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:897
     610#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1080
    558611msgid "Choking (We are not allowing the peer to request pieces)"
    559612msgstr "拒绝请求"
    560613
    561 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:927
    562 msgid "<img border=\"0\" src=\"/themes/console/snark/images/add.png\">Add Torrent"
    563 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/add.png\">添加种子"
    564 
    565 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:929
     614#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1138
     615#, java-format
     616msgid "Details at {0} tracker"
     617msgstr "Tracker {0} 上的详细信息"
     618
     619#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1167
     620msgid "Add Torrent"
     621msgstr "添加种子"
     622
     623#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1169
    566624msgid "From URL"
    567625msgstr "从URL"
    568626
    569 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:934
     627#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1172
     628msgid "Torrent file must originate from an I2P-based tracker"
     629msgstr "种子文件必须来在I2P内网中的Tracker服务器。"
     630
     631#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1177
    570632msgid "Add torrent"
    571633msgstr "添加种子"
    572634
    573 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:937
    574 #, java-format
    575 msgid "You can also copy .torrent files to: <code>{0}"
    576 msgstr "或者您可以将.torrent文件复制到<code>{0}."
    577 
    578 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:939
     635#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1180
     636#, java-format
     637msgid "You can also copy .torrent files to: {0}."
     638msgstr "您也可以将.torrent文件复制到: {0}."
     639
     640#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1182
    579641msgid "Removing a .torrent will cause it to stop."
    580642msgstr "删除种子文件将导致该下载任务中止。"
    581643
    582 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:958
    583 msgid "<img border=\"0\" src=\"/themes/console/snark/images/create.png\">Create Torrent"
    584 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/create.png\">创建种子"
     644#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1205
     645msgid "Create Torrent"
     646msgstr "创建种子"
    585647
    586648#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
    587 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:961
     649#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1208
    588650msgid "Data to seed"
    589651msgstr "做种数据"
    590652
    591 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:965
     653#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1212
    592654msgid "File or directory to seed (must be within the specified path)"
    593655msgstr "做种文件或文件夹(必须下面为Snark指定的文件夹中)"
    594656
    595 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:969
     657#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1214
     658#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663
     659msgid "Tracker"
     660msgstr "Tracker服务器"
     661
     662#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1216
    596663msgid "Select a tracker"
    597664msgstr "选择一个Tracker"
    598665
    599 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982
    600 msgid "or&nbsp;"
    601 msgstr "或&nbsp;"
    602 
    603 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:985
     666#. out.write(_("Open trackers and DHT only"));
     667#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1221
     668msgid "Open trackers only"
     669msgstr "仅通过 Open Tracker发布链接"
     670
     671#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1236
     672msgid "or"
     673msgstr "或"
     674
     675#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1239
    604676msgid "Specify custom tracker announce URL"
    605677msgstr "指定Open Tracker发布链接"
    606678
    607 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:988
     679#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242
    608680msgid "Create torrent"
    609681msgstr "创建种子"
    610682
    611 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006
    612 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1133
    613 msgid "<img border=\"0\" src=\"/themes/console/snark/images/config.png\">Configuration"
    614 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/config.png\">设置"
    615 
    616 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009
     683#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1260
     684#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1399
     685msgid "Configuration"
     686msgstr "设置"
     687
     688#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1264
    617689msgid "Data directory"
    618690msgstr "数据文件夹"
    619691
    620 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1012
    621 msgid "Directory to store torrents and data"
    622 msgstr "种子及被做种文件的保存位置。"
    623 
    624 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1014
     692#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1266
    625693msgid "Edit i2psnark.config and restart to change"
    626694msgstr "编辑 i2psnark.config 并重启Snark后生效"
    627695
    628 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1018
     696#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1270
    629697msgid "Auto start"
    630698msgstr "自动启动"
    631699
    632 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1022
     700#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1274
    633701msgid "If checked, automatically start torrents that are added"
    634702msgstr "选中后Snark将自动启动已添加的所有种子。"
    635703
    636 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1026
     704#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278
     705msgid "Theme"
     706msgstr "主题"
     707
     708#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291
    637709msgid "Startup delay"
    638710msgstr "启动延迟"
    639711
    640 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1028
     712#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1293
    641713msgid "minutes"
    642714msgstr "分"
    643715
    644 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1052
     716#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1317
    645717msgid "Total uploader limit"
    646718msgstr "限制总上传种子数为"
    647719
    648 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1055
     720#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1320
    649721msgid "peers"
    650722msgstr "用户"
    651723
    652 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1059
     724#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1324
    653725msgid "Up bandwidth limit"
    654726msgstr "上传带宽限制"
    655727
    656 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1062
     728#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1327
    657729msgid "Half available bandwidth recommended."
    658730msgstr "推荐设置为可用带宽的一半。"
    659731
    660 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1064
     732#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1329
    661733msgid "View or change router bandwidth"
    662734msgstr "浏览或修改路由器带宽"
    663735
    664 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1068
     736#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1333
    665737msgid "Use open trackers also"
    666738msgstr "同时使用OpenTracker"
    667739
    668 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1072
     740#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1337
    669741msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file"
    670742msgstr "选择后在OpenTracker及种子文件中的Tracker上同时发布。"
    671743
    672 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1076
     744#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1341
    673745msgid "Open tracker announce URLs"
    674746msgstr "Open Tracker发布链接"
    675747
    676 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1088
     748#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1353
    677749msgid "Inbound Settings"
    678750msgstr "入站设置"
    679751
    680 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1094
     752#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1359
    681753msgid "Outbound Settings"
    682754msgstr "出站设置"
    683755
    684 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101
     756#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1367
    685757msgid "I2CP host"
    686758msgstr "I2CP主机"
    687759
    688 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1106
     760#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1372
    689761msgid "I2CP port"
    690762msgstr "I2CP端口"
    691763
    692 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1118
     764#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1385
    693765msgid "I2CP options"
    694766msgstr "I2CP选项"
    695767
    696 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1124
     768#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1390
    697769msgid "Save configuration"
    698770msgstr "保存设置"
    699771
     772#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1415
     773#, java-format
     774msgid "Invalid magnet URL {0}"
     775msgstr "磁性链接 {0} 无效"
     776
     777#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1449
     778#, java-format
     779msgid "Invalid info hash in magnet URL {0}"
     780msgstr "magnet磁性链接“{0}”中的hash信息有误。"
     781
    700782#. * dummies for translation
    701 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1141
     783#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1479
    702784#, java-format
    703785msgid "1 hop"
     
    705787msgstr[0] "{0}跳"
    706788
    707 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1142
     789#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1480
    708790#, java-format
    709791msgid "1 tunnel"
     
    711793msgstr[0] "{0}隧道"
    712794
    713 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1271
    714 msgid "Torrent"
    715 msgstr "种子"
    716 
    717 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278
    718 msgid "<img border=\"0\" src=\"/themes/console/snark/images/file.png\" title=\"File\" alt=\"File\">&nbsp;"
    719 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/file.png\" title=\"文件\" alt=\"文件\">&nbsp;"
    720 
    721 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1278
    722 msgid "<img border=\"0\" src=\"/themes/console/snark/images/size.png\" title=\"FileSize\" alt=\"FileSize\">Size"
    723 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/size.png\" title=\"文件大小\" alt=\"文件大小\">大小"
    724 
    725 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1279
    726 msgid "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"Download Status\">Status"
    727 msgstr "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title=\"下载状态\">状态"
    728 
    729 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1301
     795#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1642
     796msgid "Completion"
     797msgstr "完成"
     798
     799#. else unknown
     800#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1646
     801#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1695
     802msgid "Size"
     803msgstr "大小"
     804
     805#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1651
     806msgid "Files"
     807msgstr "文件"
     808
     809#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1653
     810msgid "Pieces"
     811msgstr "分块数量"
     812
     813#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1654
     814msgid "Piece size"
     815msgstr "分块大小"
     816
     817#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1676
     818msgid "Magnet link"
     819msgstr "Magnet磁性链接"
     820
     821#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1693
     822#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1732
    730823msgid "Directory"
    731824msgstr "文件夹"
    732825
    733 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1306
     826#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1702
     827msgid "Priority"
     828msgstr "优先级"
     829
     830#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1707
     831msgid "Up to higher level directory"
     832msgstr "上一层文件夹"
     833
     834#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1737
    734835msgid "Torrent not found?"
    735836msgstr "种子未找到"
    736837
    737 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1314
     838#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1746
    738839msgid "File not found in torrent?"
    739840msgstr "种子中没有发现文件?"
    740841
    741 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1320
     842#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1759
    742843msgid "complete"
    743844msgstr "完成"
    744845
    745 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1321
     846#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1760
    746847msgid "bytes remaining"
    747848msgstr "剩余字节数"
    748849
    749 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1373
    750 msgid "Up to higher level directory"
    751 msgstr "上一层文件夹"
    752 
    753 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1461
     850#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1811
     851msgid "High"
     852msgstr "高"
     853
     854#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1816
     855msgid "Normal"
     856msgstr "普通"
     857
     858#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1821
     859msgid "Skip"
     860msgstr "跳过"
     861
     862#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1830
     863msgid "Save priorities"
     864msgstr "保存优先级"
     865
     866#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1945
    754867#, java-format
    755868msgid "Torrent fetched from {0}"
    756869msgstr "从{0}获取种子成功"
    757870
    758 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1489
     871#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1967
     872#, java-format
     873msgid "Torrent already running: {0}"
     874msgstr "种子已启动:{0}"
     875
     876#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1969
     877#, java-format
     878msgid "Torrent already in the queue: {0}"
     879msgstr "种子排队中:{0}"
     880
     881#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1975
    759882#, java-format
    760883msgid "Torrent at {0} was not valid"
    761884msgstr "{0}的种子中有错误"
    762885
    763 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1494
     886#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1982
    764887#, java-format
    765888msgid "Torrent was not retrieved from {0}"
    766889msgstr "从{0}获得种子失败"
    767890
    768 #~ msgid "Status"
    769 #~ msgstr "状态"
    770 #~ msgid "Hide Peers"
    771 #~ msgstr "隐藏用户"
    772 #~ msgid "Show Peers"
    773 #~ msgstr "显示用户"
    774 #~ msgid "ETA"
    775 #~ msgstr "预计剩余时间"
    776 #~ msgid "Downloaded"
    777 #~ msgstr "已下载"
    778 #~ msgid "Uploaded"
    779 #~ msgstr "已上传"
    780 #~ msgid "Down Rate"
    781 #~ msgstr "下载速度"
    782 #~ msgid "Up Rate"
    783 #~ msgstr "上传速度"
    784 #~ msgid "Stop All"
    785 #~ msgstr "停止全部"
    786 #~ msgid "Start All"
    787 #~ msgstr "启动全部"
     891#~ msgid "size: {0}B"
     892#~ msgstr "大小:{0}B"
     893#~ msgid ""
     894#~ "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title="
     895#~ "\"Torrent Status\">Status"
     896#~ msgstr ""
     897#~ "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title="
     898#~ "\"种子状态\">状态"
     899#~ msgid ""
     900#~ "<img border=\"0\" src=\"/themes/console/snark/images/showpeers.png\" "
     901#~ "title=\"Toggle Peer Visibility\" alt=\"Hide Peers\">"
     902#~ msgstr ""
     903#~ "<img border=\"0\" src=\"/themes/console/snark/images/showpeers.png\" "
     904#~ "title=\"隐藏节点\" alt=\"隐藏节点\">"
     905#~ msgid ""
     906#~ "<img border=\"0\" src=\"/themes/console/snark/images/hidepeers.png\" "
     907#~ "title=\"Toggle Peer Visibility\" alt=\"Show Peers\">"
     908#~ msgstr ""
     909#~ "<img border=\"0\" src=\"/themes/console/snark/images/hidepeers.png\" "
     910#~ "title=\"显示节点\" alt=\"显示节点\">"
     911#~ msgid ""
     912#~ "<img border=\"0\" src=\"/themes/console/snark/images/torrent.png\" title="
     913#~ "\"Loaded Torrents\">Torrent"
     914#~ msgstr ""
     915#~ "<img border=\"0\" src=\"/themes/console/snark/images/torrent.png\" title="
     916#~ "\"载入的种子\">种子"
     917#~ msgid ""
     918#~ "<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title="
     919#~ "\"Estimated Download Time\">ETA"
     920#~ msgstr ""
     921#~ "<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title=\"预"
     922#~ "计剩余时间\">预计剩余时间"
     923#~ msgid ""
     924#~ "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Data "
     925#~ "Downloaded\">RX"
     926#~ msgstr ""
     927#~ "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"下载"
     928#~ "数据量\">下载"
     929#~ msgid ""
     930#~ "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title="
     931#~ "\"Data Uploaded\">TX"
     932#~ msgstr ""
     933#~ "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"上传"
     934#~ "数据量\">上传"
     935#~ msgid ""
     936#~ "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title="
     937#~ "\"Download Speed\">Rate"
     938#~ msgstr ""
     939#~ "<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"下载"
     940#~ "速度\">下载速度"
     941#~ msgid ""
     942#~ "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title="
     943#~ "\"Upload Speed\">Rate"
     944#~ msgstr ""
     945#~ "<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"上传"
     946#~ "速度\">上传速度"
     947#~ msgid ""
     948#~ "<img src=\"/themes/console/snark/images/stop_all.png\" title=\"Stop All "
     949#~ "Torrents\" alt=\"Stop All\">"
     950#~ msgstr ""
     951#~ "<img src=\"/themes/console/snark/images/stop_all.png\" title=\"全部停止\" "
     952#~ "alt=\"全部停止\">"
     953#~ msgid ""
     954#~ "<img src=\"/themes/console/snark/images/start_all.png\" title=\"Start All "
     955#~ "Torrents\" alt=\"Start All\">"
     956#~ msgstr ""
     957#~ "<img src=\"/themes/console/snark/images/start_all.png\" title=\"全部开始"
     958#~ "\" alt=\"全部开始\">"
     959#~ msgid "Torrent file {0} does not exist"
     960#~ msgstr "种子文件{0}不存在"
     961#~ msgid "Copying torrent to {0}"
     962#~ msgstr "正在复制种子到{0}"
     963#~ msgid "from {0}"
     964#~ msgstr "来源{0}"
     965#~ msgid ""
     966#~ "<img src=\"/themes/console/snark/images/stop.png\" title=\"Stop Torrent\" "
     967#~ "alt=\"Stop\">"
     968#~ msgstr ""
     969#~ "<img src=\"/themes/console/snark/images/stop.png\" title=\"停止下载\" alt="
     970#~ "\"停止\">"
     971#~ msgid ""
     972#~ "<img src=\"/themes/console/snark/images/start.png\" title=\"Start Torrent"
     973#~ "\" alt=\"Start\">"
     974#~ msgstr ""
     975#~ "<img src=\"/themes/console/snark/images/start.png\" title=\"开始下载\" "
     976#~ "alt=\"开始\">"
     977#~ msgid ""
     978#~ "<img src=\"/themes/console/snark/images/remove.png\" title=\"Remove "
     979#~ "Torrent\" alt=\"Remove\">"
     980#~ msgstr ""
     981#~ "<img src=\"/themes/console/snark/images/remove.png\" title=\"删除种子\" "
     982#~ "alt=\"删除种子\">"
     983#~ msgid ""
     984#~ "<img src=\"/themes/console/snark/images/delete.png\" title=\"Delete "
     985#~ "Torrent + Data\" alt=\"Delete\">"
     986#~ msgstr ""
     987#~ "<img src=\"/themes/console/snark/images/delete.png\" title=\"删除种子 + 数"
     988#~ "据\" alt=\"删除种子 + 数据\">"
     989#~ msgid ""
     990#~ "<img border=\"0\" src=\"/themes/console/snark/images/add.png\">Add Torrent"
     991#~ msgstr ""
     992#~ "<img border=\"0\" src=\"/themes/console/snark/images/add.png\">添加种子"
     993#~ msgid ""
     994#~ "<img border=\"0\" src=\"/themes/console/snark/images/create.png\">Create "
     995#~ "Torrent"
     996#~ msgstr ""
     997#~ "<img border=\"0\" src=\"/themes/console/snark/images/create.png\">创建种子"
     998#~ msgid "or&nbsp;"
     999#~ msgstr "或&nbsp;"
     1000#~ msgid ""
     1001#~ "<img border=\"0\" src=\"/themes/console/snark/images/config.png"
     1002#~ "\">Configuration"
     1003#~ msgstr ""
     1004#~ "<img border=\"0\" src=\"/themes/console/snark/images/config.png\">设置"
     1005#~ msgid "Directory to store torrents and data"
     1006#~ msgstr "种子及被做种文件的保存位置。"
     1007#~ msgid ""
     1008#~ "<img border=\"0\" src=\"/themes/console/snark/images/file.png\" title="
     1009#~ "\"File\" alt=\"File\">&nbsp;"
     1010#~ msgstr ""
     1011#~ "<img border=\"0\" src=\"/themes/console/snark/images/file.png\" title=\"文"
     1012#~ "件\" alt=\"文件\">&nbsp;"
     1013#~ msgid ""
     1014#~ "<img border=\"0\" src=\"/themes/console/snark/images/size.png\" title="
     1015#~ "\"FileSize\" alt=\"FileSize\">Size"
     1016#~ msgstr ""
     1017#~ "<img border=\"0\" src=\"/themes/console/snark/images/size.png\" title=\"文"
     1018#~ "件大小\" alt=\"文件大小\">大小"
     1019#~ msgid ""
     1020#~ "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title="
     1021#~ "\"Download Status\">Status"
     1022#~ msgstr ""
     1023#~ "<img border=\"0\" src=\"/themes/console/snark/images/status.png\" title="
     1024#~ "\"下载状态\">状态"
    7881025#~ msgid "Details"
    7891026#~ msgstr "详情"
    790 #~ msgid "Stop"
    791 #~ msgstr "停止"
    792 #~ msgid "Start"
    793 #~ msgstr "启动"
    794 #~ msgid "Remove"
    795 #~ msgstr "移除"
    796 #~ msgid "Delete"
    797 #~ msgstr "删除"
    798 #~ msgid "Add Torrent"
    799 #~ msgstr "添加种子"
    800 #~ msgid "Create Torrent"
    801 #~ msgstr "创建种子"
    802 #~ msgid "or"
    803 #~ msgstr "或"
    804 #~ msgid "Configuration"
    805 #~ msgstr "设置"
    806 #~ msgid "File"
    807 #~ msgstr "文件"
    808 #~ msgid "Size"
    809 #~ msgstr "大小"
    8101027#~ msgid "Cannot change the I2CP settings while torrents are active"
    8111028#~ msgstr "正在下载/上传,无法更改I2CP设置"
  • apps/i2ptunnel/java/build.xml

    r271f330 r581cd72  
    4949        <!-- Update the messages_*.po files.
    5050             We need to supply the bat file for windows, and then change the fail property to true -->
    51         <exec executable="sh" osfamily="unix" failifexecutionfails="false" >
     51        <exec executable="sh" osfamily="unix" failifexecutionfails="true" >
    5252            <arg value="./bundle-messages.sh" />
    5353        </exec>
    54         <exec executable="sh" osfamily="mac" failifexecutionfails="false" >
     54        <exec executable="sh" osfamily="mac" failifexecutionfails="true" >
    5555            <arg value="./bundle-messages.sh" />
    5656        </exec>
    57         <exec executable="cmd" osfamily="windows" failifexecutionfails="false" >
    58             <arg value="/c" />
    59             <arg value="bundle-messages.bat" />
     57        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     58            <arg value="./bundle-messages.sh" />
    6059        </exec>
    6160    </target>
     
    7170            <arg value="-p" />
    7271        </exec>
    73         <exec executable="cmd" osfamily="windows" failifexecutionfails="true" >
    74             <arg value="/c" />
    75             <arg value="bundle-messages.bat" />
     72        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     73            <arg value="./bundle-messages.sh" />
    7674            <arg value="-p" />
    7775        </exec>
     
    142140            windowtitle="I2PTunnel" />
    143141    </target>
     142
     143    <target name="compileTest">
     144        <mkdir dir="./build" />
     145        <mkdir dir="./build/obj" />
     146        <javac srcdir="./src:./test" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" >
     147            <compilerarg line="${javac.compilerargs}" />
     148            <classpath>
     149                <pathelement location="../../../core/java/build/i2p.jar" />
     150                <pathelement location="../../ministreaming/java/build/mstreaming.jar" />
     151            </classpath>
     152        </javac>
     153    </target>
     154    <target name="test" depends="clean, compileTest">
     155        <junit printsummary="on" fork="yes">
     156            <classpath>
     157                <pathelement path="${classpath}" />
     158                <pathelement location="./build/obj" />
     159                <pathelement location="../../../core/java/build/i2p.jar" />
     160            </classpath>
     161            <batchtest>
     162                <fileset dir="./test/">
     163                    <include name="**/*Test.java" />
     164                </fileset>
     165            </batchtest>
     166            <formatter type="xml"/>
     167        </junit>
     168        <mkdir dir="../../../reports/" />
     169        <mkdir dir="../../../reports/i2ptunnel/" />
     170        <mkdir dir="../../../reports/i2ptunnel/junit/" />
     171        <delete>
     172            <fileset dir="../../../reports/i2ptunnel/junit">
     173                <include name="TEST-*.xml"/>
     174            </fileset>
     175        </delete>
     176        <copy todir="../../../reports/i2ptunnel/junit">
     177            <fileset dir=".">
     178                <include name="TEST-*.xml"/>
     179            </fileset>
     180        </copy>
     181        <delete>
     182            <fileset dir=".">
     183                <include name="TEST-*.xml"/>
     184            </fileset>
     185        </delete>
     186    </target>
     187
    144188    <target name="clean">
    145189        <delete dir="./build" />
  • apps/i2ptunnel/java/bundle-messages.sh

    r271f330 r581cd72  
    1919fi
    2020
     21# on windows, one must specify the path of commnad find
     22# since windows has its own retarded version of find.
     23if which find|grep -q -i windows ; then
     24        export PATH=.:/bin:/usr/local/bin:$PATH
     25fi
     26# Fast mode - update ondemond
     27echo Placing a file named messages_{LangCode}.only in locale folder,
     28echo will limit .po file update to the language specified by {LangCode}.
     29LG2=$(find ../locale -iname messages_*.only|tail -1)
     30[ LG2 ] && LG2=${LG2#../locale/messages_} && LG2=${LG2%.only}
     31
    2132# add ../java/ so the refs will work in the po file
    2233JPATHS="../java/src ../jsp/WEB-INF"
     
    2637        LG=${i#../locale/messages_}
    2738        LG=${LG%.po}
     39
     40        # skip, if specified
     41        if [ $LG2 ]; then
     42                [ $LG != $LG2 ] && continue || echo INFO: Language update is set to [$LG2] only.
     43        fi
    2844
    2945        if [ "$POUPDATE" = "1" ]
     
    7389        fi
    7490
    75         echo "Generating ${CLASS}_$LG ResourceBundle..."
     91    if [ "$LG" != "en" ]
     92    then
     93        # only generate for non-source language
     94        echo "Generating ${CLASS}_$LG ResourceBundle..."
    7695
    77         # convert to class files in build/obj
    78         msgfmt --java --statistics -r $CLASS -l $LG -d ../jsp/WEB-INF/classes $i
    79         if [ $? -ne 0 ]
    80         then
    81                 echo 'Warning - msgfmt failed, not updating translations'
    82                 break
    83         fi
     96        # convert to class files in build/obj
     97        msgfmt --java --statistics -r $CLASS -l $LG -d ../jsp/WEB-INF/classes $i
     98        if [ $? -ne 0 ]
     99        then
     100            echo 'Warning - msgfmt failed, not updating translations'
     101            break
     102        fi
     103    fi
    84104done
    85105rm -f $TMPFILE
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java

    r271f330 r581cd72  
    170170                // since we are passing the stream on to I2PTunnelRunner
    171171                line = DataHelper.readLine(in);
     172                if(line == null) {
     173                    break;
     174                }
    172175                line = line.trim();
    173176                if (_log.shouldLog(Log.DEBUG))
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java

    r271f330 r581cd72  
    1111import java.net.Socket;
    1212import java.net.SocketException;
     13import java.util.ArrayList;
     14import java.util.HashMap;
    1315import java.util.Iterator;
     16import java.util.List;
     17import java.util.Map;
    1418import java.util.Properties;
    1519import java.util.zip.GZIPOutputStream;
     
    9599
    96100            StringBuilder command = new StringBuilder(128);
    97             Properties headers = readHeaders(in, command,
     101            Map<String, List<String>> headers = readHeaders(in, command,
    98102                CLIENT_SKIPHEADERS, getTunnel().getContext());
    99             headers.setProperty(HASH_HEADER, socket.getPeerDestination().calculateHash().toBase64());
    100             headers.setProperty(DEST32_HEADER, Base32.encode(socket.getPeerDestination().calculateHash().getData()) + ".b32.i2p" );
    101             headers.setProperty(DEST64_HEADER, socket.getPeerDestination().toBase64());
     103           
     104            addEntry(headers, HASH_HEADER, socket.getPeerDestination().calculateHash().toBase64());
     105            addEntry(headers, DEST32_HEADER, Base32.encode(socket.getPeerDestination().calculateHash().getData()) + ".b32.i2p");
     106            addEntry(headers, DEST64_HEADER, socket.getPeerDestination().toBase64());
    102107
    103108            if ( (_spoofHost != null) && (_spoofHost.trim().length() > 0) )
    104                 headers.setProperty("Host", _spoofHost);
    105             headers.setProperty("Connection", "close");
     109                setEntry(headers, "Host", _spoofHost);
     110            setEntry(headers, "Connection", "close");
    106111            // we keep the enc sent by the browser before clobbering it, since it may have
    107112            // been x-i2p-gzip
    108             String enc = headers.getProperty("Accept-encoding");
    109             String altEnc = headers.getProperty("X-Accept-encoding");
     113            String enc = getEntryOrNull(headers, "Accept-encoding");
     114            String altEnc = getEntryOrNull(headers, "X-Accept-encoding");
    110115           
    111116            // according to rfc2616 s14.3, this *should* force identity, even if
    112117            // "identity;q=1, *;q=0" didn't. 
    113             headers.setProperty("Accept-encoding", "");
     118            setEntry(headers, "Accept-encoding", "");
    114119            String modifiedHeader = formatHeaders(headers, command);
    115120           
     
    235240                //Change headers to protect server identity
    236241                StringBuilder command = new StringBuilder(128);
    237                 Properties headers = readHeaders(serverin, command,
     242                Map<String, List<String>> headers = readHeaders(serverin, command,
    238243                    SERVER_SKIPHEADERS, _ctx);
    239244                String modifiedHeaders = formatHeaders(headers, command);
     
    361366    }
    362367
    363     private static String formatHeaders(Properties headers, StringBuilder command) {
     368    protected static String formatHeaders(Map<String, List<String>> headers, StringBuilder command) {
    364369        StringBuilder buf = new StringBuilder(command.length() + headers.size() * 64);
    365370        buf.append(command.toString().trim()).append("\r\n");
    366         for (Iterator iter = headers.keySet().iterator(); iter.hasNext(); ) {
     371        for (Iterator<String> iter = headers.keySet().iterator(); iter.hasNext(); ) {
    367372            String name = (String)iter.next();
    368             String val  = headers.getProperty(name);
    369             buf.append(name.trim()).append(": ").append(val.trim()).append("\r\n");
     373            for(String val: headers.get(name)) {
     374                buf.append(name.trim()).append(": ").append(val.trim()).append("\r\n");
     375            }
    370376        }
    371377        buf.append("\r\n");
     
    375381    /** ridiculously long, just to prevent OOM DOS @since 0.7.13 */
    376382    private static final int MAX_HEADERS = 60;
    377 
    378     private static Properties readHeaders(InputStream in, StringBuilder command, String[] skipHeaders, I2PAppContext ctx) throws IOException {
    379         Properties headers = new Properties();
     383   
     384    /**
     385     * Add an entry to the multimap.
     386     */
     387    private static void addEntry(Map<String, List<String>> headers, String key, String value) {
     388        List<String> entry = headers.get(key);
     389        if(entry == null) {
     390                headers.put(key, entry = new ArrayList<String>());
     391        }
     392        entry.add(value);       
     393    }
     394   
     395    /**
     396     * Remove the other matching entries and set this entry as the only one.
     397     */
     398    private static void setEntry(Map<String, List<String>> headers, String key, String value) {
     399        List<String> entry = headers.get(key);
     400        if(entry == null) {
     401                headers.put(key, entry = new ArrayList<String>());
     402        }
     403        entry.clear();
     404        entry.add(value);
     405    }
     406   
     407    /**
     408     * Get the first matching entry in the multimap
     409     * @return the first matching entry or null
     410     */
     411    private static String getEntryOrNull(Map<String, List<String>> headers, String key) {
     412        List<String> entries = headers.get(key);
     413        if(entries == null || entries.size() < 1) {
     414                return null;
     415        }
     416        else {
     417                return entries.get(0);
     418        }
     419    }
     420
     421    protected static Map<String, List<String>> readHeaders(InputStream in, StringBuilder command, String[] skipHeaders, I2PAppContext ctx) throws IOException {
     422        HashMap<String, List<String>> headers = new HashMap<String, List<String>>();
    380423        StringBuilder buf = new StringBuilder(128);
    381424       
     
    439482                }
    440483
    441                 headers.setProperty(name, value);
     484                addEntry(headers, name, value);
    442485                //if (_log.shouldLog(Log.DEBUG))
    443486                //    _log.debug("Read the header [" + name + "] = [" + value + "]");
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java

    r271f330 r581cd72  
    22
    33import java.io.File;
    4 import java.io.FileOutputStream;
    54import java.io.IOException;
    65import java.util.ArrayList;
     
    87import java.util.HashMap;
    98import java.util.HashSet;
    10 import java.util.Iterator;
    119import java.util.List;
    1210import java.util.Map;
    1311import java.util.Properties;
    1412import java.util.Set;
    15 import java.util.TreeMap;
    1613
    1714import net.i2p.I2PAppContext;
     
    2118import net.i2p.util.I2PAppThread;
    2219import net.i2p.util.Log;
    23 import net.i2p.util.SecureFileOutputStream;
     20import net.i2p.util.OrderedProperties;
    2421
    2522/**
     
    224221     *
    225222     */
    226     public void saveConfig() {
     223    public void saveConfig() throws IOException {
    227224        saveConfig(_configFile);
    228225    }
     226
    229227    /**
    230228     * Save the configuration of all known tunnels to the given file
    231229     *
    232230     */
    233     public void saveConfig(String configFile) {
     231    public void saveConfig(String configFile) throws IOException {
    234232        _configFile = configFile;
    235233        File cfgFile = new File(configFile);
     
    240238            parent.mkdirs();
    241239       
    242        
    243         TreeMap map = new TreeMap();
     240        Properties map = new OrderedProperties();
    244241        for (int i = 0; i < _controllers.size(); i++) {
    245242            TunnelController controller = _controllers.get(i);
     
    248245        }
    249246       
    250         StringBuilder buf = new StringBuilder(1024);
    251         for (Iterator iter = map.keySet().iterator(); iter.hasNext(); ) {
    252             String key = (String)iter.next();
    253             String val = (String)map.get(key);
    254             buf.append(key).append('=').append(val).append('\n');
    255         }
    256        
    257         FileOutputStream fos = null;
    258         try {
    259             fos = new SecureFileOutputStream(cfgFile);
    260             fos.write(buf.toString().getBytes("UTF-8"));
    261             if (_log.shouldLog(Log.INFO))
    262                 _log.info("Config written to " + cfgFile.getPath());
    263         } catch (IOException ioe) {
    264             _log.error("Error writing out the config");
    265         } finally {
    266             if (fos != null) try { fos.close(); } catch (IOException ioe) {}
    267         }
     247        DataHelper.storeProps(map, cfgFile);
    268248    }
    269249   
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java

    r271f330 r581cd72  
    116116            return "true".equalsIgnoreCase(tun.getSharedClient());
    117117        else
    118             return true;
     118            return false;
    119119    }
    120120   
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java

    r271f330 r581cd72  
    99 */
    1010
    11 import java.util.concurrent.ConcurrentHashMap;
     11import java.io.IOException;
    1212import java.util.ArrayList;
    1313import java.util.Arrays;
     
    1818import java.util.Set;
    1919import java.util.StringTokenizer;
     20import java.util.concurrent.ConcurrentHashMap;
    2021
    2122import net.i2p.I2PAppContext;
     
    300301        }
    301302       
    302         List msgs = doSave();
    303         msgs.add(0, "Changes saved");
     303        List<String> msgs = doSave();
    304304        return getMessages(msgs);
    305305    }
    306     private List doSave() {
    307         _group.saveConfig();
    308         return _group.clearAllMessages();
     306
     307    private List<String> doSave() {
     308        List<String> rv = _group.clearAllMessages();
     309        try {
     310            _group.saveConfig();
     311            rv.add(0, _("Configuration changes saved"));
     312        } catch (IOException ioe) {
     313            _log.error("Failed to save config file", ioe);
     314            rv.add(0, _("Failed to save configuration") + ": " + ioe.toString());
     315        }
     316        return rv;
    309317    }
     318
    310319    private String deleteTunnel() {
    311320        if (!_removeConfirmed)
     
    10961105    }
    10971106   
    1098     private static String getMessages(List msgs) {
     1107    private static String getMessages(List<String> msgs) {
    10991108        StringBuilder buf = new StringBuilder(128);
    11001109        getMessages(msgs, buf);
     
    11021111    }
    11031112
    1104     private static void getMessages(List msgs, StringBuilder buf) {
     1113    private static void getMessages(List<String> msgs, StringBuilder buf) {
    11051114        if (msgs == null) return;
    11061115        for (int i = 0; i < msgs.size(); i++) {
    1107             buf.append((String)msgs.get(i)).append("\n");
     1116            buf.append(msgs.get(i)).append("\n");
    11081117        }
    11091118    }
  • apps/i2ptunnel/jsp/editServer.jsp

    r271f330 r581cd72  
    375375            <div class="rowItem">
    376376              <div id="optionsField" class="rowItem">
    377                   <label><%=intl._("Inbound connection limits (0 to disable)")%><br><%=intl._("Per client")%>:</label>
     377                  <label><%=intl._("Inbound connection limits (0=unlimited)")%><br><%=intl._("Per client")%>:</label>
    378378              </div>
    379379              <div id="portField" class="rowItem">
     
    406406            <div class="rowItem">
    407407              <div id="optionsField" class="rowItem">
    408                   <label><%=intl._("Max concurrent connections (0 to disable)")%>:</label>
     408                  <label><%=intl._("Max concurrent connections (0=unlimited)")%>:</label>
    409409              </div>
    410410              <div id="portField" class="rowItem">
  • apps/i2ptunnel/locale/messages_nl.po

    r271f330 r581cd72  
    99"Project-Id-Version: I2P i2ptunnel\n"
    1010"Report-Msgid-Bugs-To: \n"
    11 "POT-Creation-Date: 2011-01-20 19:26+0000\n"
     11"POT-Creation-Date: 2011-02-13 17:44+0000\n"
    1212"PO-Revision-Date: 2010-06-15 14:09+0100\n"
    1313"Last-Translator: duck <duck@mail.i2p>\n"
     
    4141msgstr "intern"
    4242
    43 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:170
     43#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:171
    4444msgid ""
    4545"Invalid form submission, probably because you used the 'back' or 'reload' "
     
    4949"'reload' button van je browser hebt gebruikt. Verzend opnieuw."
    5050
    51 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:217
     51#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:218
    5252msgid "Configuration reloaded for all tunnels"
    5353msgstr "Configuratie van alle tunnels opnieuw geladen"
    5454
    5555#. and give them something to look at in any case
    56 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:229
     56#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:230
    5757msgid "Starting tunnel"
    5858msgstr "Opstarten van tunnel"
    5959
    6060#. and give them something to look at in any case
    61 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:242
     61#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:243
    6262msgid "Stopping tunnel"
    6363msgstr "Stoppen van tunnel"
    6464
    65 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:389
     65#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:311
     66msgid "Configuration changes saved"
     67msgstr ""
     68
     69#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:314
     70msgid "Failed to save configuration"
     71msgstr ""
     72
     73#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
    6674msgid "New Tunnel"
    6775msgstr "Nieuwe Tunnel"
    6876
    69 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:409
     77#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
    7078msgid "Standard client"
    7179msgstr "Standaard client"
    7280
    73 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:410
     81#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
    7482msgid "HTTP client"
    7583msgstr "HTTP client"
    7684
    77 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:411
     85#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
    7886msgid "IRC client"
    7987msgstr "IRC client"
    8088
    81 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:412
     89#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:421
    8290msgid "Standard server"
    8391msgstr "Standaard server"
    8492
    85 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:413
     93#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:422
    8694msgid "HTTP server"
    8795msgstr "HTTP server"
    8896
    89 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:414
     97#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:423
    9098msgid "SOCKS 4/4a/5 proxy"
    9199msgstr "SOCKS 4/4a/5 proxy"
    92100
    93 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:415
     101#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:424
    94102msgid "SOCKS IRC proxy"
    95103msgstr "SOCKS IRC proxy"
    96104
    97 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:416
     105#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:425
    98106msgid "CONNECT/SSL/HTTPS proxy"
    99107msgstr "CONNECT/SSL/HTTPS proxy"
    100108
    101 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:417
     109#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:426
    102110msgid "IRC server"
    103111msgstr "IRC server"
    104112
    105 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
     113#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:427
    106114msgid "Streamr client"
    107115msgstr "Streamr client"
    108116
    109 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
     117#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:428
    110118msgid "Streamr server"
    111119msgstr "Streamr server"
    112120
    113 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
     121#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:429
    114122msgid "HTTP bidir"
    115123msgstr "HTTP bidir"
    116124
    117 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:508
     125#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
    118126#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:290
    119127msgid "Host not set"
    120128msgstr "Host niet opgegeven"
    121129
    122 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:512
     130#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:521
    123131#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:272
    124132msgid "Port not set"
     
    605613
    606614#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:451
    607 msgid "Inbound connection limits (0 to disable)"
    608 msgstr "Inkomende connectie limieten (0 om uit te schakelen)"
     615msgid "Inbound connection limits (0=unlimited)"
     616msgstr "Inkomende connectie limieten (0=onbeperkt)"
    609617
    610618#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
     
    629637
    630638#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:475
    631 msgid "Max concurrent connections (0 to disable)"
    632 msgstr "Maximum gelijktijdige connecties (0 om uit te schakelen)"
     639msgid "Max concurrent connections (0=unlimited)"
     640msgstr "Maximum gelijktijdige connecties (0=onbeperkt)"
    633641
    634642#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
  • apps/i2ptunnel/locale/messages_zh.po

    r271f330 r581cd72  
    99"Project-Id-Version: I2P i2ptunnel\n"
    1010"Report-Msgid-Bugs-To: \n"
    11 "POT-Creation-Date: 2010-10-04 02:45+0000\n"
    12 "PO-Revision-Date: 2010-05-29 10:57+0800\n"
    13 "Last-Translator: walking <walking@mail.i2p>\n"
     11"POT-Creation-Date: 2011-02-12 12:06+0000\n"
     12"PO-Revision-Date: 2011-02-12 20:07+0800\n"
     13"Last-Translator: \n"
    1414"Language-Team: foo <foo@bar>\n"
    1515"MIME-Version: 1.0\n"
     
    1818"X-Poedit-Language: Chinese\n"
    1919
    20 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:492
     20#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:474
    2121#, java-format
    22 msgid ""
    23 "To visit the destination in your host database, click <a href=\"{0}\">here</"
    24 "a>. To visit the conflicting addresshelper destination, click <a href=\"{1}"
    25 "\">here</a>."
    26 msgstr ""
    27 "域名冲突:要访问您本地【地址簿】中设置的目标主机(相当与IP),请点击<a href="
    28 "\"{0}\">这里</a>。要访问【地址助手】返回的目标主机请点<a href=\"{1}\">这里</"
    29 "a>。"
    30 
    31 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:909
    32 msgid ""
    33 "Click a link below to look for an address helper by using a \"jump\" service:"
    34 msgstr ""
    35 "请点击下面的链接通过【跳转(Jump)】服务提供的【地址助手】链接跳转至域名对应的"
    36 "主机:"
    37 
    38 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:372
     22msgid "To visit the destination in your host database, click <a href=\"{0}\">here</a>. To visit the conflicting addresshelper destination, click <a href=\"{1}\">here</a>."
     23msgstr "域名冲突:要访问您本地【地址簿】中设置的目标主机(相当与IP),请点击<a href=\"{0}\">这里</a>。要访问【地址助手】返回的目标主机请点<a href=\"{1}\">这里</a>。"
     24
     25#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:931
     26msgid "Click a link below to look for an address helper by using a \"jump\" service:"
     27msgstr "请点击下面的链接通过【跳转(Jump)】服务提供的【地址助手】链接跳转至域名对应的主机:"
     28
     29#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:326
     30#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:336
     31msgid "internal"
     32msgstr "内部"
     33
     34#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:171
     35msgid "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."
     36msgstr "网页提交无效,可能的原因是您使用了浏览器的“后退”和“刷新”按钮,导致表单过期,请重新提交。"
     37
     38#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:218
     39msgid "Configuration reloaded for all tunnels"
     40msgstr "所有隧道都已根据当前配置重启"
     41
     42#. and give them something to look at in any case
     43#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:230
     44msgid "Starting tunnel"
     45msgstr "正在启动隧道"
     46
     47#. and give them something to look at in any case
     48#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:243
     49msgid "Stopping tunnel"
     50msgstr "正在关闭隧道"
     51
     52#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:311
     53msgid "Configuration changes saved"
     54msgstr "配置修改成功"
     55
     56#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:314
     57msgid "Failed to save configuration"
     58msgstr "配置保存失败"
     59
     60#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
    3961msgid "New Tunnel"
    4062msgstr "新建隧道"
    4163
    42 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:392
     64#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
    4365msgid "Standard client"
    4466msgstr "标准客户端"
    4567
    46 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:393
     68#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
    4769msgid "HTTP client"
    4870msgstr "HTTP 客户端"
    4971
    50 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:394
     72#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
    5173msgid "IRC client"
    5274msgstr "IRC 客户端"
    5375
    54 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:395
     76#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:421
    5577msgid "Standard server"
    5678msgstr "标准服务器"
    5779
    58 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:396
     80#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:422
    5981msgid "HTTP server"
    6082msgstr "HTTP 服务器"
    6183
    62 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:397
     84#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:423
    6385msgid "SOCKS 4/4a/5 proxy"
    6486msgstr "SOCKS4/4A/5 代理"
    6587
    66 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
     88#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:424
    6789msgid "SOCKS IRC proxy"
    6890msgstr "SOCKS IRC 代理"
    6991
    70 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:399
     92#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:425
    7193msgid "CONNECT/SSL/HTTPS proxy"
    7294msgstr "CONNECT/SSL/HTTPS 代理"
    7395
    74 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:400
     96#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:426
    7597msgid "IRC server"
    7698msgstr "IRC 服务器"
    7799
    78 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:401
     100#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:427
    79101msgid "Streamr client"
    80102msgstr "Streamr 客户端"
    81103
    82 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:402
     104#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:428
    83105msgid "Streamr server"
    84106msgstr "Streamr 服务器"
    85107
    86 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:403
     108#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:429
    87109msgid "HTTP bidir"
    88110msgstr "双向http"
     111
     112#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
     113#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:290
     114msgid "Host not set"
     115msgstr "主机未设置"
     116
     117#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:521
     118#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:272
     119msgid "Port not set"
     120msgstr "端口未设置"
    89121
    90122#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:73
     
    112144#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116
    113145#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:246
    114 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:270
     146#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:279
    115147msgid "Type"
    116148msgstr "类型"
     
    119151#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120
    120152#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226
    121 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:358
     153#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:386
    122154msgid "Description"
    123155msgstr "描述"
     
    130162#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:130
    131163#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:132
    132 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167
     164#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:162
    133165msgid "Access Point"
    134166msgstr "接入点"
    135167
    136168#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137
    137 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:179
    138 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:207
    139 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:157
    140 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:172
    141 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:228
     169#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150
     170#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:192
     171#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:153
     172#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167
     173#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:213
    142174msgid "required"
    143175msgstr "必要"
    144176
    145 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150
    146 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142
    147 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:183
     177#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:159
     178#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:178
    148179msgid "Reachable by"
    149180msgstr "访问地址"
    150181
    151 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:162
    152 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:195
    153 msgid "Locally (127.0.0.1)"
    154 msgstr "本地(127.0.0.1)"
    155 
    156 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:166
    157 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199
    158 msgid "Everyone (0.0.0.0)"
    159 msgstr "任何人(0.0.0.0)"
    160 
    161 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:170
    162 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203
    163 msgid "LAN Hosts (Please specify your LAN address)"
    164 msgstr "局域网(请指定LAN地址)"
    165 
    166 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:186
    167 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:205
    168 msgid "Other"
    169 msgstr "其他"
    170 
    171 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:195
     182#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:180
    172183msgid "Outproxies"
    173184msgstr "出口代理"
    174185
    175 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202
     186#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:187
    176187msgid "Tunnel Destination"
    177188msgstr "隧道目标"
    178189
    179 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:214
     190#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:199
    180191msgid "name or destination"
    181192msgstr "名称或描述"
    182193
    183 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220
     194#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202
     195msgid "b32 not recommended"
     196msgstr "请避免使用b32地址。"
     197
     198#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:208
    184199msgid "Shared Client"
    185200msgstr "共享客户端"
    186201
    187 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
    188 msgid ""
    189 "(Share tunnels with other clients and irc/httpclients? Change requires "
    190 "restart of client proxy)"
     202#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:212
     203msgid "(Share tunnels with other clients and irc/httpclients? Change requires restart of client proxy)"
    191204msgstr "(与其他客户端例如IRC/HTTP共享隧道?修改需要重新启动)"
    192205
    193 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
     206#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:216
    194207#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124
    195208msgid "Auto Start"
    196209msgstr "自动启动"
    197210
    198 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:232
     211#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220
    199212#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128
    200213msgid "(Check the Box for 'YES')"
    201214msgstr "(选中表示\"是\")"
    202215
    203 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:234
    204 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:249
     216#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:222
     217#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:243
    205218msgid "Advanced networking options"
    206219msgstr "高级网络设置"
    207220
    208 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:236
    209 msgid ""
    210 "(NOTE: when this client proxy is configured to share tunnels, then these "
    211 "options are for all the shared proxy clients!)"
    212 msgstr ""
    213 "(注意:此客户代理被设置使用共享隧道时,这些设置将影响所有使用共享隧道的客户"
    214 "端!)"
    215 
    216 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:238
    217 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:251
     221#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
     222msgid "(NOTE: when this client proxy is configured to share tunnels, then these options are for all the shared proxy clients!)"
     223msgstr "(注意:此客户代理被设置使用共享隧道时,这些设置将影响所有使用共享隧道的客户端!)"
     224
     225#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:226
     226#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:245
    218227msgid "Tunnel Options"
    219228msgstr "隧道选项"
    220229
    221 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:240
    222 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:253
     230#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
     231#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:247
    223232msgid "Length"
    224233msgstr "长度"
    225234
    226 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247
    227 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:260
     235#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:235
     236#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:254
    228237msgid "0 hop tunnel (low anonymity, low latency)"
    229238msgstr "直连(匿名性无,延迟低)"
    230239
    231 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:251
    232 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:264
     240#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
     241#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:258
    233242msgid "1 hop tunnel (medium anonymity, medium latency)"
    234243msgstr "隧道跳点x1(匿名性中,延迟中)"
    235244
    236 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:255
    237 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:268
     245#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:243
     246#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:262
    238247msgid "2 hop tunnel (high anonymity, high latency)"
    239248msgstr "隧道跳点x2(匿名性高,延迟高)"
    240249
    241 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:259
    242 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:272
     250#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247
     251#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:266
    243252msgid "3 hop tunnel (very high anonymity, poor performance)"
    244253msgstr "隧道跳点x3(匿名性优,影响性能)"
    245254
    246 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268
    247 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:281
     255#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:256
     256#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:275
    248257msgid "hop tunnel (very poor performance)"
    249258msgstr "跳点隧道(严重影响性能)"
    250259
    251 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:273
    252 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:286
     260#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:261
     261#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:280
    253262msgid "Variance"
    254263msgstr "随机变化"
    255264
    256 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280
    257 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:293
     265#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268
     266#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:287
    258267msgid "0 hop variance (no randomisation, consistant performance)"
    259268msgstr "隧道长度恒定(随机性无,性能稳定)"
    260269
    261 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284
    262 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:297
    263 msgid ""
    264 "+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
     270#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:272
     271#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:291
     272msgid "+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
    265273msgstr "隧道长度+ 0-1(随机性中,影响性能)"
    266274
    267 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:288
    268 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:301
    269 msgid ""
    270 "+ 0-2 hop variance (high additive randomisation, subtractive performance)"
     275#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:276
     276#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:295
     277msgid "+ 0-2 hop variance (high additive randomisation, subtractive performance)"
    271278msgstr "隧道长度+ 0-2(随机性高,影响性能)"
    272279
    273 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:292
    274 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:305
     280#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280
     281#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:299
    275282msgid "+/- 0-1 hop variance (standard randomisation, standard performance)"
    276283msgstr "隧道长度+/- 0-1(随机性标准,正常性能)"
    277284
    278 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296
    279 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:309
     285#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284
     286#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:303
    280287msgid "+/- 0-2 hop variance (not recommended)"
    281288msgstr "隧道程度+/- 0-2(不推荐)"
    282289
    283 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308
    284 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:321
     290#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296
     291#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:315
    285292msgid "hop variance"
    286293msgstr "节点数量"
    287294
    288 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:313
    289 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:326
     295#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:301
     296#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:320
    290297msgid "Count"
    291298msgstr "计数"
    292299
    293 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:320
    294 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:333
     300#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308
     301#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:327
    295302msgid "1 inbound, 1 outbound tunnel  (low bandwidth usage, less reliability)"
    296303msgstr "出/入站隧道x1(带宽低,低可靠性)"
    297304
    298 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:324
    299 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:337
    300 msgid ""
    301 "2 inbound, 2 outbound tunnels (standard bandwidth usage, standard "
    302 "reliability)"
     305#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:312
     306#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:331
     307msgid "2 inbound, 2 outbound tunnels (standard bandwidth usage, standard reliability)"
    303308msgstr "出/入站隧道x2(带宽标准,标准稳定性)"
    304309
    305 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:328
    306 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:341
    307 msgid ""
    308 "3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)"
     310#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:316
     311#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:335
     312msgid "3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)"
    309313msgstr "出/入站隧道x3(带宽高,高稳定性)"
    310314
    311 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337
    312 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:350
     315#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:325
     316#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:344
    313317msgid "tunnels"
    314318msgstr "隧道"
    315319
    316 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:342
    317 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:355
     320#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:330
     321#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:349
    318322msgid "Backup Count"
    319323msgstr "备用数量"
    320324
    321 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349
    322 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:362
     325#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337
     326#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:356
    323327msgid "0 backup tunnels (0 redundancy, no added resource usage)"
    324328msgstr "无备用隧道(无冗余,不增加资源占用)"
    325329
    326 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:353
    327 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:366
     330#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:341
     331#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:360
    328332msgid "1 backup tunnel each direction (low redundancy, low resource usage)"
    329333msgstr "备用隧道对x1 (低冗余,低资源占用)"
    330334
    331 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:357
    332 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:370
    333 msgid ""
    334 "2 backup tunnels each direction (medium redundancy, medium resource usage)"
     335#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:345
     336#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:364
     337msgid "2 backup tunnels each direction (medium redundancy, medium resource usage)"
    335338msgstr "备用隧道对x2 (中冗余,中资源占用)"
    336339
    337 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:361
    338 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:374
     340#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349
     341#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:368
    339342msgid "3 backup tunnels each direction (high redundancy, high resource usage)"
    340343msgstr "备用隧道对x3 (高冗余,高资源占用)"
    341344
    342 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:370
    343 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:383
     345#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:358
     346#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:377
    344347msgid "backup tunnels"
    345348msgstr "备用隧道"
    346349
    347 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:377
    348 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:390
     350#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:365
     351#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:384
    349352msgid "Profile"
    350353msgstr "连接类型"
    351354
    352 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:384
    353 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:397
     355#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:372
     356#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:391
    354357msgid "interactive connection"
    355358msgstr "速度连接"
    356359
    357 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
    358 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
     360#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:376
     361#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:395
    359362msgid "bulk connection (downloads/websites/BT)"
    360363msgstr "效率连接(下载/WEB/BT)"
    361364
    362 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:390
     365#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:378
    363366msgid "Delay Connect"
    364367msgstr "连接延迟断开"
    365368
    366 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:394
     369#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:382
    367370msgid "for request/response connections"
    368371msgstr "单请求/响应连接"
    369372
    370 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:398
    371 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:405
    372 msgid "I2CP Options"
    373 msgstr "I2CP选项"
    374 
    375 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:400
    376 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:146
    377 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:407
     373#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:386
     374#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:399
     375msgid "Router I2CP Address"
     376msgstr "路由器I2CP地址"
     377
     378#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
     379#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142
     380#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
    378381msgid "Host"
    379382msgstr "主机"
    380383
    381 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:404
    382 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:152
    383 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:411
     384#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:396
     385#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:148
     386#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:409
    384387#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244
    385388#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266
     
    387390msgstr "端口"
    388391
    389 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:410
    390 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443
     392#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:406
     393#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:479
    391394msgid "Reduce tunnel quantity when idle"
    392395msgstr "空闲时缩减隧道数量"
    393396
    394 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412
    395 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426
    396 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434
    397 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:446
    398 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456
    399 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417
    400 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433
    401 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:445
     397#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:408
     398#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:422
     399#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430
     400#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:442
     401#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:452
     402#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472
     403#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:486
     404#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:419
     405#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:481
    402406msgid "Enable"
    403407msgstr "启用"
    404408
    405 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416
    406 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:449
     409#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412
     410#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485
    407411msgid "Reduced tunnel count"
    408412msgstr "削减后的隧道数量"
    409413
    410 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420
    411 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
    412 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
     414#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416
     415#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:436
     416#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489
    413417msgid "Idle minutes"
    414418msgstr "空闲时间(分钟)"
    415419
    416 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:424
     420#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420
    417421msgid "Close tunnels when idle"
    418422msgstr "空闲时关闭隧道"
    419423
    420 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430
     424#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426
    421425msgid "New Keys on Reopen"
    422426msgstr "重新打开隧道时使用新密钥"
    423427
    424 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:438
     428#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434
     429#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:435
    425430msgid "Disable"
    426431msgstr "禁用"
    427432
    428 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:444
     433#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
    429434msgid "Delay tunnel open until required"
    430435msgstr "仅在请求时打开"
    431436
    432 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:454
     437#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:450
    433438msgid "Persistent private key"
    434439msgstr "永久私有密钥"
    435440
    436 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460
     441#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456
    437442msgid "File"
    438443msgstr "文件"
    439444
    440 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464
    441 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:235
     445#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460
     446#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:220
    442447msgid "Local destination"
    443448msgstr "本地目标"
    444449
    445 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:468
     450#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464
    446451msgid "(if known)"
    447452msgstr "(如果已知)"
    448453
    449 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472
    450 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489
     454#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:470
     455msgid "Local Authorization"
     456msgstr "本地认证"
     457
     458#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
     459#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:490
     460msgid "Username"
     461msgstr "用户名"
     462
     463#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:480
     464#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:494
     465msgid "Password"
     466msgstr "密码"
     467
     468#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
     469msgid "Outproxy Authorization"
     470msgstr "出口代理认证"
     471
     472#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:502
     473msgid "Jump URL List"
     474msgstr "跳转服务列表"
     475
     476#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:508
     477#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:525
    451478msgid "Custom options"
    452479msgstr "自定义选项"
    453480
    454 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
    455 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
    456 msgid ""
    457 "NOTE: If tunnel is currently running, most changes will not take effect "
    458 "until tunnel is stopped and restarted."
    459 msgstr ""
    460 "注意:如果当前隧道已经启动,设置需要【停止】并重新【启动】相应隧道后才能生"
    461 "效。"
    462 
    463 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:478
    464 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495
     481#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:512
     482#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:529
     483msgid "NOTE: If tunnel is currently running, most changes will not take effect until tunnel is stopped and restarted."
     484msgstr "注意:如果当前隧道已经启动,设置需要【停止】并重新【启动】相应隧道后才能生效。"
     485
     486#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:514
     487#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:531
    465488msgid "Cancel"
    466489msgstr "取消"
    467490
    468 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:482
    469 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499
     491#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:518
     492#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:535
    470493msgid "Delete"
    471494msgstr "删除"
    472495
    473 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
    474 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:501
     496#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:520
     497#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:537
    475498msgid "Save"
    476499msgstr "保存"
     
    488511msgstr "新建服务器设置"
    489512
    490 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:214
     513#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199
    491514msgid "Website name"
    492515msgstr "网站名称"
    493516
    494 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:218
     517#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203
    495518msgid "(leave blank for outproxies)"
    496519msgstr "(出口代理这里请置空)"
    497520
    498 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:223
     521#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:208
    499522msgid "Private key file"
    500523msgstr "私钥文件"
    501524
    502 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:245
     525#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:230
    503526msgid "Add to local addressbook"
    504527msgstr "添加至本地地址簿"
    505528
    506 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:415
     529#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:237
     530msgid "Hostname Signature"
     531msgstr "主机名签名"
     532
     533#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417
    507534msgid "Encrypt Leaseset"
    508535msgstr "加密赁集"
    509536
    510 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:421
     537#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:423
    511538msgid "Encryption Key"
    512539msgstr "加密密钥"
    513540
    514 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:425
     541#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427
    515542msgid "Generate New Key"
    516543msgstr "生成新密钥"
    517544
    518 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427
     545#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429
    519546msgid "Generate"
    520547msgstr "生成"
    521548
    522 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429
    523 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:487
     549#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431
     550#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:523
    524551msgid "(Tunnel must be stopped first)"
    525552msgstr "(必须先停止隧道)"
    526553
    527 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431
     554#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433
    528555msgid "Restricted Access List"
    529556msgstr "限制访问列表"
    530557
    531 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:437
     558#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:439
     559msgid "Whitelist"
     560msgstr "白名单"
     561
     562#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443
     563msgid "Blacklist"
     564msgstr "黑名单"
     565
     566#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:447
    532567msgid "Access List"
    533568msgstr "访问列表"
    534569
    535 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:441
    536 msgid "(Restrict to these clients only)"
    537 msgstr "(仅允许这些客户访问)"
    538 
    539 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:457
     570# disable=>noLimit
     571#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:451
     572msgid "Inbound connection limits (0=unlimited)"
     573msgstr "入站连接限制(0=无限制)"
     574
     575#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
     576msgid "Per client"
     577msgstr "按客户端"
     578
     579#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:455
     580msgid "Per minute"
     581msgstr "按分钟"
     582
     583#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459
     584msgid "Per hour"
     585msgstr "按小时"
     586
     587#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463
     588msgid "Per day"
     589msgstr "按天"
     590
     591#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:467
     592msgid "Total"
     593msgstr "总数"
     594
     595# disable=>noLimit
     596#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:475
     597msgid "Max concurrent connections (0=unlimited)"
     598msgstr "最大并发连接数(0=无限制)"
     599
     600#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
    540601msgid "New Certificate type"
    541602msgstr "新建证书类型"
    542603
    543 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459
     604#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495
    544605msgid "None"
    545606msgstr "无"
    546607
    547 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463
     608#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499
    548609msgid "Hashcash (effort)"
    549610msgstr "Hashcash (强度)"
    550611
    551 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:469
     612#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:505
    552613msgid "Hashcash Calc Time"
    553614msgstr "Hashcash 计算时间"
    554615
    555 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:471
     616#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:507
    556617msgid "Estimate"
    557618msgstr "估算"
    558619
    559 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:473
     620#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:509
    560621msgid "Hidden"
    561622msgstr "隐藏"
    562623
    563 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:477
     624#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:513
    564625msgid "Signed (signed by)"
    565626msgstr "签名(签名者)"
    566627
    567 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:483
     628#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:519
    568629msgid "Modify Certificate"
    569630msgstr "修改证书"
    570631
    571 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485
     632#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:521
    572633msgid "Modify"
    573634msgstr "修改"
     
    619680#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:177
    620681#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:250
    621 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:278
     682#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:297
    622683msgid "Status"
    623684msgstr "状态"
     
    632693
    633694#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:184
    634 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:285
     695#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:304
    635696msgid "Starting..."
    636697msgstr "正在启动..."
     
    638699#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:191
    639700#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:205
    640 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:292
    641 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:306
    642 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:320
     701#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:311
     702#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:325
     703#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:339
    643704msgid "Stop"
    644705msgstr "停止"
    645706
    646707#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:198
    647 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:313
     708#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:332
    648709msgid "Running"
    649710msgstr "运行中"
    650711
    651712#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:212
    652 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:327
     713#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346
    653714msgid "Stopped"
    654715msgstr "已停止"
    655716
    656717#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:219
    657 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:334
     718#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:353
    658719msgid "Start"
    659720msgstr "启动"
     
    664725
    665726#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236
    666 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:368
     727#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:396
    667728msgid "Standard"
    668729msgstr "标准"
    669730
    670731#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238
    671 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370
     732#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:398
    672733msgid "Create"
    673734msgstr "创建"
     
    678739
    679740#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:248
    680 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:274
     741#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:283
    681742msgid "Interface"
    682743msgstr "网络接口"
    683744
    684 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:299
     745#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:318
    685746msgid "Standby"
    686747msgstr "等待"
    687748
    688 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346
     749#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:363
    689750msgid "Outproxy"
    690751msgstr "出口代理"
    691752
    692 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:350
     753#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:367
    693754msgid "Destination"
    694755msgstr "目标"
    695756
    696 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366
     757#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:381
     758msgid "none"
     759msgstr "无"
     760
     761#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:394
    697762msgid "New client tunnel"
    698763msgstr "新建客户隧道"
    699764
     765#~ msgid "Locally (127.0.0.1)"
     766#~ msgstr "本地(127.0.0.1)"
     767#~ msgid "Everyone (0.0.0.0)"
     768#~ msgstr "任何人(0.0.0.0)"
     769#~ msgid "LAN Hosts (Please specify your LAN address)"
     770#~ msgstr "局域网(请指定LAN地址)"
     771#~ msgid "Other"
     772#~ msgstr "其他"
     773#~ msgid "I2CP Options"
     774#~ msgstr "I2CP选项"
     775#~ msgid "(Restrict to these clients only)"
     776#~ msgstr "(仅允许这些客户访问)"
    700777#~ msgid "Unimplemented"
    701778#~ msgstr "尚未实现"
     779
  • apps/routerconsole/java/build.xml

    r271f330 r581cd72  
    8181        <!-- Update the messages_*.po files.
    8282             We need to supply the bat file for windows, and then change the fail property to true -->
    83         <exec executable="sh" osfamily="unix" failifexecutionfails="false" >
    84             <arg value="./bundle-messages.sh" />
    85         </exec>
    86         <exec executable="sh" osfamily="mac" failifexecutionfails="false" >
    87             <arg value="./bundle-messages.sh" />
    88         </exec>
    89         <exec executable="cmd" osfamily="windows" failifexecutionfails="false" >
    90             <arg value="/c" />
    91             <arg value="bundle-messages.bat" />
     83        <exec executable="sh" osfamily="unix" failifexecutionfails="true" >
     84            <arg value="./bundle-messages.sh" />
     85        </exec>
     86        <exec executable="sh" osfamily="mac" failifexecutionfails="true" >
     87            <arg value="./bundle-messages.sh" />
     88        </exec>
     89        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     90            <arg value="./bundle-messages.sh" />
    9291        </exec>
    9392        <!-- jar again to get the latest messages_*.class files -->
     
    107106            <arg value="-p" />
    108107        </exec>
    109         <exec executable="cmd" osfamily="windows" failifexecutionfails="true" >
    110             <arg value="/c" />
    111             <arg value="bundle-messages.bat" />
     108        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
     109            <arg value="./bundle-messages.sh" />
    112110            <arg value="-p" />
    113111        </exec>
  • apps/routerconsole/java/bundle-messages.sh

    r271f330 r581cd72  
    1818        POUPDATE=1
    1919fi
     20
     21# on windows, one must specify the path of commnad find
     22# since windows has its own retarded version of find.
     23if which find|grep -q -i windows ; then
     24        export PATH=.:/bin:/usr/local/bin:$PATH
     25fi
     26# Fast mode - update ondemond
     27echo Placing a file named messages_{LangCode}.only in locale folder,
     28echo will limit .po file update to the language specified by {LangCode}.
     29LG2=$(find ../locale -iname messages_*.only|tail -1)
     30[ LG2 ] && LG2=${LG2#../locale/messages_} && LG2=${LG2%.only}
    2031
    2132#
     
    5465        LG=${i#../locale/messages_}
    5566        LG=${LG%.po}
     67       
     68        # skip, if specified
     69        if [ $LG2 ]; then
     70                [ $LG != $LG2 ] && continue || echo INFO: Language update is set to [$LG2] only.
     71        fi
    5672
    5773        if [ "$POUPDATE" = "1" ]
     
    107123        fi
    108124
    109         echo "Generating ${CLASS}_$LG ResourceBundle..."
     125    if [ "$LG" != "en" ]
     126    then
     127        # only generate for non-source language
     128        echo "Generating ${CLASS}_$LG ResourceBundle..."
    110129
    111         # convert to class files in build/obj
    112         msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
    113         if [ $? -ne 0 ]
    114         then
    115                 echo 'Warning - msgfmt failed, not updating translations'
    116                 break
    117         fi
     130        # convert to class files in build/obj
     131        msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
     132        if [ $? -ne 0 ]
     133        then
     134            echo 'Warning - msgfmt failed, not updating translations'
     135            break
     136        fi
     137    fi
    118138done
    119139rm -f $TMPFILE
  • apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java

    r271f330 r581cd72  
    22
    33import java.util.ArrayList;
     4import java.awt.GraphicsEnvironment;
    45import java.io.File;
    56import java.io.FilenameFilter;
     
    5556    private static final String USAGE = "Bad RouterConsoleRunner arguments, check clientApp.0.args in your clients.config file! " +
    5657                                        "Usage: [[port host[,host]] [-s sslPort [host[,host]]] [webAppsDir]]";
     58    private static final String PROP_HEADLESS = "router.isHeadless";
    5759   
    5860    static {
    5961        System.setProperty("org.mortbay.http.Version.paranoid", "true");
    60         System.setProperty("java.awt.headless", "true");
     62       
     63        //Check if we are in a headless environment, set properties accordingly
     64        List<RouterContext> contexts = RouterContext.listContexts();
     65        if(contexts != null && contexts.size() > 0) {
     66                RouterContext context = contexts.get(0);
     67                String headless = context.getProperty(PROP_HEADLESS);
     68                if(headless == null) {
     69                        /*
     70                         * Let's check if we are in a headless environment.
     71                         * We do this by setting headless to false
     72                         * and trying to get the graphics environment.
     73                         * If this fails, we should be headless.
     74                         */
     75                        System.setProperty("java.awt.headless", "false");
     76                        try {
     77                        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
     78                        ge.isHeadlessInstance();
     79                        context.setProperty(PROP_HEADLESS, "false");
     80                        }
     81                        catch(InternalError e) {
     82                                context.setProperty(PROP_HEADLESS, "true");
     83                        }
     84                        context.router().setConfigSetting(PROP_HEADLESS, context.getProperty(PROP_HEADLESS));
     85                context.router().saveConfig();
     86                context.router().shutdown(0);
     87                }
     88                boolean isHeadless = true;
     89                try {
     90                        isHeadless = Boolean.parseBoolean(headless);
     91                }
     92                catch(Exception e) {
     93                        //Incorrect setting, let's choose headless for safety
     94                        isHeadless = true;
     95                }
     96                if(isHeadless) {
     97                        System.setProperty("java.awt.headless", "true");
     98                }
     99                else {
     100                        System.setProperty("java.awt.headless", "false");
     101                }
     102        }
    61103    }
    62104   
  • apps/routerconsole/java/src/net/i2p/router/web/StatsGenerator.java

    r271f330 r581cd72  
    198198                }
    199199
    200                 buf.append(ngettext((int) curRate.getLastEventCount(), "There was 1 event", "There were {0} events"));
    201                 buf.append(' ');
    202                 buf.append(_("in this period which ended {0} ago.", DataHelper.formatDuration2(now - curRate.getLastCoalesceDate())));
     200                // breaking the sentence like before makes translation in my language impossible.
     201                                buf.append(_("There were {0} event(s) in this period", curRate.getLastEventCount()));
     202                // buf.append(' ');
     203                buf.append(_(" which ended {0} ago.", DataHelper.formatDuration2(now - curRate.getLastCoalesceDate())));
    203204            } else {
    204205                buf.append(" <i>").append(_("No events")).append("</i> ");
  • apps/routerconsole/locale/messages_nl.po

    r271f330 r581cd72  
    44# To contribute translations, see http://www.i2p2.de/newdevelopers
    55# foo <foo@bar>, 2009.
    6 #
     6# 
    77msgid ""
    88msgstr ""
    9 "Project-Id-Version: I2P routerconsole\n"
    10 "Report-Msgid-Bugs-To: \n"
    11 "POT-Creation-Date: 2011-01-20 19:26+0000\n"
    12 "PO-Revision-Date: 2010-07-04 15:04+0100\n"
    13 "Last-Translator: duck <duck@mail.i2p>\n"
    14 "Language-Team: duck <duck@mail.i2p>, monkeybrains <monkeybrains@mail.i2p>\n"
     9"Project-Id-Version: I2P\n"
     10"Report-Msgid-Bugs-To: http://trac.i2p2.de/\n"
     11"POT-Creation-Date: 2011-02-13 13:34+0000\n"
     12"PO-Revision-Date: 2011-02-13 17:41+0000\n"
     13"Last-Translator: ducki2p <ducki2p@gmail.com>\n"
     14"Language-Team: Dutch <>\n"
    1515"MIME-Version: 1.0\n"
    1616"Content-Type: text/plain; charset=UTF-8\n"
    1717"Content-Transfer-Encoding: 8bit\n"
     18"Language: nl\n"
    1819"Plural-Forms: nplurals=2; plural=(n != 1)\n"
    19 "X-Poedit-Language: Dutch\n"
    20 
    21 #. NOTE TO TRANSLATORS: Feel free to translate all these as you see fit, there are several options...
    22 #. spaces or not, '.' or not, plural or not. Try not to make it too long, it is used in
     20
     21#. NOTE TO TRANSLATORS: Feel free to translate all these as you see fit, there
     22#. are several options...
     23#. spaces or not, '.' or not, plural or not. Try not to make it too long, it
     24#. is used in
    2325#. a lot of tables.
    2426#. milliseconds
    2527#. Note to translators, may be negative or zero, 2999 maximum.
    26 #. {0,number,####} prevents 1234 from being output as 1,234 in the English locale.
     28#. {0,number,####} prevents 1234 from being output as 1,234 in the English
     29#. locale.
    2730#. If you want the digit separator in your locale, translate as {0}.
    2831#. alternates: msec, msecs
     
    7881msgstr[1] "{0} dagen"
    7982
    80 #: ../../../router/java/src/net/i2p/router/Blocklist.java:126
     83#: ../../../router/java/src/net/i2p/router/Blocklist.java:122
    8184#, java-format
    8285msgid "Banned by router hash: {0}"
    8386msgstr "Verbannen wegens router hash: {0}"
    8487
    85 #: ../../../router/java/src/net/i2p/router/Blocklist.java:128
     88#: ../../../router/java/src/net/i2p/router/Blocklist.java:124
    8689msgid "Banned by router hash"
    8790msgstr "Verbannen wegens router hash"
    8891
    8992#. Temporary reason, until the job finishes
    90 #: ../../../router/java/src/net/i2p/router/Blocklist.java:673
     93#: ../../../router/java/src/net/i2p/router/Blocklist.java:669
    9194msgid "IP banned"
    9295msgstr "IP verbannen"
    9396
    94 #: ../../../router/java/src/net/i2p/router/Blocklist.java:743
     97#: ../../../router/java/src/net/i2p/router/Blocklist.java:739
    9598#, java-format
    9699msgid "IP banned by blocklist.txt entry {0}"
     
    106109
    107110#. hard to do {0} from here
    108 #. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of tunnels: High number of requests");
     111#. setTunnelStatus("Rejecting " + (100 - (int) probAccept*100) + "% of
     112#. tunnels: High number of requests");
    109113#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:177
    110114msgid "Rejecting most tunnels: High number of requests"
     
    123127
    124128#. hard to do {0} from here
    125 #. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels: Bandwidth limit");
     129#. setTunnelStatus("Rejecting " + ((int)(100.0*probReject)) + "% of tunnels:
     130#. Bandwidth limit");
    126131#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:371
    127132msgid "Rejecting most tunnels: Bandwidth limit"
     
    129134
    130135#. hard to do {0} from here
    131 #. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of tunnels");
     136#. setTunnelStatus("Accepting " + (100-(int)(100.0*probReject)) + "% of
     137#. tunnels");
    132138#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:375
    133139msgid "Accepting most tunnels"
     
    140146#. NPE, too early
    141147#. if (_context.router().getRouterInfo().getBandwidthTier().equals("K"))
    142 #. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too low");
     148#. setTunnelStatus("Not expecting tunnel requests: Advertised bandwidth too
     149#. low");
    143150#. else
    144151#: ../../../router/java/src/net/i2p/router/RouterThrottleImpl.java:488
     
    146153msgstr "Tunnels geweigerd"
    147154
    148 #: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:98
     155#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:105
    149156#: ../java/src/net/i2p/router/web/ConfigNavHelper.java:20
    150157msgid "Reseeding"
    151158msgstr "Reseeden"
    152159
    153 #: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:121
     160#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:128
    154161#, java-format
    155162msgid "Reseed fetched only 1 router."
     
    158165msgstr[1] "Reseed heeft slechts {0} routers opgehaald."
    159166
    160 #: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:128
     167#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:135
    161168msgid "Reseed failed."
    162169msgstr "Reseed gefaald"
    163170
    164 #: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:129
     171#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:136
    165172#, java-format
    166173msgid "See {0} for help."
    167174msgstr "Zie {0} voor hulp."
    168175
    169 #: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:130
     176#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:137
    170177msgid "reseed configuration page"
    171178msgstr "reseed configuratie pagina"
    172179
    173 #: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:231
     180#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:239
    174181msgid "Reseeding: fetching seed URL."
    175182msgstr "Reseed: opvragen seed URL."
    176183
    177 #: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:272
    178 #, java-format
    179 msgid ""
    180 "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)."
    181 msgstr ""
    182 "Reseeden: opvragen router info van seed URL ({0} succesvol, {1} fouten)."
    183 
    184 #: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:513
     184#: ../../../router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java:281
     185#, java-format
     186msgid "Reseeding: fetching router info from seed URL ({0} successful, {1} errors)."
     187msgstr "Reseeden: opvragen router info van seed URL ({0} succesvol, {1} fouten)."
     188
     189#: ../../../router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java:512
    185190msgid "NetDb entry"
    186191msgstr "NetDd item"
    187192
    188 #. This used to be "no common transports" but it is almost always no transports at all
     193#. This used to be "no common transports" but it is almost always no
     194#. transports at all
    189195#: ../../../router/java/src/net/i2p/router/transport/GetBidsJob.java:70
    190196msgid "No transports (hidden or starting up?)"
    191197msgstr "Geen transport (verborgen of aan het opstarten?)"
    192198
    193 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:452
     199#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:450
    194200msgid "Unreachable on any transport"
    195201msgstr "Onbereikbaar op alle transports"
    196202
    197 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:501
     203#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:499
    198204msgid "Router Transport Addresses"
    199205msgstr "Router Transport Adressen"
    200206
    201 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:506
     207#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:504
    202208#, java-format
    203209msgid "{0} is used for outbound connections only"
    204210msgstr "{0} is alleen gebruikt voor uitgaande connecties"
    205211
    206 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:520
     212#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:518
    207213#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/error500_jsp.java:123
    208214msgid "Help"
    209215msgstr "Help"
    210216
     217#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:519
     218msgid "Your transport connection limits are automatically set based on your configured bandwidth."
     219msgstr "De limieten van je transport verbinding zijn automatisch ingesteld gebaseerd op de geconfigureerde bandbreedte."
     220
    211221#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:521
    212 msgid ""
    213 "Your transport connection limits are automatically set based on your "
    214 "configured bandwidth."
    215 msgstr ""
    216 "De limieten van je transport verbinding zijn automatisch ingesteld gebaseerd "
    217 "op de geconfigureerde bandbreedte."
     222msgid "To override these limits, add the settings i2np.ntcp.maxConnections=nnn and i2np.udp.maxConnections=nnn on the advanced configuration page."
     223msgstr "Om deze limieten te overschrijven, voeg dan de instelling i2np.ntcp.maxConnections=nnn en i2np.udp.maxConnections=nnn toe aan de geavanceerde configuratie pagina."
    218224
    219225#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:523
    220 msgid ""
    221 "To override these limits, add the settings i2np.ntcp.maxConnections=nnn and "
    222 "i2np.udp.maxConnections=nnn on the advanced configuration page."
    223 msgstr ""
    224 "Om deze limieten te overschrijven, voeg dan de instelling i2np.ntcp."
    225 "maxConnections=nnn en i2np.udp.maxConnections=nnn toe aan de geavanceerde "
    226 "configuratie pagina."
    227 
    228 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:525
    229226#: ../java/src/net/i2p/router/web/ProfileOrganizerRenderer.java:257
    230227msgid "Definitions"
    231228msgstr "Definities"
    232229
    233 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
     230#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:524
    234231#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:735
    235232#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1890
     
    243240msgstr "Peer"
    244241
    245 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
     242#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:524
    246243msgid "The remote peer, identified by router hash"
    247244msgstr "De remote peer, geïdentificeerd door de router hash"
    248245
    249 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:527
     246#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:525
    250247#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:736
    251248#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1894
     
    253250msgstr "Richting"
    254251
    255 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
     252#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:526
    256253msgid "Inbound connection"
    257254msgstr "Inkomende connectie"
    258255
    259 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530
     256#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:528
    260257msgid "Outbound connection"
    261258msgstr "Uitgaande connectie"
    262259
     260#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:530
     261msgid "They offered to introduce us (help other peers traverse our firewall)"
     262msgstr "Ze hebben aangeboden ons te introduceren (helpt andere peers om door onze firewall te komen)"
     263
    263264#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:532
    264 msgid "They offered to introduce us (help other peers traverse our firewall)"
    265 msgstr ""
    266 "Ze hebben aangeboden ons te introduceren (helpt andere peers om door onze "
    267 "firewall te komen)"
    268 
    269 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
    270265msgid "We offered to introduce them (help other peers traverse their firewall)"
    271 msgstr ""
    272 "We hebben aangeboden ze te introduceren (helpt andere peers om door hun "
    273 "firewall te komen)"
    274 
    275 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
     266msgstr "We hebben aangeboden ze te introduceren (helpt andere peers om door hun firewall te komen)"
     267
     268#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
    276269msgid "How long since a packet has been received / sent"
    277270msgstr "Hoe lang sinds een pakket ontvangen / verstuurd is"
    278271
    279 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
     272#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:533
    280273#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:737
    281274#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1895
     
    283276msgstr "Idle"
    284277
    285 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
     278#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
    286279#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:738
    287280#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1900
     
    290283msgstr "In/Uit"
    291284
    292 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
     285#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:534
    293286msgid "The smoothed inbound / outbound transfer rate (KBytes per second)"
    294 msgstr ""
    295 "De afgevlakte inkomende / uitgaande overdrachtsnelheid (KBytes per seconde)"
    296 
    297 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
     287msgstr "De afgevlakte inkomende / uitgaande overdrachtsnelheid (KBytes per seconde)"
     288
     289#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
    298290msgid "How long ago this connection was established"
    299291msgstr "Hoe lang sinds deze connectie is gemaakt"
    300292
    301 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
     293#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:535
    302294#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:739
    303295#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1905
     
    305297msgstr "Up"
    306298
    307 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
     299#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
    308300#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:740
    309301#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1907
     
    311303msgstr "Afwijking"
    312304
    313 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
     305#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:536
    314306msgid "The difference between the peer's clock and your own"
    315307msgstr "Het verschil tussen de klok van de peer en je eigen"
    316308
    317 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
    318 msgid ""
    319 "The congestion window, which is how many bytes can be sent without an "
    320 "acknowledgement"
    321 msgstr ""
    322 "Het congestion window, hoeveel bytes verzonden kunnen worden zonder een "
    323 "bevestiging"
    324 
    325 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
     309#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:537
     310msgid "The congestion window, which is how many bytes can be sent without an acknowledgement"
     311msgstr "Het congestion window, hoeveel bytes verzonden kunnen worden zonder een bevestiging"
     312
     313#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:538
    326314msgid "The number of sent messages awaiting acknowledgement"
    327315msgstr "Het aantal verzonden berichten, wachtend op bevestiging"
    328316
    329 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
     317#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:539
    330318msgid "The maximum number of concurrent messages to send"
    331319msgstr "Het maximum aantal berichten om gelijktijdig te verzenden"
    332320
    333 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542
     321#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:540
    334322msgid "The number of pending sends which exceed congestion window"
    335 msgstr ""
    336 "Het aantal wachtende uitgaande berichten dat het congestion window "
    337 "overschrijdt"
    338 
    339 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
     323msgstr "Het aantal wachtende uitgaande berichten dat het congestion window overschrijdt"
     324
     325#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:541
    340326msgid "The slow start threshold"
    341327msgstr "De vertraagde-start drempel"
    342328
    343 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
     329#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:542
    344330msgid "The round trip time in milliseconds"
    345331msgstr "De rondgangstijd in milliseconden"
    346332
    347 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
     333#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
    348334#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1917
    349335msgid "Dev"
    350336msgstr "SD"
    351337
    352 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
     338#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:543
    353339msgid "The standard deviation of the round trip time in milliseconds"
    354340msgstr "De standaarddeviatie van de rondgangstijd in milliseconden"
    355341
    356 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
     342#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:544
    357343msgid "The retransmit timeout in milliseconds"
    358344msgstr "De herzend time-out in milliseconden"
    359345
    360 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
    361 msgid ""
    362 "Current maximum send packet size / estimated maximum receive packet size "
    363 "(bytes)"
    364 msgstr ""
    365 "Huidige maximum verzonden pakket grootte / verwachte maximimum ontvangen "
    366 "pakket grootte (bytes)"
    367 
    368 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
     346#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:545
     347msgid "Current maximum send packet size / estimated maximum receive packet size (bytes)"
     348msgstr "Huidige maximum verzonden pakket grootte / verwachte maximimum ontvangen pakket grootte (bytes)"
     349
     350#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
    369351#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:741
    370352#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1924
     
    372354msgstr "TX"
    373355
    374 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
     356#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:546
    375357msgid "The total number of packets sent to the peer"
    376358msgstr "Het totaal aantal pakketten verzonden aan de peer"
    377359
    378 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
     360#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
    379361#: ../../../router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java:742
    380362#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1926
     
    382364msgstr "RX"
    383365
    384 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
     366#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:547
    385367msgid "The total number of packets received from the peer"
    386368msgstr "Het totaal aantal ontvangen pakketten van de peer"
    387369
    388 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550
     370#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
    389371#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1929
    390372msgid "Dup TX"
    391373msgstr "Dup TX"
    392374
    393 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:550
     375#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:548
    394376msgid "The total number of packets retransmitted to the peer"
    395377msgstr "Het totaal aantal pakketten dat opnieuw is verzonden aan de peer"
    396378
    397 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551
     379#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
    398380#: ../../../router/java/src/net/i2p/router/transport/udp/UDPTransport.java:1931
    399381msgid "Dup RX"
    400382msgstr "Dup RX"
    401383
    402 #: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:551
     384#: ../../../router/java/src/net/i2p/router/transport/TransportManager.java:549
    403385msgid "The total number of duplicate packets received from the peer"
    404386msgstr "Het totaal aantal pakketten dat dubbel is ontvangen van de peer"
     
    582564
    583565#. Automatically generated pseudo-java for xgettext - do not edit
    584 #. Translators may wish to translate a few of these, do not bother to translate all of them!!
     566#. Translators may wish to translate a few of these, do not bother to
     567#. translate all of them!!
    585568#: ../java/build/Countries.java:3
    586569msgid "Andorra"