[azureus] 01/13: Imported Upstream version 5.6.2.0
Stephen Nelson
stephenonelson-guest at moszumanska.debian.org
Wed Aug 12 23:23:52 UTC 2015
This is an automated email from the git hooks/post-receive script.
stephenonelson-guest pushed a commit to branch master
in repository azureus.
commit 7241854c77788f0073aac88165050d51cc8a7a4f
Author: Stephen Nelson <stephen at eccostudio.com>
Date: Wed Aug 12 22:33:03 2015 +0100
Imported Upstream version 5.6.2.0
---
azureus2/src/ChangeLog.txt | 40 +
.../src/com/aelitis/azureus/core/AzureusCore.java | 9 +-
.../core/backup/impl/BackupManagerImpl.java | 1 +
.../azureus/core/dht/DHTOperationAdapter.java | 35 +-
.../aelitis/azureus/core/impl/AzureusCoreImpl.java | 62 +
.../core/impl/AzureusCoreSingleInstanceClient.java | 65 +
.../core/networkmanager/IncomingMessageQueue.java | 4 +-
.../core/networkmanager/admin/NetworkAdmin.java | 3 +
.../admin/impl/NetworkAdminImpl.java | 39 +
.../impl/IncomingMessageQueueImpl.java | 2 +-
.../networkmanager/impl/MultiPeerDownloader2.java | 7 +-
.../core/networkmanager/impl/test/PHETester.java | 428 --
.../piecepicker/impl/PiecePickerImpl.java | 3 +-
.../aelitis/azureus/core/util/AZ3Functions.java | 5 +
.../com/aelitis/azureus/plugins/I2PHelpers.java | 16 +
.../extseed/impl/ExternalSeedReaderImpl.java | 8 +-
.../util/ExternalSeedHTTPDownloaderLinear.java | 17 +-
.../azureus/plugins/net/buddy/BuddyPluginBeta.java | 484 +-
.../net/buddy/BuddyPluginViewInterface.java | 8 +
.../plugins/net/buddy/swt/BuddyPluginView.java | 88 +-
.../net/buddy/swt/BuddyPluginViewBetaChat.java | 466 +-
.../net/buddy/swt/BuddyPluginViewInstance.java | 6 +-
.../azureus/ui/common/table/TableColumnCore.java | 2 +
.../azureus/ui/common/table/TableRowCore.java | 3 +-
.../ui/common/table/impl/TableColumnImpl.java | 15 +-
.../src/com/aelitis/azureus/ui/mdi/MdiEntry.java | 2 +
.../impl/DownloadManagerAvailabilityImpl.java | 17 +-
.../download/impl/DownloadManagerController.java | 14 +-
.../core3/download/impl/DownloadManagerImpl.java | 2 +-
.../download/impl/DownloadManagerStatsImpl.java | 11 +-
.../core3/global/impl/GlobalManagerImpl.java | 51 +-
.../azureus2/core3/peer/impl/PEPeerTransport.java | 3 +
.../core3/peer/impl/control/PEPeerControlImpl.java | 23 +-
.../impl/transport/PEPeerTransportProtocol.java | 13 +-
.../gudy/azureus2/core3/peer/util/PeerUtils.java | 22 +
.../core3/torrent/impl/TorrentOpenOptions.java | 16 +-
.../client/TRTrackerScraperClientResolver.java | 17 +-
.../tracker/client/impl/TRTrackerScraperImpl.java | 20 +-
.../tracker/client/impl/bt/TrackerStatus.java | 145 +-
.../core3/tracker/host/impl/TRHostImpl.java | 78 +-
.../nonblocking/TRNonBlockingServerProcessor.java | 8 +-
.../azureus2/core3/util/AENetworkClassifier.java | 65 +-
.../org/gudy/azureus2/core3/util/Constants.java | 4 +-
.../org/gudy/azureus2/core3/util/TorrentUtils.java | 2 +
.../azureus2/internat/MessagesBundle.properties | 59 +-
.../internat/MessagesBundle_bg_BG.properties | 7218 +++++++++++---------
.../azureus2/internat/MessagesBundle_eu.properties | 1192 ++--
.../internat/MessagesBundle_pt_BR.properties | 852 +--
.../plugins/network/IncomingMessageQueue.java | 4 +-
.../local/network/IncomingMessageQueueImpl.java | 3 +-
.../local/peers/PeerForeignDelegate.java | 6 +
azureus2/src/org/gudy/azureus2/ui/swt/Alerts.java | 6 +-
.../org/gudy/azureus2/ui/swt/BrowserWrapper.java | 11 +-
.../gudy/azureus2/ui/swt/BrowserWrapperFake.java | 63 +-
azureus2/src/org/gudy/azureus2/ui/swt/Main.java | 12 +-
.../gudy/azureus2/ui/swt/OpenTorrentWindow.java | 3381 ---------
.../org/gudy/azureus2/ui/swt/OpenUrlWindow.java | 252 -
.../src/org/gudy/azureus2/ui/swt/StartServer.java | 5 +
.../src/org/gudy/azureus2/ui/swt/StartSocket.java | 5 +
.../org/gudy/azureus2/ui/swt/TorrentMenuFancy.java | 21 +-
.../src/org/gudy/azureus2/ui/swt/TorrentUtil.java | 21 +-
.../gudy/azureus2/ui/swt/UIConfigDefaultsSWT.java | 1 +
.../azureus2/ui/swt/config/FloatParameter.java | 2 +-
.../ui/swt/config/generic/GenericIntParameter.java | 2 +-
.../org/gudy/azureus2/ui/swt/help/AboutWindow.java | 17 +-
.../azureus2/ui/swt/mainwindow/MainStatusBar.java | 22 +-
.../azureus2/ui/swt/mainwindow/TorrentOpener.java | 8 +-
.../azureus2/ui/swt/minibar/AllTransfersBar.java | 35 +-
.../gudy/azureus2/ui/swt/minibar/DownloadBar.java | 13 +-
.../org/gudy/azureus2/ui/swt/minibar/MiniBar.java | 29 +
.../azureus2/ui/swt/shells/MessageBoxShell.java | 25 +-
.../org/gudy/azureus2/ui/swt/views/FilesView.java | 5 +-
.../gudy/azureus2/ui/swt/views/MyTorrentsView.java | 44 +-
.../gudy/azureus2/ui/swt/views/PrivacyView.java | 1727 +++++
.../azureus2/ui/swt/views/TagSettingsView.java | 16 +-
.../swt/views/columnsetup/ColumnTC_NameInfo.java | 14 +-
.../configsections/ConfigSectionInterface.java | 10 +-
.../views/configsections/ConfigSectionPlugins.java | 3 +
.../azureus2/ui/swt/views/stats/DHTOpsPanel.java | 60 +-
.../swt/views/table/utils/TableColumnCreator.java | 1 +
.../tableitems/mytorrents/ColumnDoneWithDND.java | 86 +
.../swt/views/tableitems/mytorrents/ETAItem.java | 5 +-
.../azureus2/ui/swt/views/utils/TagUIUtils.java | 2599 +++----
.../core/content/RelatedContentManager.java | 87 +-
.../core/content/RelatedContentSearcher.java | 48 +-
.../core/subs/impl/SubscriptionManagerImpl.java | 10 +-
.../plugins/net/buddy/swt/ChatMDIEntry.java | 205 +
.../azureus/plugins/net/buddy/swt/ChatView.java | 192 +
.../plugins/net/buddy/swt/SBC_ChatOverview.java | 275 +-
.../azureus/ui/skin/skin3_sidebar.properties | 1 +
.../com/aelitis/azureus/ui/swt/Initializer.java | 130 +-
.../azureus/ui/swt/devices/DeviceManagerUI.java | 19 +-
.../aelitis/azureus/ui/swt/mdi/BaseMdiEntry.java | 26 +
.../com/aelitis/azureus/ui/swt/mdi/TabbedMDI.java | 6 -
.../azureus/ui/swt/shells/main/MainMDISetup.java | 214 +-
.../azureus/ui/swt/shells/main/MainWindowImpl.java | 62 +-
.../ui/swt/shells/main/UIFunctionsImpl.java | 4 +-
.../opentorrent/OpenTorrentOptionsWindow.java | 116 +-
.../azureus/ui/swt/skin/SWTSkinButtonUtility.java | 5 +-
.../azureus/ui/swt/skin/SWTSkinObjectBasic.java | 3 +-
.../ui/swt/skin/SWTSkinObjectContainer.java | 29 +-
.../azureus/ui/swt/views/ViewTitleInfoBetaP.java | 27 +
.../ui/swt/views/skin/SBC_ActivityTableView.java | 4 +-
.../ui/swt/views/skin/SBC_GenericBrowsePage.java | 8 +-
.../ui/swt/views/skin/SBC_TorrentDetailsView.java | 236 +-
.../aelitis/azureus/ui/swt/views/skin/SB_Vuze.java | 185 +-
.../ui/swt/views/skin/SearchResultsTabArea.java | 3 +
.../azureus/ui/swt/views/skin/ToolBarView.java | 70 +-
.../azureus/ui/swt/views/skin/WelcomeView.java | 52 +-
.../azureus/ui/swt/views/skin/sidebar/SideBar.java | 51 +-
.../ui/swt/views/skin/sidebar/SideBarEntrySWT.java | 40 +-
.../azureus/util/InitialisationFunctions.java | 11 +
.../azureus/core/dht/control/impl/Test.java | 104 -
.../com/aelitis/azureus/core/dht/impl/Test.java | 1175 ----
.../aelitis/azureus/core/dht/router/impl/Test.java | 142 -
.../azureus/core/dht/transport/udp/impl/Test.java | 407 --
.../azureus/core/diskmanager/cache/impl/Test.java | 1035 ---
test/src/com/aelitis/azureus/ui/swt/Sleak.java | 461 --
.../azureus/ui/swt/utils/ImageResizeException.java | 10 -
.../aelitis/azureus/ui/swt/utils/ImageResizer.java | 612 --
test/src/com/vuze/tests/FileUtilWriteTest.java | 85 -
test/src/com/vuze/tests/RunnableVsReflect.java | 142 -
test/src/com/vuze/tests/swt/BrowserFlicker.java | 110 -
test/src/com/vuze/tests/swt/BrowserStatusBar.java | 78 -
test/src/com/vuze/tests/swt/ImageOverImage.java | 92 -
test/src/com/vuze/tests/swt/OnTopProblem.java | 136 -
test/src/com/vuze/tests/swt/PaintCircleText.java | 59 -
test/src/com/vuze/tests/swt/Snippet.java | 58 -
.../com/vuze/tests/swt/TableWith0sizedColumn.java | 99 -
test/src/com/vuze/tests/swt/TorrentThumbnail.java | 151 -
test/src/com/vuze/tests/swt/tableview/CT_ID.java | 78 -
.../vuze/tests/swt/tableview/CT_InvOnlyExt.java | 105 -
.../vuze/tests/swt/tableview/CT_InvOnlyReord.java | 107 -
.../vuze/tests/swt/tableview/CT_InvalidOnly.java | 49 -
test/src/com/vuze/tests/swt/tableview/CT_Live.java | 48 -
.../com/vuze/tests/swt/tableview/CT_LiveExt.java | 103 -
.../vuze/tests/swt/tableview/CT_LivePaintOnly.java | 51 -
.../tests/swt/tableview/CT_LivePaintOnlyExt.java | 103 -
test/src/com/vuze/tests/swt/tableview/CT_Text.java | 33 -
.../vuze/tests/swt/tableview/TableViewTestDS.java | 34 -
.../vuze/tests/swt/tableview/testTableView.java | 589 --
.../com/vuze/tests/swt/tableview/text.properties | 8 -
test/src/com/vuze/tests/swt/testAppModal.java | 49 -
.../src/com/vuze/tests/swt/testBrowserDispose.java | 48 -
test/src/com/vuze/tests/swt/testBrowserFunc.java | 208 -
test/src/com/vuze/tests/swt/testGroupBG.java | 47 -
test/src/com/vuze/tests/swt/testLabelMouseUp.java | 50 -
test/src/com/vuze/tests/swt/testOSX.java | 132 -
test/src/com/vuze/tests/swt/testScrollbar.java | 44 -
.../com/vuze/tests/swt/testTableBackground.java | 70 -
.../com/vuze/tests/swt/testTableColumnMenu.java | 41 -
test/src/com/vuze/tests/swt/testTableDrop.java | 41 -
test/src/com/vuze/tests/swt/testTableFG.java | 64 -
test/src/com/vuze/tests/swt/testTableFullRow.java | 51 -
test/src/com/vuze/tests/swt/testTableMouseUp.java | 86 -
test/src/com/vuze/tests/swt/testTableRedraw.java | 140 -
test/src/com/vuze/tests/swt/testTreeBrowser.java | 92 -
test/src/com/vuze/tests/swt/testTreeClickDraw.java | 73 -
test/src/com/vuze/tests/swt/textComboColor.java | 39 -
.../org/gudy/azureus2/core3/torrent/test/Main.java | 193 -
.../src/org/gudy/azureus2/core3/util/jar/Test.java | 71 -
.../core3/util/test/Md5AlgorithmHelper.java | 181 -
.../org/gudy/azureus2/core3/util/test/SHA1Old.java | 475 --
.../azureus2/core3/util/test/SHA1SpeedTest.java | 227 -
.../azureus2/core3/util/test/SHA1Verification.java | 143 -
.../core3/util/test/Sha1AlgorithmHelper.java | 150 -
.../core3/util/test/SystemClockSpeedup.java | 58 -
.../azureus2/platform/win32/access/impl/Test.java | 184 -
.../azureus2/pluginsimpl/local/installer/Test.java | 142 -
.../local/sharing/test/ShareTester.java | 292 -
.../gudy/azureus2/pluginsimpl/local/test/Test.java | 1266 ----
.../azureus2/pluginsimpl/local/update/Test.java | 133 -
.../local/utils/resourcedownloader/Test.java | 238 -
.../pluginsimpl/local/utils/xml/rss/Test.java | 142 -
test/src/org/gudy/azureus2/ui/swt/test/Main.java | 198 -
.../azureus2/ui/swt/test/PrintTransferTypes.java | 147 -
.../gudy/azureus2/ui/swt/test/SashFormTest.java | 58 -
.../org/gudy/azureus2/ui/swt/test/TableTest.java | 198 -
.../azureus2/ui/swt/test/Win32TransferTypes.java | 164 -
test/src/org/gudy/azureus2/ui/systray/Main.java | 77 -
test/src/org/gudy/azureus2/update/Test.java | 68 -
.../org/gudy/azureus2/ui/common/StartServer.java | 5 +
182 files changed, 11831 insertions(+), 22801 deletions(-)
diff --git a/azureus2/src/ChangeLog.txt b/azureus2/src/ChangeLog.txt
index 29be595..01f7999 100644
--- a/azureus2/src/ChangeLog.txt
+++ b/azureus2/src/ChangeLog.txt
@@ -1,6 +1,46 @@
VUZE CHANGELOG
-----------------
+2015.07.29 | Vuze 5.6.2.0
+
+FEATURE: UI | New Privacy View [Parg]
+FEATURE: UI | Added Privacy button to open-torrent-options dialog to set the download to be added in a stopped state with no networks enabled [Parg]
+FEATURE: UI | Chats can now be added to the sidebar [Parg]
+FEATURE: UI | Detection of outstanding messages for your nick [Parg]
+FEATURE: UI | Remember minimized state of pop-out windows [Parg]
+FEATURE: UI | New 'done with dnd files' column [TuxPaper]
+FEATURE: UI | Ctrl+F4 now closes sidebar entries (in line with classic UI) [Parg]
+FEATURE: UI | 'Internal browser disabled' display now includes button to re-enable it [Parg]
+FEATURE: UI | Added indicator to sidebar entry for 'in progress' transcodes [Parg]
+FEATURE: Core | PS4 detection [Parg]
+FEATURE: Plug | New 'PIA' plugin to automate configuration of VPN - http://plugins.vuze.com/details/vpnpia [TuxPaper]
+
+CHANGE: UI | Column setup window now shows non-renamed column titles [Parg]
+CHANGE: UI | Prevent multiple pop-out chats for same chat [Parg]
+CHANGE: UI | Double-click actions added for transfer/mini-bars [Parg]
+CHANGE: UI | Improve performance of sidebar view switching [Parg]
+CHANGE: UI | Sidebar entries with sub-views now distinguished [Parg]
+CHANGE: UI | Unknown ETA values now sorted to bottom [TuxPaper]
+CHANGE: Core | Deal with completeness of downloads with 'do not download' files more consistently [TuxPaper]
+CHANGE: Core | Disconnect all peers on a network change [Parg]
+CHANGE: Core | Improve performance of network decode [Parg]
+CHANGE: Core | Create less closedown threads to improve performance [Parg]
+CHANGE: Core | Increase maximum supported torrent size [Parg]
+CHANGE: Core | Multiple copies of Vuze sharing the same configuration data will now refuse to start [Parg]
+CHANGE: Core | Improved handling of use of the Vuze control port by another application [Parg]
+
+BUGFIX: UI | Renamed columns were not being displayed correctly on initial show [Parg]
+BUGFIX: UI | Fix category buttons not being uipdates on add/delete [TuxPaper]
+BUGFIX: UI | Fix toolbar stop/start icon state display [TuxPaper]
+BUGFIX: UI | Fix start/stop toolbar icon now enabling for devices views [TuxPaper]
+BUGFIX: UI | Fix status area not drawing occasionally after restoring Vuze from tray [Parg]
+BUGFIX: UI | Fix completion % not 100% when all files are do-not-download [TuxPaper]
+BUGFIX: UI | Fix rare cases where partially complete torrents reported 0% (UI only, core still knew of the complete data) [TuxPaper]
+BUGFIX: UI | Fixed some GTK3 issues in UI [TuxPaper]
+BUGFIX: UI | Fixed dragging file from Files View to MediaPlayer Classic and other apps (VLC already worked) [TuxPaper]
+
+
+
2015.06.08 | Vuze 5.6.1.2
FEATURE: UI | Option to allow chat views to be independent windows [Parg]
diff --git a/azureus2/src/com/aelitis/azureus/core/AzureusCore.java b/azureus2/src/com/aelitis/azureus/core/AzureusCore.java
index db02154..d73264f 100644
--- a/azureus2/src/com/aelitis/azureus/core/AzureusCore.java
+++ b/azureus2/src/com/aelitis/azureus/core/AzureusCore.java
@@ -24,11 +24,12 @@ package com.aelitis.azureus.core;
*
*/
+import java.io.File;
+
import org.gudy.azureus2.core3.tracker.host.TRHost;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.ipfilter.IpFilterManager;
import org.gudy.azureus2.core3.internat.LocaleUtil;
-
import org.gudy.azureus2.plugins.*;
import org.gudy.azureus2.plugins.utils.PowerManagementListener;
@@ -48,6 +49,9 @@ AzureusCore
public long
getCreateTime();
+ public boolean
+ canStart();
+
public void
start()
@@ -164,6 +168,9 @@ AzureusCore
public NATTraverser
getNATTraverser();
+ public File
+ getLockFile();
+
public AzureusCoreOperation
createOperation(
int type );
diff --git a/azureus2/src/com/aelitis/azureus/core/backup/impl/BackupManagerImpl.java b/azureus2/src/com/aelitis/azureus/core/backup/impl/BackupManagerImpl.java
index d3d585e..a6359c2 100644
--- a/azureus2/src/com/aelitis/azureus/core/backup/impl/BackupManagerImpl.java
+++ b/azureus2/src/com/aelitis/azureus/core/backup/impl/BackupManagerImpl.java
@@ -781,6 +781,7 @@ BackupManagerImpl
continue;
}
}else if ( name.equals( ".lock" ) ||
+ name.equals( ".azlock" ) ||
name.equals( "update.properties" ) ||
name.endsWith( ".log" )){
diff --git a/azureus2/src/com/aelitis/azureus/core/dht/DHTOperationAdapter.java b/azureus2/src/com/aelitis/azureus/core/dht/DHTOperationAdapter.java
index f0531d2..99d6d76 100644
--- a/azureus2/src/com/aelitis/azureus/core/dht/DHTOperationAdapter.java
+++ b/azureus2/src/com/aelitis/azureus/core/dht/DHTOperationAdapter.java
@@ -31,19 +31,40 @@ public class
DHTOperationAdapter
implements DHTOperationListener
{
+ private final DHTOperationListener delegate;
+
+ public
+ DHTOperationAdapter()
+ {
+ delegate = null;
+ }
+
+ public
+ DHTOperationAdapter(
+ DHTOperationListener _delegate )
+ {
+ delegate = _delegate;
+ }
+
public void
searching(
DHTTransportContact contact,
int level,
int active_searches )
{
+ if ( delegate != null ){
+ delegate.searching(contact, level, active_searches);
+ }
}
public boolean
diversified(
String desc )
{
- return( true );
+ if ( delegate != null ){
+ return( delegate.diversified(desc));
+ }else{
+ return( true );}
}
public void
@@ -51,6 +72,9 @@ DHTOperationAdapter
DHTTransportContact contact,
boolean is_closest )
{
+ if ( delegate != null ){
+ delegate.found(contact, is_closest);
+ }
}
public void
@@ -58,6 +82,9 @@ DHTOperationAdapter
DHTTransportContact contact,
DHTTransportValue value )
{
+ if ( delegate != null ){
+ delegate.read(contact, value);
+ }
}
public void
@@ -65,11 +92,17 @@ DHTOperationAdapter
DHTTransportContact contact,
DHTTransportValue value )
{
+ if ( delegate != null ){
+ delegate.wrote(contact, value);
+ }
}
public void
complete(
boolean timeout )
{
+ if ( delegate != null ){
+ delegate.complete(timeout);
+ }
}
}
diff --git a/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreImpl.java b/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreImpl.java
index feb6897..046154f 100644
--- a/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreImpl.java
+++ b/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreImpl.java
@@ -19,8 +19,13 @@
package com.aelitis.azureus.core.impl;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.RandomAccessFile;
import java.net.InetAddress;
import java.net.URL;
+import java.nio.channels.FileChannel;
+import java.nio.channels.FileLock;
import java.util.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
@@ -761,11 +766,68 @@ AzureusCoreImpl
return( LocaleUtil.getSingleton());
}
+ public File
+ getLockFile()
+ {
+ return( new File(SystemProperties.getUserPath(), ".azlock" ));
+ }
+
+ private FileLock file_lock;
+
+ public boolean
+ canStart()
+ {
+ if ( System.getProperty( "azureus.instance.lock.disable", "0" ).equals( "1" )){
+
+ return( true );
+ }
+
+ synchronized( this ){
+
+ if ( file_lock != null ){
+
+ return( true );
+ }
+
+ File lock_file = getLockFile();
+
+ try{
+ RandomAccessFile raf = new RandomAccessFile( lock_file, "rw" );
+
+ FileChannel channel = raf.getChannel();
+
+ for ( int i=0;i<15;i++ ){
+
+ file_lock = channel.tryLock();
+
+ if ( file_lock != null ){
+
+ return( true );
+ }
+
+ try{
+ Thread.sleep( 1000 );
+
+ }catch( Throwable e ){
+ }
+ }
+ }catch( Throwable e ){
+ }
+
+ return( false );
+ }
+ }
+
public void
start()
throws AzureusCoreException
{
+ if ( !canStart()){
+
+ throw( new AzureusCoreException( "Core: already started (alternative process)" ));
+ }
+
AEThread2.setOurThread();
try{
diff --git a/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreSingleInstanceClient.java b/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreSingleInstanceClient.java
index 14cca73..c234a6d 100644
--- a/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreSingleInstanceClient.java
+++ b/azureus2/src/com/aelitis/azureus/core/impl/AzureusCoreSingleInstanceClient.java
@@ -91,6 +91,11 @@ AzureusCoreSingleInstanceClient
pw.flush();
+ if ( !receiveReply( sock )){
+
+ return( false );
+ }
+
return( true );
}catch( Throwable e ){
@@ -122,6 +127,66 @@ AzureusCoreSingleInstanceClient
}
}
+ public static boolean
+ sendReply(
+ Socket socket )
+ {
+ try{
+ // added reply from 5613_b16+
+
+ OutputStream os = socket.getOutputStream();
+
+ os.write( ( ACCESS_STRING + ";" ).getBytes( "UTF-8" ));
+
+ os.flush();
+
+ return( true );
+
+ }catch( Throwable e ){
+ }
+
+ return( false );
+ }
+
+ public static boolean
+ receiveReply(
+ Socket socket )
+ {
+ try{
+ InputStream is = socket.getInputStream();
+
+ socket.setSoTimeout( 15*1000 );
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ while( true ){
+
+ int data = is.read();
+
+ if ( data == -1 ){
+
+ break;
+ }
+
+ byte b = (byte)data;
+
+ if ( b == ';' ){
+
+ String str = new String( baos.toByteArray(), "UTF-8" );
+
+ return( str.equals( ACCESS_STRING ));
+
+ }else{
+
+ baos.write( b );
+ }
+ }
+ }catch( Throwable e ){
+ }
+
+ return( false );
+ }
+
public static void
main(
String[] args )
diff --git a/azureus2/src/com/aelitis/azureus/core/networkmanager/IncomingMessageQueue.java b/azureus2/src/com/aelitis/azureus/core/networkmanager/IncomingMessageQueue.java
index f724332..fce30f2 100644
--- a/azureus2/src/com/aelitis/azureus/core/networkmanager/IncomingMessageQueue.java
+++ b/azureus2/src/com/aelitis/azureus/core/networkmanager/IncomingMessageQueue.java
@@ -61,7 +61,7 @@ public interface IncomingMessageQueue {
* Notifty the queue (and its listeners) of a message received externally on the queue's behalf.
* @param message received externally
*/
- public void notifyOfExternallyReceivedMessage( Message message );
+ public void notifyOfExternallyReceivedMessage( Message message ) throws IOException;
/**
@@ -107,7 +107,7 @@ public interface IncomingMessageQueue {
* @param message recevied
* @return true if this message was accepted, false if not handled
*/
- public boolean messageReceived( Message message );
+ public boolean messageReceived( Message message ) throws IOException;
/**
* The given number of protocol (overhead) bytes read from the connection.
diff --git a/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/NetworkAdmin.java b/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/NetworkAdmin.java
index c72437b..2a9ffa6 100644
--- a/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/NetworkAdmin.java
+++ b/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/NetworkAdmin.java
@@ -104,6 +104,9 @@ NetworkAdmin
public abstract boolean
hasMissingForcedBind();
+ public abstract String
+ getBindStatus();
+
public abstract NetworkAdminNetworkInterface[]
getInterfaces();
diff --git a/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/impl/NetworkAdminImpl.java b/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/impl/NetworkAdminImpl.java
index fb875cb..eb97b54 100644
--- a/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/impl/NetworkAdminImpl.java
+++ b/azureus2/src/com/aelitis/azureus/core/networkmanager/admin/impl/NetworkAdminImpl.java
@@ -2618,6 +2618,45 @@ addressLoop:
return( (Integer)status[0] == BS_ERROR );
}
+ public String
+ getBindStatus()
+ {
+ Object[] status = getBindingStatus();
+
+ int state = (Integer)status[0];
+
+ if ( state == BS_INACTIVE ){
+
+ return( "No binding configured" );
+
+ }else{
+
+ String str = "";
+
+ if ( state == BS_OK ){
+
+ str = "Binding OK";
+
+ }else if ( state == BS_WARNING ){
+
+ str = "Binding warning";
+
+ }else{
+
+ str = "Binding error";
+ }
+
+ String status_str = (String)status[1];
+
+ if ( status_str.length() > 0 ){
+
+ str += ": " + status_str;
+ }
+
+ return( str );
+ }
+ }
+
// for the icon
public static final int BS_INACTIVE = 0;
diff --git a/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/IncomingMessageQueueImpl.java b/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/IncomingMessageQueueImpl.java
index 7b79ab2..a4d6809 100644
--- a/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/IncomingMessageQueueImpl.java
+++ b/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/IncomingMessageQueueImpl.java
@@ -177,7 +177,7 @@ public class IncomingMessageQueueImpl implements IncomingMessageQueue{
* Notifty the queue (and its listeners) of a message received externally on the queue's behalf.
* @param message received externally
*/
- public void notifyOfExternallyReceivedMessage( Message message ) {
+ public void notifyOfExternallyReceivedMessage( Message message ) throws IOException{
ArrayList listeners_ref = listeners; //copy-on-write
boolean handled = false;
diff --git a/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/MultiPeerDownloader2.java b/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/MultiPeerDownloader2.java
index acf0861..d2fcfd1 100644
--- a/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/MultiPeerDownloader2.java
+++ b/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/MultiPeerDownloader2.java
@@ -314,7 +314,12 @@ public class MultiPeerDownloader2 implements RateControlledEntity {
if (! (e instanceof IOException )){
- Debug.printStackTrace(e);
+ // one day upgrade this exception to an IOException
+
+ if ( !Debug.getNestedExceptionMessage( e ).contains( "Incorrect mix" )){
+
+ Debug.printStackTrace(e);
+ }
}
connection.notifyOfException( e );
diff --git a/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/test/PHETester.java b/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/test/PHETester.java
deleted file mode 100644
index 9837fa6..0000000
--- a/azureus2/src/com/aelitis/azureus/core/networkmanager/impl/test/PHETester.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * Created on 17-Jan-2006
- * Created by Paul Gardner
- * Copyright (C) Azureus Software, Inc, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- */
-
-package com.aelitis.azureus.core.networkmanager.impl.test;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.nio.ByteBuffer;
-import java.nio.channels.ServerSocketChannel;
-import java.nio.channels.SocketChannel;
-
-import org.gudy.azureus2.core3.config.COConfigurationManager;
-import org.gudy.azureus2.core3.util.AEDiagnostics;
-import org.gudy.azureus2.core3.util.Debug;
-
-import com.aelitis.azureus.core.networkmanager.VirtualChannelSelector;
-import com.aelitis.azureus.core.networkmanager.VirtualServerChannelSelector;
-import com.aelitis.azureus.core.networkmanager.VirtualServerChannelSelectorFactory;
-import com.aelitis.azureus.core.networkmanager.VirtualChannelSelector.VirtualSelectorListener;
-import com.aelitis.azureus.core.networkmanager.impl.ProtocolDecoder;
-import com.aelitis.azureus.core.networkmanager.impl.ProtocolDecoderInitial;
-import com.aelitis.azureus.core.networkmanager.impl.ProtocolDecoderAdapter;
-import com.aelitis.azureus.core.networkmanager.impl.TransportHelperFilter;
-import com.aelitis.azureus.core.networkmanager.impl.TransportHelper;
-import com.aelitis.azureus.core.networkmanager.impl.tcp.TCPNetworkManager;
-import com.aelitis.azureus.core.networkmanager.impl.tcp.TCPTransportHelper;
-
-public class
-PHETester
-{
- private final VirtualChannelSelector connect_selector = new VirtualChannelSelector( "PHETester", VirtualChannelSelector.OP_CONNECT, true );
-
- private byte[] TEST_HEADER = "TestHeader".getBytes();
-
- private static boolean OUTGOING_PLAIN = false;
-
- private static byte[] shared_secret = "sdsjdksjdkj".getBytes();
-
- public
- PHETester()
- {
- ProtocolDecoder.addSecrets( new byte[][]{ shared_secret });
-
- VirtualServerChannelSelector
- accept_server = VirtualServerChannelSelectorFactory.createNonBlocking(
- new InetSocketAddress( 8765 ),
- 0,
- new VirtualServerChannelSelector.SelectListener()
- {
- public void
- newConnectionAccepted(
- ServerSocketChannel server,
- SocketChannel channel )
- {
- incoming( channel );
- }
- });
-
- accept_server.start();
-
- new Thread()
- {
- public void
- run()
- {
- while( true ){
- try{
- connect_selector.select( 100 );
- }
- catch( Throwable t ) {
- Debug.out( "connnectSelectLoop() EXCEPTION: ", t );
- }
- }
- }
- }.start();
-
- outgoings();
- }
-
- protected void
- incoming(
- SocketChannel channel )
- {
- try{
- TransportHelper helper = new TCPTransportHelper( channel );
-
- final ProtocolDecoderInitial decoder =
- new ProtocolDecoderInitial(
- helper,
- null,
- false,
- null,
- new ProtocolDecoderAdapter()
- {
- public void
- decodeComplete(
- ProtocolDecoder decoder,
- ByteBuffer remaining_initial_data )
- {
- System.out.println( "incoming decode complete: " + decoder.getFilter().getName(false));
-
- readStream( "incoming", decoder.getFilter() );
-
- writeStream( "ten fat monkies", decoder.getFilter() );
- }
-
- public void
- decodeFailed(
- ProtocolDecoder decoder,
- Throwable cause )
- {
- System.out.println( "incoming decode failed: " + Debug.getNestedExceptionMessage(cause));
- }
-
- public void
- gotSecret(
- byte[] session_secret )
- {
- }
-
- public int
- getMaximumPlainHeaderLength()
- {
- return( TEST_HEADER.length );
- }
-
- public int
- matchPlainHeader(
- ByteBuffer buffer )
- {
- int pos = buffer.position();
- int lim = buffer.limit();
-
- buffer.flip();
-
- boolean match = buffer.compareTo( ByteBuffer.wrap( TEST_HEADER )) == 0;
-
- buffer.position( pos );
- buffer.limit( lim );
-
- System.out.println( "Match - " + match );
-
- return( match?ProtocolDecoderAdapter.MATCH_CRYPTO_NO_AUTO_FALLBACK:ProtocolDecoderAdapter.MATCH_NONE );
- }
- });
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- protected void
- outgoings()
- {
- while( true ){
-
- outgoing();
-
- try{
- Thread.sleep(1000000);
-
- }catch( Throwable e ){
-
- }
- }
- }
-
- protected void
- outgoing()
- {
- try{
- final SocketChannel channel = SocketChannel.open();
-
- try{
- channel.configureBlocking( false );
-
- }catch( IOException e ){
-
- channel.close();
-
- throw( e );
- }
-
- if ( channel.connect( new InetSocketAddress("localhost", 8765 ))){
-
- outgoing( channel );
-
- }else{
-
- connect_selector.register(
- channel,
- new VirtualSelectorListener()
- {
- public boolean
- selectSuccess(
- VirtualChannelSelector selector, SocketChannel sc, Object attachment)
- {
- try{
- if ( channel.finishConnect()){
-
- outgoing( channel );
-
- return( true );
- }else{
-
- throw( new IOException( "finishConnect failed" ));
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
-
- return( false );
- }
- }
-
- public void
- selectFailure(
- VirtualChannelSelector selector, SocketChannel sc, Object attachment, Throwable msg)
- {
- msg.printStackTrace();
- }
-
- },
- null );
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- protected void
- outgoing(
- SocketChannel channel )
- {
- try{
-
- if ( OUTGOING_PLAIN ){
-
- writeStream( TEST_HEADER, channel);
-
- writeStream( "two jolly porkers".getBytes(), channel );
-
- }else{
- TransportHelper helper = new TCPTransportHelper( channel );
-
- final ProtocolDecoderInitial decoder =
- new ProtocolDecoderInitial(
- helper,
- new byte[][]{ shared_secret },
- true,
- null,
- new ProtocolDecoderAdapter()
- {
- public void
- decodeComplete(
- ProtocolDecoder decoder,
- ByteBuffer remaining_initial_data )
- {
- System.out.println( "outgoing decode complete: " + decoder.getFilter().getName(false));
-
- readStream( "incoming", decoder.getFilter() );
-
- writeStream( TEST_HEADER, decoder.getFilter());
-
- writeStream( "two jolly porkers", decoder.getFilter() );
- }
-
- public void
- decodeFailed(
- ProtocolDecoder decoder,
- Throwable cause )
- {
- System.out.println( "outgoing decode failed: " + Debug.getNestedExceptionMessage(cause));
-
- }
-
- public void
- gotSecret(
- byte[] session_secret )
- {
- }
-
- public int
- getMaximumPlainHeaderLength()
- {
- throw( new RuntimeException());
- }
-
- public int
- matchPlainHeader(
- ByteBuffer buffer )
- {
- throw( new RuntimeException());
- }
- });
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- protected void
- readStream(
- final String str,
- final TransportHelperFilter filter )
- {
- try{
- TCPNetworkManager.getSingleton().getReadSelector().register(
- ((TCPTransportHelper)filter.getHelper()).getSocketChannel(),
- new VirtualSelectorListener()
- {
- public boolean
- selectSuccess(
- VirtualChannelSelector selector, SocketChannel sc, Object attachment)
- {
- ByteBuffer buffer = ByteBuffer.allocate(1024);
-
- try{
- long len = filter.read( new ByteBuffer[]{ buffer }, 0, 1 );
-
- byte[] data = new byte[buffer.position()];
-
- buffer.flip();
-
- buffer.get( data );
-
- System.out.println( str + ": " + new String(data));
-
- return( len > 0 );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
-
- return( false );
- }
- }
-
- public void
- selectFailure(
- VirtualChannelSelector selector, SocketChannel sc, Object attachment, Throwable msg)
- {
- msg.printStackTrace();
- }
- },
- null );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- protected void
- writeStream(
- String str,
- TransportHelperFilter filter )
- {
- writeStream( str.getBytes(), filter );
- }
-
- protected void
- writeStream(
- byte[] data,
- TransportHelperFilter filter )
- {
- try{
- filter.write( new ByteBuffer[]{ ByteBuffer.wrap(data)}, 0, 1 );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- protected void
- writeStream(
- byte[] data,
- SocketChannel channel )
- {
- try{
- channel.write( new ByteBuffer[]{ ByteBuffer.wrap(data)}, 0, 1 );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public static void
- main(
- String[] args )
- {
- AEDiagnostics.startup( false );
-
- // OUTGOING_PLAIN = true;
-
- COConfigurationManager.setParameter( "network.transport.encrypted.require", true );
- COConfigurationManager.setParameter( "network.transport.encrypted.min_level", "Plain" );
-
- new PHETester();
-
- try{
- Thread.sleep(10000000);
-
- }catch( Throwable e ){
-
- }
- }
-}
diff --git a/azureus2/src/com/aelitis/azureus/core/peermanager/piecepicker/impl/PiecePickerImpl.java b/azureus2/src/com/aelitis/azureus/core/peermanager/piecepicker/impl/PiecePickerImpl.java
index dff31be..f6024bf 100644
--- a/azureus2/src/com/aelitis/azureus/core/peermanager/piecepicker/impl/PiecePickerImpl.java
+++ b/azureus2/src/com/aelitis/azureus/core/peermanager/piecepicker/impl/PiecePickerImpl.java
@@ -1016,7 +1016,8 @@ implements PiecePicker
maxRequests =2;
}
}else{
- maxRequests =1;
+
+ maxRequests = pt.getNetwork()==AENetworkClassifier.AT_PUBLIC?1:2;
}
}
diff --git a/azureus2/src/com/aelitis/azureus/core/util/AZ3Functions.java b/azureus2/src/com/aelitis/azureus/core/util/AZ3Functions.java
index 1cd1629..8a962d1 100644
--- a/azureus2/src/com/aelitis/azureus/core/util/AZ3Functions.java
+++ b/azureus2/src/com/aelitis/azureus/core/util/AZ3Functions.java
@@ -77,6 +77,11 @@ AZ3Functions
int file_index );
public void
+ openChat(
+ String network,
+ String key );
+
+ public void
setOpened(
DownloadManager dm,
boolean opened );
diff --git a/azureus2/src/com/aelitis/azureus/plugins/I2PHelpers.java b/azureus2/src/com/aelitis/azureus/plugins/I2PHelpers.java
index 51ff59a..b3ec71a 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/I2PHelpers.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/I2PHelpers.java
@@ -23,8 +23,11 @@
package com.aelitis.azureus.plugins;
import org.gudy.azureus2.core3.internat.MessageText;
+import org.gudy.azureus2.core3.util.AENetworkClassifier;
import org.gudy.azureus2.core3.util.Debug;
+import org.gudy.azureus2.plugins.PluginManager;
+import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.ui.UIFunctions;
import com.aelitis.azureus.ui.UIFunctionsManager;
import com.aelitis.azureus.ui.UIFunctionsUserPrompter;
@@ -37,6 +40,19 @@ I2PHelpers
private static boolean i2p_installing = false;
public static boolean
+ isI2PInstalled()
+ {
+ if ( isInstallingI2PHelper()){
+
+ return( true );
+ }
+
+ PluginManager pm = AzureusCoreFactory.getSingleton().getPluginManager();
+
+ return( pm.getPluginInterfaceByID( "azneti2phelper" ) != null );
+ }
+
+ public static boolean
isInstallingI2PHelper()
{
synchronized( i2p_install_lock ){
diff --git a/azureus2/src/com/aelitis/azureus/plugins/extseed/impl/ExternalSeedReaderImpl.java b/azureus2/src/com/aelitis/azureus/plugins/extseed/impl/ExternalSeedReaderImpl.java
index f8d3561..fb8c2f6 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/extseed/impl/ExternalSeedReaderImpl.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/extseed/impl/ExternalSeedReaderImpl.java
@@ -84,7 +84,9 @@ ExternalSeedReaderImpl
private ExternalSeedPlugin plugin;
private Torrent torrent;
- private String host;
+ private final String host;
+ private final String host_net;
+
private String ip_use_accessor;
private String status;
@@ -142,6 +144,8 @@ ExternalSeedReaderImpl
torrent = _torrent;
host = _host;
+ host_net = AENetworkClassifier.categoriseAddress( host );
+
fast_activate = getBooleanParam( _params, "fast_start", false );
min_availability = getIntParam( _params, "min_avail", 1 ); // default is avail based
min_download_speed = getIntParam( _params, "min_speed", 0 );
@@ -344,7 +348,7 @@ ExternalSeedReaderImpl
return( false );
}
- if ( !PluginCoreUtils.unwrap( download ).getDownloadState().isNetworkEnabled( AENetworkClassifier.categoriseAddress( host ))){
+ if ( !PluginCoreUtils.unwrap( download ).getDownloadState().isNetworkEnabled( host_net )){
return( false );
}
diff --git a/azureus2/src/com/aelitis/azureus/plugins/extseed/util/ExternalSeedHTTPDownloaderLinear.java b/azureus2/src/com/aelitis/azureus/plugins/extseed/util/ExternalSeedHTTPDownloaderLinear.java
index 5dd3414..ca60eb5 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/extseed/util/ExternalSeedHTTPDownloaderLinear.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/extseed/util/ExternalSeedHTTPDownloaderLinear.java
@@ -370,9 +370,7 @@ ExternalSeedHTTPDownloaderLinear
throw( error );
}
}
-
- listener.reportBytesRead( len );
-
+
requests_outstanding = checkRequests();
}
@@ -530,15 +528,20 @@ ExternalSeedHTTPDownloaderLinear
while( total < request.getLength()){
- byte[] buffer = listener.getBuffer();
- int buffer_len = listener.getBufferLength();
+ byte[] buffer = listener.getBuffer();
+ int buffer_position = listener.getBufferPosition();
+ int buffer_len = listener.getBufferLength();
- if ( raf.read( buffer, 0, buffer_len ) != buffer_len ){
+ int space = buffer_len - buffer_position;
+
+ if ( raf.read( buffer, buffer_position, space ) != space ){
throw( new IOException( "Error reading scratch file" ));
}
- total += buffer_len;
+ total += space;
+
+ listener.reportBytesRead( space );
listener.done();
}
diff --git a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginBeta.java b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginBeta.java
index cc32bea..bfa454b 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginBeta.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginBeta.java
@@ -108,6 +108,10 @@ BuddyPluginBeta
public static final int FLAGS_MSG_FLASH_NO = 0; // def
public static final int FLAGS_MSG_FLASH_YES = 1;
+ public static final String FLAGS_MSG_TYPE_KEY = "t";
+ public static final int FLAGS_MSG_TYPE_NORMAL = 0; // def
+ public static final int FLAGS_MSG_TYPE_ME = 1;
+
private BuddyPlugin plugin;
private PluginInterface plugin_interface;
@@ -2136,8 +2140,9 @@ BuddyPluginBeta
private static Pattern auto_dup_pattern1 = Pattern.compile( "File '(.*?)' is" );
private static Pattern auto_dup_pattern2 = Pattern.compile( ":([a-zA-Z2-7]{32})", Pattern.CASE_INSENSITIVE );
-
- private static Pattern[] auto_dup_patterns = { auto_dup_pattern1, auto_dup_pattern2 };
+ private static Pattern auto_dup_pattern3 = Pattern.compile( "See (http://wiki.vuze.com/w/Swarm_Merging)" );
+
+ private static Pattern[] auto_dup_patterns = { auto_dup_pattern1, auto_dup_pattern2, auto_dup_pattern3 };
public class
ChatInstance
@@ -2287,6 +2292,13 @@ BuddyPluginBeta
public String
getName()
{
+ return( getName( false ));
+ }
+
+ public String
+ getName(
+ boolean abbreviated )
+ {
String str = key;
int pos = str.lastIndexOf( '[' );
@@ -2312,10 +2324,19 @@ BuddyPluginBeta
}
}
- return(
- MessageText.getString(
- network==AENetworkClassifier.AT_PUBLIC?"label.public":"label.anon") +
- " - '" + str + "'" );
+ if ( abbreviated ){
+
+ return( MessageText.getString(
+ network==AENetworkClassifier.AT_PUBLIC?"label.public.medium":"label.anon.medium") +
+ " - '" + str + "'" );
+
+ }else{
+
+ return(
+ MessageText.getString(
+ network==AENetworkClassifier.AT_PUBLIC?"label.public":"label.anon") +
+ " - '" + str + "'" );
+ }
}
public String
@@ -2667,16 +2688,26 @@ BuddyPluginBeta
}
public String
- getNickname()
+ getNickname(
+ boolean use_default )
{
+ String nick;
+
if ( is_shared_nick ){
- return( network == AENetworkClassifier.AT_PUBLIC?shared_public_nickname:shared_anon_nickname );
+ nick = network == AENetworkClassifier.AT_PUBLIC?shared_public_nickname:shared_anon_nickname;
}else{
- return( instance_nick );
+ nick = instance_nick;
}
+
+ if ( nick.length() == 0 && use_default ){
+
+ return( getDefaultNickname());
+ }
+
+ return( nick );
}
private Object
@@ -2799,6 +2830,11 @@ BuddyPluginBeta
Debug.out( e );
}
}
+
+ if ( getKey().startsWith( "General: ")){
+
+ sendLocalMessage( "!*" + MessageText.getString( "azbuddy.dchat.welcome.general" ) + "*!", null, ChatMessage.MT_INFO );
+ }
}
}
@@ -2892,6 +2928,13 @@ BuddyPluginBeta
}
}
+ public void
+ handleDrop(
+ String str )
+ {
+
+ }
+
public int
getEstimatedNodes()
{
@@ -3677,13 +3720,25 @@ BuddyPluginBeta
if ( msg.getFlagFlashOverride()){
- last_message_requiring_attention = msg;
+ if ( getHideRatings() && msg.getFlagOrigin() == FLAGS_MSG_ORIGIN_RATINGS ){
+
+ }else{
+
+ last_message_requiring_attention = msg;
+ }
}
}else{
if ( !msg.isIgnored()){
- last_message_requiring_attention = msg;
+ if ( getHideRatings() && msg.getFlagOrigin() == FLAGS_MSG_ORIGIN_RATINGS ){
+
+ // don't mark as requiring attention else icon will end up flashing with no visible message
+
+ }else{
+
+ last_message_requiring_attention = msg;
+ }
}
messages_not_mine_count++;
@@ -3941,7 +3996,7 @@ BuddyPluginBeta
if ( o_message instanceof String ){
- String message = (String)o_message;
+ final String message = (String)o_message;
if ( message.equals( "!dump!" )){
@@ -3987,13 +4042,16 @@ BuddyPluginBeta
return;
}
+ boolean is_me_msg = false;
+
if ( message.startsWith( "/" )){
String[] bits = message.split( "[\\s]+", 3 );
String command = bits[0].toLowerCase( Locale.US );
- boolean ok = false;
+ boolean ok = false;
+ boolean missing_params = false;
try{
if ( command.equals( "/help" )){
@@ -4019,6 +4077,10 @@ BuddyPluginBeta
getAndShowChat( getNetwork(), key );
ok = true;
+
+ }else{
+
+ missing_params = true;
}
}else if ( command.equals( "/nick" )){
@@ -4031,6 +4093,10 @@ BuddyPluginBeta
setInstanceNickname( bits[1]);
ok = true;
+
+ }else{
+
+ missing_params = true;
}
}else if ( command.equals( "/pjoin" )){
@@ -4048,10 +4114,22 @@ BuddyPluginBeta
getAndShowChat( AENetworkClassifier.AT_PUBLIC, key );
ok = true;
+
+ }else{
+
+ missing_params = true;
}
}else if ( command.equals( "/ajoin" )){
- if ( bits.length > 1 && isI2PAvailable()){
+ if ( bits.length <= 1 ){
+
+ missing_params = true;
+
+ }else if ( !isI2PAvailable()){
+
+ throw( new Exception( "I2P not available" ));
+
+ }else{
bits = message.split( "[\\s]+", 2 );
@@ -4094,6 +4172,31 @@ BuddyPluginBeta
showChat( ci );
ok = true;
+
+ }else{
+
+ missing_params = true;
+ }
+ }else if ( command.equals( "/me" )){
+
+ if ( bits.length > 1 ){
+
+ is_me_msg = true;
+
+ o_message = message.substring( 3 ).trim();
+
+ if ( flags == null ){
+
+ flags = new HashMap<String, Object>();
+ }
+
+ flags.put( FLAGS_MSG_TYPE_KEY, FLAGS_MSG_TYPE_ME );
+
+ ok = true;
+
+ }else{
+
+ missing_params = true;
}
}else if ( command.equals( "/ignore" )){
@@ -4124,8 +4227,11 @@ BuddyPluginBeta
updated( p );
ok = true;
+
+ }else{
+
+ missing_params = true;
}
-
}else if ( command.equals( "/control" )){
if ( ipc_version >= 3 ){
@@ -4148,11 +4254,15 @@ BuddyPluginBeta
if ( bits.length > 1 ){
- Map<String,Object> result = peekChat( getNetwork(), bits[1] );
+ Map<String,Object> result = peekChat( getNetwork(), message.substring( 5 ).trim());
sendLocalMessage( "!" + result + "!", null, ChatMessage.MT_INFO );
ok = true;
+
+ }else{
+
+ missing_params = true;
}
}else if ( command.equals( "/clone" )){
@@ -4163,14 +4273,22 @@ BuddyPluginBeta
if ( !ok ){
- throw( new Exception( "Unhandled command: " + message ));
+ if ( missing_params ){
+
+ throw( new Exception( "Error: Insufficient parameters for '" + command + "'" ));
+ }
+
+ throw( new Exception( "Error: Unhandled command: " + message ));
}
}catch( Throwable e ){
sendLocalMessage( "!" + Debug.getNestedExceptionMessage( e ) + "!", null, ChatMessage.MT_ERROR );
}
- return;
+ if ( !is_me_msg ){
+
+ return;
+ }
}
}
@@ -4238,7 +4356,7 @@ BuddyPluginBeta
payload.put( "msg", (byte[])o_message );
}
- payload.put( "nick", getNickname().getBytes( "UTF-8" ));
+ payload.put( "nick", getNickname( false ).getBytes( "UTF-8" ));
if ( prev_message != null ){
@@ -4300,6 +4418,82 @@ BuddyPluginBeta
}
}
+ public boolean
+ hasUnseenMessageWithNick()
+ {
+ List<ChatMessage> messages = getUnseenMessages();
+
+ for ( ChatMessage msg: messages ){
+
+ if ( msg.getNickLocations().length > 0 ){
+
+ return( true );
+ }
+ }
+
+ return( false );
+ }
+
+ public List<ChatMessage>
+ getUnseenMessages()
+ {
+ synchronized( chat_lock ){
+
+ LinkedList<ChatMessage> result = new LinkedList<ChatMessage>();
+
+ if ( messages.size() > 0 ){
+
+ for ( int loop=0;loop<2;loop++ ){
+
+ List<ChatMessage> need_fixup = new ArrayList<ChatMessage>();
+
+ for ( int i=messages.size()-1;i>=0;i--){
+
+ ChatMessage msg = messages.get(i);
+
+ if ( msg.isIgnored() || msg.getParticipant().isMe()){
+
+ continue;
+ }
+
+ int seen_state = msg.getSeenState();
+
+ if ( seen_state == ChatMessage.SEEN_YES ){
+
+ break;
+
+ }else if ( seen_state == ChatMessage.SEEN_UNKNOWN ){
+
+ need_fixup.add( msg );
+
+ }else{
+
+ result.addFirst( msg );
+ }
+ }
+
+ if ( loop==0 && need_fixup.size() > 0 ){
+
+ fixupSeenState( need_fixup );
+
+ result.clear();
+
+ }else{
+
+ if ( need_fixup.size() > 0 ){
+
+ Debug.out( "Hmm" );
+ }
+
+ break;
+ }
+ }
+ }
+
+ return( result );
+ }
+ }
+
public ChatParticipant[]
getParticipants()
{
@@ -4441,6 +4635,8 @@ BuddyPluginBeta
setMessageOutstanding(
boolean b )
{
+ boolean changed = false;
+
synchronized( chat_lock ){
if ( message_outstanding == b ){
@@ -4450,6 +4646,8 @@ BuddyPluginBeta
message_outstanding = b;
+ changed = true;
+
if ( !b ){
if ( messages.size() > 0 ){
@@ -4464,6 +4662,11 @@ BuddyPluginBeta
}
}
}
+
+ if ( changed ){
+
+ updated();
+ }
}
public boolean
@@ -4536,6 +4739,87 @@ BuddyPluginBeta
return( false );
}
+ public void
+ fixupSeenState(
+ List<ChatMessage> msgs )
+ {
+ for ( ChatMessage msg: msgs ){
+
+ msg.setSeen( false );
+ }
+
+ synchronized( chat_lock ){
+
+ String info = BuddyPluginBeta.this.getLastMessageInfo( network, key );
+
+ if ( info != null ){
+
+ String[] bits = info.split( "/" );
+
+ try{
+ long old_time_secs = Long.parseLong( bits[0] );
+ long old_msg_secs = Long.parseLong( bits[1] );
+ byte[] old_id = Base32.decode( bits[2] );
+
+ for ( ChatMessage msg: msgs ){
+
+ long msg_secs = msg.getTimeStamp()/1000;
+ byte[] id = msg.getID();
+
+ if ( Arrays.equals( id, old_id )){
+
+ msg.setSeen( true );
+
+ }else{
+
+ long old_cuttoff = old_time_secs - 5*60;
+
+ if ( old_msg_secs > old_cuttoff ){
+
+ old_cuttoff = old_msg_secs;
+ }
+
+ if ( msg_secs <= old_cuttoff ){
+
+ msg.setSeen( true );
+ }
+ }
+ }
+
+ if ( message_ids.containsKey( old_id )){
+
+ Map<ChatMessage,Integer> msg_map = new HashMap<ChatMessage, Integer>();
+
+ int old_msg_index = -1;
+
+ for ( int i=0;i<messages.size();i++){
+
+ ChatMessage m = messages.get(i);
+
+ msg_map.put( m, i );
+
+ if ( Arrays.equals( m.getID(), old_id )){
+
+ old_msg_index = i;
+ }
+ }
+
+ for ( ChatMessage msg: msgs ){
+
+ Integer msg_index = msg_map.get( msg );
+
+ if ( msg_index != null && msg_index <= old_msg_index ){
+
+ msg.setSeen( true );
+ }
+ }
+ }
+ }catch( Throwable e ){
+ }
+ }
+ }
+ }
+
public InetSocketAddress
getMyAddress()
{
@@ -5005,6 +5289,10 @@ BuddyPluginBeta
public static final int MT_INFO = 2;
public static final int MT_ERROR = 3;
+ protected static final int SEEN_UNKNOWN = 0;
+ protected static final int SEEN_YES = 1;
+ protected static final int SEEN_NO = 2;
+
private final int uid;
private final Map<String,Object> map;
@@ -5022,6 +5310,9 @@ BuddyPluginBeta
private boolean is_duplicate;
private boolean is_nick_clash;
+ private int seen_state = SEEN_UNKNOWN;
+ private int[] nick_locations;
+
private
ChatMessage(
int _uid,
@@ -5075,6 +5366,106 @@ BuddyPluginBeta
return( is_nick_clash );
}
+ public void
+ setSeen(
+ boolean is_seen )
+ {
+ seen_state = is_seen?SEEN_YES:SEEN_NO;
+ }
+
+ public int
+ getSeenState()
+ {
+ return( seen_state );
+ }
+
+ public int[]
+ getNickLocations()
+ {
+ synchronized( this ){
+
+ if ( nick_locations == null ){
+
+ if ( participant == null ){
+
+ return( new int[0] );
+ }
+
+ String my_nick = participant.getChat().getNickname( true );
+
+ int nick_len = my_nick.length();
+
+ List<Integer> hits = new ArrayList<Integer>();
+
+ if ( my_nick.length() > 0 ){
+
+ String text = getMessage();
+
+ int text_len = text.length();
+
+ int pos = 0;
+
+ while( pos < text_len ){
+
+ pos = text.indexOf( my_nick, pos );
+
+ if ( pos >= 0 ){
+
+ boolean match = true;
+
+ if ( pos > 0 ){
+
+ if ( Character.isLetterOrDigit( text.charAt( pos-1 ))){
+
+ match = false;
+ }
+ }
+
+ int nick_end = pos + nick_len;
+
+ if ( nick_end < text_len ){
+
+ if ( Character.isLetterOrDigit( text.charAt(nick_end ))){
+
+ match = false;
+ }
+ }
+
+ if ( match ){
+
+ hits.add( pos );
+ }
+
+ pos += nick_len;
+
+ }else{
+
+ break;
+ }
+ }
+ }
+
+ if ( hits.size() == 0 ){
+
+ nick_locations = new int[0];
+
+ }else{
+
+ nick_locations = new int[hits.size()+1];
+
+ nick_locations[0] = nick_len;
+
+ for ( int i=0;i<hits.size();i++ ){
+
+ nick_locations[i+1] = hits.get(i);
+ }
+ }
+ }
+
+ return( nick_locations );
+ }
+ }
+
private Map<String,Object>
getPayload()
{
@@ -5161,7 +5552,7 @@ BuddyPluginBeta
public int
getFlagOrigin()
- {
+ {
Map<String,Object> payload = getPayload();
if ( payload != null ){
@@ -5179,9 +5570,41 @@ BuddyPluginBeta
}
}
+ // bah, merging message has been missing origin flag
+
+ String msg_text = getMessage();
+
+ if ( msg_text.startsWith( "See http://wiki.vuze.com/w/Swarm_Merging" )){
+
+ return( FLAGS_MSG_ORIGIN_RATINGS );
+ }
+
return( FLAGS_MSG_ORIGIN_USER );
}
+ public int
+ getFlagType()
+ {
+ Map<String,Object> payload = getPayload();
+
+ if ( payload != null ){
+
+ Map<String,Object> flags = (Map<String,Object>)payload.get( "f" );
+
+ if ( flags != null ){
+
+ Number type = (Number)flags.get( FLAGS_MSG_TYPE_KEY );
+
+ if ( type != null ){
+
+ return( type.intValue());
+ }
+ }
+ }
+
+ return( FLAGS_MSG_TYPE_NORMAL );
+ }
+
public String
getMessage()
{
@@ -5200,7 +5623,11 @@ BuddyPluginBeta
if ( getMessageStatus() == FLAGS_MSG_STATUS_CHAT_QUIT ){
- return( participant.getName() + " has quit" );
+ return(
+ MessageText.getString(
+ "azbuddy.dchat.hasquit",
+ new String[]
+ { participant==null?"<unknown>":participant.getName()}));
}
// was just a string for a while...
@@ -5272,11 +5699,18 @@ BuddyPluginBeta
public int
getMessageType()
{
+ return( getMessageType( true ));
+ }
+
+ private int
+ getMessageType(
+ boolean treat_quit_as_info )
+ {
String report = (String)map.get( "error" );
if ( report == null ){
- if ( getMessageStatus() == FLAGS_MSG_STATUS_CHAT_QUIT ){
+ if ( treat_quit_as_info && getMessageStatus() == FLAGS_MSG_STATUS_CHAT_QUIT ){
return( MT_INFO );
}
@@ -5403,9 +5837,9 @@ BuddyPluginBeta
// otherwise assume it is internally generated for non-normal messages
- if ( getMessageType() != ChatMessage.MT_NORMAL ){
-
- String nick = participant.getChat().getNickname();
+ if ( getMessageType( false ) != ChatMessage.MT_NORMAL ){
+
+ String nick = participant.getChat().getNickname( false );
if ( nick.length() > 0 ){
diff --git a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginViewInterface.java b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginViewInterface.java
index 3bc5ec0..c8b9fbd 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginViewInterface.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/BuddyPluginViewInterface.java
@@ -37,6 +37,7 @@ BuddyPluginViewInterface
public static final String VP_SWT_COMPOSITE = "swt_comp";
public static final String VP_DOWNLOAD = "download"; // DownloadAdapter
+ public static final String VP_CHAT = "chat"; // ChatInstance
public View
buildView(
@@ -60,6 +61,13 @@ BuddyPluginViewInterface
View
{
public void
+ activate();
+
+ public void
+ handleDrop(
+ String drop );
+
+ public void
destroy();
}
diff --git a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginView.java b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginView.java
index 4cca005..4ea331e 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginView.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginView.java
@@ -73,6 +73,7 @@ import org.gudy.azureus2.pluginsimpl.local.utils.FormattersImpl;
import org.gudy.azureus2.ui.swt.MenuBuildUtils;
import org.gudy.azureus2.ui.swt.SimpleTextEntryWindow;
import org.gudy.azureus2.ui.swt.Utils;
+import org.gudy.azureus2.ui.swt.minibar.AllTransfersBar;
import org.gudy.azureus2.ui.swt.plugins.UISWTInstance;
import org.gudy.azureus2.ui.swt.plugins.UISWTStatusEntry;
import org.gudy.azureus2.ui.swt.plugins.UISWTStatusEntryListener;
@@ -81,6 +82,7 @@ import org.gudy.azureus2.ui.swt.plugins.UISWTViewEvent;
import org.gudy.azureus2.ui.swt.plugins.UISWTViewEventListener;
import org.gudy.azureus2.ui.swt.views.utils.TagUIUtils;
+import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.core.security.CryptoHandler;
import com.aelitis.azureus.core.security.CryptoManager;
import com.aelitis.azureus.core.security.CryptoManagerFactory;
@@ -264,7 +266,7 @@ BuddyPluginView
return;
}
- new BuddyPluginViewBetaChat( BuddyPluginView.this, plugin, chat );
+ BuddyPluginViewBetaChat.createChatWindow( BuddyPluginView.this, plugin, chat );
}
});
}
@@ -615,7 +617,7 @@ BuddyPluginView
bs_chat_gray_text = imageLoader.getImage( "dchat_gray_text" );
bs_chat_green = imageLoader.getImage( "dchat_green" );
- beta_status.setImage( bs_chat_gray );
+ setBetaStatus( bs_chat_gray );
mi_chat.setGraphic( ui_instance.createGraphic( bs_chat_gray ));
}
@@ -978,7 +980,7 @@ BuddyPluginView
buildMenu( instances );
- beta_status.setImage( bs_chat_gray );
+ setBetaStatus( bs_chat_gray );
}
}
@@ -1143,7 +1145,7 @@ BuddyPluginView
updateIdleTT();
- beta_status.setImage( bs_chat_gray );
+ setBetaStatus( bs_chat_gray );
}else{
@@ -1165,7 +1167,7 @@ BuddyPluginView
beta_status.setTooltipText( tt_text );
- beta_status.setImage( tick_count%2==0?bs_chat_gray_text:bs_chat_green);
+ setBetaStatus( tick_count%2==0?bs_chat_gray_text:bs_chat_green);
}
prev_instances = current_instances;
@@ -1192,6 +1194,28 @@ BuddyPluginView
}
}
+ private void
+ setBetaStatus(
+ final Image image )
+ {
+ beta_status.setImage( image );
+
+ final AllTransfersBar bar = AllTransfersBar.getBarIfOpen(AzureusCoreFactory.getSingleton().getGlobalManager());
+
+ if ( bar != null ){
+
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ bar.setIconImage( image==bs_chat_gray?null:image );
+ }
+ });
+ }
+ }
+
private List<MenuItem> menu_items = new ArrayList<MenuItem>();
private Set<ChatInstance> menu_latest_instances = new HashSet<ChatInstance>();
@@ -1472,15 +1496,46 @@ BuddyPluginView
Map<String,Object> properties,
ViewListener listener )
{
- BetaSubViewHolder view = new BetaSubViewHolder();
-
Composite swt_composite = (Composite)properties.get( BuddyPluginViewInterface.VP_SWT_COMPOSITE );
- DownloadAdapter download = (DownloadAdapter)properties.get( BuddyPluginViewInterface.VP_DOWNLOAD );
-
- view.initialise( swt_composite, download, listener );
-
- return( view );
+ ChatInstance chat = (ChatInstance)properties.get( BuddyPluginViewInterface.VP_CHAT );
+
+ if ( chat != null ){
+
+ final BuddyPluginViewBetaChat view = new BuddyPluginViewBetaChat( BuddyPluginView.this, plugin, chat, swt_composite );
+
+ return(
+ new View()
+ {
+ public void
+ activate()
+ {
+ view.activate();
+ }
+
+ public void
+ handleDrop(
+ String drop)
+ {
+ view.handleExternalDrop( drop );
+ }
+
+ public void
+ destroy()
+ {
+ view.close();
+ }
+ });
+ }else{
+ BetaSubViewHolder view = new BetaSubViewHolder();
+
+
+ DownloadAdapter download = (DownloadAdapter)properties.get( BuddyPluginViewInterface.VP_DOWNLOAD );
+
+ view.initialise( swt_composite, download, listener );
+
+ return( view );
+ }
}
private class
@@ -2335,7 +2390,7 @@ BuddyPluginView
return( scrollChild );
}
- private void
+ public void
activate()
{
if ( rebuild_outstanding ){
@@ -2353,6 +2408,13 @@ BuddyPluginView
activateNetwork( null );
}
+ public void
+ handleDrop(
+ String drop)
+ {
+ Debug.out( "not supported" );
+ }
+
private void
activateNetwork(
String network )
diff --git a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewBetaChat.java b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewBetaChat.java
index c0c38d1..0294b5c 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewBetaChat.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewBetaChat.java
@@ -114,6 +114,7 @@ import org.gudy.azureus2.ui.swt.mainwindow.Colors;
import org.gudy.azureus2.ui.swt.mainwindow.TorrentOpener;
import com.aelitis.azureus.core.AzureusCoreFactory;
+import com.aelitis.azureus.core.util.AZ3Functions;
import com.aelitis.azureus.plugins.net.buddy.BuddyPlugin;
import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta;
import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta.*;
@@ -132,6 +133,30 @@ BuddyPluginViewBetaChat
private static boolean auto_ftux_popout_done = false;
+ protected static BuddyPluginViewBetaChat
+ createChatWindow(
+ BuddyPluginView view,
+ BuddyPlugin plugin,
+ ChatInstance chat )
+ {
+ for ( BuddyPluginViewBetaChat win: active_windows ){
+
+ if ( win.getChat() == chat ){
+
+ Shell existing = win.getShell();
+
+ if ( existing.isVisible()){
+
+ existing.setActive();
+ }
+
+ return( win );
+ }
+ }
+
+ return( new BuddyPluginViewBetaChat( view, plugin, chat ));
+ }
+
private final BuddyPluginView view;
private final BuddyPlugin plugin;
private final BuddyPluginBeta beta;
@@ -174,7 +199,7 @@ BuddyPluginViewBetaChat
private boolean ftux_ok;
private boolean build_complete;
- protected
+ private
BuddyPluginViewBetaChat(
BuddyPluginView _view,
BuddyPlugin _plugin,
@@ -388,6 +413,18 @@ BuddyPluginViewBetaChat
build( _parent );
}
+ private Shell
+ getShell()
+ {
+ return( shell );
+ }
+
+ private ChatInstance
+ getChat()
+ {
+ return( chat );
+ }
+
private void
build(
Composite parent )
@@ -617,7 +654,7 @@ BuddyPluginViewBetaChat
try{
ChatInstance inst = chat.getManagedChannel();
- new BuddyPluginViewBetaChat( view, plugin, inst );
+ BuddyPluginViewBetaChat.createChatWindow( view, plugin, inst );
}catch( Throwable e ){
@@ -640,7 +677,7 @@ BuddyPluginViewBetaChat
try{
ChatInstance inst = chat.getReadOnlyChannel();
- new BuddyPluginViewBetaChat( view, plugin, inst );
+ createChatWindow( view, plugin, inst );
}catch( Throwable e ){
@@ -667,7 +704,7 @@ BuddyPluginViewBetaChat
ChatInstance inst = beta.getChat( chat.getNetwork(), chat.getKey() + " {" + Base32.encode( rand ) + "}" );
- new BuddyPluginViewBetaChat( view, plugin, inst );
+ createChatWindow( view, plugin, inst );
}catch( Throwable e ){
@@ -689,7 +726,7 @@ BuddyPluginViewBetaChat
try{
ChatInstance inst = beta.getChat( chat.getNetwork()==AENetworkClassifier.AT_I2P?AENetworkClassifier.AT_PUBLIC:AENetworkClassifier.AT_I2P, chat.getKey());
- new BuddyPluginViewBetaChat( view, plugin, inst );
+ createChatWindow( view, plugin, inst );
}catch( Throwable e ){
@@ -713,6 +750,24 @@ BuddyPluginViewBetaChat
}
});
+ final AZ3Functions.provider az3 = AZ3Functions.getProvider();
+
+ if ( az3 != null ){
+
+ final MenuItem sis_mi = new MenuItem( status_menu, SWT.PUSH );
+ sis_mi.setText( MessageText.getString( Utils.isAZ2UI()?"label.show.in.tab":"label.show.in.sidebar" ));
+
+ sis_mi.addSelectionListener(
+ new SelectionAdapter() {
+ public void
+ widgetSelected(
+ SelectionEvent e )
+ {
+ az3.openChat( chat.getNetwork(), chat.getKey());
+ }
+ });
+ }
+
final Menu advanced_menu = new Menu(status_menu.getShell(), SWT.DROP_DOWN);
MenuItem advanced_menu_item = new MenuItem( status_menu, SWT.CASCADE);
advanced_menu_item.setMenu(advanced_menu);
@@ -823,8 +878,8 @@ BuddyPluginViewBetaChat
}
});
- final MenuItem fave_mi = new MenuItem( status_menu, SWT.CHECK );
- fave_mi.setText( MessageText.getString( "label.keep.alive" ));
+ final MenuItem keep_alive_mi = new MenuItem( status_menu, SWT.CHECK );
+ keep_alive_mi.setText( MessageText.getString( "label.keep.alive" ));
status_menu.addMenuListener(
new MenuAdapter()
@@ -833,11 +888,11 @@ BuddyPluginViewBetaChat
menuShown(
MenuEvent e )
{
- fave_mi.setSelection( chat.getUserData( "AC:KeepAlive" ) != null );
+ keep_alive_mi.setSelection( chat.getUserData( "AC:KeepAlive" ) != null );
}
});
- fave_mi.addSelectionListener(
+ keep_alive_mi.addSelectionListener(
new SelectionAdapter() {
public void
widgetSelected(
@@ -864,9 +919,26 @@ BuddyPluginViewBetaChat
chat.setUserData( "AC:KeepAlive", clone );
}
});
+
+ final AZ3Functions.provider az3 = AZ3Functions.getProvider();
+
+ if ( az3 != null ){
+
+ final MenuItem sis_mi = new MenuItem( status_menu, SWT.PUSH );
+ sis_mi.setText( MessageText.getString( "label.show.in.sidebar" ));
+
+ sis_mi.addSelectionListener(
+ new SelectionAdapter() {
+ public void
+ widgetSelected(
+ SelectionEvent e )
+ {
+ az3.openChat( chat.getNetwork(), chat.getKey());
+ }
+ });
+ }
}
-
final Composite ftux_stack = new Composite(lhs, SWT.NONE);
grid_data = new GridData(GridData.FILL_BOTH );
grid_data.horizontalSpan = 2;
@@ -1727,7 +1799,7 @@ BuddyPluginViewBetaChat
pop_out.addMouseListener(new MouseAdapter() {
public void mouseUp(MouseEvent arg0) {
try{
- new BuddyPluginViewBetaChat( view, plugin, chat.getClone());
+ createChatWindow( view, plugin, chat.getClone());
}catch( Throwable e ){
@@ -1765,7 +1837,7 @@ BuddyPluginViewBetaChat
grid_data.horizontalSpan=1;
nickname.setLayoutData( grid_data );
- nickname.setText( chat.getNickname());
+ nickname.setText( chat.getNickname( false ));
nickname.setMessage( chat.getDefaultNickname());
label = new Label( nick_area, SWT.NULL );
@@ -2294,7 +2366,7 @@ BuddyPluginViewBetaChat
auto_ftux_popout_done = true;
try{
- new BuddyPluginViewBetaChat( view, plugin, chat.getClone());
+ createChatWindow( view, plugin, chat.getClone());
}catch( Throwable e ){
@@ -2579,7 +2651,7 @@ BuddyPluginViewBetaChat
try{
ChatInstance chat = participant.createPrivateChat();
- new BuddyPluginViewBetaChat( view, plugin, chat);
+ createChatWindow( view, plugin, chat);
}catch( Throwable f ){
@@ -2778,6 +2850,13 @@ BuddyPluginViewBetaChat
}
}
+ public void
+ handleExternalDrop(
+ String payload )
+ {
+ handleDrop( payload );
+ }
+
private void
handleDrop(
Object payload )
@@ -2786,13 +2865,28 @@ BuddyPluginViewBetaChat
String[] files = (String[])payload;
- for ( String file: files ){
-
- File f = new File( file );
-
- if ( f.exists()){
+ if ( files.length == 0 ){
- dropFile( f );
+ Debug.out( "Nothing to drop" );
+
+ }else{
+ int hits = 0;
+
+ for ( String file: files ){
+
+ File f = new File( file );
+
+ if ( f.exists()){
+
+ dropFile( f );
+
+ hits++;
+ }
+ }
+
+ if ( hits == 0 ){
+
+ Debug.out( "Nothing files found to drop" );
}
}
}else if ( payload instanceof String ){
@@ -2854,13 +2948,25 @@ BuddyPluginViewBetaChat
}
}else{
- String lc_stuff = stuff.toLowerCase( Locale.US );
+ File f = new File( stuff );
+
+ if ( f.exists()){
+
+ dropFile( f );
+
+ }else{
+ String lc_stuff = stuff.toLowerCase( Locale.US );
+
+ if ( lc_stuff.startsWith( "http:" ) ||
+ lc_stuff.startsWith( "https:" ) ||
+ lc_stuff.startsWith( "magnet: ")){
- if ( lc_stuff.startsWith( "http:" ) ||
- lc_stuff.startsWith( "https:" ) ||
- lc_stuff.startsWith( "magnet: ")){
-
- dropURL( stuff );
+ dropURL( stuff );
+
+ }else{
+
+ Debug.out( "Failed to handle drop for '" + stuff + "'" );
+ }
}
}
}else if ( payload instanceof URLTransfer.URLType ){
@@ -2870,6 +2976,10 @@ BuddyPluginViewBetaChat
if ( url != null ){
dropURL( url );
+
+ }else{
+
+ Debug.out( "Failed to handle drop for '" + payload + "'" );
}
}
}
@@ -3131,11 +3241,13 @@ BuddyPluginViewBetaChat
if ( !nickname.isFocusControl()){
- String nick = nickname.getText().trim();
+ String old_nick = nickname.getText().trim();
- if ( !chat.getNickname().equals( nick )){
+ String new_nick = chat.getNickname( false );
+
+ if ( !new_nick.equals( old_nick )){
- nickname.setText( chat.getNickname());
+ nickname.setText( new_nick );
}
}
@@ -3152,34 +3264,36 @@ BuddyPluginViewBetaChat
private void
sortParticipants()
{
- Collections.sort(
- participants,
- new Comparator<ChatParticipant>()
- {
- private Comparator<String> comp = new FormattersImpl().getAlphanumericComparator( true );
-
- public int
- compare(
- ChatParticipant p1,
- ChatParticipant p2 )
+ synchronized( participants ){
+ Collections.sort(
+ participants,
+ new Comparator<ChatParticipant>()
{
- boolean b_p1 = p1.hasNickname();
- boolean b_p2 = p2.hasNickname();
+ private Comparator<String> comp = new FormattersImpl().getAlphanumericComparator( true );
- if ( b_p1 == b_p2 ){
-
- return( comp.compare( p1.getName( ftux_ok ), p2.getName( ftux_ok )));
-
- }else if ( b_p1 ){
-
- return( -1 );
+ public int
+ compare(
+ ChatParticipant p1,
+ ChatParticipant p2 )
+ {
+ boolean b_p1 = p1.hasNickname();
+ boolean b_p2 = p2.hasNickname();
- }else{
+ if ( b_p1 == b_p2 ){
- return( 1 );
+ return( comp.compare( p1.getName( ftux_ok ), p2.getName( ftux_ok )));
+
+ }else if ( b_p1 ){
+
+ return( -1 );
+
+ }else{
+
+ return( 1 );
+ }
}
- }
- });
+ });
+ }
}
public void
@@ -3480,7 +3594,7 @@ BuddyPluginViewBetaChat
{
long now = SystemTime.getCurrentTime();
- int existing_length = log.getText().length();
+ final int initial_log_length = log.getText().length();
StringBuffer appended = new StringBuffer( 2048 );
@@ -3497,7 +3611,7 @@ BuddyPluginViewBetaChat
continue;
}
- String original_msg = message.getMessage();
+ String original_msg = message.getMessage();
if ( !message.isIgnored() && original_msg.length() > 0 ){
@@ -3513,27 +3627,43 @@ BuddyPluginViewBetaChat
long time = message.getTimeStamp();
- ChatParticipant participant = message.getParticipant();
+ final ChatParticipant participant = message.getParticipant();
- boolean is_me = participant.isMe();
+ final boolean is_me = participant.isMe();
if ( !is_me ){
last_message_not_ours = message;
}
- int overall_start = appended.length();
+ final int message_start_appended_length = appended.length();
+ final int message_start_style_index = new_ranges.size();
String nick = message.getNickName();
int message_type = message.getMessageType();
+ Font default_font = null;
+ Color default_colour = null;
+
+ Font info_font = null;
+ Color info_colour = Colors.grey;
+
Color colour = Colors.blues[Colors.FADED_DARKEST];
if ( message_type == ChatMessage.MT_INFO ){
- colour = Colors.grey;
-
+ if ( original_msg.startsWith( "*" ) && original_msg.endsWith( "*" )){
+
+ original_msg = original_msg.substring( 1, original_msg.length()-1 );
+
+ info_colour = Colors.black;
+ info_font = bold_font;
+
+ }else{
+
+ colour = Colors.grey;
+ }
}else if ( message_type == ChatMessage.MT_ERROR ){
colour = Colors.red;
@@ -3558,6 +3688,8 @@ BuddyPluginViewBetaChat
participant_last_message_map.put( participant, message );
}
+ boolean is_me_msg = message.getFlagType() == BuddyPluginBeta.FLAGS_MSG_TYPE_ME;
+
String says;
int stamp_len;
@@ -3575,7 +3707,7 @@ BuddyPluginViewBetaChat
stamp_len = stamp.length() + 3;
- if ( last_message != null && !participant.isMe()){
+ if ( last_message != null && !is_me ){
String last_nick = last_message.getNickName();
@@ -3589,15 +3721,44 @@ BuddyPluginViewBetaChat
}
}
}
+
+ if ( message_type == ChatMessage.MT_NORMAL ){
+
+ if ( is_me_msg ){
+
+ says += " ";
+
+ default_colour = colour;
+
+ if ( is_me ){
+
+ default_font = italic_font;
+ }
+
+ }else{
+
+ says += "\n";
+ }
+ }else{
+
+ says += " ";
+
+ if ( message_type == ChatMessage.MT_ERROR ){
+
+ default_colour = colour;
+ }
+ }
- says += message_type == ChatMessage.MT_NORMAL?"\n":" ";
-
- if ( previous_says == null || previous_says_mt != message_type || !previous_says.equals( says )){
+
+ if ( previous_says == null ||
+ previous_says_mt != message_type ||
+ is_me_msg ||
+ !previous_says.equals( says )){
previous_says = says;
previous_says_mt = message_type;
- int start = existing_length + appended.length();
+ int start = initial_log_length + appended.length();
appended.append( says );
@@ -3607,7 +3768,7 @@ BuddyPluginViewBetaChat
styleRange.length = stamp_len;
styleRange.foreground = Colors.grey;
- if ( participant.isMe()){
+ if ( is_me ){
styleRange.font = italic_font;
}
@@ -3620,13 +3781,14 @@ BuddyPluginViewBetaChat
int rem = says.length() - stamp_len;
if ( rem > 0 ){
+
StyleRange styleRange = new StyleRange();
styleRange.start = start + stamp_len;
styleRange.length = rem - was_len;
styleRange.foreground = colour;
styleRange.data = participant;
- if ( participant.isMe()){
+ if ( is_me ){
styleRange.font = italic_font;
}
@@ -3636,7 +3798,7 @@ BuddyPluginViewBetaChat
}
}
- final int start = existing_length + appended.length();
+ final int start = initial_log_length + appended.length();
String msg = original_msg;
@@ -3717,6 +3879,8 @@ BuddyPluginViewBetaChat
if ( url_str.startsWith( "\"" ) && url_str.endsWith( "\"" )){
url_str = url_str.substring( 1, url_str.length()-1 );
+
+ protocol = protocol.substring(1);
}
URL url = new URL( url_str );
@@ -3865,7 +4029,78 @@ BuddyPluginViewBetaChat
}else{
- sb.append((String)obj);
+ String segment_str = (String)obj;
+
+ try{
+ String my_nick = chat.getNickname( true );
+
+ if ( my_nick.length() > 0 &&
+ segment_str.contains( my_nick ) &&
+ message_type == ChatMessage.MT_NORMAL ){
+
+ StringBuffer temp = new StringBuffer( segment_str.length() + 1024 );
+
+ int nick_len = my_nick.length();
+
+ int segment_len = segment_str.length();
+
+ int segment_pos = 0;
+
+ while( segment_pos < segment_len ){
+
+ int next_pos = segment_str.indexOf( my_nick, segment_pos );
+
+ if ( next_pos >= 0 ){
+
+ temp.append( segment_str.substring( segment_pos, next_pos ));
+
+ boolean match = true;
+
+ if ( next_pos > 0 ){
+
+ if ( Character.isLetterOrDigit( segment_str.charAt( next_pos-1 ))){
+
+ match = false;
+ }
+ }
+
+ int nick_end = next_pos + nick_len;
+
+ if ( nick_end < segment_len ){
+
+ if ( Character.isLetterOrDigit( segment_str.charAt(nick_end ))){
+
+ match = false;
+ }
+ }
+
+ if ( match ){
+
+ temp.append( "\"chat:nick[[" + UrlUtils.encode(my_nick) + "]]\"" );
+
+ }else{
+
+ temp.append( my_nick );
+ }
+
+ segment_pos = next_pos + nick_len;
+
+ }else{
+
+ temp.append( segment_str.substring(segment_pos));
+
+ break;
+ }
+ }
+
+ segment_str = temp.toString();
+ }
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+
+ sb.append( segment_str );
}
}
@@ -3939,6 +4174,8 @@ BuddyPluginViewBetaChat
if ( url_str.startsWith( "\"" ) && url_str.endsWith( "\"" )){
url_str = url_str.substring( 1, url_str.length()-1 );
+
+ protocol = protocol.substring(1);
}
if ( protocol.equalsIgnoreCase( "chat" )){
@@ -4005,8 +4242,9 @@ BuddyPluginViewBetaChat
StyleRange styleRange = new StyleRange();
styleRange.start = next_style_start;
styleRange.length = this_style_start - next_style_start;
- styleRange.foreground = Colors.grey;
-
+ styleRange.foreground = info_colour;
+ styleRange.font = info_font;
+
new_ranges.add( styleRange);
next_style_start = this_style_start + this_style_length;
@@ -4038,6 +4276,9 @@ BuddyPluginViewBetaChat
will_work = false;
}
}
+ }else if ( lc_url.startsWith( "chat:nick" )){
+
+ will_work = false;
}
}catch( Throwable e ){
@@ -4089,7 +4330,8 @@ BuddyPluginViewBetaChat
StyleRange styleRange = new StyleRange();
styleRange.start = next_style_start;
styleRange.length = start + msg.length() - next_style_start;
- styleRange.foreground = Colors.grey;
+ styleRange.foreground = info_colour;
+ styleRange.font = info_font;
new_ranges.add( styleRange);
}
@@ -4099,12 +4341,71 @@ BuddyPluginViewBetaChat
Debug.out( e );
}
-
+
appended.append( msg );
+ // apply any default styles
+
+ if ( default_font != null || default_colour != null ){
+
+ final int message_start_log_length = initial_log_length + message_start_appended_length;
+
+ int pos = message_start_log_length;
+
+ for ( int i=message_start_style_index;i<new_ranges.size();i++){
+
+ StyleRange style = new_ranges.get(i);
+
+ int style_start = style.start;
+ int style_length = style.length;
+
+ if ( style_start > pos ){
+
+ //System.out.println( " " + pos + "-" + (style_start-1 ));
+
+ StyleRange styleRange = new StyleRange();
+ styleRange.start = pos;
+ styleRange.length = style_start - pos;
+
+ if ( default_colour != null ){
+ styleRange.foreground = default_colour;
+ }
+ if ( default_font != null ){
+ styleRange.font = default_font;
+ }
+
+ new_ranges.add( i, styleRange);
+
+ i++;
+ }
+
+ pos = style_start + style_length;
+ }
+
+ int message_end_log_length = initial_log_length + appended.length();
+
+ if ( pos < message_end_log_length ){
+
+ //System.out.println( " " + pos + "-" + (message_end_log_length-1) );
+
+ StyleRange styleRange = new StyleRange();
+ styleRange.start = pos;
+ styleRange.length = message_end_log_length - pos;
+
+ if ( default_colour != null ){
+ styleRange.foreground = default_colour;
+ }
+ if ( default_font != null ){
+ styleRange.font = default_font;
+ }
+
+ new_ranges.add( styleRange);
+ }
+ }
+
appended.append( "\n" );
- int actual_length = appended.length() - overall_start;
+ int actual_length = appended.length() - message_start_appended_length;
messages.put( message, actual_length );
}
@@ -4177,6 +4478,8 @@ BuddyPluginViewBetaChat
long last_message_not_ours_time = last_message_not_ours.getTimeStamp();
+ boolean mesages_seen = true;
+
if ( build_complete ){
if ( ( !log.isVisible()) ||
@@ -4188,6 +4491,8 @@ BuddyPluginViewBetaChat
last_seen_message_pending = last_message_not_ours_time;
view.betaMessagePending( chat, log, last_message_not_ours );
+
+ mesages_seen = false;
}
}else{
@@ -4202,6 +4507,14 @@ BuddyPluginViewBetaChat
last_seen_message = last_message_not_ours_time;
}
}
+
+ if ( mesages_seen ){
+
+ for ( ChatMessage msg: all_messages ){
+
+ msg.setSeen( true );
+ }
+ }
}
}
}
@@ -4215,5 +4528,12 @@ BuddyPluginViewBetaChat
}
view.betaMessagePending( chat, log, null );
+
+ List<ChatMessage> unseen = chat.getUnseenMessages();
+
+ for ( ChatMessage msg: unseen ){
+
+ msg.setSeen( true );
+ }
}
}
diff --git a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewInstance.java b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewInstance.java
index 514012c..d287087 100644
--- a/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewInstance.java
+++ b/azureus2/src/com/aelitis/azureus/plugins/net/buddy/swt/BuddyPluginViewInstance.java
@@ -640,7 +640,7 @@ BuddyPluginViewInstance
{
if ( !display.isDisposed()){
- BuddyPluginViewBetaChat chat = new BuddyPluginViewBetaChat( view, plugin, inst );
+ BuddyPluginViewBetaChat chat = BuddyPluginViewBetaChat.createChatWindow( view, plugin, inst );
import_button.setEnabled( true );
@@ -822,7 +822,7 @@ BuddyPluginViewInstance
{
if ( !display.isDisposed()){
- BuddyPluginViewBetaChat chat = new BuddyPluginViewBetaChat( view, plugin, inst );
+ BuddyPluginViewBetaChat chat = BuddyPluginViewBetaChat.createChatWindow( view, plugin, inst );
create_button.setEnabled( true );
@@ -1060,7 +1060,7 @@ BuddyPluginViewInstance
{
if ( !display.isDisposed()){
- BuddyPluginViewBetaChat chat = new BuddyPluginViewBetaChat( view, plugin, inst );
+ BuddyPluginViewBetaChat chat = BuddyPluginViewBetaChat.createChatWindow( view, plugin, inst );
chat.addDisposeListener(
new DisposeListener()
diff --git a/azureus2/src/com/aelitis/azureus/ui/common/table/TableColumnCore.java b/azureus2/src/com/aelitis/azureus/ui/common/table/TableColumnCore.java
index 07ba613..04b89ee 100644
--- a/azureus2/src/com/aelitis/azureus/ui/common/table/TableColumnCore.java
+++ b/azureus2/src/com/aelitis/azureus/ui/common/table/TableColumnCore.java
@@ -185,6 +185,8 @@ public interface TableColumnCore
*/
public String getTitleLanguageKey();
+ public String getTitleLanguageKey( boolean with_renames );
+
/**
* @return # of consecutive errors
*
diff --git a/azureus2/src/com/aelitis/azureus/ui/common/table/TableRowCore.java b/azureus2/src/com/aelitis/azureus/ui/common/table/TableRowCore.java
index 85f9b0e..02e2051 100644
--- a/azureus2/src/com/aelitis/azureus/ui/common/table/TableRowCore.java
+++ b/azureus2/src/com/aelitis/azureus/ui/common/table/TableRowCore.java
@@ -79,8 +79,7 @@ public interface TableRowCore extends TableRow
*/
public TableCellCore getTableCellCore(String field);
- /** Retreive whether the row is visible to the user. In SWT, when the table
- * is not VIRTUAL, all rows are "visible"
+ /** Retreive whether the row is visible to the user.
*
* @return visibility state
*/
diff --git a/azureus2/src/com/aelitis/azureus/ui/common/table/impl/TableColumnImpl.java b/azureus2/src/com/aelitis/azureus/ui/common/table/impl/TableColumnImpl.java
index 15c9ace..d639008 100644
--- a/azureus2/src/com/aelitis/azureus/ui/common/table/impl/TableColumnImpl.java
+++ b/azureus2/src/com/aelitis/azureus/ui/common/table/impl/TableColumnImpl.java
@@ -974,6 +974,7 @@ public class TableColumnImpl
String s = new String((byte[]) o, "utf-8");
// write it back to the map, so we don't continually create new String objects
userData.put(key, s);
+ return( s );
} catch (UnsupportedEncodingException e) {
}
}
@@ -1143,14 +1144,20 @@ public class TableColumnImpl
}
public String getTitleLanguageKey() {
+ return( getTitleLanguageKey( true ));
+ }
+
+ public String getTitleLanguageKey( boolean with_renames ) {
try {
this_mon.enter();
- String name_override = getNameOverride();
-
- if ( name_override != null ){
+ if ( with_renames ){
+ String name_override = getNameOverride();
- return( "!" + name_override + "!" );
+ if ( name_override != null ){
+
+ return( "!" + name_override + "!" );
+ }
}
if (sTitleLanguageKey == null) {
diff --git a/azureus2/src/com/aelitis/azureus/ui/mdi/MdiEntry.java b/azureus2/src/com/aelitis/azureus/ui/mdi/MdiEntry.java
index e0f44ed..5965576 100755
--- a/azureus2/src/com/aelitis/azureus/ui/mdi/MdiEntry.java
+++ b/azureus2/src/com/aelitis/azureus/ui/mdi/MdiEntry.java
@@ -48,6 +48,8 @@ public interface MdiEntry extends UIPluginView
public MdiEntryVitalityImage addVitalityImage(String imageID);
+ public void addListeners(Object objectWithListeners);
+
/**
* @param l
*
diff --git a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerAvailabilityImpl.java b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerAvailabilityImpl.java
index 5a458b2..654a06b 100644
--- a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerAvailabilityImpl.java
+++ b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerAvailabilityImpl.java
@@ -588,15 +588,18 @@ DownloadManagerAvailabilityImpl
throws IPCException
{
- synchronized( lookup_status ){
-
- lookup_status[0] = (Integer)params[0];
+ if ( methodName.equals( "statusUpdate" )){
- if ( params.length >= 4 ){
+ synchronized( lookup_status ){
+
+ lookup_status[0] = (Integer)params[0];
- lookup_status[1] = (Integer)params[1];
- lookup_status[2] = (Integer)params[2];
- lookup_status[3] = (Integer)params[3];
+ if ( params.length >= 4 ){
+
+ lookup_status[1] = (Integer)params[1];
+ lookup_status[2] = (Integer)params[2];
+ lookup_status[3] = (Integer)params[3];
+ }
}
}
diff --git a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerController.java b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerController.java
index 310d1f1..d9b2053 100644
--- a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerController.java
+++ b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerController.java
@@ -92,7 +92,7 @@ DownloadManagerController
private static ExternalSeedPlugin ext_seed_plugin;
private static boolean ext_seed_plugin_tried;
- protected static ExternalSeedPlugin
+ public static ExternalSeedPlugin
getExternalSeedPlugin()
{
if ( !ext_seed_plugin_tried ){
@@ -1397,14 +1397,12 @@ DownloadManagerController
List<PEPeer> peers = pm.getPeers();
+ // disconnect all peers - this is required as the new network assignment can
+ // require an alternative destination to be used for peer connections
+
for ( PEPeer peer: peers ){
-
- String net = AENetworkClassifier.categoriseAddress( peer.getIp());
-
- if ( !isNetworkEnabled( net )){
-
- pm.removePeer( peer, "Network not enabled" );
- }
+
+ pm.removePeer( peer, "Networks changed, reconnection required" );
}
}
}
diff --git a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerImpl.java b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerImpl.java
index 1294d25..46ce5d4 100644
--- a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerImpl.java
+++ b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerImpl.java
@@ -1094,7 +1094,7 @@ DownloadManagerImpl
// make sure we know what networks to use for this download
- if ( download_manager_state.getNetworks().length == 0 && torrent != null){
+ if ( torrent != null && !download_manager_state.hasAttribute( DownloadManagerState.AT_NETWORKS )){
String[] networks = AENetworkClassifier.getNetworks( torrent, display_name );
diff --git a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerStatsImpl.java b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerStatsImpl.java
index 18407cd..f450e35 100644
--- a/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerStatsImpl.java
+++ b/azureus2/src/org/gudy/azureus2/core3/download/impl/DownloadManagerStatsImpl.java
@@ -1103,6 +1103,12 @@ DownloadManagerStatsImpl
saved_peak_receive_rate = state.getLongAttribute( DownloadManagerState.AT_PEAK_RECEIVE_RATE );
saved_peak_send_rate = state.getLongAttribute( DownloadManagerState.AT_PEAK_SEND_RATE );
+
+ if (saved_data_bytes_downloaded > 0 && saved_completed_download_bytes == 0) {
+ // Bug where 0 is stored in config for torrent's saved_completed_download_bytes
+ // when there's actually completed data. Force a recalc on next request
+ saved_completed_download_bytes = -1;
+ }
}
public void
@@ -1152,7 +1158,10 @@ DownloadManagerStatsImpl
getPercentDoneExcludingDND()
{
long sizeExcludingDND = getSizeExcludingDND();
- if (sizeExcludingDND <= 0) {
+ if (sizeExcludingDND == 0) {
+ return 1000;
+ }
+ if (sizeExcludingDND < 0) {
return 0;
}
float pct = (sizeExcludingDND - getRemainingExcludingDND()) / (float) sizeExcludingDND;
diff --git a/azureus2/src/org/gudy/azureus2/core3/global/impl/GlobalManagerImpl.java b/azureus2/src/org/gudy/azureus2/core3/global/impl/GlobalManagerImpl.java
index c7fc46b..eba0400 100644
--- a/azureus2/src/org/gudy/azureus2/core3/global/impl/GlobalManagerImpl.java
+++ b/azureus2/src/org/gudy/azureus2/core3/global/impl/GlobalManagerImpl.java
@@ -176,6 +176,20 @@ public class GlobalManagerImpl
}
});
+ private static boolean enable_stopped_scrapes;
+
+
+ static{
+ COConfigurationManager.addAndFireParameterListener(
+ "Tracker Client Scrape Stopped Enable",
+ new ParameterListener(){
+ public void parameterChanged(String parameterName) {
+ enable_stopped_scrapes = COConfigurationManager.getBooleanParameter( parameterName );
+ }
+ });
+ }
+
+
private volatile List<DownloadManager> managers_cow = new ArrayList<DownloadManager>();
private AEMonitor managers_mon = new AEMonitor( "GM:Managers" );
@@ -451,30 +465,53 @@ public class GlobalManagerImpl
trackerScraper.setClientResolver(
new TRTrackerScraperClientResolver()
{
- public int
- getStatus(
+ public boolean
+ isScrapable(
HashWrapper torrent_hash )
{
DownloadManager dm = getDownloadManager(torrent_hash);
if ( dm == null ){
- return( TRTrackerScraperClientResolver.ST_NOT_FOUND );
+ return( false );
}
-
+
+
int dm_state = dm.getState();
if ( dm_state == DownloadManager.STATE_QUEUED ){
- return( TRTrackerScraperClientResolver.ST_QUEUED );
+ return( true );
}else if ( dm_state == DownloadManager.STATE_DOWNLOADING ||
dm_state == DownloadManager.STATE_SEEDING ){
- return( TRTrackerScraperClientResolver.ST_RUNNING );
+ return( true );
+ }
+
+ // download is stopped
+
+ if ( !enable_stopped_scrapes ){
+
+ return( false );
+ }
+
+ // we don't want to scrape downloads that have never been started because the user
+ // might be working out which networks to enable and it would be bad to go ahead
+ // and start, say, a public scrape, when they're about to set the download as
+ // anonymous only
+
+ DownloadManagerStats stats = dm.getStats();
+
+ // hack atm rather than recording 'has ever been started' state just look at data
+ // might have been added for seeding etc so don't just use bytes downloaded
+
+ if ( stats.getTotalDataBytesReceived() == 0 && stats.getPercentDoneExcludingDND() == 0 ){
+
+ return( false );
}
- return( TRTrackerScraperClientResolver.ST_OTHER );
+ return( true );
}
public boolean
diff --git a/azureus2/src/org/gudy/azureus2/core3/peer/impl/PEPeerTransport.java b/azureus2/src/org/gudy/azureus2/core3/peer/impl/PEPeerTransport.java
index c324800..f0815a4 100644
--- a/azureus2/src/org/gudy/azureus2/core3/peer/impl/PEPeerTransport.java
+++ b/azureus2/src/org/gudy/azureus2/core3/peer/impl/PEPeerTransport.java
@@ -254,6 +254,9 @@ PEPeerTransport
*/
public boolean isSafeForReconnect();
+ public String
+ getNetwork();
+
public void
generateEvidence(
IndentWriter writer );
diff --git a/azureus2/src/org/gudy/azureus2/core3/peer/impl/control/PEPeerControlImpl.java b/azureus2/src/org/gudy/azureus2/core3/peer/impl/control/PEPeerControlImpl.java
index e10a98c..dd835f8 100644
--- a/azureus2/src/org/gudy/azureus2/core3/peer/impl/control/PEPeerControlImpl.java
+++ b/azureus2/src/org/gudy/azureus2/core3/peer/impl/control/PEPeerControlImpl.java
@@ -2999,15 +2999,20 @@ DiskManagerCheckRequestListener, IPFilterListener
String ip = peer.getIp();
boolean wasIPv6;
- try
- {
-
- wasIPv6 = AddressUtils.getByName(ip) instanceof Inet6Address;
- } catch (UnknownHostException e)
- {
- wasIPv6 = false;
- // something is fishy about the old address, don't try to reconnect with v6
- canTryIpv6 = false;
+ if ( peer.getNetwork() == AENetworkClassifier.AT_PUBLIC ){
+ try
+ {
+
+ wasIPv6 = AddressUtils.getByName(ip) instanceof Inet6Address;
+ } catch (UnknownHostException e)
+ {
+ wasIPv6 = false;
+ // something is fishy about the old address, don't try to reconnect with v6
+ canTryIpv6 = false;
+ }
+ }else{
+ wasIPv6 = false;
+ canTryIpv6 = false;
}
//System.out.println("netfail="+network_failed+", connfail="+connect_failed+", can6="+canTryIpv6+", was6="+wasIPv6);
diff --git a/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java b/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java
index 2de4c55..32ea04f 100644
--- a/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java
+++ b/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java
@@ -85,6 +85,7 @@ implements PEPeerTransport
private final String peer_source;
private byte[] peer_id;
private final String ip;
+ private final String network;
protected String ip_resolved;
private IPToHostNameResolverRequest ip_resolver_request;
@@ -409,6 +410,9 @@ implements PEPeerTransport
InetSocketAddress notional_address = _connection.getEndpoint().getNotionalAddress();
ip = AddressUtils.getHostAddress( notional_address );
+
+ network = AENetworkClassifier.categoriseAddress( ip );
+
port = notional_address.getPort();
peer_item_identity = PeerItemFactory.createPeerItem( ip, port, PeerItem.convertSourceID( _peer_source ), PeerItemFactory.HANDSHAKE_TYPE_PLAIN, 0, PeerItemFactory.CRYPTO_LEVEL_1, 0 ); //this will be recreated upon az handshake decode
@@ -531,6 +535,8 @@ implements PEPeerTransport
crypto_level = _crypto_level;
data = _initial_user_data;
+ network = AENetworkClassifier.categoriseAddress( ip );
+
if ( data != null ){
Boolean pc = (Boolean)data.get( Peer.PR_PRIORITY_CONNECTION );
@@ -5255,7 +5261,12 @@ implements PEPeerTransport
return( protocols[0].getType() != ProtocolEndpoint.PROTOCOL_UDP );
}
-
+ public String
+ getNetwork()
+ {
+ return( network );
+ }
+
public void
setUploadRateLimitBytesPerSecond(
int bytes )
diff --git a/azureus2/src/org/gudy/azureus2/core3/peer/util/PeerUtils.java b/azureus2/src/org/gudy/azureus2/core3/peer/util/PeerUtils.java
index 339bf75..319c0cd 100644
--- a/azureus2/src/org/gudy/azureus2/core3/peer/util/PeerUtils.java
+++ b/azureus2/src/org/gudy/azureus2/core3/peer/util/PeerUtils.java
@@ -483,6 +483,7 @@ public class PeerUtils {
private static long country_provider_last_check;
private static Object country_key = new Object();
+ private static Object net_key = new Object();
private static LocationProvider
getCountryProvider()
@@ -587,6 +588,27 @@ public class PeerUtils {
return( details );
}
+ public static String
+ getNetwork(
+ PEPeer peer )
+ {
+ if ( peer == null ){
+
+ return( null );
+ }
+
+ String net = (String)peer.getUserData( net_key );
+
+ if ( net == null ){
+
+ net = AENetworkClassifier.categoriseAddress( peer.getIp());
+
+ peer.setUserData( net_key, net );
+ }
+
+ return( net );
+ }
+
/*
public static void
main(
diff --git a/azureus2/src/org/gudy/azureus2/core3/torrent/impl/TorrentOpenOptions.java b/azureus2/src/org/gudy/azureus2/core3/torrent/impl/TorrentOpenOptions.java
index 742ec69..3d3a405 100644
--- a/azureus2/src/org/gudy/azureus2/core3/torrent/impl/TorrentOpenOptions.java
+++ b/azureus2/src/org/gudy/azureus2/core3/torrent/impl/TorrentOpenOptions.java
@@ -87,8 +87,7 @@ public class TorrentOpenOptions
private long totalSize;
- /** @todo: getter/setters */
- public int iStartID;
+ private int iStartID;
/** @todo: getter/setters */
public int iQueueLocation;
@@ -249,6 +248,19 @@ public class TorrentOpenOptions
return( torrent.isSimpleTorrent());
}
+ public int
+ getStartMode()
+ {
+ return( iStartID );
+ }
+
+ public void
+ setStartMode(
+ int m )
+ {
+ iStartID = m;
+ }
+
public Map<String, Boolean>
getEnabledNetworks()
{
diff --git a/azureus2/src/org/gudy/azureus2/core3/tracker/client/TRTrackerScraperClientResolver.java b/azureus2/src/org/gudy/azureus2/core3/tracker/client/TRTrackerScraperClientResolver.java
index e3d1c8a..f7de928 100644
--- a/azureus2/src/org/gudy/azureus2/core3/tracker/client/TRTrackerScraperClientResolver.java
+++ b/azureus2/src/org/gudy/azureus2/core3/tracker/client/TRTrackerScraperClientResolver.java
@@ -31,11 +31,6 @@ import org.gudy.azureus2.core3.util.HashWrapper;
public interface
TRTrackerScraperClientResolver
{
- public static final int ST_NOT_FOUND = 1;
- public static final int ST_RUNNING = 2; // downloading, seeding
- public static final int ST_QUEUED = 3;
- public static final int ST_OTHER = 4;
-
public static final Character FL_NONE = new Character( 'n' );
public static final Character FL_INCOMPLETE_STOPPED = new Character( 's' );
public static final Character FL_INCOMPLETE_QUEUED = new Character( 'q' );
@@ -43,15 +38,9 @@ TRTrackerScraperClientResolver
public static final Character FL_COMPLETE_STOPPED = new Character( 'S' );
public static final Character FL_COMPLETE_QUEUED = new Character( 'Q' );
public static final Character FL_COMPLETE_RUNNING = new Character( 'R' );
-
- /**
- * Gives access to a restricted set of states for this torrent from ST_ set
- * @param torrent_hash
- * @return
- */
-
- public int
- getStatus(
+
+ public boolean
+ isScrapable(
HashWrapper torrent_hash );
/**
diff --git a/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/TRTrackerScraperImpl.java b/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/TRTrackerScraperImpl.java
index c2e4e1c..0ce6b0e 100644
--- a/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/TRTrackerScraperImpl.java
+++ b/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/TRTrackerScraperImpl.java
@@ -231,7 +231,7 @@ TRTrackerScraperImpl
}
public boolean
- isTorrentDownloading(
+ isTorrentScrapable(
HashWrapper hash )
{
if ( client_resolver == null ){
@@ -239,23 +239,7 @@ TRTrackerScraperImpl
return( false );
}
- int state = client_resolver.getStatus( hash );
-
- return( state == TRTrackerScraperClientResolver.ST_RUNNING );
- }
-
- public boolean
- isTorrentRunning(
- HashWrapper hash )
- {
- if ( client_resolver == null ){
-
- return( false );
- }
-
- int state = client_resolver.getStatus( hash );
-
- return( state == TRTrackerScraperClientResolver.ST_RUNNING || state == TRTrackerScraperClientResolver.ST_QUEUED );
+ return( client_resolver.isScrapable( hash ));
}
public boolean
diff --git a/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/bt/TrackerStatus.java b/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/bt/TrackerStatus.java
index bb1c4da..bfa0758 100644
--- a/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/bt/TrackerStatus.java
+++ b/azureus2/src/org/gudy/azureus2/core3/tracker/client/impl/bt/TrackerStatus.java
@@ -117,7 +117,7 @@ public class TrackerStatus {
private String scrapeURL = null;
/** key = Torrent hash. values = TRTrackerScraperResponseImpl */
- private HashMap hashes;
+ private HashMap<HashWrapper,TRTrackerScraperResponseImpl> hashes;
/** only needed to notify listeners */
private TRTrackerScraperImpl scraper;
@@ -144,7 +144,7 @@ public class TrackerStatus {
String trackerUrl = tracker_url.toString();
- hashes = new HashMap();
+ hashes = new HashMap<HashWrapper,TRTrackerScraperResponseImpl>();
try {
trackerUrl = trackerUrl.replaceAll(" ", "");
@@ -229,7 +229,7 @@ public class TrackerStatus {
}
try {
- ArrayList responsesToUpdate = new ArrayList();
+ ArrayList<TRTrackerScraperResponseImpl> responsesToUpdate = new ArrayList<TRTrackerScraperResponseImpl>();
TRTrackerScraperResponseImpl response;
@@ -322,9 +322,9 @@ public class TrackerStatus {
protected void
runScrapes(
- final ArrayList responses,
- final boolean force,
- boolean async)
+ final ArrayList<TRTrackerScraperResponseImpl> responses,
+ final boolean force,
+ boolean async)
{
numActiveScrapes.incrementAndGet();
@@ -355,43 +355,44 @@ public class TrackerStatus {
protected void
runScrapesSupport(
- ArrayList responses,
- boolean force )
+ ArrayList<TRTrackerScraperResponseImpl> allResponses,
+ boolean force )
{
try {
if (Logger.isEnabled()) {
Logger.log(new LogEvent(LOGID, "TrackerStatus: scraping '" + scrapeURL
- + "', for " + responses.size() + " of " + hashes.size() + " hashes"
+ + "', for " + allResponses.size() + " of " + hashes.size() + " hashes"
+ ", single_hash_scrapes: " + (bSingleHashScrapes ? "Y" : "N")));
}
boolean original_bSingleHashScrapes = bSingleHashScrapes;
- boolean disable_all_scrapes = !COConfigurationManager
- .getBooleanParameter("Tracker Client Scrape Enable");
- boolean disable_stopped_scrapes = !COConfigurationManager
- .getBooleanParameter("Tracker Client Scrape Stopped Enable");
+ boolean disable_all_scrapes = !COConfigurationManager.getBooleanParameter("Tracker Client Scrape Enable");
byte[] scrape_reply = null;
+ List<HashWrapper> hashesInQuery = new ArrayList<HashWrapper>(allResponses.size());
+ List<TRTrackerScraperResponseImpl> responsesInQuery = new ArrayList<TRTrackerScraperResponseImpl>(allResponses.size());
+
+ List<HashWrapper> hashesForUDP = new ArrayList<HashWrapper>();
+ List<TRTrackerScraperResponseImpl> responsesForUDP = new ArrayList<TRTrackerScraperResponseImpl>();
+
+ List<TRTrackerScraperResponseImpl> activeResponses = responsesInQuery;
+
try {
// if URL already includes a query component then just append our
// params
HashWrapper one_of_the_hashes = null;
- TRTrackerScraperResponseImpl one_of_the_responses = null;
+ //TRTrackerScraperResponseImpl one_of_the_responses = null;
char first_separator = scrapeURL.indexOf('?') == -1 ? '?' : '&';
String info_hash = "";
String flags = "";
-
- List<HashWrapper> hashesInQuery = new ArrayList<HashWrapper>(responses.size());
- List<HashWrapper> hashesForUDP = new ArrayList<HashWrapper>();
-
- for (int i = 0; i < responses.size(); i++) {
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses.get(i);
+
+ for ( TRTrackerScraperResponseImpl response: allResponses ){
HashWrapper hash = response.getHash();
@@ -410,9 +411,9 @@ public class TrackerStatus {
scraper.scrapeReceived(response);
- } else if ( !force && (
- disable_all_scrapes ||
- (disable_stopped_scrapes && !scraper.isTorrentRunning(hash)))){
+ } else if ( (!force) &&
+ ( disable_all_scrapes ||
+ !scraper.isTorrentScrapable(hash))){
response.setNextScrapeStartTime(SystemTime.getCurrentTime()
+ FAULTY_SCRAPE_RETRY_INTERVAL);
@@ -424,6 +425,9 @@ public class TrackerStatus {
} else {
+ hashesInQuery.add( hash );
+ responsesInQuery.add( response );
+
response.setStatus(TRTrackerScraperResponse.ST_SCRAPING,
MessageText.getString(SS + "scraping"));
@@ -458,20 +462,24 @@ public class TrackerStatus {
flags += TRTrackerScraperClientResolver.FL_NONE;
}
- hashesInQuery.add( hash );
-
- one_of_the_responses = response;
+
one_of_the_hashes = hash;
- // 28 + 16 + 70*20 -> IPv4/udp packet size of 1444 , that should go through most lines unfragmented
- if(hashesForUDP.size() < 70)
+ // 28 + 16 + 70*20 -> IPv4/udp packet size of 1444 , that should go through most lines unfragmented
+
+ if ( hashesForUDP.size() < 70 ){
+
hashesForUDP.add(hash);
+ responsesForUDP.add( response );
+ }
}
} // for responses
- if (one_of_the_hashes == null)
+ if (one_of_the_hashes == null){
+
return;
-
+ }
+
String request = scrapeURL + info_hash;
if ( az_tracker ){
@@ -547,6 +555,8 @@ public class TrackerStatus {
if ( udpScrapeURL != null){
+ activeResponses = responsesForUDP;
+
boolean success = scrapeUDP( reqUrl, message, hashesForUDP, !auto_probe );
if((!success || message.size() == 0) && !protocol.equalsIgnoreCase("udp"))
@@ -571,6 +581,8 @@ public class TrackerStatus {
if ( udpScrapeURL == null ){
+ activeResponses = responsesInQuery;
+
redirect_url = scrapeHTTP(hashesInQuery,reqUrl, message);
}
}finally{
@@ -642,10 +654,7 @@ public class TrackerStatus {
+ ((iMinRequestInterval == 0) ? FAULTY_SCRAPE_RETRY_INTERVAL
: iMinRequestInterval * 1000);
- for (int i = 0; i < responses.size(); i++) {
-
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses
- .get(i);
+ for ( TRTrackerScraperResponseImpl response: activeResponses ){
response.setNextScrapeStartTime(nextScrapeTime);
@@ -660,7 +669,7 @@ public class TrackerStatus {
}
} else {
- if (responses.size() > 1) {
+ if (activeResponses.size() > 1) {
// multi were requested, 0 returned. Therefore, multi not
// supported
bSingleHashScrapes = true;
@@ -668,9 +677,7 @@ public class TrackerStatus {
Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, scrapeURL
+ " doesn't properly support " + "multi-hash scrapes"));
- for (int i = 0; i < responses.size(); i++) {
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses
- .get(i);
+ for ( TRTrackerScraperResponseImpl response: activeResponses ){
response.setStatus(TRTrackerScraperResponse.ST_ERROR,
MessageText.getString(SS + "error")
@@ -683,8 +690,7 @@ public class TrackerStatus {
+ ((iMinRequestInterval == 0) ? NOHASH_RETRY_INTERVAL
: iMinRequestInterval * 1000);
// 1 was requested, 0 returned. Therefore, hash not found.
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses
- .get(0);
+ TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) activeResponses.get(0);
response.setNextScrapeStartTime(nextScrapeTime);
response.setStatus(TRTrackerScraperResponse.ST_ERROR,
MessageText.getString(SS + "error")
@@ -702,18 +708,16 @@ public class TrackerStatus {
* to Single Hash Scrapes, but continue on to process the one has that
* was returned (it may be a random one from the list)
*/
- if (!bSingleHashScrapes && responses.size() > 1
+ if (!bSingleHashScrapes && activeResponses.size() > 1
&& mapFiles.size() == 1) {
bSingleHashScrapes = true;
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, scrapeURL
+ " only returned " + mapFiles.size()
- + " hash scrape(s), but we asked for " + responses.size()));
+ + " hash scrape(s), but we asked for " + activeResponses.size()));
}
- for (int i = 0; i < responses.size(); i++) {
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses
- .get(i);
+ for ( TRTrackerScraperResponseImpl response: activeResponses ){
// LGLogger.log( "decoding response #" +i+ ": " +
// ByteFormatter.nicePrint( response.getHash(), true ) );
@@ -724,7 +728,7 @@ public class TrackerStatus {
if (scrapeMap == null) {
// some trackers that return only 1 hash return a random one!
- if (responses.size() == 1 || mapFiles.size() != 1) {
+ if (activeResponses.size() == 1 || mapFiles.size() != 1) {
response.setNextScrapeStartTime(SystemTime.getCurrentTime()
+ NOHASH_RETRY_INTERVAL);
@@ -734,7 +738,7 @@ public class TrackerStatus {
+ MessageText.getString(SSErr + "nohash"));
// notifiy listeners
scraper.scrapeReceived(response);
- } else if (!disable_stopped_scrapes || scraper.isTorrentRunning(response.getHash())) {
+ } else if ( scraper.isTorrentScrapable(response.getHash())) {
// This tracker doesn't support multiple hash requests.
// revert status to what it was
@@ -805,7 +809,7 @@ public class TrackerStatus {
// multiple hashes and returned 1 hash. However, that hash is
// invalid because seeds or peers was < 0. So, exit. Scrape
// manager will run scrapes for each individual hash.
- if (responses.size() > 1 && bSingleHashScrapes) {
+ if (activeResponses.size() > 1 && bSingleHashScrapes) {
response.setStatus(TRTrackerScraperResponse.ST_ERROR,
MessageText.getString(SS + "error")
@@ -856,7 +860,7 @@ public class TrackerStatus {
scraper.scrapeReceived(response);
try{
- if ( responses.size() == 1 && redirect_url != null ){
+ if ( activeResponses.size() == 1 && redirect_url != null ){
// we only deal with redirects for single urls - if the tracker wants to
// redirect one of a group is has to force single-hash scrapes anyway
@@ -884,9 +888,7 @@ public class TrackerStatus {
} // for responses
} catch (NoClassDefFoundError ignoreSSL) { // javax/net/ssl/SSLSocket
- for (int i = 0; i < responses.size(); i++) {
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses
- .get(i);
+ for ( TRTrackerScraperResponseImpl response: activeResponses ){
response.setNextScrapeStartTime(SystemTime.getCurrentTime()
+ FAULTY_SCRAPE_RETRY_INTERVAL);
response.setStatus(TRTrackerScraperResponse.ST_ERROR, MessageText
@@ -896,9 +898,7 @@ public class TrackerStatus {
scraper.scrapeReceived(response);
}
} catch (FileNotFoundException e) {
- for (int i = 0; i < responses.size(); i++) {
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses
- .get(i);
+ for ( TRTrackerScraperResponseImpl response: activeResponses ){
response.setNextScrapeStartTime(SystemTime.getCurrentTime()
+ FAULTY_SCRAPE_RETRY_INTERVAL);
response.setStatus(TRTrackerScraperResponse.ST_ERROR, MessageText
@@ -908,15 +908,15 @@ public class TrackerStatus {
scraper.scrapeReceived(response);
}
} catch (SocketException e) {
- setAllError(e);
+ setAllError(activeResponses,e);
} catch (SocketTimeoutException e) {
- setAllError(e);
+ setAllError(activeResponses,e);
} catch (UnknownHostException e) {
- setAllError(e);
+ setAllError(activeResponses,e);
} catch (PRUDPPacketHandlerException e) {
- setAllError(e);
+ setAllError(activeResponses,e);
} catch (BEncodingException e) {
- setAllError(e);
+ setAllError(activeResponses,e);
} catch (Exception e) {
// for apache we can get error 414 - URL too long. simplest solution
@@ -933,7 +933,7 @@ public class TrackerStatus {
|| error_message.indexOf(" 501 ") >= 0) {
// various errors that have a 99% chance of happening on
// any other scrape request
- setAllError(e);
+ setAllError(activeResponses,e);
return;
}
@@ -963,10 +963,8 @@ public class TrackerStatus {
msg += " [" + trace_data + "]";
}
- for (int i = 0; i < responses.size(); i++) {
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) responses
- .get(i);
-
+ for ( TRTrackerScraperResponseImpl response: activeResponses ){
+
if (Logger.isEnabled()) {
HashWrapper hash = response.getHash();
Logger.log(new LogEvent(TorrentUtils.getDownloadManager(hash), LOGID,
@@ -994,18 +992,8 @@ public class TrackerStatus {
/**
* @param e
*/
- private void setAllError(Exception e) {
- // Error will apply to ALL hashes, so set all
- Object[] values;
- try {
- hashes_mon.enter();
-
- values = hashes.values().toArray();
-
- } finally {
- hashes_mon.exit();
- }
-
+ private void setAllError(List<TRTrackerScraperResponseImpl> responses, Exception e) {
+
String msg;
if ( e instanceof BEncodingException ){
@@ -1025,8 +1013,7 @@ public class TrackerStatus {
msg = Debug.getNestedExceptionMessage( e );
}
- for (int i = 0; i < values.length; i++) {
- TRTrackerScraperResponseImpl response = (TRTrackerScraperResponseImpl) values[i];
+ for (TRTrackerScraperResponseImpl response: responses ){
if (Logger.isEnabled()) {
HashWrapper hash = response.getHash();
diff --git a/azureus2/src/org/gudy/azureus2/core3/tracker/host/impl/TRHostImpl.java b/azureus2/src/org/gudy/azureus2/core3/tracker/host/impl/TRHostImpl.java
index f6ba4a1..5a99141 100644
--- a/azureus2/src/org/gudy/azureus2/core3/tracker/host/impl/TRHostImpl.java
+++ b/azureus2/src/org/gudy/azureus2/core3/tracker/host/impl/TRHostImpl.java
@@ -765,9 +765,11 @@ TRHostImpl
}
}
+ private AsyncDispatcher dispatcher = new AsyncDispatcher( "TRHost:stopHosting" );
+
protected void
stopHosting(
- final TRHostTorrentHostImpl host_torrent,
+ final TRHostTorrentHostImpl host_torrent,
final TRTrackerAnnouncer tracker_client )
{
// unfortunately a lot of the "stop" operations that occur when a tracker client
@@ -775,46 +777,46 @@ TRHostImpl
// tracker. Hence, if we switch the URL back here the "stopped" doesn't get
// through.
- // for the moment stick a delay in to allow any async stuff to complete
+ // for the moment stick a delay in to allow any async stuff to complete
- Thread thread = new AEThread("StopHosting")
- {
- public void
- runSupport()
+ SimpleTimer.addEvent(
+ "StopHosting",
+ SystemTime.getOffsetTime( 2500 ),
+ new TimerEventPerformer() {
+
+ public void
+ perform(TimerEvent event)
{
- try{
- Thread.sleep(2500);
-
- }catch( InterruptedException e ){
-
- }
-
- try{
- this_mon.enter();
-
- // got to look up the host torrent again as may have been
- // removed and re-added
-
- TRHostTorrent ht = lookupHostTorrent( host_torrent.getTorrent());
-
- // check it's still in stopped state and hasn't been restarted
-
- if ( ht == null ||
- ( ht == host_torrent &&
- ht.getStatus() == TRHostTorrent.TS_STOPPED )){
-
- tracker_client.clearIPOverride();
- }
- }finally{
-
- this_mon.exit();
- }
+ dispatcher.dispatch(
+ new AERunnable()
+ {
+ public void
+ runSupport()
+ {
+ try{
+ this_mon.enter();
+
+ // got to look up the host torrent again as may have been
+ // removed and re-added
+
+ TRHostTorrent ht = lookupHostTorrent( host_torrent.getTorrent());
+
+ // check it's still in stopped state and hasn't been restarted
+
+ if ( ht == null ||
+ ( ht == host_torrent &&
+ ht.getStatus() == TRHostTorrent.TS_STOPPED )){
+
+ tracker_client.clearIPOverride();
+ }
+ }finally{
+
+ this_mon.exit();
+ }
+ }
+ });
}
- };
-
- thread.setDaemon(true);
-
- thread.start();
+ });
}
protected TRTrackerAnnouncer
diff --git a/azureus2/src/org/gudy/azureus2/core3/tracker/server/impl/tcp/nonblocking/TRNonBlockingServerProcessor.java b/azureus2/src/org/gudy/azureus2/core3/tracker/server/impl/tcp/nonblocking/TRNonBlockingServerProcessor.java
index c6e9ef5..24ad759 100644
--- a/azureus2/src/org/gudy/azureus2/core3/tracker/server/impl/tcp/nonblocking/TRNonBlockingServerProcessor.java
+++ b/azureus2/src/org/gudy/azureus2/core3/tracker/server/impl/tcp/nonblocking/TRNonBlockingServerProcessor.java
@@ -244,7 +244,13 @@ TRNonBlockingServerProcessor
if ( pos != -1 ){
- int content_length = Integer.parseInt( entry.substring( pos+1 ).trim());
+ int content_length = 0;
+
+ try{
+ content_length = Integer.parseInt( entry.substring( pos+1 ).trim());
+
+ }catch( Throwable e ){
+ }
if ( content_length > 0 ){
diff --git a/azureus2/src/org/gudy/azureus2/core3/util/AENetworkClassifier.java b/azureus2/src/org/gudy/azureus2/core3/util/AENetworkClassifier.java
index e3e572d..2989387 100644
--- a/azureus2/src/org/gudy/azureus2/core3/util/AENetworkClassifier.java
+++ b/azureus2/src/org/gudy/azureus2/core3/util/AENetworkClassifier.java
@@ -54,28 +54,53 @@ AENetworkClassifier
public static String
categoriseAddress(
String str )
- {
+ {
if ( str == null ){
return( AT_PUBLIC ); // woreva
}
+
+ int len = str.length();
- int last_dot = str.lastIndexOf('.');
-
- if ( last_dot == -1 ){
+ if ( len < 7 ){
- return( AT_PUBLIC ); // no idea really, treat as normal
+ return( AT_PUBLIC );
}
- String dom = str.substring(last_dot+1).toLowerCase(Locale.US);
+ char[] chars = str.toCharArray();
- if ( dom.equals( "i2p" )){
+ char last_char = chars[len-1];
+
+ if ( last_char >= '0' && last_char <= '9' ){
+
+ return( AT_PUBLIC );
+
+ }else if ( last_char == 'p' || last_char == 'P' ){
+
+ if ( chars[len-2] == '2' &&
+ chars[len-4] == '.' ){
+
+ char c = chars[len-3];
+
+ if ( c == 'i' || c == 'I' ){
+
+ return( AT_I2P );
+ }
+ }
- return( AT_I2P );
+ return( AT_PUBLIC );
- }else if ( dom.equals( "onion" )){
+ }else if ( last_char == 'n' || last_char == 'N') {
- return( AT_TOR );
+ if ( chars[len-6] == '.' ){
+
+ String temp = new String( chars, len-5, 4 ).toLowerCase( Locale.US );
+
+ if ( temp.equals( "onio" )){
+
+ return( AT_TOR );
+ }
+ }
}
return( AT_PUBLIC );
@@ -236,4 +261,24 @@ AENetworkClassifier
{
listeners.remove(l);
}
+
+ public static void
+ main(
+ String[] args )
+ {
+ String[] tests = {
+ null,
+ "12345",
+ "192.168.1.2",
+ "fred.i2p",
+ "fred.i2",
+ "bill.onion",
+ "bill.onio"
+ };
+
+ for ( String str: tests ){
+
+ System.out.println( str + " -> " + categoriseAddress( str ));
+ }
+ }
}
diff --git a/azureus2/src/org/gudy/azureus2/core3/util/Constants.java b/azureus2/src/org/gudy/azureus2/core3/util/Constants.java
index 5b20748..a75c673 100644
--- a/azureus2/src/org/gudy/azureus2/core3/util/Constants.java
+++ b/azureus2/src/org/gudy/azureus2/core3/util/Constants.java
@@ -133,10 +133,10 @@ Constants
public static final String AZUREUS_NAME = "Azureus";
public static final String AZUREUS_PROTOCOL_NAME_PRE_4813 = "Azureus";
public static final String AZUREUS_PROTOCOL_NAME = "Vuze";
- public static final String AZUREUS_VERSION = "5.6.1.2";
+ public static final String AZUREUS_VERSION = "5.6.2.0";
public static final String BUILD_VERSION = "@build.version@"; //Ant replace
public static final String AZUREUS_SUBVER = "";
- public static final byte[] VERSION_ID = ("-" + "AZ" + "5612" + "-").getBytes(); //MUST be 8 chars long!
+ public static final byte[] VERSION_ID = ("-" + "AZ" + "5620" + "-").getBytes(); //MUST be 8 chars long!
private static final boolean FORCE_NON_CVS = System.getProperty( "az.force.noncvs", "0" ).equals( "1" );
diff --git a/azureus2/src/org/gudy/azureus2/core3/util/TorrentUtils.java b/azureus2/src/org/gudy/azureus2/core3/util/TorrentUtils.java
index 0614107..b1641d5 100644
--- a/azureus2/src/org/gudy/azureus2/core3/util/TorrentUtils.java
+++ b/azureus2/src/org/gudy/azureus2/core3/util/TorrentUtils.java
@@ -54,6 +54,8 @@ import org.gudy.azureus2.pluginsimpl.local.utils.resourcedownloader.ResourceDown
public class
TorrentUtils
{
+ public static final long MAX_TORRENT_FILE_SIZE = 64*1024*1024L;
+
private static final String NO_VALID_URL_URL = "http://no.valid.urls.defined/announce";
static{
diff --git a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle.properties b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle.properties
index fd1c04d..3b7b0bf 100644
--- a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle.properties
+++ b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle.properties
@@ -1321,7 +1321,7 @@ TableColumn.header.trackername.info=Name of the tracker based on announce URL
ConfigView.group.override=Override Options
ConfigView.section.file.perf.cache.notsmallerthan=Do not cache files smaller than this (in %1)
PeersView.menu.blockupload=Block Upload
-PeersView.menu.kickandban=Kick and Ban
+PeersView.menu.kickandban=Kick And Ban
PeersView.menu.kickandban.reason=Peer manually banned
PeersView.menu.kick=Kick
PeersView.state=State
@@ -4127,7 +4127,7 @@ settings.updated.msg=Your Vuze settings have been updated.
network.ipbinding.icon.show=Show status icon in status bar when bindings active
label.no.connections=No connections
label.missing=Missing
-network.admin.binding.state=Bindings: %1, force=%2
+network.admin.binding.state=Bindings: %1, Force=%2
ConfigView.section.server.enablednsrecords=Enable handling of DNS tracker records used to ameliorate accidental DDOS
network.ipv4.prefer.stack=Prefer IPv4 stack - use the separate IPv4 and IPv6 stacks instead of the dual-stack implementation
ConfigView.section.file.subfolder.dnd=Move files not selected for download into subfolder
@@ -4804,7 +4804,7 @@ MyTorrentsView.menu.browse={azbuddy.dchat.open.in.browser}
config.browser.internal.disable=Disable all use of the internal browser.
config.browser.internal.disable.info=This will impact all views that use it, although some can be switched to use an external browser - see above
-browser.internal.disabled.info=The internal browser is disabled.\n\nThis is either because you explicitly disabled it via\n\n\tTools->Options->Interface->Display: Internal Browser\n\nor it has automatically been disabled due to the detection of crashes seemingly caused by the component.\n\nThe current link is shown below (the page may not display correctly due to client dependencies)
+browser.internal.disabled.info=The internal browser is disabled.\n\nThis is either because you explicitly disabled it via\n\n\tTools->Options->Interface->Display: Internal Browser (ensure you set your 'Mode' to advanced to see this)\n\nor it has automatically been disabled due to the detection of crashes seemingly caused by the component.\n\nThe current link is shown below (the page may not display correctly due to client dependencies)
browser.internal.auto.disabled=The internal browser has been automatically disabled to prevent Vuze from crashing.\n\nYou can re-enable this via Tools->Options->Interface->Display: Internal Browser\n\nFor more information see <A HREF="http://wiki.vuze.com/w/Vuze_disappears#SWT_Browser_Issues">The Wiki</A>
TableColumn.header.DateTorrentLastActive=Last Active
@@ -4854,5 +4854,58 @@ azbuddy.dchat.ui.standalone.windows=Use independent windows for pop-out chats
azbuddy.dchat.ui.hide.ratings=Hide automatically generated ratings, comments and swarm merge messages
label.copy.uri.to.clip=Copy URI To Clipboard
+label.privacy=Privacy
+
+TableColumn.header.donewithdnd=Done w/DND
+TableColumn.header.donewithdnd.info=% done of torrent's data, if you were to download all the files. This will never be 100% if you have "Do Not Download" files.
+label.read.more=Read more...
+privacy.view.wiki.url=http://wiki.vuze.com/w/Privacy_View
+OpenTorrentWindow.privacy.info=Enabling privacy adds the torrent in a stopped state with no networks enabled.\nUse the Privacy tab to configure the networks and then start it.
+
+label.show.icon.area=Show icon area
+label.invalid=Invalid
+label.webseeds=Web Seeds
+label.lookup.status=Lookup Status
+button.lookup.peers=Lookup Peers
+button.search.dht=Search DHT
+label.no.peers.found=No peers found
+label.ip.filter=IP Filter
+label.vpn.status=VPN Status
+label.socks.status=SOCKS Status
+label.private=Private
+label.decentralised=Decentralized
+label.incoming={tps.type.incoming}
+
+privacy.view.intro=The privacy view summarizes download privacy information/settings and allows them to be adjusted.
+privacy.view.level=Privacy Level
+privacy.view.public.only=Public Only
+privacy.view.public.anon=Public/Anonymous Mix
+privacy.view.anon.only=Anonymous Only
+privacy.view.lookup.info=Lookup I2P peers to see if the download may be available for anonymous download.
+privacy.view.lookup.msg=Seeds=%1, Leechers=%2, Peers=%3
+privacy.view.check.bw=Check Bandwidth Settings...
+privacy.view.dl.not.running=Download is not running
+privacy.view.no.peers=No peers connected
+privacy.view.non.local.peer=Non-local incoming connection detected
+privacy.view.install.i2p=Install I2P
+privacy.view.check.bw.info=For fast downloads you will need to configure your I2P bandwidth settings
+
+label.show.in.sidebar=Show In Sidebar
+label.show.in.tab=Show In Tab
+browser.internal.disabled.reenable=Re-enabling the browser may cause subsequent client crashes (restart required)
+label.enable=Enable
+azbuddy.dchat.hasquit=%1 has quit
+label.anon.medium=Anon
+label.public.medium=Pub
+MyTorrentsView.menu.set.resume.complete=Set Resume Complete (Skip Recheck)
+msgbox.force.close.title=Vuze Startup Failed
+# use non-breaking space unicode chars to avoid them being stripped when formatted...
+msgbox.force.close.text=Another copy of Vuze appears to be running: failed to lock file\n\n\u00A0\u00A0\u00A0\u00A0%1\n\nSee <a href=\"http://wiki.vuze.com/w/Multiple_Copies_Of_Vuze_Running\">the wiki</a> for more information.\n\nVuze will now close.
+azbuddy.dchat.welcome.general=This is a general channel for non-download specific help and discussion.\nDo NOT post about specific downloads here - NO seed requests, NO download related speed issues etc.
+PeersView.menu.kickandbanfor=Kick And Ban For...
+dialog.ban.for.period.title={dialog.pause.for.period.title}
+dialog.ban.for.period.text=Ban peer for time period or until restart [minutes]
+PeersView.menu.kickandbanfor.reason=Peer manually banned for %1 minutes
+browser.internal.failed.info=Creation of the internal browser component failed with the following error:\n\n\t%1\n\nThe current link is shown below (the page may not display correctly due to client dependencies)
#PLEASE LEAVE ME AT VERY BOTTOM!
diff --git a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_bg_BG.properties b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_bg_BG.properties
index a1e2a5a..0d6d0d7 100644
--- a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_bg_BG.properties
+++ b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_bg_BG.properties
@@ -1,3228 +1,3990 @@
-#There is a plugin to help with internationalizing these bundles at http://plugins.vuze.com/plugin_list.php
-MainWindow.menu.file.open.torrent=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0085\u2026
-Main.parameter.usage=\u0423\u043f\u043e\u0442\u0440\u0435\u0431\u0430: java org.gudy.azureus2.cl.Main [\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438] "file.torrent" "\u043f\u044a\u0442 \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435"
-Main.parameter.maxUploads=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0435\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u043a\u0430\u0447\u0432\u0430\u043d\u0438\u044f
-Main.parameter.maxSpeed=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 B/s
-MainWindow.menu.file=&\u0424\u0430\u0439\u043b
-MainWindow.menu.file.open=&\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-MainWindow.menu.file.create=&\u041d\u043e\u0432 \u0442\u043e\u0440\u0435\u043d\u0442\u0085\u2026
-MainWindow.menu.file.create.fromfile=\u041e\u0442 &\u0444\u0430\u0439\u043b
-MainWindow.menu.file.create.fromdir=\u041e\u0442 &\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-MainWindow.menu.file.export=&\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 XML \u0442\u043e\u0440\u0435\u043d\u0442\u0085\u2026
-MainWindow.menu.file.import=&\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 XML \u0442\u043e\u0440\u0435\u043d\u0442\u0085\u2026
-MainWindow.menu.file.closetab=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 &\u0441\u0435\u043a\u0446\u0438\u044f
-MainWindow.menu.file.closewindow=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 &\u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446
-MainWindow.menu.file.exit=\u0418\u0437&\u0445\u043e\u0434
-MainWindow.dialog.choose.file=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b
-MainWindow.menu.file.folder=&\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0085\u2026
-MainWindow.dialog.choose.folder=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0449\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-MainWindow.menu.view=\u0418&\u0437\u0433\u043b\u0435\u0434
-MainWindow.menu.view.show=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435
-MainWindow.menu.view.mytorrents=&\u041c\u0435\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-MainWindow.menu.view.open_global_transfer_bar=\u041b\u0435\u043d\u0442\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-MainWindow.menu.view.configuration=\u041a&\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0085\u2026
-MainWindow.menu.view.console=\u041a&\u043e\u043d\u0437\u043e\u043b\u0430
-MainWindow.menu.view.irc=&IRC \u043c\u0440\u0435\u0436\u0430
-MainWindow.menu.view.allpeers=\u0412\u0441\u0438\u0447\u043a\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-MainWindow.menu.view.detailedlist=&\u041f\u043e\u0434\u0440\u043e\u0431\u0435\u043d \u0441\u043f\u0438\u0441\u044a\u043a
-MainWindow.menu.closealldetails=\u0417&\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-MainWindow.menu.closealldownloadbars=\u0417\u0430\u0442&\u0432\u0430\u0440\u044f\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u043b\u0435\u043d\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-MainWindow.menu.language=&\u0415\u0437\u0438\u043a
-ConfigView.section.language=\u0415\u0437\u0438\u043a
-MainWindow.menu.window=\u041f\u0440\u043e\u0437\u043e\u0440\u0435&\u0446
-MainWindow.menu.window.minimize=&\u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430\u043d\u0435
-MainWindow.menu.window.zoom=&\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435
-MainWindow.menu.window.alltofront=&\u0412\u0441\u0438\u0447\u043a\u043e \u043d\u0430 \u043f\u0440\u0435\u0434\u0435\u043d \u043f\u043b\u0430\u043d
-MainWindow.menu.help=\u041f&\u043e\u043c\u043e\u0449
-MainWindow.menu.help.about=\u0417\u0430 Vuze
-MainWindow.menu.torrent=\u0422\u043e\u0440\u0435\u043d\u0442
-MainWindow.about.title=\u041e\u0442\u043d\u043e\u0441\u043d\u043e
-MainWindow.about.section.system=\u0421\u0438\u0441\u0442\u0435\u043c\u0430
-MainWindow.about.section.internet=\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442
-MainWindow.about.internet.homepage=\u041d\u0430\u0447\u0430\u043b\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430 Vuze
-MainWindow.about.internet.sourceforge=\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430 Sourceforge \u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0438
-MainWindow.about.internet.bugreports=\u0414\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438
-MainWindow.about.internet.forumdiscussion=\u0424\u043e\u0440\u0443\u043c\u0438
-MainWindow.about.internet.wiki=\u0427\u0417\u0412 Vuze Wiki
-MainWindow.dialog.choose.savepath=\u041f\u044a\u0442 \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-MainWindow.dialog.choose.savepath_forallfiles=\u041f\u044a\u0442 \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0412\u0421\u0418\u0427\u041a\u0418 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-MainWindow.status.latestversion=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-MainWindow.status.latestversion.clickupdate=\u041f\u043e\u0441\u043e\u0447\u0432\u0430\u043d\u0435 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-MainWindow.status.unknown=\u043d\u0435\u043f\u043e\u0437\u043d\u0430\u0442
-MainWindow.status.checking=\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430
-MyTorrentsView.mytorrents=\u041c\u0435\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-TableColumn.header.name=\u0418\u043c\u0435
-TableColumn.header.size=\u0420\u0430\u0437\u043c\u0435\u0440
-TableColumn.header.done=\u0413\u043e\u0442\u043e\u0432\u043e
-TableColumn.header.done.info=% \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e\u0441\u0442 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0430 \u0437\u0430\u0434\u0430\u0447\u0430
-TableColumn.header.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-TableColumn.header.status.info=\u041a\u0430\u043a\u0432\u043e \u043f\u0440\u0430\u0432\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442
-TableColumn.header.seeds=\u041f\u043e\u0441\u044f\u0432\u043a\u0438
-TableColumn.header.seeds.info=\u0411\u0440. \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u0441 \u043a\u043e\u0438\u0442\u043e \u0438\u043c\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 (\u043e\u0431\u0449 \u0431\u0440. \u043f\u043e\u0441\u044f\u0432\u043a\u0438)
-TableColumn.header.peers=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-TableColumn.header.peers.info=\u0411\u0440. \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 (\u043e\u0431\u0449 \u0431\u0440. \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438)
-TableColumn.header.completed=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-TableColumn.header.completed.info=\u0411\u0440\u043e\u0439 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0438\u043b\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u043e \u043e\u0442 \u0442\u0440\u0430\u043a\u0435\u0440\u0430
-TableColumn.header.downspeed=\u0421\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-TableColumn.header.upspeed=\u0421\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-TableColumn.header.eta=\u041e\u0412\u0417
-TableColumn.header.tracker=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440
-TableColumn.header.tracker.info=\u041a\u0430\u043a\u0432\u043e \u0435 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430
-TableColumn.header.trackernextaccess=\u0421\u043b\u0435\u0434\u0432\u0430\u0449 \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u0434\u043e\u0441\u0442\u044a\u043f
-TableColumn.header.trackernextaccess.info=\u041a\u043e\u0433\u0430 \u0449\u0435 \u0441\u0435 \u0441\u043b\u0443\u0447\u0438 \u0441\u043b\u0435\u0434\u0432\u0430\u0449 \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u0434\u043e\u0441\u0442\u044a\u043f
-TableColumn.header.priority=\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-TableColumn.header.priority.info=\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f \u043a\u043e\u043b\u043a\u043e \u0433\u043e\u043b\u044f\u043c\u0430 \u043b\u0435\u043d\u0442\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0435 \u0434\u0430\u0434\u0435\u043d\u0430 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-TableColumn.header.seeds.fullcopycalc=%2 \u043f\u044a\u043b\u043d\u0438 \u043a\u043e\u043f\u0438\u044f \u0434\u043e\u043f\u0443\u0441\u043d\u0430\u0442\u0438 \u0437\u0430 %1 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-MyTorrentsView.menu.showdetails=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e&\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-MyTorrentsView.menu.showdownloadbar=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043b\u0435\u043d\u0442\u0430 \u0437\u0430 \u0441&\u0432\u0430\u043b\u044f\u043d\u0435
-MyTorrentsView.menu.open=&\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-MyTorrentsView.menu.setpriority=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 &\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-MyTorrentsView.menu.setpriority.high=&\u0412\u0438\u0441\u043e\u043a
-MyTorrentsView.menu.setpriority.low=&\u041d\u0438\u0441\u044a\u043a
-MyTorrentsView.menu.start=&\u0421\u0442\u0430\u0440\u0442
-MyTorrentsView.menu.stop=\u0421\u0442\u043e&\u043f
-MyTorrentsView.menu.remove=\u041f&\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-MyTorrentsView.menu.changeTracker=\u0414\u043e\u0431&\u0430\u0432\u044f\u043d\u0435 URL \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440
-TrayWindow.menu.exit=\u0418\u0437&\u0445\u043e\u0434
-TrayWindow.menu.show=&\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 Vuze
-SystemTray.menu.exit=\u0418\u0437&\u0445\u043e\u0434
-SystemTray.menu.closealldownloadbars=\u0417&\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u043b\u0435\u043d\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-SystemTray.menu.open_global_transfer_bar=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-SystemTray.menu.show=&\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 Vuze
-PeersView.ip.info=IP \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-PeersView.port=\u041f\u043e\u0440\u0442
-PeersView.port.info=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442
-PeersView.T=\u0422
-PeersView.T.info=\u041b (\u043b\u043e\u043a\u0430\u043b\u043d\u043e): \u043c\u0435\u0441\u0442\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430, \u041e (\u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e): \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u0430 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f.
-PeersView.T.L.tooltip=\u041c\u0435\u0441\u0442\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430
-PeersView.T.R.tooltip=\u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u0430 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PeersView.I1=\u0418 (\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f)
-PeersView.I1.info=\u0414\u0430\u043b\u0438 \u0435 \u043e\u0442 \u043c\u0435\u0441\u0442\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0442\u043e\u0432\u0430, \u043a\u043e\u0435\u0442\u043e \u0438\u043c\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f?
-PeersView.C1=C (\u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f)
-PeersView.C1.info=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u0430\u043b\u044f \u043c\u0435\u0441\u0442\u043d\u043e \u0437\u0430\u0440\u0430\u0434\u0438 \u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PeersView.pieces=\u041f\u0430\u0440\u0447\u0435\u0442\u0430
-PeersView.%=\u0412 % \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-PeersView.downloadspeed=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u0441
-PeersView.download=\u0421\u0432\u0430\u043b\u044f\u043d\u0435
-PeersView.download.info=\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f.
-PeersView.I2=\u0418 (\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0437\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f)
-PeersView.I2.info=\u0414\u0430\u043b\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f\u0442 \u0441\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0432\u0430 \u043e\u0442 \u043c\u0435\u0441\u0442\u043d\u043e \u043d\u0430\u043b\u0438\u0447\u043d\u043e\u0442\u043e?
-PeersView.C2=C (\u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f)
-PeersView.C2.info=\u041c\u0435\u0441\u0442\u043d\u043e \u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f\u0442 \u0434\u0430 \u043d\u0435 \u0441\u0432\u0430\u043b\u044f
-PeersView.uploadspeed=\u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u0441
-PeersView.uploadspeed.info=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043a\u044a\u043c \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PeersView.upload=\u041a\u0430\u0447\u0432\u0430\u043d\u0435
-PeersView.upload.info=\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u043e \u043a\u0430\u0447\u0435\u043d\u043e\u0442\u043e \u043a\u044a\u043c \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f.
-PeersView.statup=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-PeersView.statup.info=\u0418\u0437\u0447\u0438\u0441\u043b\u0435\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PeersView.S=\u0421
-PeersView.S.info=\u0421\u043c\u044a\u043c\u0440\u0435\u043d: \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0441\u043c\u044a\u043c\u0440\u0435\u043d \u0440\u044a\u0447\u043d\u043e \u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e (\u0437\u0430 \u0442\u043e\u0432\u0430, \u0447\u0435 \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u044f \u0434\u0430\u043d\u [...]
-PeersView.downloadspeedoverall=\u041e\u0431\u0449\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-PeersView.optunchoke=\u041e\u0442\u043c\u044f\u043d\u0430 \u043d\u0430 \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0435
-PeersView.client=\u041a\u043b\u0438\u0435\u043d\u0442
-PeersView.client.info=\u0422\u0438\u043f \u043d\u0430 BT \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PeersView.menu.snubbed=&\u0421\u043a\u0430\u0441\u0442\u0440\u0435\u043d
-PeersView.title.short=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-PeersView.title.full=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-AllPeersView.title.full=\u0412\u0441\u0438\u0447\u043a\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.section.files=\u0424\u0430\u0439\u043b\u043e\u0432\u0435
-ConfigView.label.usefastresume=\u0420\u0435\u0436\u0438\u043c \u0437\u0430 \u0431\u044a\u0440\u0437\u043e \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u043d\u0438\u0435
-ConfigView.label.incrementalfile=\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u043d\u043e \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u043f\u0440\u0438 FAT32 \u043f\u043e\u0434 \u041b\u0438\u043d\u0443\u043a\u0441)
-ConfigView.label.defaultsavepath=\u0417\u0430\u043f\u0438\u0441 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438
-ConfigView.button.browse=&\u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0085\u2026
-ConfigView.dialog.choosedefaultsavepath=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-ConfigView.section.server=\u0412\u0440\u044a\u0437\u043a\u0430
-ConfigView.section.global=\u041e\u0431\u0449\u043e
-ConfigView.label.disconnetseed=\u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u044f\u0432\u043a\u0438\u0442\u0435 \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435
-ConfigView.label.switchpriority=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043a\u044a\u043c \u043d\u0438\u0441\u044a\u043a \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435
-ConfigView.label.maxdownloads=\u041c\u0430\u043a\u0441. \u0435\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]\n\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043f\u043e-\u0432\u0438\u0441\u043e\u043a\u043e \u043e\u0442 \u0431\u0440\u043e\u044f \u043c\u0430\u043a\u0441. \u0430\u043a\u0442\u0438\u0432\u043d\u0438 \u0442\u043e\u0440\u [...]
-ConfigView.label.maxdownloads.tooltip=\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0442\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0442\u0443\u043a \u0431\u0440\u043e\u0439 \u0441 \u0435\u0434\u043d\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.\n\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442, \u043e\u0442 [...]
-ConfigView.label.maxactivetorrents=\u041c\u0430\u043a\u0441. \u0431\u0440\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]\n\u041d\u043e\u0432\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435/\u0441\u0435\u0435\u043d [...]
-ConfigView.label.priorityExtensions=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u043e\u0432\u0438\u0448\u0430\u0432\u0430\u043d\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\n - \u043f\u0440.: .txt;.nfo;.jpg
-ConfigView.section.transfer=\u0422\u0440\u0430\u043d\u0441\u0444\u0435\u0440
-ConfigView.label.maxuploads=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0433\u043d\u0435\u0437\u0434\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.label.maxuploadspeed=KB/s \u0433\u043b\u043e\u0431\u0430\u043b\u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.label.saveresumeinterval=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0441\u0435\u043a\u0438
-ConfigView.unlimited=\u041d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e
-ConfigView.section.display=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435
-ConfigView.label.opendetails=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u044f '\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438'
-ConfigView.label.openbar=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-ConfigView.label.use_old_speed_menus=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u043c\u0435\u043d\u044e\u0442\u0430 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-ConfigView.label.closetotray=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440
-ConfigView.label.minimizetotray=\u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440
-ConfigView.section.general=\u041e\u0431\u0449\u043e
-ConfigView.section.start=\u0421\u0442\u0430\u0440\u0442
-ConfigView.label.showsplash=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0435\u043d \u0435\u043a\u0440\u0430\u043d
-ConfigView.label.autoupdate=\u0414\u0430 \u0441\u0435 \u043e\u0442\u0432\u043e\u0440\u0438 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 '\u041d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435' \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-ConfigView.label.openconsole=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 '\u041a\u043e\u043d\u0437\u043e\u043b\u0430' \u043f\u0440\u0438 \u043d\u0430\u0447\u0430\u043b\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-ConfigView.label.openconfig=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 '\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f' \u043f\u0440\u0438 \u043d\u0430\u0447\u0430\u043b\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-ConfigView.label.startminimized=\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430\u043d
-ConfigView.section.irc=\u041c\u0440\u0435\u0436\u0430 IRC
-ConfigView.label.ircwiki=\u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0447\u0435\u0442\u0435 http://wiki.vuze.com/w/Rules_for_IRC
-ConfigView.label.ircserver=\u0421\u044a\u0440\u0432\u044a\u0440
-ConfigView.label.ircchannel=\u041a\u0430\u043d\u0430\u043b
-ConfigView.label.irclogin=\u041f\u0440\u044f\u043a\u043e\u0440
-ConfigView.group.irctitle=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 IRC
-ConfigView.boolean.ircsendinfo=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043c\u0435\u0441\u0442\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (\u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e) \u0434\u043e\n \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0438\u0442\u0435 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b, \u0437\u0430 \u0434\u0430 \u0438\u043c \u0441\u043 [...]
-ConfigView.boolean.irclog=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u0434\u043d\u0435\u0432\u043d\u0438\u043a \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0442\u0430 \u043f\u043e \u043a\u0430\u043d\u0430\u043b (\u0432 IRC_log.htm)
-ConfigView.section.security=\u0421\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442
-ConfigView.label.password=\u0417\u0430\u0449\u0438\u0442\u0430 \u043d\u0430 Vuze \u0441 \u043f\u0430\u0440\u043e\u043b\u0430\n\u0429\u0435 \u0441\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043f\u0440\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043e\u0442 \u0438\u043a\u043e\u043d\u0430 \u0438 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435.
-ConfigView.label.passwordconfirm=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430
-ConfigView.label.passwordmatch=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430:
-ConfigView.label.passwordmatchnone=\u041d\u0435
-ConfigView.label.passwordmatchno=\u041d\u0435/\u041f\u0430\u0440\u043e\u043b\u0438\u0442\u0435 \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430\u0442
-ConfigView.label.passwordmatchyes=\u0414\u0430
-ConfigView.button.save=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-ConfigView.title.short=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
-ConfigView.title.full=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
-ConfigView.title.full._mac=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-ConsoleView.title.short=\u041a\u043e\u043d\u0437\u043e\u043b\u0430
-ConsoleView.title.full=\u041a\u043e\u043d\u0437\u043e\u043b\u0430
-FileItem.write=\u0437\u0430\u043f\u0438\u0441
-FileItem.read=\u0447\u0435\u0442\u0435\u043d\u0435
-FileItem.normal=\u043d\u043e\u0440\u043c\u0430\u043b\u0435\u043d
-FileItem.high=\u0432\u0438\u0441\u043e\u043a
-FileItem.donotdownload=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u0441\u0432\u0430\u043b\u044f
-FileItem.delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-FilesView.name=\u0418\u043c\u0435
-FilesView.name.fastRename=\u0411\u044a\u0440\u0437\u043e \u043f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435
-FilesView.size=\u0420\u0430\u0437\u043c\u0435\u0440
-FilesView.done=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-FilesView.%=\u0412 % \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-FilesView.firstpiece=\u041f\u044a\u0440\u0432\u043e \u043f\u0430\u0440\u0447\u0435 \u2116
-FilesView.numberofpieces=\u0411\u0440. \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-FilesView.pieces=\u041f\u0430\u0440\u0447\u0435\u0442\u0430
-FilesView.mode=\u0420\u0435\u0436\u0438\u043c
-FilesView.priority=\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-FilesView.menu.open=&\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-FilesView.menu.setpriority=&\u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-FilesView.menu.setpriority.high=&\u0412\u0438\u0441\u043e\u043a
-FilesView.menu.setpriority.normal=&\u041d\u043e\u0440\u043c\u0430\u043b\u0435\u043d
-FilesView.menu.setpriority.skipped=&\u0414\u0430 \u043d\u0435 \u0441\u0435 \u0441\u0432\u0430\u043b\u044f
-FilesView.title.short=\u0424\u0430\u0439\u043b\u043e\u0432\u0435
-FilesView.title.full=\u0424\u0430\u0439\u043b\u043e\u0432\u0435
-GeneralView.section.downloaded=\u0421\u0432\u0430\u043b\u0435\u043d\u043e
-GeneralView.label.status.file=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-GeneralView.label.status.pieces=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-GeneralView.section.availability=\u041d\u0430\u043b\u0438\u0447\u043d\u043e\u0441\u0442
-GeneralView.label.status.pieces_available=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-GeneralView.section.transfer=\u0422\u0440\u0430\u043d\u0441\u0444\u0435\u0440
-GeneralView.section.info=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-GeneralView.title.short=\u0413\u043b\u0430\u0432\u0435\u043d
-GeneralView.title.full=\u0413\u043b\u0430\u0432\u0435\u043d
-GeneralView.label.timeelapsed=\u0418\u0437\u043c\u0438\u043d\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435:
-GeneralView.label.remaining=\u041e\u0441\u0442\u0430\u0432\u0430:
-GeneralView.label.downloaded=\u0421\u0432\u0430\u043b\u0435\u043d\u043e:
-GeneralView.label.downloadspeed=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043f\u0440\u0438:
-GeneralView.label.maxuploads=\u0413\u043d\u0435\u0437\u0434\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435:
-GeneralView.label.maxuploads.tooltip=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u043d\u0435\u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u043f\u043e \u0432\u0441\u044f\u043a\u043e \u0432\u0440\u0435\u043c\u0435.
-GeneralView.label.uploaded=\u041a\u0430\u0447\u0435\u043d\u043e:
-GeneralView.label.uploadspeed=\u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u043f\u0440\u0438:
-GeneralView.label.seeds=\u041f\u043e\u0441\u044f\u0432\u043a\u0438:
-GeneralView.label.peers=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438:
-GeneralView.label.completed=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e:
-GeneralView.label.totalspeed=\u0421\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0440\u043e\u044f\u043a\u0430:
-GeneralView.label.totalspeed.tooltip=\u041e\u0431\u0449\u0430 (\u0438 \u0441\u0440\u0435\u0434\u043d\u0430) \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0438 \u0441 \u043a\u043e\u0438\u0442\u043e \u0438\u043c\u0430 \u0432\u0440\u044a\u0437\u043a\u0438.
-GeneralView.label.averagespeed=\u0441\u0440\u0435\u0434\u043d\u043e
-GeneralView.label.filename=\u0418\u043c\u0435:
-GeneralView.label.totalsize=\u041e\u0431\u0449 \u0440\u0430\u0437\u043c\u0435\u0440:
-GeneralView.label.savein=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u0432:
-GeneralView.label.hash=\u0420\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435:
-GeneralView.label.numberofpieces=\u0411\u0440. \u043f\u0430\u0440\u0447\u0435\u0442\u0430:
-GeneralView.label.size=\u0420\u0430\u0437\u043c\u0435\u0440:
-GeneralView.label.tracker=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430:
-GeneralView.label.updatein=\u041e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0435 \u0441\u043b\u0435\u0434:
-GeneralView.label.trackerurl=URL \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430:
-GeneralView.label.trackerurlupdate=\u041e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430
-GeneralView.label.comment=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440:
-GeneralView.label.user_comment=\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440:
-GeneralView.label.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435:
-ManagerItem.waiting=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435
-ManagerItem.allocating=\u0417\u0430\u0434\u0435\u043b\u044f\u043d\u0435
-ManagerItem.checking=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430
-ManagerItem.ready=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0434\u0440\u0443\u0433(\u0438) \u0442\u043e\u0440\u0435\u043d\u0442(\u0438) \u0437\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430
-ManagerItem.downloading=\u0421\u0432\u0430\u043b\u044f\u0449
-ManagerItem.seeding=\u0421\u0435\u0435\u0449
-ManagerItem.stopped=\u0421\u043f\u0440\u044f\u043d
-ManagerItem.error=\u0413\u0440\u0435\u0448\u043a\u0430
-ManagerItem.high=\u0432\u0438\u0441\u043e\u043a
-ManagerItem.low=\u043d\u0438\u0441\u044a\u043a
-MinimizedWindow.name=\u0418\u043c\u0435:
-MinimizedWindow.all_transfers=\u0412\u0441\u0438\u0447\u043a\u0438 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-PiecesView.#=\u2116
-PiecesView.size=\u0420\u0430\u0437\u043c\u0435\u0440
-PiecesView.numberofblocks=\u0431\u0440. \u0431\u043b\u043e\u043a\u043e\u0432\u0435
-PiecesView.blocks=\u0411\u043b\u043e\u043a\u043e\u0432\u0435
-PiecesView.completed=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-PiecesView.availability=\u041d\u0430\u043b\u0438\u0447\u043d\u043e\u0441\u0442
-PiecesView.reservedby=\u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0430\u043d\u043e
-PiecesView.writers=\u0414\u043e\u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0438 \u0437\u0430 \u0431\u043b\u043e\u043a
-PiecesView.title.short=\u041f\u0430\u0440\u0447\u0435\u0442\u0430
-PiecesView.title.full=\u041f\u0430\u0440\u0447\u0435\u0442\u0430
-SystemTray.tooltip.seeding=%1 \u0441\u0435\u0435\u043d\u0435,
-SystemTray.tooltip.downloading=%1 \u0441\u0432\u0430\u043b\u044f\u043d\u0435,
-DownloadManager.error.filenotfound=\u0424\u0430\u0439\u043b\u044a\u0442 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d
-DownloadManager.error.fileempty=\u041f\u0440\u0430\u0437\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b
-DownloadManager.error.filetoobig=\u0424\u0430\u0439\u043b\u044a\u0442 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0435 \u0442\u0432\u044a\u0440\u0434\u0435 \u0433\u043e\u043b\u044f\u043c
-DownloadManager.error.filewithouttorrentinfo=\u041d\u044f\u043c\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0432\u044a\u0432 \u0444\u0430\u0439\u043b\u0430
-DownloadManager.error.unsupportedencoding=\u041d\u0435\u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u043d\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
-DownloadManager.error.ioerror=\u0412/\u0418 \u0433\u0440\u0435\u0448\u043a\u0430
-DownloadManager.error.sha1=\u0413\u0440\u0435\u0448\u043a\u0430 (SHA1), \u043d\u044f\u043c\u0430 \u0442\u0430\u043a\u044a\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u044a\u043c
-PeerManager.status.offline=\u0413\u0440\u0435\u0448\u043a\u0430 \u0432\u044a\u0432 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430
-PeerManager.status.ok=\u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-PeerManager.status.checking=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430
-PeerManager.status.finished=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-PeerManager.status.finishedin=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0437\u0430
-MainWindow.upgrade.assistant=\u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-MainWindow.upgrade.newerversion=\u0418\u043c\u0430 \u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Vuze \u043d\u0430 \u0440\u0430\u0437\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-MainWindow.upgrade.explanation=\u0422\u043e\u0437\u0438 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0449\u0435 \u0441\u0432\u0430\u043b\u0438 \u043d\u043e\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 Vuze \u0438 \u0449\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 Vuze
-MainWindow.upgrade.explanation.manual=\u0420\u044a\u0447\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u043a\u0430\u0442\u043e \u0441\u0435 \u0437\u0430\u0442\u0432\u043e\u0440\u0438 Vuze, \u0441\u0432\u0430\u043b\u0438 \u043d\u043e\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0 [...]
-MainWindow.upgrade.step1=\u0421\u0442\u044a\u043f\u043a\u0430 1: \u0421\u0432\u0430\u043b\u044f \u0441\u0435 \u043d\u043e\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-MainWindow.upgrade.step2=\u0421\u0442\u044a\u043f\u043a\u0430 2: \u0417\u0430\u0442\u0432\u0430\u0440\u044f \u0441\u0435 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u0438 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u043d\u043e\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Vuze
-MainWindow.upgrade.hint1=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430:\t\u0421 \u041d\u0430\u0442\u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 '\u0413\u043e\u0442\u043e\u0432\u043e' \u0432\u0441\u0438\u0447\u043a\u043e \u0449\u0435 \u0441\u0442\u0430\u043d\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e
-MainWindow.upgrade.hint2=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430:\t\u0410\u043a\u043e Vuze \u0449\u0435 \u0431\u044a\u0434\u0435 \u0437\u0430\u0442\u0432\u043e\u0440\u0435\u043d \u043f\u043e-\u043a\u044a\u0441\u043d\u043e, \u0434\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 '\u041e\u0442\u043a\u0430\u0437' \u0438\n\t \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430 Azureus-new.jar \u043d\u0430 Azureus2.jar \u0441\u043b [...]
-MainWindow.upgrade.error.downloading.hint=\u0413\u0440\u0435\u0448\u043a\u0430:\t\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u0430\u043b\u0438 \u043d\u043e\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f, \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430 \u0440\u044a\u0447\u043d\u043e
-MainWindow.upgrade.section.info=\u041d\u043e\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 \u0440\u0430\u0437\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435
-MainWindow.upgrade.section.manual=\u0420\u044a\u0447\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-MainWindow.upgrade.section.automatic=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-MainWindow.upgrade.tooltip.progressbar=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043e \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0442\u0443\u043a
-Button.next=\u0421\u043b\u0435\u0434\u0432\u0430\u0449\u043e
-Button.finish=\u041a\u0440\u0430\u0439
-Button.cancel=\u041e\u0442\u043a\u0430\u0437
-LocaleUtil.title=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
-LocaleUtil.section.chooseencoding=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0437\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0442\u043e \u0438\u043c\u0435
-LocaleUtil.label.chooseencoding=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043d\u0430\u0439-\u0431\u043b\u0438\u0437\u043a\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
-LocaleUtil.label.hint.doubleclick=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430: \u0418\u0437\u0431\u043e\u0440 \u0432\u044a\u0440\u0445\u0443 \u0434\u0430\u0434\u0435\u043d \u0440\u0435\u0434 \u0438\u0437\u0431\u0438\u0440\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u0437\u0430\u0442\u0432\u0430\u0440\u044f \u0434\u0438\u0430\u043b\u043e\u0433\u0430
-LocaleUtil.label.checkbox.rememberdecision=\u0417\u0430\u043f\u043e\u043c\u043d\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u043e\u0440\u0430 \u0437\u0430 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0438 \u0438\u043c\u0435\u043d\u0430
-LocaleUtil.column.encoding=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
-IrcClient.copyright=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u0435 PircBot Java IRC API - http://www.jibble.org/pircbot.php
-IrcClient.connecting=\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043a\u044a\u043c
-IrcClient.connected=\u0421\u0432\u044a\u0440\u0437\u0430\u043d \u043a\u044a\u043c
-IrcClient.joining=\u041f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435
-IrcClient.channel=\u041a\u0430\u043d\u0430\u043b
-IrcClient.joined=\u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0435\u043d
-IrcClient.error=\u0413\u0440\u0435\u0448\u043a\u0430
-IrcClient.hasjoined=\u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438
-IrcClient.haskicked=\u0438\u0437\u0433\u043e\u043d\u0438
-IrcClient.hasleft=\u043d\u0430\u043f\u0443\u0441\u043d\u0430
-IrcClient.nowknown=\u0432\u0435\u0447\u0435 \u0435 \u043f\u043e\u0437\u043d\u0430\u0442 \u043a\u0430\u0442\u043e
-IrcClient.topicforchannel=\u0422\u0435\u043c\u0430 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0430
-IrcClient.disconnected=\u041f\u0440\u0435\u043a\u044a\u0441\u043d\u0430\u0442 \u043e\u0442
-IrcClient.noNick=\u041d\u044f\u043c\u0430 \u043f\u0440\u044f\u043a\u043e\u0440. \u0414\u0430 \u0441\u0435 \u043e\u0442\u0432\u043e\u0440\u0438 \u0438\u0437\u0433\u043b\u0435\u0434 '\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f'
-IrcView.actionnotsupported=\u0422\u043e\u0432\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430
-IrcView.clientsconnected=\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438
-IrcView.privateto=\u0414\u043e
-IrcView.privatefrom=\u041e\u0442
-IrcView.noticefrom=\u0411\u0435\u043b\u0435\u0436\u043a\u0430:
-IrcView.errormsg=\u0413\u0440\u0435\u0448\u0435\u043d \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0432 /msg - /msg user text
-IrcView.help=\u0412\u0430\u043b\u0438\u0434\u043d\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0438 \u0441\u0430:\n . /help \u043f\u043e\u043a\u0430\u0437\u0432\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435\n . /nick | /name \u043f\u0440\u043e\u043c\u0435\u043d\u044f \u0438\u043c\u0435\u0442\u043e \n . /me action \u0438\u0437\u043f\u0440\u0430\u0449\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \n . /msg nick message \u0438\u0437\u043f\u044 [...]
-PasswordWindow.title=Vuze \u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d
-PasswordWindow.passwordprotected=Vuze \u0435 \u0437\u0430\u0449\u0438\u0442\u0435\u043d \u0441 \u043f\u0430\u0440\u043e\u043b\u0430.\n\u0417\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u0430 \u043d\u0430 \u0410zureus \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u043f\u0430\u0440\u043e\u043b\u0430:
-Button.ok=&\u0414\u0430
-PeersView.discarded=\u0418\u0437\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e
-PeersView.discarded.info=\u0414\u0430\u043d\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u043d\u044f\u043a\u0430\u043a \u0441\u0438 \u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438, \u043d\u043e \u043d\u0435 \u0441\u0430 \u0431\u0438\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0438 \u0438 \u0441\u0430 \u043c\u0430\u0445\u043d\u0430\u0442\u0438.
-discarded=\u0438\u0437\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e
-MyTorrentsView.#=\u2116
-MyTorrentsView.menu.move=\u041f\u0440\u0435&\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435
-MyTorrentsView.menu.moveUp=\u041d\u0430&\u0433\u043e\u0440\u0435
-MyTorrentsView.menu.moveDown=\u041d\u0430&\u0434\u043e\u043b\u0443
-GeneralView.label.hashfails=\u041f\u0440\u043e\u0432\u0430\u0301\u043b\u0438 \u0432 \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435\u0442\u043e:
-GeneralView.label.shareRatio=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e:
-ConfigView.section.downloadManagement=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430
-ConfigView.label.startRatioPeers=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0435\u0435\u043d\u0435 \u043f\u0440\u0438 <1 \u043f\u043e\u0441\u044f\u0432\u043a\u0430 \u0437\u0430
-ConfigView.text.neverStop=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u0441\u043f\u0438\u0440\u0430
-ConfigView.text.neverStart=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u0437\u0430\u043f\u043e\u0447\u0432\u0430
-ConfigView.text.peers=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.label.checkOncompletion=\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430\u0442\u0430 \u043f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-wizard.title=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-wizard.previous=\u2190 \u041d\u0430\u0437\u0430\u0434
-wizard.next=\u041d\u0430\u043f\u0440\u0435\u0434 \u2192
-wizard.finish=\u0413\u043e\u0442\u043e\u0432\u043e
-wizard.mode=\u0422\u0440\u0430\u043a\u0435\u0440/\u041d\u0430\u0447\u0438\u043d
-wizard.tracker=\u0422\u0440\u0430\u043a\u0435\u0440:
-wizard.invalidurl=\u0422\u043e\u0437\u0438 URL \u043d\u0435 \u0435 \u0432\u0430\u043b\u0438\u0434\u0435\u043d
-wizard.singlefile=\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d \u0444\u0430\u0439\u043b
-wizard.singlefile.help=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u043e\u0442 \u0435\u0434\u0438\u043d \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d \u0444\u0430\u0439\u043b
-wizard.directory=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-wizard.directory.help=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u043e\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-wizard.choosefile=\u0424\u0430\u0439\u043b
-wizard.file=\u0424\u0430\u0439\u043b:
-wizard.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0085\u2026
-wizard.choosedirectory=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-wizard.invalidfile=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0444\u0430\u0439\u043b!
-wizard.invaliddirectory=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f!
-wizard.torrentFile=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b
-wizard.choosetorrent=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b \u0437\u0430 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435
-wizard.information=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-wizard.notimplemented=\u041d\u0435 \u0435 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u043e \u043e\u0449\u0435
-wizard.progresstitle=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b
-wizard.savingfile=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u0085\u2026
-wizard.filesaved=\u0424\u0430\u0439\u043b\u044a\u0442 \u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d.
-wizard.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-Torrent.create.progress.piecelength=\u0414\u044a\u043b\u0436\u0438\u043d\u0430 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430\u0442\u0430:
-Torrent.create.progress.piececount=\u0411\u0440\u043e\u0439 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430\u0442\u0430:
-Torrent.create.progress.totalfilesize=\u041e\u0431\u0449 \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435:
-Torrent.create.progress.totalfilecount=\u041e\u0431\u0449 \u0431\u0440\u043e\u0439 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435:
-Torrent.create.progress.parsingfiles=\u0420\u0430\u0437\u0431\u043e\u0440 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-Torrent.create.progress.hashing=\u0420\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-MainWindow.upgrade.downloadingfrom=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043e\u0442:
-MainWindow.menu.view.ipFilter=&IP \u0444\u0438\u043b\u0442\u0440\u0438
-ConfigView.section.ipfilter=IP \u0444\u0438\u043b\u0442\u0440\u0438
-ConfigView.section.ipfilter.description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
-ConfigView.section.ipfilter.start=\u041d\u0430\u0447\u0430\u043b\u0435\u043d IP
-ConfigView.section.ipfilter.end=\u041a\u0440\u0430\u0435\u043d IP
-ConfigView.section.ipfilter.add=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-ConfigView.section.ipfilter.remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-ConfigView.section.ipfilter.edit=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.ipfilter.save=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-ConfigView.section.ipfilter.editFilter=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0444\u0438\u043b\u0442\u044a\u0440
-ConfigView.section.ipfilter.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435
-PeersView.menu.close=&\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-seedmore.title=\u0422\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u043d\u0435 \u0435 \u0441\u044f\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e
-seedmore.shareratio=\u041c\u0435\u0441\u0442\u043d\u043e\u0442\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u0437\u0430 \u0442\u043e\u0437\u0438 \u0442\u043e\u0440\u0435\u043d\u0442 \u0435
-seedmore.uploadmore=\u041a\u043e\u0435\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e <100% \u043d\u0435 \u0435 \u0434\u043e\u0431\u0440\u043e \u043d\u0435\u0449\u043e \u0437\u0430 BitTorrent \u043c\u0440\u0435\u0436\u0430\u0442\u0430.\n\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0438 \u0442\u043e\u0437\u0438 \u0442\u043e\u0440\u0435\u043d\u0442 \u0437\u0430 \u044 [...]
-ConfigView.label.showpopuponclose=\u0414\u0438\u0430\u043b\u043e\u0433 \u0437\u0430 \u043f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u0441\u0435\u0435\u043d\u0435\u0442\u043e \u0441 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e <1
-ConfigView.label.startNumSeeds=\n\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0435\u0435\u043d\u0435 \u043f\u0440\u0438 \u043f\u043e-\u043c\u0430\u043b\u043a\u043e \u043e\u0442\n - \u043f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430
-ConfigView.label.seeds=\u043f\u043e\u0441\u044f\u0432\u043a\u0438
-ConfigView.section.seeding=\u0421\u0435\u0435\u043d\u0435
-#Used by the webui plugin
-MyTorrentsView.menu.removeand.deletetorrent=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 &\u0442\u043e\u0440\u0435\u043d\u0442
-#Used by the webui plugin
-MyTorrentsView.menu.removeand.deletedata=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 &\u0434\u0430\u043d\u043d\u0438
-#Used by the webui plugin
-MyTorrentsView.menu.removeand.deleteboth=&\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043d\u043e \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-deletedata.title=\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435
-# used for more than just "delete data"
-deletedata.noprompt=\u0411\u0435\u0437 \u043d\u043e\u0432\u043e \u043f\u043e\u0434\u0441\u0435\u0449\u0430\u043d\u0435
-MainWindow.menu.file.configure=\u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a \u0437\u0430 &\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0085\u2026
-configureWizard.title=\u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-configureWizard.welcome.title=\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a\u0430 \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 Vuze
-configureWizard.welcome.message=\u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 Vuze \u0437\u0430 \u043d\u0430\u0439-\u043e\u0431\u0449\u0430 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0430. \u0412\u044a\u0437\u043c\u043e\u0436\u043d\u0430 \u0435 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u0432 \u0434\u0435\u0442\u [...]
-configureWizard.transfer.title=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 \u0438 \u0432\u0440\u044a\u0437\u043a\u0430
-configureWizard.transfer.hint=\u041f\u0440\u0435\u043f\u043e\u0440\u044a\u043a\u0430: \u0434\u0430 \u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438 \u043c\u0430\u043b\u043a\u043e \u043f\u043e-\u043d\u0438\u0441\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043e\u0442 \u0442\u0430\u0437\u0438 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f\u0442\u0430.
-configureWizard.transfer.message=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043f\u043e-\u0434\u043e\u043b\u0443. \u0410\u043a\u043e \u043d\u0435 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435, \u0449\u0435 \u0441\u0435 \u043d\u0430\u043c\u0430\u043b\u0438 \u0441\u043a\u043e\u0440\u0 [...]
-configureWizard.transfer.connection=\u041b\u0438\u043d\u0438\u044f
-configureWizard.transfer.connection.0=\u0414\u0440\u0443\u0433\u0430
-configureWizard.transfer.connection.1=\u043c\u043e\u0434\u0435\u043c
-configureWizard.transfer.connection.2=adsl/cable xxx/128 kb/s
-configureWizard.transfer.connection.3=adsl/cable xxx/256 kb/s
-configureWizard.transfer.connection.4=adsl/cable xxx/384 kb/s
-configureWizard.transfer.connection.5=adsl/cable xxx/512 kb/s
-configureWizard.transfer.connection.6=adsl/cable xxx/768 kb/s
-configureWizard.transfer.connection.7=adsl/cable xxx/1024 kb/s
-configureWizard.transfer.maxUpSpeed=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 (KB/s)
-configureWizard.transfer.maxActiveTorrents=\u041c\u0430\u043a\u0441. \u0430\u043a\u0442\u0438\u0432\u043d\u0438
-configureWizard.transfer.maxDownloads=\u041c\u0430\u043a\u0441. \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-configureWizard.transfer.maxUploadsPerTorrent=\u041c\u0430\u043a\u0441. \u043a\u0430\u0447\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-configureWizard.nat.test=\u0422\u0435\u0441\u0442
-configureWizard.nat.testing=\u0422\u0435\u0441\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442
-configureWizard.nat.ok=\u0414\u0430!
-configureWizard.nat.ko=\u0413\u0440\u0435\u0448\u043a\u0430 \u0432 NAT
-configureWizard.nat.unable=\u041d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d \u0442\u0435\u0441\u0442: \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u043f\u043e\u0440\u0442 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0442\u0435\u0441\u0442 \u043d\u0435 \u0443\u0441\u043f\u044f.\n\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0435 \u0434\u0440\u0443\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u04 [...]
-configureWizard.file.title=\u0422\u043e\u0440\u0435\u043d\u0442\u0438/\u0444\u0430\u0439\u043b\u043e\u0432\u0435
-configureWizard.file.message1=Vuze \u0449\u0435 \u0437\u0430\u043f\u0438\u0448\u0435 \u043e\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u043a\u043e\u044f\u0442\u043e \u0441\u0435 \u0438\u0437\u0431\u0438\u0440\u0430 \u0442\u0443\u043a:
-configureWizard.file.path=\u041f\u044a\u0442
-configureWizard.file.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434
-configureWizard.file.message2=Vuze \u043c\u043e\u0436\u0435 \u0434\u0430 \u043f\u043e\u0434\u043d\u043e\u0432\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0438\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u0434\u043d\u0430\u0433\u0430, \u0430\u043a\u043e \u043c\u0443 \u0431\u044a\u0434\u0430\u0442 \u0434\u043e\u0431\u0430\u0432\u0435\u043d\u0438 \u043c\u0430\u043b\u043a\u043e \u0434\u0430\u043d\u043d\u0438 \u0437\u0430 \u043f\u043e\u0434\u043d\u043e\u0432\u044 [...]
-configureWizard.file.fastResume=\u0421 \u0431\u044a\u0440\u0437\u043e \u043f\u043e\u0434\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-configureWizard.file.invalidPath=\u0413\u0440\u0435\u0448\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-configureWizard.finish.title=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-configureWizard.finish.message=Vuze \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d, \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435!
-wizard.close.confirmation=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435
-wizard.close.message=\u0422\u043e\u0437\u0438 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0434\u0430 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438 \u043b\u0438\n \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438\u044f \u043f\u044a\u0442, \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 Vuze?
-exportTorrentWizard.title=\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 XML \u0442\u043e\u0440\u0435\u043d\u0442
-exportTorrentWizard.torrentfile.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-exportTorrentWizard.torrentfile.message=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b \u0437\u0430 \u0435\u043a\u0441\u043f\u043e\u0440\u0442
-exportTorrentWizard.torrentfile.path=\u041f\u044a\u0442
-exportTorrentWizard.torrentfile.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434
-exportTorrentWizard.torrentfile.invalidPath=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b
-exportTorrentWizard.exportfile.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0444\u0430\u0439\u043b \u0437\u0430 \u0435\u043a\u0441\u043f\u043e\u0440\u0442
-exportTorrentWizard.exportfile.message=XML \u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0439\u0442\u043e \u0434\u0430 \u0441\u0435 \u0435\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0430
-exportTorrentWizard.exportfile.path=\u041f\u044a\u0442
-exportTorrentWizard.exportfile.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434
-exportTorrentWizard.exportfile.invalidPath=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0444\u0430\u0439\u043b \u0437\u0430 \u0435\u043a\u0441\u043f\u043e\u0440\u0442
-exportTorrentWizard.finish.title=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-exportTorrentWizard.finish.message=\u0415\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e
-exportTorrentWizard.process.inputfilebad.title=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u044a\u0442 \u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d
-exportTorrentWizard.process.inputfilebad.message=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u044f \u0444\u0430\u0439\u043b:
-exportTorrentWizard.process.outputfileexists.title=\u0421\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449 \u0444\u0430\u0439\u043b
-exportTorrentWizard.process.outputfileexists.message=\u0414\u0430 \u0441\u0435 \u043f\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0435 \u043b\u0438 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438\u044f\u0442 \u0444\u0430\u0439\u043b?
-exportTorrentWizard.process.torrentfail.title=\u041f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0438 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-exportTorrentWizard.process.exportfail.title=\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-exportTorrentWizard.process.unknownfail.title=\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430
-importTorrentWizard.title=\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 XML \u0442\u043e\u0440\u0435\u043d\u0442
-importTorrentWizard.torrentfile.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442
-importTorrentWizard.torrentfile.message=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0439\u0442\u043e \u0434\u0430 \u0441\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0430
-importTorrentWizard.torrentfile.path=\u041f\u044a\u0442
-importTorrentWizard.torrentfile.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434
-importTorrentWizard.torrentfile.invalidPath=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b
-importTorrentWizard.importfile.title=\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-importTorrentWizard.importfile.message=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 XML \u0444\u0430\u0439\u043b \u0437\u0430 \u0438\u043c\u043f\u043e\u0440\u0442
-importTorrentWizard.importfile.path=\u041f\u044a\u0442
-importTorrentWizard.importfile.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434
-importTorrentWizard.importfile.invalidPath=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0444\u0430\u0439\u043b \u0437\u0430 \u0438\u043c\u043f\u043e\u0440\u0442
-importTorrentWizard.finish.title=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-importTorrentWizard.finish.message=\u0423\u0441\u043f\u0435\u0448\u0435\u043d \u0438\u043c\u043f\u043e\u0440\u0442
-importTorrentWizard.process.inputfilebad.title=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0444\u0430\u0439\u043b \u0437\u0430 \u0438\u043c\u043f\u043e\u0440\u0442
-importTorrentWizard.process.inputfilebad.message=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0432\u0445\u043e\u0434\u0435\u043d \u0444\u0430\u0439\u043b:
-importTorrentWizard.process.outputfileexists.title=\u0424\u0430\u0439\u043b\u044a\u0442 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430
-importTorrentWizard.process.outputfileexists.message=\u0418\u0437\u0445\u043e\u0434\u043d\u0438\u044f\u0442 \u0444\u0430\u0439\u043b \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 - \u043f\u0440\u0435\u0437\u0430\u043f\u0438\u0441?
-importTorrentWizard.process.torrentfail.title=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-importTorrentWizard.process.importfail.title=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-importTorrentWizard.process.unknownfail.title=\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430
-ConfigView.label.bindip=\u041f\u0440\u0438\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043a\u044a\u043c \u043b\u043e\u043a\u0430\u043b\u0435\u043d IP \u0430\u0434\u0440\u0435\u0441 \u0438\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441
-ConfigView.label.xfs.allocation=\u0417\u0430\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043f\u043e \u043c\u0435\u0442\u043e\u0434 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u043d \u0437\u0430 XFS
-ConfigView.label.xfs.allocation.tooltip=\u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430\u0442\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u043d\u0430 /usr/sbin/xfs_io \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430. \u0412 \u043f\u043e\u0432\u0435\u0447\u0435\u0442\u043e Linux \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0446\u0438\u0438 \u0435 \u0447\u0430\u0441\u0442 \u043e\ [...]
-xfs.allocation.xfs_io.not.found=\u0417\u0430\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 XFS \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438, /usr/sbin/xfs_io \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438. \u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u0437\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0438\u043d\u0441\ [...]
-ConfigView.label.zeronewfiles=\u041d\u0430\u0437\u043d\u0430\u0447\u0430\u0432\u0430\u043d\u0435 \u0438 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043f\u0440\u0438 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435
-ConfigView.label.zeronewfiles.tooltip=\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e
-ConfigView.section.stats=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430
-ConfigView.section.stats.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435
-ConfigView.section.stats.defaultsavepath=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438\u0442\u0435
-ConfigView.section.stats.choosedefaultsavepath=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438\u0442\u0435
-ConfigView.section.stats.savefreq=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0447\u0435\u0441\u0442\u043e\u0442\u0430
-ConfigView.section.stats.minutes=\u043c\u0438\u043d
-ConfigView.section.stats.hours=\u0447\u0430\u0441
-ConfigView.section.stats.seconds=\u0441\u0435\u043a
-ConfigView.section.stats.savefile=\u0418\u043c\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b \u0441\u044a\u0441 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438
-ConfigView.section.stats.graph_update_dividers=\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u0430 \u043b\u0438\u043d\u0438\u044f \u043f\u0440\u0438 \u0432\u0441\u0435\u043a\u0438 60 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438
-MyTorrentsView.menu.export=&XML \u0442\u043e\u0440\u0435\u043d\u0442\u0085
-MyTorrentsView.menu.host=&\u041f\u043e\u0434\u0441\u043b\u043e\u043d\u2026
-ManagerItem.finishing=\u041f\u0440\u0438\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435
-ConfigView.dialog.choosedefaulttorrentpath=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.dialog.choosemovepath=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u044f\u0442\u043e \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0438
-ConfigView.label.movecompleted=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-ConfigView.label.moveremoved=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 (\u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u0442)
-ConfigView.label.savetorrents=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 .torrent \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-MainWindow.menu.view.mytracker=\u041c\u0435\u0441\u0442\u0435\u043d &\u0442\u0440\u0430\u043a\u0435\u0440
-MyTrackerView.title.full=\u041c\u0435\u0441\u0442\u0435\u043d \u0422\u0440\u0430\u043a\u0435\u0440
-MyTrackerView.name=\u0418\u043c\u0435
-MyTrackerView.tracker=\u0422\u0440\u0430\u043a\u0435\u0440
-MyTrackerView.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-MyTrackerView.status.started=\u0420\u0430\u0431\u043e\u0442\u0435\u0449\u043e
-MyTrackerView.status.stopped=\u0421\u043f\u0440\u044f\u043d\u043e
-MyTrackerView.peers=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-MyTrackerView.seeds=\u041f\u043e\u0441\u044f\u0432\u043a\u0438
-MyTrackerView.announces=\u041e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0438\u044f
-MyTrackerView.uploaded=\u041a\u0430\u0447\u0435\u043d\u043e
-MyTrackerView.downloaded=\u0421\u0432\u0430\u043b\u0435\u043d\u043e
-MyTrackerView.left=\u041b\u044f\u0432\u043e
-ConfigView.section.style=\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441
-ConfigView.label.set_ui_transfer_speeds=\u041f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0438 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u043d\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438
-ConfigView.label.set_ui_transfer_speeds.description=\u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0440\u044a\u0447\u043d\u043e \u0434\u0435\u0444\u0438\u043d\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u0438\u0442\u0435 \u0441\u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \ [...]
-ConfigView.label.set_ui_transfer_speeds.description.download=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 (KB/s)
-ConfigView.label.set_ui_transfer_speeds.description.upload=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 (KB/s)
-ConfigView.section.style.useCustomTabs=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u0449\u0438 \u0441\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-MainWindow.menu.view.plugins=&\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-fileDownloadWindow.saveTorrentIn=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b \u0432
-fileDownloadWindow.title=Vuze - \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-fileDownloadWindow.downloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043e\u0442:
-fileDownloadWindow.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435:
-fileDownloadWindow.state_initializing=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435
-fileDownloadWindow.state_downloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435
-fileDownloadWindow.state_error=\u0413\u0440\u0435\u0448\u043a\u0430:
-MainWindow.menu.file.open.url=&\u041c\u0435\u0441\u0442\u043e\u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u0085\u2026
-openUrl.title=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043c\u044f\u0441\u0442\u043e
-openUrl.url=URL:
-MyTorrentsView.menu.host.error.title=\u041f\u043e\u0434\u0441\u043b\u043e\u043d\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-MyTorrentsView.menu.host.error.message=\u0418\u043c\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u0434\u0441\u043b\u043e\u043d\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.section.tracker=\u0422\u0440\u0430\u043a\u0435\u0440
-ConfigView.section.tracker.pollinterval=\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u0430 \u0431\u0440\u043e\u0435\u043d\u0435 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0438 \u043e\u0442 \u0442\u0440\u0430\u043a\u0435\u0440\u0430 [s]
-ConfigView.section.tracker.publishenable=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0432 '<tracker_url>'
-ConfigView.section.tracker.ip=\u0412\u044a\u043d\u0448\u0435\u043d IP \u0430\u0434\u0440\u0435\u0441 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440
-ConfigView.section.style.enableXPStyle=\u041a\u0430\u043a\u0442\u043e \u0435 \u0432 XP (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-IPChecker.external.service.dyndns.name=\u0423\u0441\u043b\u0443\u0433\u0430 \u043e\u0442 "DynDNS"
-IPChecker.external.service.dyndns.description=\u0423\u0441\u043b\u0443\u0433\u0430 \u043e\u0442 "Dynamic DNS Network Services, LLC"
-ConfigView.section.tracker.checkip=\u0410\u0432\u0442\u043e-\u0440\u0430\u0437\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u044a\u043d\u0448\u043d\u0438\u044f \u0418\u041f (IP) \u0430\u0434\u0440\u0435\u0441\u0085\u2026
-ipCheckerWizard.title=\u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a \u0437\u0430 IP \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430
-ipCheckerWizard.service=\u0423\u0441\u043b\u0443\u0433\u0430
-ipCheckerWizard.chooseService=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0443\u0441\u043b\u0443\u0433\u0430 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 IP \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u0443\u0441\u043b\u0443\u0433\u0438
-ipCheckerWizard.explanations=\u0422\u043e\u0437\u0438 \u0441\u044a\u0432\u0435\u0442\u043d\u0438\u043a \u043c\u043e\u0436\u0435 \u0434\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0435 \u043a\u0430\u043a\u044a\u0432 \u0435 \u043c\u0435\u0441\u0442\u043d\u0438\u044f\u0442 \u0432\u044a\u043d\u0448\u0435\u043d IP \u0430\u0434\u0440\u0435\u0441. \u0410\u043a\u043e IP \u0430\u0434\u0440\u0435\u0441\u044a\u0442 \u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u043d, \u043f\u0440\u0435\u0 [...]
-ipCheckerWizard.service.description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:
-ipCheckerWizard.service.url=\u0412\u0440\u044a\u0437\u043a\u0430:
-ipCheckerWizard.progresstitle=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 IP
-ipCheckerWizard.checkComplete=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d IP:
-ipCheckerWizard.checkFailed=\u041f\u0440\u043e\u0432\u0430\u043b, \u043f\u0440\u0438\u0447\u0438\u043d\u0430:
-wizard.tracker.local=\u041c\u0435\u0441\u0442\u0435\u043d Vuze \u0432\u0433\u0440\u0430\u0434\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440
-wizard.tracker.external=\u0421 \u0432\u044a\u043d\u0448\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440
-wizard.tracker.howToLocal=\t\u0414\u0430 \u0441\u0435 \u043e\u0442\u0432\u043e\u0440\u0438 '\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u2192 \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u2192 \u0422\u0440\u0430\u043a\u0435\u0440' \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430
-wizard.announceUrl=URL \u0437\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435:
-IPChecker.external.service.discoveryvip.name=\u0423\u0441\u043b\u0443\u0433\u0430 \u043e\u0442 "Discoveryvip"
-IPChecker.external.service.discoveryvip.description=Discoveryvip - \u0441\u0430\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 IP \u0430\u0434\u0440\u0435\u0441
-IPChecker.external.httpinvalidresponse=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d HTTP \u043e\u0442\u0433\u043e\u0432\u043e\u0440
-IPChecker.external.loadingwebpage=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
-IPChecker.external.analysingresponse=\u0410\u043d\u0430\u043b\u0438\u0437 \u043d\u0430 \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u0430
-IPChecker.external.addressextracted=\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d \u0418\u041f (IP) \u0430\u0434\u0440\u0435\u0441
-IPChecker.external.httploadfail=\u041f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
-IPChecker.external.timeout=\u0418\u043c\u0430 \u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0432\u0430\u043d\u0435
-IPChecker.external.ipnotfound=IP \u0430\u0434\u0440\u0435\u0441\u044a\u0442 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d
-ConfigView.section.tracker.pollintervalmin=\u041c\u0438\u043d\u0438\u043c\u0443\u043c
-ConfigView.section.tracker.pollintervalmax=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c
-ConfigView.section.tracker.pollintervalincby=\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u0441
-ConfigView.section.tracker.pollintervalincper=\u0412\u0441\u0435\u043a\u0438 'n' \u043a\u043b\u0438\u0435\u043d\u0442\u0438
-splash.loadingImages=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043e\u0431\u0440\u0430\u0437\u0438
-splash.initializeGui=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0438\u044f \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446
-splash.openViews=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0438\u0442\u0435
-splash.plugin=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430:
-configureWizard.nat.tooManyPorts=\u041d\u0430\u0434\u0432\u0438\u0448\u0435\u043d \u0431\u0440\u043e\u0439 \u043f\u043e\u0440\u0442\u043e\u0432\u0435 \u0437\u0430 \u0442\u0435\u0441\u0442 (\u22649)
-ConfigView.section.color=\u0426\u0432\u0435\u0442\u043e\u0432\u0430 \u0441\u0445\u0435\u043c\u0430
-MyTorrentsView.menu.publish=\u041f\u0443&\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435\u0085
-MyTrackerView.status.published=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u043e
-MyTrackerView.completed=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-MainWindow.menu.file.open.torrentnodefault=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u2026\u0085 (\u0431\u0435\u0437 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435)
-wizard.comment=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-ConfigView.label.movetorrent=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 .torrent
-ConfigView.label.movepartialdownloads=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0438\u043c\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441 \u0444\u043b\u0430\u0433 "\u041d\u0435 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435"
-ConfigView.label.subdir_is_in_default=\u041f\u0440\u0438 \u043f\u0440\u0438\u0435\u043c\u0430\u043d\u0435, \u0447\u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0442 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435, \u0434\u0430 \u0441\u0435 \u0438\u043c\u0430\u0442 \u043f\u0440\u0435\u0434\u [...]
-ConfigView.section.file.decoder.label=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442, \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0438\u0437\u0431\u043e\u0440
-ConfigView.section.file.decoder.nodecoder=\u041d\u044f\u043c\u0430
-IPChecker.external.service.no-ip.name=\u0423\u0441\u043b\u0443\u0433\u0430 \u043e\u0442 "No-IP"
-IPChecker.external.service.no-ip.description=\u0414\u043e\u0441\u0442\u0430\u0432\u0447\u0438\u043a \u043d\u0430 \u0443\u0441\u043b\u0443\u0433\u0430 \u0437\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u043d \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u043d DNS\n(\u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 'check address' \u043d\u0435 \u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430)
-ConfigView.section.tracker.publicenable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u044a\u043d\u0448\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.label.playdownloadspeech=\u0413\u043b\u0430\u0441\u043e\u0432\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-#
-# Tooltips
-#
-GeneralView.label.status.pieces_available.tooltip=\u041f\u043e\u043a\u0430\u0437\u0432\u0430 \u0431\u0440\u043e\u044f \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u043a\u043e\u043f\u0438\u044f \u043d\u0430 \u0432\u0441\u044f\u043a\u043e \u043f\u0430\u0440\u0447\u0435.\n\u0410\u043a\u043e \u0447\u0438\u0441\u043b\u043e\u0442\u043e \u0432\u0434\u044f\u0441\u043d\u043e \u0435 <1, \u0437\u043d\u0430\u0447\u0438 \u043d\u0435 \u0441\u0435 \u0432\u0438\u0436\u0434\u0430 \u043f\u044a\u043b\u043d\ [...]
-GeneralView.label.trackerurl.tooltip=\u0421 \u043f\u043e\u0441\u043e\u0447\u0432\u0430\u043d\u0435 \u0441\u0435 \u043a\u043e\u043f\u0438\u0440\u0430 URL \u043d\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430
-GeneralView.label.trackerurlopen.tooltip=\u0421 \u043f\u043e\u0441\u043e\u0447\u0432\u0430\u043d\u0435 \u0441\u0435 \u043e\u0442\u0432\u0430\u0440\u044f \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430
-#
-# 2.0.4.4
-#
-ConfigView.section.style.guiUpdate=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0413\u041f\u0418 \u043d\u0430 \u0432\u0441\u0435\u043a\u0438
-ConfigView.section.style.inactiveUpdate=\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0438\u044f \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u043d\u0430 \u0432\u0441\u0435\u043a\u0438 N \u043e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0413\u041f\u0418, \u043a\u043e\u0433\u0430\u0442\u043e \u0435 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u0435\u043d
-ConfigView.section.style.graphicsUpdate=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u043d\u0438\u0442\u0435 \u043b\u0435\u043d\u0442\u0438 \u0432\u0441\u0435\u043a\u0438 N \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f/\u0438 \u043d\u0430 \u0413\u041f\u0418
-ConfigView.section.style.reOrderDelay=\u041f\u0440\u0435\u043f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0438\u0442\u0435 \u043d\u0430 \u0432\u0441\u0435\u043a\u0438 N \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f/\u0438 \u043d\u0430 \u0413\u041f\u0418 [0: \u043d\u0438\u043a\u043e\u0433\u0430]
-ConfigView.section.style.reOrderDelay.never=\u041d\u0438\u043a\u043e\u0433\u0430
-ConfigView.section.logging=\u0417\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u0432 \u0434\u043d\u0435\u0432\u043d\u0438\u043a
-ConfigView.section.logging.enable=\u0417\u0430\u043f\u0438\u0441 \u0432 \u0434\u043d\u0435\u0432\u043d\u0438\u043a
-ConfigView.section.logging.logdir=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0430
-ConfigView.section.logging.choosedefaultsavepath=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-GeneralView.label.updatein.querying=\u0422\u044a\u0440\u0441\u0435\u043d\u0435\u0085\u2026
-configureWizard.nat.sharePort=\u0412\u0441\u0438\u0447\u043a\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0434\u0430 \u0441\u0430 \u043f\u0440\u0435\u0437 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0432\u0445\u043e\u0434\u044f\u0449 \u043f\u043e\u0440\u0442
-ConfigView.section.logging.maxsize=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u0430 \u0433\u043e\u043b\u0435\u043c\u0438\u043d\u0430 \u043d\u0430 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0430
-ConfigView.section.tracker.passwordenableweb=\u0421 \u043f\u0430\u0440\u043e\u043b\u0430 \u0437\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0430\u0442\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.tracker.passwordenabletorrent=\u0421 \u043f\u0430\u0440\u043e\u043b\u0430 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.section.tracker.username=\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435
-ConfigView.section.tracker.password=\u041f\u0430\u0440\u043e\u043b\u0430
-columnChooser.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0438 \u0437\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435
-columnChooser.move=\u041f\u0440\u0435\u043f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0435 \u0441\u0442\u0430\u0432\u0430 \u0441 \u0432\u043b\u0430\u0447\u0435\u043d\u0435
-columnChooser.apply=\u041f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0435
-columnChooser.columnname=\u0418\u043c\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430
-columnChooser.columndescription=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
-TableColumn.header.shareRatio=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-MyTorrentsView.menu.editTableColumns=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 &\u043a\u043e\u043b\u043e\u043d\u0438
-wizard.operationfailed=\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-authenticator.title=\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435
-authenticator.realm=\u041e\u0431\u043b\u0430\u0441\u0442
-authenticator.tracker=\u0422\u0440\u0430\u043a\u0435\u0440
-authenticator.user=\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435
-authenticator.password=\u041f\u0430\u0440\u043e\u043b\u0430
-ConfigView.label.allowSendVersion=Vuze \u0434\u0430 \u0438\u0437\u043f\u0440\u0430\u0449\u0430 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0438 \u0432\u0435\u0440\u0441\u0438\u044f \u0438 \u0441\u043b\u0443\u0447\u0430\u0435\u043d \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-ConfigView.label.version.info.link=\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438 \u0442\u0443\u043a \u0437\u0430 \u0442\u043e\u0432\u0430 \u043a\u0430\u043a\u0432\u0438 \u0434\u0430\u043d\u043d\u0438 \u0441\u0435 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u0442 \u0434\u043e \u0441\u044a\u0440\u0432\u044a\u0440\u0430 \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-wizard.hint.mode=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430:\t\u041c\u043e\u0436\u0435 \u0434\u0430 \u0432\u043b\u0430\u0447\u0438-\u043f\u0443\u0441\u043d\u0435 \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430\n\t\u0437\u0430 \u0438\u0437\u0431\u043e\u0440 \u043d\u0430 \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u044 [...]
-wizard.hint.file=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430:\t\u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0444\u0430\u0439\u043b \u0441 \u0432\u043b\u0430\u0447\u0435\u043d\u0435-\u043f\u0443\u0441\u043a\u0430\u043d\u0435
-wizard.hint.directory=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430:\t\u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u0432\u043b\u0430\u0447\u0435\u043d\u0435-\u043f\u0443\u0441\u043a\u0430\u043d\u0435
-MainWindow.menu.help.checkupdate=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430&\u0446\u0438\u0438\u0085
-TableColumn.header.down=\u0421\u0432\u0430\u043b\u0435\u043d\u043e
-TableColumn.header.up=\u041a\u0430\u0447\u0435\u043d\u043e
-ConfigView.section.tracker.passwordenabletorrent.info=\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449 BitTorrent \u043a\u043b\u0438\u0435\u043d\u0442 (\u043f\u0440. Vuze)
-ConfigView.section.style.confirmationOnExit=\u0414\u0438\u0430\u043b\u043e\u0433 \u0437\u0430 \u043f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0438\u0437\u0445\u043e\u0434
-MainWindow.dialog.exitconfirmation.title=\u0418\u0437\u0445\u043e\u0434 \u043e\u0442 Vuze?
-MainWindow.dialog.exitconfirmation.text=\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043b\u0435\u0437\u0435 \u043e\u0442 Vuze?
-SystemTray.menu.stopalltransfers=\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u0442\u0440&\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-TrayWindow.menu.stopalldownloads=\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0432&\u0430\u043b\u044f\u043d\u0438\u044f
-ConfigView.section.tracker.sslport.info=\u0427\u0417\u0412 \u0437\u0430 \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-wizard.tracker.ssl=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 SSL
-ConfigView.label.playdownloadfinished=\u0417\u0432\u0443\u043a\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-ConfigView.label.popupdownloadfinished=\u0418\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-ConfigView.label.popupfilefinished=\u0418\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u0444\u0430\u0439\u043b
-TableColumn.header.pieces=\u041f\u0430\u0440\u0447\u0435\u0442\u0430
-TableColumn.header.pieces.info=\u0413\u0440\u0430\u0444\u0438\u0447\u043d\u0430 \u043b\u0435\u043d\u0442\u0430, \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u0449\u0430 \u043a\u043e\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430 \u0441\u0430 \u0441\u0432\u0430\u043b\u0435\u043d\u0438
-TableColumn.header.completion=\u0417\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435
-TableColumn.header.completion.info=\u0413\u0440\u0430\u0444\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 % \u0441\u0432\u0430\u043b\u0435\u043d\u043e
-ConfigView.section.style.showdownloadbasket=\u041a\u043e\u0448\u043d\u0438\u0446\u0430 \u0441\u044a\u0441 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f (\u0432\u043b\u0430\u0447\u0435\u043d\u0435-\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438)
-ConfigView.section.style.alwaysShowTorrentFiles=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0432 \u0414\u0435\u0442\u0430\u0439\u043b\u0438/\u0424\u0430\u0439\u043b\u043e\u0432\u0435 \u0432\u0438\u043d\u0430\u0433\u0438
-wizard.multitracker=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043c\u0443\u043b\u0442\u0438-\u0442\u0440\u0430\u043a\u0435\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043a\u044a\u043c \u0442\u043e\u0440\u0435\u043d\u0442\u0430
-wizard.multitracker.title=\u041c\u0443\u043b\u0442\u0438-\u0442\u0440\u0430\u043a\u0435\u0440
-wizard.multitracker.configuration=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0437\u0430 \u043c\u0443\u043b\u0442\u0438-\u0442\u0440\u0430\u043a\u0435\u0440
-wizard.multitracker.new=\u041d\u043e\u0432\u0085\u2026
-wizard.multitracker.edit=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435\u0085\u2026
-wizard.multitracker.delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-wizard.multitracker.group=\u0413\u0440\u0443\u043f\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0438
-wizard.multitracker.edit.title=\u041c\u0443\u043b\u0442\u0438-\u0442\u0440\u0430\u043a\u0435\u0440 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440
-wizard.multitracker.edit.name=\u0418\u043c\u0435
-wizard.multitracker.edit.save=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-wizard.multitracker.edit.newgroup=\u041d\u043e\u0432\u0430 \u0433\u0440\u0443\u043f\u0430
-wizard.multitracker.edit.deletegroup=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-wizard.multitracker.edit.newtracker=\u041d\u043e\u0432 \u0442\u0440\u0430\u043a\u0435\u0440
-wizard.multitracker.edit.deletetracker=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-wizard.multitracker.edit.edit=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435
-wizard.addingmt=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043c\u0443\u043b\u0442\u0438-\u0442\u0440\u0430\u043a\u0435\u0440 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-wizard.multitracker.noannounce=URL \u0437\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0435 \u0435 \u0432 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u0442\u0440\u0430\u043a\u0435\u0440\u0438
-MyTorrentsView.menu.recheck=\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440&\u043a\u0430
-iconBar.showDownloadBar.tooltip=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-iconBar.start.tooltip=\u0421\u0442\u0430\u0440\u0442
-iconBar.stop.tooltip=\u0421\u0442\u043e\u043f
-iconBar.remove.tooltip=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-iconBar.openNoDefault.tooltip=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b (\u0431\u0435\u0437 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435)
-iconBar.openURL.tooltip=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 URL
-iconBar.openFolder.tooltip=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-iconBar.new.tooltip=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-iconBar.up.tooltip=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043f\u043e-\u0433\u043e\u0440\u0435
-iconBar.down.tooltip=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043f\u043e-\u0434\u043e\u043b\u0443
-iconBar.run.tooltip=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-iconBar.host.tooltip=\u041f\u043e\u0434\u0441\u043b\u043e\u043d
-iconBar.publish.tooltip=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435
-iconBar.editcolumns.tooltip=\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0438
-MyTorrentsView.menu.editTracker=\u0420&\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043d\u0435 URL(\u0442\u0430) \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440
-GeneralView.menu.selectTracker=\u0418\u0437\u0431\u043e\u0440
-ConfigView.section.stats.xslfile=\u0418\u043c\u0435 \u043d\u0430 XSL \u0444\u0430\u0439\u043b
-ConfigView.section.stats.xslfiledetails=\u0422\u043e\u0432\u0430 \u0449\u0435 \u0431\u044a\u0434\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0432 \u0437\u0430\u0433\u043b\u0430\u0432\u043a\u0430\u0442\u0430 \u043d\u0430 \u0444\u0430\u0439\u043b\u0430 \u0441\u044a\u0441 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0441 \u0435\u0442\u0438\u043a\u0435\u0442 <?xml-stylesheet>
-ConfigView.label.savetorrentbackup=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u0430\u0300\u0441
-ConfigView.section.tracker.forceport=\u041d\u0430\u0441\u0438\u043b\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0441\u043b\u043e\u043d\u0435\u043d\u0438\u0442\u0435 \u0432\u044a\u043d\u0448\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043a\u044a\u043c \u043f\u043e\u0440\u0442 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.ipfilter.allow=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u0437\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0438 (\u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0441\u0435 \u043e\u0442\u043a\u0430\u0437\u0432\u0430\u0442)
-ConfigView.section.ipfilter.list.inrange=\u0435 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d
-ConfigView.section.ipfilter.list.notinrange=\u043d\u0435 \u0435 \u0432 \u043a\u043e\u0439\u0442\u043e \u0438 \u0434\u0430 \u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d
-ConfigView.section.ipfilter.list.title=\u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438 IP-\u0442\u0430
-ConfigView.label.allowsameip=\u041d\u044f\u043a\u043e\u043b\u043a\u043e \u0432\u0440\u044a\u0437\u043a\u0438 \u043e\u0442 \u0435\u0434\u0438\u043d IP \u0430\u0434\u0440\u0435\u0441
-ConfigView.label.allowsameip.tooltip=\u0414\u0430 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0421\u0410\u041c\u041e \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442.\n\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u043f\u0438\u044f\u0432\u0438\u0446\u0438 (\u043a\u043e\u0433\u0430\u0442\u043e \u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e).
-ManagerItem.superseeding=\u0421\u0443\u043f\u0435\u0440-\u0441\u0435\u0435\u043d\u0435
-ConfigView.label.userSuperSeeding=\u0420\u0435\u0436\u0438\u043c \u0441\u0443\u043f\u0435\u0440-\u0441\u0435\u0435\u043d\u0435
-PeersView.uniquepiece=\u041f\u0430\u0440\u0447\u0435\u0442\u0430 (\u0440\u0435\u0436\u0438\u043c \u0441\u0443\u043f\u0435\u0440-\u0441\u0435\u0435\u043d\u0435)
-PeersView.uniquepiece.none=\u041d\u044f\u043c\u0430
-PeersView.timetosend=\u0412\u0440\u0435\u043c\u0435 \u0437\u0430 \u043f\u0440\u0435\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430 (\u0440\u0435\u0436\u0438\u043c \u0441\u0443\u043f\u0435\u0440-\u0441\u0435\u0435\u043d\u0435)
-ConfigView.section.style.addurlsilently=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 URL \u0442\u0438\u0445\u043e\u043c\u044a\u043b\u043a\u043e\u043c
-ConfigView.section.style.addurlsilently.tooltip=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043f\u0440\u0435\u043c\u0438\u043d\u0430\u043b\u0438\u0442\u0435/\u0438\u0437\u043f\u0443\u0441\u043d\u0430\u0442\u0438\u0442\u0435 .torrent URL-\u0442\u0430 \u0431\u0435\u0437 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043d\u0430\u043f\u043e\u043c\u043d\u044f\u0449 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u [...]
-ConfigView.section.file.decoder.prompt=\u041f\u043e\u0434\u0441\u0435\u0449\u0430\u043d\u0435 \u0437\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u0438\u043d\u0430\u0433\u0438, \u043a\u043e\u0433\u0430\u0442\u043e \u0438\u043c\u0430 \u0438\u0437\u0431\u043e\u0440
-ConfigView.section.file.decoder.prompt.tooltip=\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u0437\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u0438\u043d\u0430\u0433\u0438, \u043a\u043e\u0433\u0430\u0442\u043e \u0438\u043c\u0430 \u0438\u0437\u0431\u043e\u0440
-MyTorrentsView.menu.moveTop=&\u041d\u0430\u0439-\u0433\u043e\u0440\u0435
-MyTorrentsView.menu.moveEnd=\u041d\u0430\u0439-\u0434\u043e\u043b&\u0443
-ConfigView.label.moveonlyusingdefaultsave=\u0441\u0430\u043c\u043e \u0430\u043a\u043e \u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-ConfigView.label.moveonlyusingdefaultsave.tooltip=\u0414\u0430 \u0441\u0435 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0438 \u0441\u0430\u043c\u043e \u0430\u043a\u043e \u0441\u0432\u0430\u043b\u0435\u043d\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 \u0441\u0430 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-ConfigView.label.watchtorrentfolder=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u043d \u0438\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.label.watchtorrentfolder.tooltip=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u043d\u043e\u0432\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0440\u0435\u0434\u043e\u0432\u043d\u043e
-ConfigView.label.watchtorrentfolderinterval=\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b
-ConfigView.label.watchtorrentfolderinterval.tooltip=\u041f\u0430\u0443\u0437\u0430\u0442\u0430 \u0434\u043e \u043d\u043e\u0432\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430
-ConfigView.dialog.choosewatchtorrentfolderpath=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0438\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.label.startwatchedtorrentsstopped=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u0440\u0435\u043d\u0438\u0442\u0435
-ConfigView.label.startwatchedtorrentsstopped.tooltip=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0432 \u0421\u041f\u0420\u042f\u041d\u041e \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-ConfigView.section.plugins=\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-wizard.maketorrent.filesize=\u0424\u0430\u0439\u043b(\u043e\u0432\u0435) \u0440\u0430\u0437\u043c\u0435\u0440
-wizard.maketorrent.piececount=\u0411\u0440\u043e\u0439 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-wizard.maketorrent.piecesize=\u041f\u0430\u0440\u0447\u0435\u0442\u0430 \u0440\u0430\u0437\u043c\u0435\u0440
-wizard.maketorrent.auto=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e
-MainWindow.menu.view.stats=&\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438
-SpeedView.title.full=\u0414\u0435\u0439\u043d\u043e\u0441\u0442
-SpeedView.downloadSpeed.title=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u0441
-SpeedView.uploadSpeed.title=\u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u0441
-ConfigView.section.style.useSIUnits=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 SI \u0435\u0434\u0438\u043d\u0438\u0446\u0438 (KB \u2192 KiB \u0438 \u0434\u0440.)
-iconBar.top.tooltip=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430\u0439-\u0433\u043e\u0440\u0435
-iconBar.bottom.tooltip=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430\u0439-\u0434\u043e\u043b\u0443
-TableColumn.header.health=\u0417\u0434\u0440\u0430\u0432\u0438\u043d\u0430
-MyTorrentsView.menu.health=\u0417\u0430 \u0437\u0434\u0440\u0430\u0432\u0438\u043d\u0430\u0442\u0430
-health.explain.grey=\u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u043d\u0435 \u0435 \u0430\u043a\u0442\u0438\u0432\u0435\u043d (\u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0438\u043b\u0438 \u043a\u0430\u0447\u0432\u0430\u043d\u0435)
-health.explain.red=\u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u043d\u044f\u043c\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-health.explain.blue=\u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435, \u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430 \u0447\u0435 \u043d\u044f\u043c\u0430 \u043e\u0449\u0435 \u0432\u0440\u044a\u0437\u043a\u0430 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\n\u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435, \u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0438\u043c\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0441 \u [...]
-health.explain.yellow=\u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0442\u0440\u0430\u043a\u0435\u0440\u044a\u0442 \u0435 \u0434\u043e\u0431\u0440\u0435, \u0438\u043c\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u043d\u043e \u043d\u044f\u043c\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430.\n\u0412\u0435\u0440\u043e\u044f\u [...]
-health.explain.green=\u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0432\u0441\u0438\u0447\u043a\u043e \u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-ConfigView.section.style.alwaysRefreshMyTorrents=\u041e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 '\u041c\u0435\u0441\u0442\u043d\u0438 \u0422\u043e\u0440\u0435\u043d\u0442\u0438' \u0432\u0438\u043d\u0430\u0433\u0438
-ConfigView.section.style.alwaysRefreshMyTorrents.tooltip=\u0422\u043e\u0432\u0430 \u0449\u0435 \u043e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0430 \u0441 '\u041c\u0435\u0441\u0442\u043d\u0438 \u0422\u043e\u0440\u0435\u043d\u0442\u0438' \u0434\u043e\u0440\u0438 \u0434\u0430 \u043d\u0435 \u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d (\u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0437\u0430 \u043d\u044f\u043a\u043e\u0438 mIRC \u043f\u0440\u04 [...]
-#
-#2.0.7.0
-#
-security.certtruster.title=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 \u0437\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
-security.certtruster.intro=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044a\u0442 \u0435 \u0438\u0437\u0434\u0430\u0434\u0435\u043d \u043e\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u0430 \u043a\u043e\u044f\u0442\u043e \u0441\u0435 \u043d\u044f\u043c\u0430 \u0434\u043e\u0432\u0435\u0440\u0438\u0435
-security.certtruster.resource=\u0420\u0435\u0441\u0443\u0440\u0441:
-security.certtruster.issuedto=\u0418\u0437\u0434\u0430\u0434\u0435\u043d \u043d\u0430:
-security.certtruster.issuedby=\u0418\u0437\u0434\u0430\u0434\u0435\u043d \u043e\u0442:
-security.certtruster.prompt=\u0414\u0430 \u043c\u0443 \u0441\u0435 \u0438\u043c\u0430 \u043b\u0438 \u0434\u043e\u0432\u0435\u0440\u0438\u0435?
-security.certtruster.yes=\u0414\u0430
-security.certtruster.no=\u041d\u0435
-ConfigView.section.tracker.torrentsperpage=\u0411\u0440\u043e\u0439 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430? [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-MainWindow.menu.file.share=&\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-MainWindow.menu.file.share.file=&\u0424\u0430\u0439\u043b\u0085\u2026
-MainWindow.menu.file.share.dir=&\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0085\u2026
-MainWindow.menu.file.share.dircontents=\u0421&\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0085\u2026
-MainWindow.menu.file.share.dircontentsrecursive=\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u2026 (&\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e)
-MainWindow.dialog.share.sharefile=\u0424\u0430\u0439\u043b \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-MainWindow.dialog.share.sharedir=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-MainWindow.dialog.share.sharedircontents=\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-MainWindow.dialog.share.sharedircontents.recursive=\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e
-globalmanager.download.remove.veto=\u0412\u0435\u0442\u043e \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u043e \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-plugin.sharing.download.remove.veto=\u0422\u043e\u0432\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0435 \u0432 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441.\n\u0417\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e, \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043c [...]
-ConfigView.section.tracker.main=\u0413\u043b\u0430\u0432\u043d\u043e
-ConfigView.section.tracker.web=\u0423\u0435\u0431
-ConfigView.label.prioritizefirstpiece=\u041f\u043e-\u0432\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0437\u0430 \u043f\u044a\u0440\u0432\u043e \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u043f\u0430\u0440\u0447\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b(\u043e\u0432\u0435)
-ConfigView.label.prioritizefirstpiece.tooltip=\u041e\u043f\u0438\u0442\u0432\u0430 \u0441\u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043f\u044a\u0440\u0432\u043e \u043d\u0430 \u0441\u0430\u043c\u0438\u0442\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u0440\u0430\u0439 \u043d\u0430 \u0444\u0430\u0439\u043b.\n\u0417\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d \u043f\u0440\u0435\u0433\u043b\u0435\u0434 \u0432 \u0440\u0430\u043d\u0435\u043d \u0441\u0442\u0430\u [...]
-ConfigView.section.file.delete.include_files_outside_save_dir=\u041f\u0440\u0438 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438 \u0434\u0430 \u0441\u0435 \u0442\u0440\u0438\u044f\u0442 \u0438 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0438\u0437\u0432\u044a\u043d \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u0437\u0430 \u0437\u0430\u043f\u0438\u0 [...]
-TrayWindow.menu.startalldownloads=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-SystemTray.menu.startalltransfers=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-sharing.progress.title=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e
-sharing.progress.hide=\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435
-MainWindow.menu.view.myshares=\u041c\u0435\u0441\u0442\u043d\u043e \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438
-MySharesView.title.full=\u041c\u0435\u0441\u0442\u043d\u043e \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438
-MySharesView.name=\u0418\u043c\u0435
-MySharesView.type=\u0422\u0438\u043f
-MySharesView.type.file=\u0424\u0430\u0439\u043b
-MySharesView.type.dir=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-MySharesView.type.dircontents=\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-MySharesView.type.dircontentsrecursive=\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f (\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e)
-MySharesView.menu.remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-ConfigView.section.tracker.extensions=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u044f
-ConfigView.section.tracker.sendpeerids=\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u0441\u0430\u043c\u043e\u043b\u0438\u0447\u043d\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u043a\u044a\u043c \u0441\u0432\u0430\u043b\u044f\u0449\u0438\u0442\u0435
-ConfigView.section.tracker.enableudp=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 UDP \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b
-plugin.sharing.torrent.remove.veto=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0442\u0440\u0430\u043a\u0435\u0440 \u0435 \u0432 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441.\n\u0417\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u0 [...]
-plugin.download.remove.veto.notstopped=\u0421\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435, \u0437\u0430\u0449\u043e\u0442\u043e \u043d\u0435 \u0435 \u0441\u043f\u0440\u044f\u043d\u043e
-plugin.sharing.remove.veto=\u0422\u043e\u0432\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u0435 \u043f\u043e\u0434-\u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 '\u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f' \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u04 [...]
-GeneralView.label.hash.tooltip=\u0421 \u043f\u043e\u0441\u043e\u0447\u0432\u0430\u043d\u0435 \u0441\u0435 \u043a\u043e\u043f\u0438\u0440\u0430 \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435\u0442\u043e \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430
-ConfigView.section.tracker.maxpeersreturned=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0432\u044a\u0440\u043d\u0430\u0442\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.label.serverport=\u0412\u0445\u043e\u0434\u044f\u0449 TCP/UDP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0441\u043b\u0443\u0448\u0430\u043d\u0435
-ConfigView.label.serverport.tooltip=\u041f\u043e\u0440\u0442\u044a\u0442 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 1-65535, \u043d\u043e \u043d\u0435 \u0438 6880, \u0437\u0430\u043f\u0430\u0437\u0435\u043d \u0437\u0430 \u0432\u044a\u0442\u0440\u0435\u0448\u043d\u0438 \u043d\u0443\u0436\u0434\u0438 \u043d\u0430 Vuze.
-configureWizard.nat.server.tcp_listen_port=\u0412\u0445\u043e\u0434\u044f\u0449 TCP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0441\u043b\u0443\u0448\u0430\u043d\u0435
-ConfigView.section.sharing=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-ConfigView.section.sharing.usessl=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 SSL \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430)
-ConfigView.section.style.dropdiraction=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u0432\u043b\u0430\u0447\u0435\u043d\u0435-\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u0437\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438
-ConfigView.section.style.dropdiraction.opentorrents=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.section.style.dropdiraction.sharefolder=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-ConfigView.section.style.dropdiraction.sharefoldercontents=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e
-#
-# 2.0.7.x
-#
-Categories.all=\u0412\u0441\u0438\u0447\u043a\u043e
-Categories.uncategorized=\u0411\u0435\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-CategoryAddWindow.message=\u0418\u043c\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-CategoryAddWindow.title=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-ConfigView.label.autoSeedingIgnoreInfo=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u043d\u0430\u0442\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043e\u0442\u0438\u0432\u0430\u0442 \u0432 \u043a\u0440\u0430\u044f \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u043e\u0442 \u043f\u043e\u0441\u044f\u0432\u043a\u0438. \u0422\u0435 \u043d\u0435 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\ [...]
-ConfigView.label.directory=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-ConfigView.label.disconnetseed.tooltip=\u041f\u0440\u0438 \u043f\u043e\u0441\u044f\u0432\u043a\u0430 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430\u0442 \u0432\u0441\u0438\u0447\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0438, \u043a\u043e\u0438\u0442\u043e \u0441\u0435\u044f\u0442.\n\u041d\u044f\u043c\u0430 \u043d\u0443\u0436\u0434\u0430 \u0434\u0430 \u043e\u0442 \u043a\u043e\u043c\u0443\u043d\u0438\u0 [...]
-ConfigView.label.ignoreCase=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u044a\u0440\u0430
-ConfigView.label.ignoreSeeds=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 \u043d\u0430\u0439-\u043c\u0430\u043b\u043a\u043e
-ConfigView.label.importdirectory=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0438\u043c\u043f\u043e\u0440\u0442
-ConfigView.label.minPeersToBoostNoSeeds.tooltip=\u0412\u0441\u0435\u043a\u0438 \u0442\u043e\u0440\u0435\u043d\u0442 \u0431\u0435\u0437 \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u0438\u043b\u0438 \u0441 \u043f\u043e-\u043c\u0430\u043b\u043a\u043e \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u043e\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043e\u0442\u043e\n\u0449\u0435 \u0431\u044a\u0434\u0435 \u043a\u044a\u043c \u043a\u0440\u0430\u044f \u043d\u [...]
-ConfigView.label.minPeersToBoostNoSeeds=\u041f\u043e-\u043d\u0438\u0441\u044a\u043a \u043f\u043e\u0441\u044f\u0432\u043a\u043e\u0432 \u0440\u0430\u043d\u0433 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0431\u0435\u0437 \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u0438\u043b\u0438 \u0441 \u043f\u043e-\u043c\u0430\u043b\u043a\u043e \u043e\u0442
-ConfigView.label.minSeedingTime.tooltip=\u041f\u043e\u0441\u044f\u0432\u043a\u043e\u0432\u0438\u0442\u0435 \u0440\u0430\u043d\u0433\u043e\u0432\u0435 \u0441\u0435 \u043a\u043e\u043b\u0435\u0431\u0430\u044f\u0442 \u0447\u0435\u0441\u0442\u043e \u0432 \u043a\u0440\u0430\u0442\u044a\u043a \u043f\u0435\u0440\u0438\u043e\u0434 \u043a\u0430\u0442\u043e \u043f\u043e\u043d\u044f\u043a\u043e\u0433\u0430 \u043a\u0430\u0440\u0430\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0434\u0430 \u0437\ [...]
-ConfigView.label.minSeedingTime=\u041c\u0438\u043d. \u0432\u0440\u0435\u043c\u0435 \u0437\u0430 \u0441\u0435\u0435\u043d\u0435 [s]
-ConfigView.label.minSpeedForActiveDL.tooltip=\u0413\u043d\u0435\u0437\u0434\u043e \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0432\u0438\u043d\u0430\u0433\u0438 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0437\u0430 \u043d\u0430\u0447\u0430\u043b\u043d\u0438\u0442\u0435 30 \u0441\u0435\u043a\u0443\u043d\u0434\u0438\n\u0441\u043b\u0435\u0434 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043d\u0435\u043f\u044a\u043b\u043 [...]
-ConfigView.label.minSpeedForActiveDL=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430, \u0447\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u043f\u043e\u043b\u0437\u0432\u0430 \u0433\u043d\u0435\u0437\u0434\u043e \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435, \u0430\u043a\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u0435 \u043f\u043e\u0434
-ConfigView.label.peers=\u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.label.queue.debuglog=\u0414\u043d\u0435\u0432\u043d\u0438\u043a \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438
-ConfigView.label.queue.debuglog.info=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435 \u0437\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u043a\u044a\u043c \u043a\u043e\u043d\u0437\u043e\u043b\u0430/\u0434\u043d\u0435\u0432\u043d\u0438\u043a.\n\u041c\u0430\u043a\u0430\u0440 \u0438 \u0442\u0440\u0443\u0 [...]
-ConfigView.label.queue.minQueueingShareRatio=\u0422\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u0434\u0430 \u043d\u0435 \u0435 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430 \u0438\u043b\u0438 \u0441\u043f\u0440\u044f\u043d \u0434\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-ConfigView.label.ratio=\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435
-ConfigView.label.removeOnStop=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441\u043b\u0435\u0434 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0442\u043e \u043c\u0443 \u0441\u043f\u0438\u0440\u0430\u043d\u0435
-ConfigView.label.savedirectory=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-ConfigView.label.seeding.autoReposition.tooltip=\u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u0440\u0435\u0434\u044a\u0442 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438\u0442\u0435 (\u043a\u043e\u043b\u043e\u043d\u0430 '\u2116') \u0449\u0435 \u0431\u044a\u0434\u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u0435\u043d \u0434\u0430 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u0442\u043e\u0437\u0438 \u043d\u0430 \u043f\u043e\u0441\u04 [...]
-ConfigView.label.seeding.autoReposition=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441\u043f\u043e\u0440\u0435\u0434 \u043f\u043e\u0441\u044f\u0432\u043a\u043e\u0432\u0438\u044f \u0440\u0430\u043d\u0433
-ConfigView.label.seeding.fakeFullCopySeedStart.tooltip=\u0427\u0435\u0441\u0442\u043e \u0442\u043e\u0440\u0435\u043d\u0442\u0438, \u0438\u043c\u0430\u0449\u0438 \u043d\u0438\u0441\u044a\u043a \u043f\u043e\u0441\u044f\u0432\u043a\u043e\u0432 \u0431\u0440\u043e\u0439 \u0438 \u0433\u043e\u043b\u044f\u043c \u0431\u0440\u043e\u0439 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u0437\u043d\u0430\u0447\u0438, \u0447\u0435 \u043d\u044f\u043c\u0430 \u043f\ [...]
-ConfigView.label.seeding.fakeFullCopySeedStart=\u043d\u043e \u0441\u0430\u043c\u043e \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 \u043d\u0430\u0439-\u043c\u0430\u043b\u043a\u043e
-ConfigView.label.seeding.ignore=\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437\u0430 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435
-ConfigView.label.seeding.ignore0Peers=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.label.seeding.ignoreRatioPeers=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 \u043d\u0430\u0439-\u043c\u0430\u043b\u043a\u043e 1 \u043f\u043e\u0441\u044f\u0432\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438
-ConfigView.label.seeding.ignoreShareRatio=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043e\u0442
-ConfigView.label.seeding.ignore.header.evenFirstPriority=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442, \u0434\u043e\u0440\u0438 \u043a\u043e\u0433\u0430\u0442\u043e\n\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u043d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-ConfigView.label.seeding.ignore.header.rule=\u041f\u0440\u0430\u0432\u0438\u043b\u043e
-ConfigView.label.seeding.ignore.header.value=\u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442
-ConfigView.label.seeding.firstPriority.info=\u041d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a\u043e \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0449\u0435 \u0441\u0430 \u0432\u0438\u043d\u0430\u0433\u0438 \u043d\u0430\u0439-\u043e\u0442\u043f\u0440\u0435\u0434 \u0432 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430.\n\u041d\u0438\u043a\u043e\u0439 \u043e\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0438\u0442\ [...]
-ConfigView.label.seeding.firstPriority.FP=\u041d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-ConfigView.label.seeding.firstPriority=\u041d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0441\u0435 \u0434\u0430\u0432\u0430 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441
-ConfigView.label.seeding.firstPriority.following=\u043e\u0442 \u0441\u043b\u0435\u0434\u043d\u043e\u0442\u043e:
-ConfigView.label.seeding.firstPriority.shareRatio=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043f\u043e\u0434
-ConfigView.label.seeding.firstPriority.seedingMinutes=\u0418\u0437\u043c\u0438\u043d\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435 \u043e\u0442\u043a\u0430\u043a\u0442\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u0441\u0435 \u0435 \u0441\u043c\u0435\u043d\u0438\u043b\u043e \u0441\u044a\u0441 \u0441\u0435\u0435\u043d\u0435
-ConfigView.label.seeding.firstPriority.DLMinutes=\u0418\u0437\u043c\u0438\u043d\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u043e\u0442\u043e \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-ConfigView.label.seeding.numPeersAsFullCopy.tooltip=\u0421 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435\u0442\u043e, \u0447\u0435 \u0438\u043c\u0430 1 \u043f\u044a\u043b\u043d\u043e \u043a\u043e\u043f\u0438\u0435 \u0437\u0430 \u0425 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u0441\u0435 \u043d\u0430\u043c\u0430\u043b\u044f\u0432\u0430 \u0440\u0430\u043d\u0433\u0430 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438\u0442\u0435 \u [...]
-ConfigView.label.seeding.numPeersAsFullCopy=\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435, \u0447\u0435 \u0438\u043c\u0430 1 \u043f\u044a\u043b\u043d\u043e \u043a\u043e\u043f\u0438\u0435 \u0437\u0430 \u0432\u0441\u0435\u043a\u0438\n[0: \u0431\u0435\u0437 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435]
-ConfigView.label.seeding.preferLargerSwarms.tooltip=\u0410\u043a\u043e \u0441\u0435 \u0441\u0435\u044f\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043f\u0440\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u0441\u0430 "\u0437\u0430\u0431\u0438\u043b\u0438", \u0438\u043c\u0430 \u0441\u043c\u0438\u0441\u044a\u043b \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u0434\u [...]
-ConfigView.label.seeding.preferLargerSwarms=\u041a\u043e\u0433\u0430\u0442\u043e \u0442\u043e\u0440\u0435\u043d\u0442\u0438\u0442\u0435 \u0438\u043c\u0430\u0442 \u0435\u0434\u043d\u0430\u043a\u044a\u0432 \u0440\u0430\u043d\u0433, \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442 \u043f\u043e-\u0433\u043e\u043b\u0435\u043c\u0438\u0442\u0435 \u0440\u043e\u044f\u0446\u0438
-ConfigView.label.seeding.rankType.none.tooltip=\u041f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043f\u043e \u043a\u043e\u043b\u043e\u043d\u0430 "\u2116"
-ConfigView.label.seeding.rankType.none=\u041d\u044f\u043c\u0430
-ConfigView.label.seeding.rankType.peer.tooltip=\u043f\u043e\u0432\u0435\u0447\u0435 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0438 \u043f\u043e-\u043c\u0430\u043b\u043a\u043e \u043f\u043e\u0441\u044f\u0432\u043a\u0438 = \u043f\u043e-\u0432\u0438\u0441\u043e\u043a \u0440\u0430\u043d\u0433\n\u0422\u043e\u0432\u0430 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430 \u0431\u0440\u043e\u044f \u0442\u043e\u0440\u0435\u043d\u0442\u0438, \u [...]
-ConfigView.label.seeding.rankType.peer=\u041f\u0440\u0435\u0442\u0435\u0433\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.label.seeding.rankType.peerSeed.options=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435\u0442\u043e \u041f\u043e\u0441\u044f\u0432\u043a\u0438:\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.label.seeding.rankType.peerSeed.tooltip=\u041f\u043e-\u0432\u0438\u0441\u043e\u043a\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 = \u043f\u043e-\u0432\u0438\u0441\u043e\u043a \u0440\u0430\u043d\u0433
-ConfigView.label.seeding.rankType.peerSeed=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438:\u041f\u043e\u0441\u044f\u0432\u043a\u0438
-ConfigView.label.seeding.rankType.seed.fallback=\u041e\u0442\u0441\u0442\u044a\u043f\u043b\u0435\u043d\u0438\u0435 \u043a\u044a\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438:\u041f\u043e\u0441\u044f\u0432\u043a\u0438 \u0441\u043b\u0435\u0434\n[0: \u0431\u0435\u0437 \u043e\u0442\u0441\u0442\u044a\u043f\u043b\u0435\u043d\u0438\u0435]
-ConfigView.label.seeding.rankType.seed.options=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0431\u0440\u043e\u0439 \u0441\u0430\u043c\u043e \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-ConfigView.label.seeding.rankType.seed.tooltip=\u041f\u043e-\u043c\u0430\u043b\u043a\u043e \u043f\u043e\u0441\u044f\u0432\u043a\u0438 = \u043f\u043e-\u0432\u0438\u0441\u043e\u043a \u0440\u0430\u043d\u0433
-ConfigView.label.seeding.rankType.seed=\u0411\u0440\u043e\u0439 \u0441\u0430\u043c\u043e \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-ConfigView.label.seeding.rankType.timedRotation.tooltip=\u0412\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0432 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u0449\u0435 \u0441\u0435 \u0432\u044a\u0440\u0442\u044f\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u0441\u0435\u0435\u043d\u0435.\n\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442\u0442\u [...]
-ConfigView.label.seeding.rankType.timedRotation=\u0420\u043e\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0433\u0440\u0430\u0444\u0438\u043a
-ConfigView.label.seeding.rankType.tooltip=\u0422\u043e\u0440\u0435\u043d\u0442\u0438\u0442\u0435 \u0441 \u043d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a \u0440\u0430\u043d\u0433 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e.\n\u041a\u043e\u0433\u0430\u0442\u043e \u043d\u044f\u043a\u043e\u0439 \u0442\u043e\u0440\u0435\u043d\u0442 \u043f\u0440\u0438\u0434\u043e\u0431\u0438\u0435 \u043f\u043e-\u0432\u0438\u0441\u043e\u04 [...]
-ConfigView.label.seeding.rankType=\u0414\u0430 \u0441\u0435 \u0434\u0430\u0432\u0430 \u0440\u0430\u043d\u0433 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0430 \u043d\u0430:
-ConfigView.label.stopAfterMinutes=\u0412\u0435\u0434\u043d\u044a\u0436 \u043f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043a\u044a\u043c \u0441\u0435\u0435\u043d\u0435, \u0434\u0430 \u0441\u043f\u0440\u0435 \u0441\u043b\u0435\u0434 \u043f\u0435\u0440\u0438\u043e\u0434 \u043e\u0442 \u0432\u0440\u0435\u043c\u0435
-ConfigView.label.switchpriority.tooltip=\u041d\u0438\u0441\u043a\u0438\u044f\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430\u043c\u0430\u043b\u044f\u0432\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u0442\u043e \u0448\u0438\u0440\u043e\u0447\u0438\u043d\u0430 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435, \u043f\u0430\u0434\u0430\u0449\u0430 \u0441\u0435 \u043d\u0430 \u0442\ [...]
-ConfigView.pluginlist.info=\u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0430 \u0440\u0430\u0437\u043f\u043e\u0437\u043d\u0430\u0442\u0438. \u041d\u044f\u043a\u043e\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043d\u044f\u043c\u0430\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0438 \u0441\u0435\u043a\u0446\u0438\u0438.
-ConfigView.pluginlist.noplugins=\u041d\u044f\u043c\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438.
-ConfigView.section.pluginslist=\u0421\u043f\u0438\u0441\u044a\u043a
-ConfigView.section.queue.seeding=\u0421\u0435\u0435\u043d\u0435
-ConfigView.section.queue.seeding.autoStarting=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435
-ConfigView.section.queue.seeding.ignore=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430
-ConfigView.section.queue.seeding.firstPriority=\u041d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-ConfigView.section.queue.main=\u0413\u043b\u0430\u0432\u043d\u043e
-ConfigView.section.queue=\u041d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430
-ConfigView.section.torrents=\u0422\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.text.all=\u0432\u0441\u0438\u0447\u043a\u043e
-ConfigView.text.hours=\u0447\u0430\u0441\u0430
-ConfigView.text.ignoreRule=\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0437\u0430 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435
-ConfigView.text.ignore=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435
-ConfigView.text.minutes=\u043c\u0438\u043d\u0443\u0442\u0438
-ConfigView.text.neverIgnore=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430
-ConfigView.text.any=\u0432\u0441\u044f\u043a\u043e
-DownloadManager.error.datamissing=\u041b\u0438\u043f\u0441\u0432\u0430\u0449\u0438 \u0434\u0430\u043d\u043d\u0438
-MainWindow.menu.file.open.torrentforseeding=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u2026\u0085 (\u0437\u0430 \u0441\u0435\u0435\u043d\u0435)
-MainWindow.menu.language.refresh=\u041e\u043f&\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0435
-ManagerItem.forced=\u041d\u0430\u0441\u0438\u043b\u0435\u043d
-ManagerItem.queued=\u041d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430
-MySeedersView.header=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-TableColumn.header.availability.info=\u0411\u0440. \u0432\u0438\u0436\u0434\u0430\u0449\u0438 \u0441\u0435 \u043f\u044a\u043b\u043d\u0438 \u043a\u043e\u043f\u0438\u044f
-TableColumn.header.availability=\u041d\u0430\u043b\u0438\u0447\u043d\u043e\u0441\u0442
-TableColumn.header.category=\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-MyTorrentsView.header=\u041d\u0435\u043f\u044a\u043b\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-TableColumn.header.maxuploads=\u041c\u0430\u043a\u0441. \u0431\u0440. \u043a\u0430\u0447\u0432\u0430\u043d\u0438\u044f
-MyTorrentsView.menu.category.delete=&\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-MyTorrentsView.menu.forceStart=&\u041d\u0430\u0441\u0438\u043b\u0435\u043d\u043e \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435
-MyTorrentsView.menu.queue=\u041d\u0430 &\u043e\u043f\u0430\u0448\u043a\u0430
-MyTorrentsView.menu.setCategory.add=&\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0085\u2026
-MyTorrentsView.menu.setCategory=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-TableColumn.header.savepath=\u041f\u044a\u0442 \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-TableColumn.header.SeedingRank=\u041f\u043e\u0441\u044f\u0432\u043a\u043e\u0432 \u0440\u0430\u043d\u0433
-TableColumn.header.totalspeed.info=\u041e\u0431\u0449\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u0437\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u0441 \u043a\u043e\u0438\u0442\u043e \u0438\u043c\u0430 \u0432\u0440\u044a\u0437\u043a\u0438
-TableColumn.header.totalspeed=\u041e\u0431\u0449\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442
-splash.initializePlugins=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435
-StartStopRules.SPratioMet=\u0421:\u0420 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-StartStopRules.FP0Peers=\u041d\u0412\u041f/0 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-StartStopRules.0Peers=0 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-StartStopRules.numSeedsMet=\u0411\u0440. \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-StartStopRules.ratioMet=\u0420:\u0421 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-StartStopRules.shareRatioMet=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-StartStopRules.waiting=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435
-StartStopRules.firstPriority=\u041d\u0412\u041f
-ConfigView.section.style.dropdiraction.sharefoldercontentsrecursive=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e (\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e)
-DownloadManager.error.unabletostartserver=\u041d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430 - \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 \u0432\u0445\u043e\u0434\u044f\u0449 \u043f\u043e\u0440\u0442/\u0440\u0430\u0437\u0440\u043 [...]
-GeneralView.label.creationdate=\u0421\u044a\u0437\u0434\u0430\u0434\u0435\u043d \u043d\u0430:
-ConfigView.section.tracker.announcescrapepercentage=\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u0430 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e % \u043e\u0442 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e\n\u043f\u0440. 200 = 2:1. 0 = \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f\u0442 \u0440\u0435\u0448\u0430\u0432\u0430
-ManagerItem.stopping=\u0421\u043f\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.tracker.announcecacheperiod=\u041e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0435\u0448 (\u043c\u0441\u0435\u043a)
-ConfigView.section.tracker.scrapecacheperiod=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0435\u0448\u0430 [ms]
-ConfigView.section.tracker.scrapeandcache=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u0438 \u043a\u0435\u0448\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.tracker.announcecacheminpeers=\u041e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u0437\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0435\u0448 \u0437\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-MyTrackerView.scrapes=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0438\u044f
-fileDownloadWindow.retry=\u041e\u0442\u043d\u043e\u0432\u043e
-MyTrackerView.bytesin=\u0412\u0445. \u0431\u0430\u0439\u0442\u043e\u0432\u0435
-MyTrackerView.bytesinave=\u0412\u0445. \u0441\u0440.
-MyTrackerView.bytesout=\u0418\u0437\u0445. \u0431\u0430\u0439\u0442\u043e\u0432\u0435
-MyTrackerView.bytesoutave=\u0418\u0437\u0445. \u0441\u0440.
-ConfigView.section.file.max_open_files=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043e\u0442\u0432\u043e\u0440\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435/\u0437\u0430\u043f\u0438\u0441\n[0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.file.max_open_files.tooltip=\u041f\u043e\u043b\u0435\u0437\u043d\u043e, \u0430\u043a\u043e \u0441\u0435 \u0441\u0432\u0430\u043b\u044f\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441\u044a\u0441 \u0441\u0442\u043e\u0442\u0438\u0446\u0438/\u0445\u0438\u043b\u044f\u0434\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u0442\u044f\u0445 \u0438, \u0430\u043a\u043e \u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442\u0430 \u0433\u0440\u0430\u043d\u [...]
-ConfigView.section.proxy=\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u043f\u044a\u043b\u043d\u043e\u043c\u043e\u0449\u043d\u0438\u043a
-ConfigView.section.proxy.enable_proxy=\u0422\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u0442\u0435 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u0430 \u0441\u0430 \u043f\u0440\u0435\u0437 \u043f\u044a\u043b\u043d\u043e\u043c\u043e\u0449\u043d\u0438\u043a (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-ConfigView.section.proxy.host=\u041f\u043e\u0434\u0441\u043b\u043e\u043d
-ConfigView.section.proxy.port=\u041f\u043e\u0440\u0442
-ConfigView.section.proxy.username=\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435
-ConfigView.section.proxy.password=\u041f\u0430\u0440\u043e\u043b\u0430
-ConfigView.section.proxy.enable_socks=\u041f\u043e\u043b\u0437\u0432\u0430 \u0441\u0435 SOCKS \u043f\u044a\u043b\u043d\u043e\u043c\u043e\u0449\u043d\u0438\u043a
-wizard.createtorrent.extrahashes=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0434\u0440\u0443\u0433\u0438 \u043c\u0440\u0435\u0436\u0438 (\u043f\u0440. Gnutella2, eDonkey2000)
-GeneralView.label.connected=\u0441\u0432\u044a\u0440\u0437\u0430\u043d(\u0438)
-GeneralView.label.in_swarm=\u0432 \u0440\u043e\u044f\u043a\u0430
-ManagerItem.initializing=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435
-AlertMessageBox.error=\u0413\u0440\u0435\u0448\u043a\u0430
-AlertMessageBox.warning=\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435
-AlertMessageBox.comment=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-AlertMessageBox.information=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-AlertMessageBox.unread=\u0418\u043c\u0430 \u043d\u0435\u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f - \u0434\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0442\u0443\u043a \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434.
-SharedPortServer.alert.selectorfailed=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0432\u0430\u0447 \u0437\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438 \u0434\u0430\u043d\u043d\u0438.\n\u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u0434\u0430\u043b\u0438 \u0437\u0430\u0449\u0438\u0442\u043d\u0430\u0442\u0430 \ [...]
-Tracker.alert.listenfail=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u043b\u0443\u0448\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442 %1.\n\u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u0434\u0430\u043b\u0438 \u0434\u0440\u0443\u0433\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438 \u043d\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u04 [...]
-DiskManager.alert.movefileexists=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\n\u0424\u0430\u0439\u043b %1 \u0432\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0432 \u043a\u0440\u0430\u0439\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e [...]
-DiskManager.alert.movefilefails=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\n\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b %1 \u043d\u0435 \u0443\u0441\u043f\u044f, %2
-DiskManager.alert.movefilerecoveryfails=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435\n\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b %1 \u043d\u0435 \u0443\u0441 [...]
-ConfigView.section.tracker.logenable=\u0417\u0430\u043f\u0438\u0441 \u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0432 \u0434\u043d\u0435\u0432\u043d\u0438\u043a 'tracker.log'
-SpeedView.stats.title=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438
-SpeedView.stats.total=\u041e\u0431\u0449\u043e
-SpeedView.stats.session=\u0422\u0430\u0437\u0438 \u0441\u0435\u0441\u0438\u044f
-SpeedView.stats.session.tooltip=\u041e\u0431\u0449\u043e (\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b)
-SpeedView.stats.downloaded=\u0421\u0432\u0430\u043b\u0435\u043d\u043e (\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b)
-SpeedView.stats.uploaded=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u043e (\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b)
-SpeedView.stats.ratio=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435
-SpeedView.stats.uptime=\u0412\u0440\u0435\u043c\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430
-SpeedView.stats.now=\u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430
-SpeedView.stats.now.tooltip=\u041e\u0431\u0449\u043e (\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b)
-AutoMigration.useralert=\u0420\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438 \u043e\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430\u0442\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435/\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u04 [...]
-#
-# > 2.0.8.0
-#
-OpenTorrentWindow.title=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442(\u0438)
-OpenTorrentWindow.message=\u0415\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u043d\u043e
-OpenTorrentWindow.addFiles=\u0414\u043e\u0431&\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-OpenTorrentWindow.dataLocation=\u041c\u044f\u0441\u0442\u043e \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438:
-OpenTorrentWindow.startMode=\u0420\u0435\u0436\u0438\u043c \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-OpenTorrentWindow.startMode.queued=\u041d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430
-OpenTorrentWindow.startMode.stopped=\u0421\u043f\u0440\u044f\u043d
-OpenTorrentWindow.startMode.forceStarted=\u041d\u0430\u0441\u0438\u043b\u0441\u0442\u0432\u0435\u043d\u043e \u0437\u0430\u043f\u043e\u0447\u043d\u0430\u0442
-OpenTorrentWindow.addPosition=\u041c\u044f\u0441\u0442\u043e \u0432 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430
-OpenTorrentWindow.addPosition.first=\u041f\u044a\u0440\u0432\u0438
-OpenTorrentWindow.addPosition.last=\u041f\u043e\u0441\u043b\u0435\u0434\u0435\u043d
-TableColumn.header.remaining.info=\u041e\u0441\u0442\u0430\u0432\u0430\u0449\u043e \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-TableColumn.header.remaining=\u041e\u0441\u0442\u0430\u0432\u0430
-ConfigView.section.tracker.enablecompact=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435
-ConfigView.section.tracker.enablekey=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043a\u043b\u044e\u0447 \u043a\u044a\u043c \u0442\u0440\u0430\u043a\u0435\u0440\u0430 \u0437\u0430 \u043f\u043e\u0434\u043e\u0431\u0440\u044f\u0432\u0430\u043d\u0435 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430
-ConfigView.section.file.perf=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0435
-ConfigView.section.file.perf.explain=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 - \u043d\u0435\u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u043d\u0438 \u043f\u0440\u043e\u043c\u0435\u043d\u0438 \u043d\u0430 \u0442\u0435\u0437\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u0449\u0435 \u0441\u0435 \u043e\u0442\u0440\u0430\u0437\u0438 \u0431\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043e \u043d\u0430 \u043f\u0440\u0435\u0434\u04 [...]
-ConfigView.section.file.max_open_files.explain=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043f\u0440\u0435\u0434\u0438\u0437\u0432\u0438\u043a\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441 \u041e\u0421 \u043f\u043e\u0440\u0430\u0434\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\ [...]
-popup.error.hide=\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435
-popup.error.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-ConfigView.section.style.colorOverrides=\u041f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u0435
-ConfigView.section.style.colorOverride.progressBar=\u041b\u0435\u043d\u0442\u0430 \u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441
-ConfigView.section.style.colorOverride.error=\u0413\u0440\u0435\u0448\u043a\u0430
-MainWindow.status.tooOld=\u0435 \u0441\u0442\u0430\u0440\u043e, \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430.
-ConfigView.section.style.colorOverride.warning=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435
-ConfigView.section.style.colorOverride.altRow=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0435\u0442\u0435
-ConfigView.section.file.save.peers.enable=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0437\u0430 \u0431\u044a\u0440\u0437\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435
-ConfigView.section.file.save.peers.max=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.file.save.peers.pertorrent=\u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.label.max_peers_per_torrent=\u041c\u0430\u043a\u0441. \u0432\u0440\u044a\u0437\u043a\u0438 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.label.max_peers_total=\u041c\u0430\u043a\u0441. \u0432\u0440\u044a\u0437\u043a\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u043d\u043e [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.style.colorOverrides.reset=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0446\u0432\u044f\u0442
-ConfigView.section.language.info=\u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u0449\u0435 \u0441\u0435 \u043f\u0440\u0430\u0432\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0438\u043d\u0430\u0433\u0438, \u043a\u043e\u0433\u0430\u0442\u043e Vuze \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430.
-ConfigView.section.language.enableUpdate=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0437 \u0443\u0435\u0431
-ConfigView.section.language.UpdateURL=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 URL
-ConfigView.section.language.UpdateNow=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u0434\u043d\u0430\u0433\u0430!
-Button.revert=\u041f\u0440\u0435\u0434\u0438\u0448\u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-MyTorrentsView.menu.changeDirectory=\u0421\u043c\u044f\u043d\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0434\u0430\u043d\u043d\u0438
-GenericText.column=\u043a\u043e\u043b\u043e\u043d\u0430
-MyTorrentsView.menu.thisColumn.remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430
-MyTorrentsView.menu.thisColumn.toClipboard=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442 \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430
-MyTorrentsView.menu.thisColumn.autoTooltip=\u0421 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430 \u0432\u0438\u043d\u0430\u0433\u0438
-MyTorrentsView.menu.tracker=\u0422\u0440\u0430\u043a\u0435\u0440
-ConfigView.download.abbreviated=\u0421\u0432:
-ConfigView.upload.abbreviated=\u041a\u0447:
-ConfigView.complete.abbreviated=\u0417\u0432:
-TableColumn.header.secondsseeding=\u0421\u0435\u0435\u043d\u0435 \u0437\u0430
-TableColumn.header.secondsseeding.info=\u0412\u0440\u0435\u043c\u0435 \u043f\u0440\u0435\u0437 \u043a\u043e\u0435\u0442\u043e \u0435 \u0441\u044f\u0442\u043e.
-TableColumn.header.secondsdownloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u0437\u0430
-TableColumn.header.secondsdownloading.info=\u0412\u0440\u0435\u043c\u0435 \u043f\u0440\u0435\u0437 \u043a\u043e\u0435\u0442\u043e \u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u043e.
-ConfigView.section.tracker.udpversion=\u0412\u0435\u0440\u0441\u0438\u044f \u043d\u0430 UDP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b (1 \u0438\u043b\u0438 2)
-window.updateswt.title=\u0412\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 SWT \u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0430!
-window.updateswt.text=\u0412\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 SWT \u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0430!\nSWT \u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u043d\u0430\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430 Vuze \u0438 \u043d\u0430\u043b\u0438\u0447\u043d\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0430, \u0437\u0430 [...]
-window.updateswt.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-window.updateswt.failed=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0442\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438, \u0434\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 '\u0414\u0430' \u0437\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442.
-window.updateswt.status.downloading.updater=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-window.updateswt.status.finding=\u041d\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 SWT \u0432\u0435\u0440\u0441\u0438\u044f
-window.updateswt.status.downloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 SWT \u0432\u0435\u0440\u0441\u0438\u044f
-window.updateswt.status.done=\u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-window.updateswt.ok=\u0414\u0430
-window.updateswt.cancel=\u041e\u0442\u043a\u0430\u0437
-swt.updater.downloader.downloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 SWT \u043e\u0442
-swt.updater.urlsgetter.downloading=\u041f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u0441\u043f\u0438\u0441\u044a\u043a \u0441 \u043e\u0433\u043b\u0435\u0434\u0430\u043b\u043d\u0438 \u043e\u0442
-swt.updater.urlsgetter.platform=SWT \u0437\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430:
-window.updateswt.ignore=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435
-ConfigView.section.style.useFancyTabs=\u041f\u044a\u0441\u0442\u0440\u0438 \u0441\u0435\u043a\u0446\u0438\u0438
-splash.initializeGM=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u043d\u043e\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-splash.loadingTorrents=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-MyTorrentsView.menu.thisColumn.sort=&\u041f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435
-Scrape.status.ok=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-Scrape.status.error=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435:
-Scrape.status.error.badURL=URL \u043d\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0435 \u0441\u043b\u0435\u0434\u0432\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438\u0442\u0435 \u043d\u0430 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435\u0442\u043e.
-Scrape.status.error.nohash=\u041b\u0438\u043f\u0441\u0432\u0430 \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435 \u0432 \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u0430.
-Scrape.status.error.invalid=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u043e\u0442\u0433\u043e\u0432\u043e\u0440.
-Scrape.status.nextScrapeAt=\u0421\u043b\u0435\u0434\u0432\u0430\u0449\u043e \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u0432 %1
-Scrape.status.scraping=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435\u0085\u2026
-Scrape.status.initializing=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435
-Scrape.status.scraping.queued=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u2026
-ConfigView.label.minSpeedForActiveSeeding=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430, \u0447\u0435 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0433\u043d\u0435\u0437\u0434\u043e, \u0430\u043a\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u0435 \u043f\u043e\u0434
-ConfigView.section.stats.exportpeers=\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-MainWindow.menu.view.irc.moved=IRC \u0435 \u043d\u0430 \u0440\u0430\u0437\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u043e \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430, \u0432\u0436. http://azureus.sourceforge.net/plugin_list.php. \u0421\u043b\u0435\u0434 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043c\u0435\u043d\u044e '\u0418\u043d\u0441\u0442\u04 [...]
-MyTrackerView.webui.contextmenu.copyurl=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 URL \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430
-ConfigView.section.file.torrent.ignorefiles=\u0424\u0430\u0439\u043b\u043e\u0432\u0435 \u0437\u0430 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\n\u043f\u0440. .DS_Store;Thumbs.db;Desktop.ini
-Torrent.create.progress.ignoringfile=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-ConfigView.section.style.useUnitsRateBits=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0442\u043e\u0432\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u0431\u0430\u0439\u0442\u043e\u0432\u0435 \u0437\u0430 \u0431\u0430\u0439\u0442\u043e\u0432\u043e-\u0431\u0430\u0437\u0438\u0440\u0430\u043d\u0438 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438 (KiB/s \u2192 Kibit/s \u0438 \u0434\u0440.)
-ConfigView.section.interface.resetassoc=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0438\u0442\u0435 \u0430\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438 \u043d\u0430 Explorer (.torrent)
-ConfigView.section.interface.resetassocbutton=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-ConfigView.section.interface.checkassoc=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0430\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438\u0442\u0435 \u043f\u0440\u0438 \u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-dialog.associations.title=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0430\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438
-Button.yes=&\u0414\u0430
-Button.no=&\u041d\u0435
-ConfigView.label.seeding.autoStart0Peers=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.label.seeding.autoStart0Peers.tooltip=\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u0442\u0440\u0430\u043a\u0435\u0440\u044a\u0442 \u0432\u0438\u043d\u0430\u0433\u0438 \u043f\u043e\u043a\u0430\u0437\u0432\u0430 \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438.
-dialog.associations.prompt=Vuze \u043d\u0435 \u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 BitTorrent \u0444\u0430\u0439\u043b\u043e\u0432\u0435.\n\u0414\u0430 \u0441\u0435 \u0430\u0441\u043e\u0446\u0438\u0438\u0440\u0430\u0442 \u043b\u0438 .torrent \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0441 Vuze?
-dialog.associations.askagain=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.plugins.update=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-Plugin.pluginupdate.enablecheck=\u0421 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435
-plugins.basicview.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435:
-plugins.basicview.activity=\u0414\u0435\u0439\u043d\u043e\u0441\u0442:
-plugins.basicview.progress=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435:
-plugins.basicview.log=\u0414\u043d\u0435\u0432\u043d\u0438\u043a:
-ConfigView.label.maxdownloadspeed=KB/s \u0433\u043b\u043e\u0431\u0430\u043b\u043d\u0430 \u043c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-splash.loadingTorrent=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-splash.of=\u043e\u0442
-ConfigView.section.plugins.irc=\u041c\u0440\u0435\u0436\u0430 IRC
-UpdateWindow.title=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043d\u0430 Vuze
-UpdateWindow.header=\u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0438 \u0438\u0437\u0438\u0441\u043a\u0432\u0430\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f:
-UpdateWindow.columns.install=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435
-UpdateWindow.columns.name=\u0418\u043c\u0435
-UpdateWindow.columns.version=\u0412\u0435\u0440\u0441\u0438\u044f
-UpdateWindow.columns.size=\u0420\u0430\u0437\u043c\u0435\u0440
-UpdateWindow.cancel=\u041e\u0442\u043a\u0430\u0437
-UpdateWindow.quit=\u0418\u0437\u0445\u043e\u0434
-UpdateWindow.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-UpdateWindow.ok=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-UpdateWindow.restart=\u0420\u0435\u0441\u0442\u0430\u0440\u0442 \u043d\u0430 Vuze
-UpdateWindow.status.downloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435
-UpdateWindow.status.done=\u0413\u043e\u0442\u043e\u0432\u043e
-UpdateWindow.status.failed=\u041f\u0440\u043e\u0432\u0430\u043b
-UpdateWindow.status.restartNeeded=\u0429\u0435 \u0431\u044a\u0434\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0440\u0435\u0441\u0442\u0430\u0440\u0442!
-ConfigView.pluginlist.broken=\u0421\u0447\u0443\u043f\u0435\u043d
-ConfigView.pluginlist.whereToPut=\u0421\u043b\u0430\u0433\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0438 \u0437\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u0434:
-ConfigView.pluginlist.whereToPutOr=\u0417\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430:
-MainWindow.statusText.checking=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438
-TableColumn.header.OnlyCDing4=\u0421\u0430\u043c\u043e \u0441\u0435\u0435\u043d\u0435 \u0437\u0430
-TableColumn.header.OnlyCDing4.info=\u0412\u0440\u0435\u043c\u0435\u0442\u043e \u043f\u0440\u0435\u0437 \u043a\u043e\u0435\u0442\u043e \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u0441\u0430\u043c\u043e \u0435 \u0441\u044f\u0442. \u041d\u0435 \u0432\u043a\u043b\u044e\u0447\u0432\u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e \u043f\u0440\u0435\u0437 \u043a\u043e\u0435\u0442\u043e \u0435 \u0441\u0432\u0430\u043b\u044f\u043d \u0438 \u0441\u044f\u0442.
-UpdateWindow.status.restartMaybeNeeded=\u041c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0440\u0435\u0441\u0442\u0430\u0440\u0442
-ConfigView.pluginlist.shared=\u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d
-PeersView.host=\u0418\u043c\u0435 \u043d\u0430 \u043f\u043e\u0434\u0441\u043b\u043e\u043d
-PeersView.host.info=\u0418\u043c\u0435 \u043d\u0430 \u043f\u043e\u0434\u0441\u043b\u043e\u043d\u0430 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f, \u0430\u043a\u043e \u0438\u043c\u0430 (\u0432\u043b\u0438\u044f\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0435\u0442\u043e)
-MainWindow.menu.help.whatsnew=\u041a\u0430\u043a\u0432\u043e \u043d\u043e\u0432\u043e
-ConfigView.label.checkonstart=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Vuze
-ConfigView.label.periodiccheck=\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-ConfigView.label.opendialog=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0438\u043c\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-MainWindow.updateavail=\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0442\u0443\u043a \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438
-MainWindow.status.unofficialversion=Vuze \u0431\u0435\u0442\u0430
-MainWindow.status.latestversionunchecked=\u0411\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-GeneralView.label.updatein.stopped=\u0421\u043f\u0440\u044f\u043d\u043e
-StartStopRules.menu.viewDebug=\u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438
-ConfigView.section.style.doNotUseGB=\u0411\u0435\u0437 \u0435\u0434\u0438\u043d\u0438\u0446\u0438 \u0432 GB
-ConfigView.section.style.doNotUseGB.tooltip=\u041f\u0440\u0438 \u043e\u0442\u043c\u0435\u0442\u043a\u0430 Vuze \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430 MB \u0435\u0434\u0438\u043d\u0438\u0446\u0438, \u0434\u043e\u0440\u0438 \u043a\u043e\u0433\u0430\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0438\u0442\u0435 \u0441\u0430 >1024 MB
-MainWindow.menu.help.plugins=\u041f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-ConfigView.section.plugins.TrackerWeb=\u0422\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.tracker.enablecategories=\u041e\u0442\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-health.explain.share=\u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u0435 \u0438\u043b\u0438 \u043f\u043e\u0434\u0441\u043b\u043e\u043d\u0435\u043d, \u0438\u043b\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d
-ConfigView.section.tracker.createcert=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
-ConfigView.section.tracker.createbutton=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435
-security.certcreate.title=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
-security.certcreate.intro=\u0412 \u0442\u043e\u0437\u0438 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
-security.certcreate.alias=\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c
-security.certcreate.strength=\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442
-security.certcreate.firstlastname=\u0418\u043c\u0435 \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u044f
-security.certcreate.orgunit=\u041e\u0442\u0434\u0435\u043b
-security.certcreate.org=\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f
-security.certcreate.city=\u0413\u0440\u0430\u0434 \u0438\u043b\u0438 \u043c\u0435\u0441\u0442\u043d\u043e\u0441\u0442
-security.certcreate.state=\u0421\u0442\u0440\u0430\u043d\u0430 \u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0438\u043d\u0446\u0438\u044f
-security.certcreate.country=\u0414\u0432\u0443\u0431\u0443\u043a\u0432\u0435\u043d \u043a\u043e\u0434 \u043d\u0430 \u0434\u044a\u0440\u0436\u0430\u0432\u0430
-security.certcreate.ok=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435
-security.certcreate.cancel=\u041e\u0442\u043a\u0430\u0437
-security.certcreate.createok=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044a\u0442 \u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e
-security.certcreate.createfail=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
-ConfigView.section.plugins.webui=\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0430 Swing Web
-ConfigView.section.plugins.xml_http_if=\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0430 XML/HTTP
-webui.passwordenable=\u0421 \u043f\u0430\u0440\u043e\u043b\u0430
-webui.user=\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435
-webui.password=\u041f\u0430\u0440\u043e\u043b\u0430
-webui.port=\u041f\u043e\u0440\u0442 (*)
-webui.protocol=\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b (*)
-webui.homepage=\u041d\u0430\u0447\u0430\u043b\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 (*)
-webui.rootdir=\u0413\u043b\u0430\u0432\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f (*)
-webui.rootres=\u0413\u043b\u0430\u0432\u0435\u043d \u0440\u0435\u0441\u0443\u0440\u0441 (*)
-webui.mode=\u0420\u0435\u0436\u0438\u043c (*)
-webui.mode.info=\u0420\u0435\u0436\u0438\u043c\u044a\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435\n\t"full"\t= \u0414\u043e\u0441\u0442\u044a\u043f\u043d\u0438 \u0441\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435)\n\t"view"\t= \u0441\u0430\u043c\u043e \u0437\u0430 \u0433\u043b\u0435\u0434\u0430\u043d\u0435 (\u043d\u043e \u0441 \u0430\u043a\u0442\u0443 [...]
-webui.access=\u0414\u043e\u0441\u0442\u044a\u043f (*)
-webui.access.info=\u0414\u043e\u0441\u0442\u044a\u043f\u044a\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435\n\t"local"\t= \u0441\u0430\u043c\u043e \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\n\t"all"\t= \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f (\u043f\u043e \u043f\u043e\u0434\u0440\u0430\ [...]
-GeneralView.label.maxdownloadspeed=\u041c\u0430\u043a\u0441. \u0421\u0432.
-Security.keystore.corrupt=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0442\u043e \u0437\u0430 \u043a\u043b\u044e\u0447\u043e\u0432\u0435 '%1', \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u0438 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0430\u0442 \u043e\u0442\u043d\ [...]
-Security.keystore.empty=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u0442\u043e \u0437\u0430 \u043a\u043b\u044e\u0447\u043e\u0432\u0435 \u0435 \u043f\u0440\u0430\u0437\u043d\u043e. \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (\u0434\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 '\u0418\ [...]
-GeneralView.label.maxdownloadspeed.tooltip=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.UPnP=UPnP \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-upnp.enable=\u0421 UPnP
-upnp.info=\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u043d\u043e \u041f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435 \u0438 \u041f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 - (Universal Plug and Play - UPnP) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u043e\u0432\ [...]
-upnp.mapping.dataport=\u041f\u043e\u0440\u0442 \u0437\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438 \u0434\u0430\u043d\u043d\u0438 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-upnp.mapping.tcptrackerport=TCP \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043f\u043e\u0440\u0442
-upnp.mapping.udptrackerport=UDP \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043f\u043e\u0440\u0442
-upnp.alert.differenthost=UPnP: \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 '%1' \u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0430\u043d\u043e \u043e\u0442 '%2' - \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0434\u0440\u0443\u0433 \u043f\u043e\u0440\u0442
-upnp.alert.mappingok=UPnP: \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 '%1' \u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e
-upnp.alert.mappingfailed=UPnP: \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 '%1' \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-upnp.alertsuccess=\u0414\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0435 \u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-upnp.alert.lostdevice=UPnP: \u0437\u0430\u0433\u0443\u0431\u0435\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0441 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 '%1' \u043d\u0430 UPnP \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e '%2'
-upnp.grabports=\u041d\u0430\u0437\u043d\u0430\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u043e\u0432\u0435 \u0434\u043e\u0440\u0438, \u043a\u043e\u0433\u0430\u0442\u043e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u043d\u0430 \u0434\u0440\u0443\u0433 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440
-upnp.refresh.label=\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0442\u0430
-upnp.refresh.button=\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-upnp.alert.mappinggrabbed=UPnP: \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 '%1' \u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e - \u0438\u0437\u0437\u0435\u0442\u043e \u043e\u0442 '%2'
-upnp.mapping.tcpssltrackerport=TCP SSL \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043f\u043e\u0440\u0442
-upnp.alertothermappings=\u0414\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u043e\u0432\u0435, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438
-upnp.alertdeviceproblems=\u0414\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441 UPnP \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e
-upnp.trace_to_log=\u041f\u043e\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043f\u044a\u043b\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u0432 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0430
-upnp.wiki_link=\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0432 Vuze Wiki \u0437\u0430 UPnP
-upnp.refresh_mappings_on_bad_nat=\u0410\u0432\u0442\u043e-\u043e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0442\u0430 \u043f\u0440\u0438 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 NAT "\u0437\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435\u043d\u0430"
-ConfigView.pluginlist.coreplugins=\u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0432\u0433\u0440\u0430\u0434\u0435\u043d\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0430 \u0437\u0430\u0440\u0435\u0434\u0435\u043d\u0438:
-Peers.column.DLedFromOthers=\u041e\u0442 \u0434\u0440\u0443\u0433\u0438
-Peers.column.DLedFromOthers.info=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u0438, \u0441\u0432\u0430\u043b\u0435\u043d\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438, \u0434\u043e\u043a\u0430\u0442\u043e \u0441\u0430 \u0438\u043c\u0430\u043b\u0438 \u043c\u0435\u0441\u0442\u043d\u0438 \u0432\u0440\u044a\u0437\u043a\u0438
-Peers.column.UpDownRatio=\u041a\u0430\u0447\u0432\u0430\u043d\u0435:\u0441\u0432\u0430\u043b\u044f\u043d\u0435
-Peers.column.UpDownRatio.info=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 "\u041a\u0430\u0447\u0435\u043d\u043e:\u0441\u0432\u0430\u043b\u0435\u043d\u043e" \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-Peers.column.UpRatio=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-Peers.column.UpRatio.info=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 "\u041a\u0430\u0447\u0435\u043d\u043e \u043c\u0435\u0441\u0442\u043d\u043e:\u043a\u0430\u0447\u0435\u043d\u043e \u043e\u0442 \u0434\u0440\u0443\u0433" \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-upnp.releasemappings=\u041e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0442\u0430 \u043f\u0440\u0438 \u0437\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-webui.upnpenable=\u0421 UPnP \u0437\u0430 \u0442\u043e\u0437\u0438 \u043f\u043e\u0440\u0442 (*)
-ConfigView.section.file.friendly.hashchecking=\u041f\u0440\u0438\u044f\u0442\u0435\u043b\u0441\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435
-ConfigView.section.file.friendly.hashchecking.tooltip=\u041c\u0430\u043b\u043a\u043e \u043f\u043e-\u0431\u0430\u0432\u0435\u043d, \u043d\u043e \u0434\u043e\u0441\u0442\u0430 \u043f\u043e-\u043d\u0435\u043d\u0430\u0442\u043e\u0432\u0430\u0440\u0432\u0430\u0449 \u043f\u0440\u043e\u0446\u0435\u0441\u043e\u0440\u0430/\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0440\u0435\u0436\u0438\u043c \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0440\u0430\u04 [...]
-ConfigView.section.tracker.seedretention=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u043d\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.tracker.seedretention.info=\u0417\u0430\u0431\u0435\u043b\u0435\u0436\u043a\u0430: \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438\u0442\u0435 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0449\u0435 \u0441\u0435 \u0437\u0430\u0433\u0443\u0431\u044f\u0442 \u0437\u0430 \u043d\u0435\u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0442\u0435 \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-ConfigView.section.tracker.port=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u0442\u0440\u0430\u043a\u0435\u0440 \u043d\u0430 HTTP \u043f\u043e\u0440\u0442
-ConfigView.section.tracker.sslport=\u0422\u0440\u0430\u043a\u0435\u0440\u044a\u0442 \u0434\u0430 \u0435 \u043f\u0440\u0435\u0437 HTTPS \u043f\u043e\u0440\u0442
-ConfigView.section.tracker.publicenable.info=\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438 \u0434\u0430 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0449\u0438 \u043c\u0435\u0441\u0442\u043d\u0438\u044f \u0442\u0440\u0430\u043a\u0435\u0440\n\u0431\u0435\u0437 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0445\u0440\u0430\u043d\u044f\u0432\u0430\u [...]
-Button.clear=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435
-MainWindow.IPs.tooltip={\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u0444\u0438\u043b\u0442\u0440\u0438} \u043e\u0431\u0449\u043e IPFilters \u0432 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 - \u0431\u0440. \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438/\u0437\u0430\u0431\u0440\u0430\u043d\u0435\u043d\u0438/\u043b\u043e\u0448\u0438 IP-\u0442 [...]
-ConfigView.section.ipfilter.list.banned=\u0435 \u0437\u0430\u0431\u0440\u0430\u043d\u0435\u043d
-ConfigView.section.ipfilter.list.baddata=\u0438\u0437\u043f\u0440\u0430\u0449\u0430 \u043b\u043e\u0448\u0438 \u0434\u0430\u043d\u043d\u0438: \u0441\u043b\u0443\u0447\u0430\u0438 =
-Button.reset=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-ConfigView.section.ipfilter.bannedinfo=IP-\u0442\u0430 \u0438\u0437\u043f\u0440\u0430\u0442\u0438\u043b\u0438 \u043b\u043e\u0448\u0438 \u0434\u0430\u043d\u043d\u0438 - \u0437\u0430\u0431\u0440\u0430\u043d\u0430, \u0430\u043a\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u0438\u0442\u0435 \u0441\u0435 \u043d\u0430\u0434\u0445\u0432\u044a\u0440\u043b\u044f\u0442
-ConfigView.section.ipfilter.blockedinfo=IP-\u0442\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 IP \u0444\u0438\u043b\u0442\u0440\u0438
-download.removerules.name=\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-download.removerules.unauthorised.info=\u041d\u0435\u043e\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u0430\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441\u0430 \u0442\u0435\u0437\u0438, \u0432 \u043a\u043e\u0438\u0442\u043e \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u044a\u0442 \u043d\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u0438\u043b\u0438 "not authoris(z)ed", \u0438\u043b\u0438 "unauthoris(z)ed" [...]
-download.removerules.unauthorised=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u043e\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u0430\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-download.removerules.unauthorised.seedingonly=\t\u0421\u0430\u043c\u043e \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435
-download.removerules.removed.ok=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0442\u043e \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 '%1' \u0443\u0441\u043f\u044f. \u041f\u0440\u0438\u0447\u0438\u043d\u0430\u0442\u0430 \u0435 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u04 [...]
-download.removerules.updatetorrents=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438\u0442\u0435 \u0441 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 Vuze \u043f\u043e \u0438\u0437\u0438\u0441\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u043e\u044f\u043a\u0430
-ConfigView.label.defaultstarttorrentsstopped=\u041f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u044f\u0442 \u043d\u043e\u0432\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0432 \u0441\u043f\u0440\u044f\u043d\u043e \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-ConfigView.section.server.enableudp=\u0422\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0440\u0435\u0437 UDP. \u0422\u043e\u0432\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u044a\u0449\u0438\u044f \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u043f\u043e\u0440\u0442 \u043a\u0430\u0442\u043e TCP \u0441\u044a\u0440\u0432\u044a\u0440\u0430
-upnp.mapping.dataportudp=\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438 UDP \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043f\u043e\u0440\u0442
-ConfigView.section.file.decoder.showlax=\u041f\u043e-\u043c\u0430\u043b\u043a\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438
-ConfigView.section.file.decoder.showall=\u0412\u0437\u0435\u043c\u0430\u043d\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438
-MainWindow.status.updowndetails.tooltip=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435/\u043a\u0430\u0447\u0432\u0430\u043d\u0435\n\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430, \u0438\u0437\u0431\u043e\u0440 \u0437\u0430 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u0442\u043 [...]
-TrackerClient.announce.warningmessage=\u0422\u0440\u0430\u043a\u0435\u0440\u044a\u0442 \u0437\u0430 '%1' \u0432\u044a\u0440\u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 '%2'
-ConfigView.section.tracker.natcheckenable=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0442\u0430 \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043d\u0430 '\u0432\u0445\u043e\u0434\u044f\u0449 \u043f\u043e\u0440\u0442 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438' \u0438 \u0441\u044a\u043e\u0431\u0449\u0430\u0432\u0430\u043d\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0442\u0435 \u043a\u044a\u043c \ [...]
-ConfigView.section.tracker.publishenabledetails=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.section.tracker.publishenablepeerdetails=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-MyTrackerView.badnat=\u041b\u043e\u0448 NAT
-MyTrackerView.badnat.info=\u041f\u043e\u0441\u044f\u0432\u043a\u0438/\u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u0437\u0430 \u043a\u043e\u0438\u0442\u043e \u0441\u0435 \u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u0430 NAT \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0430\u043a\u043e \u0438\u043c\u0430
-ConfigView.section.tracker.natchecktimeout=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 [s]
-ConfigView.section.file.perf.cache.enable=\u041f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0438\u0441\u043a\u043e\u0432 \u043a\u0435\u0448
-ConfigView.section.file.perf.cache.size=\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u043a\u0435\u0448\u0430 \u0432 %1
-MainWindow.menu.transfers=\u0422&\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-MainWindow.menu.transfers.startalltransfers=&\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438
-MainWindow.menu.transfers.stopalltransfers=&\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438
-MainWindow.menu.transfers.pausetransfers=&\u041f\u0430\u0443\u0437\u0430
-MainWindow.menu.transfers.resumetransfers=\u041f\u043e\u0434&\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-ConfigView.label.experimental.osx.kernel.panic.fix=\u0415\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u043d\u0430 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u0440\u0438 \u043f\u0430\u043d\u0438\u043a\u0430 \u043d\u0430 \u044f\u0434\u0440\u043e\u0442\u043e \u0432 \u0434\u0432\u0443\u043f\u0440\u043e\u0446\u0435\u0441\u043e\u0440\u043d\u0438 OSX \u0441\u0438\u0441\u0442\u0435\u043c\u0438 [\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441 [...]
-SystemTray.menu.pausetransfers=\u041f\u0430\u0443\u0437\u0430 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-SystemTray.menu.resumetransfers=\u041f\u043e\u0434\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-ConfigView.section.file.truncate.too.large=\u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435, \u043a\u043e\u0438\u0442\u043e \u0437\u0430 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0433\u043e\u043b\u0435\u043c\u0438
-ConfigView.section.file.perf.cache.trace=\u041f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0435\u0448\u0438\u0440\u0430\u0449\u0438\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430
-ConfigView.section.interface.enabletray=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-PeerManager.status.error=\u0413\u0440\u0435\u0448\u043a\u0430
-Stats.title.full=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438
-TransferStatsView.title.full=\u0422\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-CacheView.title.full=\u0411\u0443\u0444\u0435\u0440
-CacheView.general.size=\u041f\u044a\u043b\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440
-CacheView.general.inUse=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u0435
-CacheView.general.title=\u0411\u0443\u0444\u0435\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-CacheView.reads.title=\u0412/\u0418 \u043f\u0440\u043e\u0447\u0438\u0442\u0438
-CacheView.reads.fromFile=\u041e\u0442 \u0444\u0430\u0439\u043b
-CacheView.reads.fromCache=\u041e\u0442 \u0431\u0443\u0444\u0435\u0440
-CacheView.reads.hits=\u041f\u043e\u043f\u0430\u0434\u0435\u043d\u0438\u044f
-CacheView.writes.title=\u0412/\u0418 \u0437\u0430\u043f\u0438\u0441\u0438
-CacheView.writes.toCache=\u0412 \u0431\u0443\u0444\u0435\u0440
-CacheView.writes.toFile=\u0412\u044a\u0432 \u0444\u0430\u0439\u043b
-CacheView.writes.hits=\u0417\u0430\u043f\u0438\u0441\u0430\u043d\u043e
-CacheView.speeds.title=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0437\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435
-CacheView.speeds.reads=\u041f\u0440\u043e\u0447\u0438\u0442\u0438
-CacheView.speeds.writes=\u0417\u0430\u043f\u0438\u0441\u0438
-CacheView.speeds.fromCache=\u041e\u0442/\u0432 \u0431\u0443\u0444\u0435\u0440
-CacheView.speeds.fromFile=\u041e\u0442/\u0432\u044a\u0432 \u0444\u0430\u0439\u043b
-CacheView.reads.#=\u0431\u0440.
-CacheView.reads.amount=\u0414\u044f\u043b
-CacheView.reads.avgsize=\u0421\u0440\u0435\u0434\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440
-openUrl.referrer=URL \u043d\u0430 \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0442\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430:
-openUrl.referrer.info=\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435 \u0441\u0430\u043c\u043e \u0437\u0430 \u0443\u0435\u0431-\u043c\u0435\u0441\u0442\u0430, \u043a\u043e\u0438\u0442\u043e \u0433\u043e \u0438\u0437\u0438\u0441\u043a\u0432\u0430\u0442
-ConfigView.label.maxuploadspeedseeding=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435\u0442\u043e \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0430\u043c\u043e \u0441\u0435 \u0441\u0435\u0435
-ConfigView.label.transfer.ignorepeerports=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0441\u044a\u0441 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043f\u043e\u0440\u0442\u043e\u0432\u0435 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438 (\u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b ';', \u043f\u0440. 0;25;100-200)
-ConfigView.section.proxy.enable_socks.peer=\u041a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 (\u0441\u0430\u043c\u043e \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0438) \u0434\u0430 \u0441\u0430 \u043f\u0440\u0435\u0437 \u043f\u044a\u043b\u043d\u043e\u043c\u043e\u0449\u043d\u0438\u043a (\u0438\u0437\u0438\u0441\u043a\u04 [...]
-ConfigView.section.proxy.peer.informtracker=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043a\u044a\u043c \u0442\u0440\u0430\u043a\u0435\u0440\u0430 \u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435
-ConfigView.section.proxy.socks.version=SOCKS \u0432\u0435\u0440\u0441\u0438\u044f
-PiecesView.legend.written=\u0417\u0430\u043f\u0438\u0441\u0430\u043d\u043e
-PiecesView.legend.requested=\u0417\u0430\u044f\u0432\u0435\u043d\u043e
-PiecesView.legend.downloaded=\u0421\u0432\u0430\u043b\u0435\u043d\u043e, \u0438\u0437\u0447\u0430\u043a\u0432\u0430 \u0441\u0435 \u0437\u0430\u043f\u0438\u0441
-PiecesView.legend.incache=\u0414\u0430\u043d\u043d\u0438\u0442\u0435 \u0441\u0430 \u0432 \u043a\u0435\u0448\u0430
-PiecesView.typeItem.0=\u0411\u0430\u0432\u043d\u043e
-PiecesView.typeItem.1=\u0411\u044a\u0440\u0437\u043e
-PiecesView.type=\u0422\u0438\u043f
-Security.jar.tools_not_found=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 JAR - 'tools.jar' \u0433\u043e \u043d\u044f\u043c\u0430 \u0432 %1. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 '\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u2192 \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u2192 \u0421\u0438\u0433\u0443\u0440\u043d\u043e\u0441 [...]
-Security.jar.signfail=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 JAR - %1
-ConfigView.section.security.toolsinfo=\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0438\u0442\u0435 JAR \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u0437\u0430 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u043d\u0430 \u043d\u044f\u043a\u043e\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 [...]
-ConfigView.section.security.toolsdir=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0449\u0430 'tools.jar'
-ConfigView.section.security.choosetoolssavedir=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0449\u0430 'tools.jar'
-authenticator.torrent=\u0422\u043e\u0440\u0435\u043d\u0442
-ConfigView.section.proxy.peer.same=\u0415\u0434\u043d\u0438 \u0438 \u0441\u044a\u0449\u0438 \u043f\u0440\u043e\u043a\u0441\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0442\u0435\u0437\u0438 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.section.connection.network.max.simultaneous.connect.attempts=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0435\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u043e\u043f\u0438\u0442\u0438 \u0437\u0430 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438 \u0432\u0440\u044a\u0437\u043a\u0438
-ConfigView.section.connection.network.max.simultaneous.connect.attempts.tooltip=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u043d\u043e\u0432\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438 \u0432\u0440\u044a\u0437\u043a\u0438, \u043a\u043e\u0438\u0442\u043e Vuze \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043f\u0440\u0430\u0432\u0438 \u043 [...]
-ConfigView.section.file.perf.cache.size.explain=\u041a\u0435\u0448\u044a\u0442 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u0437\u0430 \u043d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u0447\u0435\u0442\u0435\u043d\u0438\u044f\u0442\u0430/\u0437\u0430\u043f\u0438\u0441\u0438\u0442\u0435 \u043e\u0442/\u0434\u043e \u0434\u0438\u0441\u043a\u0430. \u041e\u0441\u0432\u0435\u043d, \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0 [...]
-MyTorrentsView.menu.setSpeed.unlimit=\u0411\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435
-MyTorrentsView.menu.setSpeed.unlimited=\u041d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e
-MyTorrentsView.menu.setSpeed.disable=\u0411\u0435\u0437 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-MyTorrentsView.menu.setSpeed.disabled=\u0411\u0435\u0437
-MyTorrentsView.menu.setSpeed.in=\u0432
-MyTorrentsView.menu.setSpeed.slots=\u0433\u043d\u0435\u0437\u0434\u0430 \u043f\u043e
-# %1 = total speed; %2 = # of slots; %3 = speed per slot
-MyTorrentsView.menu.setSpeed.multi=%1 {MyTorrentsView.menu.setSpeed.in} %2 {MyTorrentsView.menu.setSpeed.slots} %3
-GeneralView.label.maxuploadspeed=\u041c\u0430\u043a\u0441. \u041a\u0447.
-GeneralView.label.maxuploadspeed.tooltip=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-MyTorrents.items.UpSpeedLimit.disabled=\u041d\u044f\u043c\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-MyTorrents.items.UpSpeedLimit.unlimited=\u041d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e
-TableColumn.header.maxupspeed=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-TableColumn.header.maxupspeed.info=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.section.file.perf.cache.enable.write=\u0414\u0430\u043d\u043d\u0438\u0442\u0435 \u043e\u0442 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430 \u0437\u0430 \u0434\u0430 \u0432 \u043a\u0435\u0448, \u0437\u0430 \u043d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u0438\u0442\u0435 \u0432\u044a\u0440\u0445\u0443 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0447\u0435\u0442\u0435\u043d\u0438\u044f\u0442\u0430 \u043d\u0435\u043e\u0431\u0 [...]
-ConfigView.section.file.perf.cache.enable.read=\u0418\u0437\u043f\u0440\u0435\u0432\u0430\u0440\u0432\u0430\u0449\u043e \u0447\u0435\u0442\u0435\u043d\u0435 \u0437\u0430 \u043d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u0447\u0435\u0442\u0435\u043d\u0438\u044f\u0442\u0430 \u043e\u0442 \u0434\u0438\u0441\u043a\u0430 \u043f\u0440\u0438 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-ConfigView.section.tracker.separatepeerids=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0430 \u0441\u0430\u043c\u043e\u043b\u0438\u0447\u043d\u043e\u0441\u0442 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u0437\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0442\u0440\u0430\u043a\u0435\u0440\u0430 \u0438 \u0437\u0430 \u0434\u0430\u043 [...]
-ConfigView.section.tracker.separatepeerids.info=\u041f\u043e\u0432\u0438\u0448\u0430\u0432\u0430\u043d\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u0442\u0430, \u0430\u043a\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e/\u0441\u0435\u0435\u043d\u0435\u0442\u043e \u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e,\n\u0434\u043e\u043a\u0430\u0442\u043e \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043d\u0435-\u0430\u043d\u043e\u043d\u0438\u04 [...]
-ConfigView.section.interface.wavlocation=\u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 .wav \u0444\u0430\u0439\u043b
-ConfigView.section.interface.wavlocation.info=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 .wav \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u043f\u0440\u0430\u0437\u043d\u043e \u0437\u0430 \u0437\u0432\u0443\u043a \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.tracker.server=\u0421\u044a\u0440\u0432\u044a\u0440
-ConfigView.section.tracker.client=\u041a\u043b\u0438\u0435\u043d\u0442
-ConfigView.section.tracker.client.connecttimeout=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 (\u0441\u0435\u043a)
-ConfigView.section.tracker.client.readtimeout=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435 (\u0441\u0435\u043a)
-MainWindow.menu.tools=&\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438
-FilesView.path=\u041f\u044a\u0442
-FilesView.fullpath=\u0426\u044f\u043b\u043e\u0441\u0442\u0435\u043d \u043f\u044a\u0442
-FilesView.remaining=\u041e\u0441\u0442\u0430\u0432\u0430\u0449\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-TableColumn.header.trackername=\u0418\u043c\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440
-TableColumn.header.trackername.info=\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430 \u0441\u043f\u043e\u0440\u0435\u0434 URL \u043d\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e
-ConfigView.group.override=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u043f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435
-ConfigView.section.file.perf.cache.notsmallerthan=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043a\u0435\u0448 \u0437\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043f\u043e-\u043c\u0430\u043b\u043a\u0438 \u043e\u0442 \u0442\u043e\u0432\u0430 (\u0432 %1)
-PeersView.menu.blockupload=\u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435\u0442\u043e
-PeersView.menu.kickandban=\u0418\u0437\u0445\u0432\u044a\u0440\u043b\u044f\u043d\u0435 \u0438 \u0437\u0430\u0431\u0440\u0430\u043d\u0430
-PeersView.menu.kickandban.reason=\u0420\u044a\u0447\u043d\u043e \u0437\u0430\u0431\u0440\u0430\u043d\u0435\u043d \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-PeersView.state=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-PeersView.state.info=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PeersView.state.pending=\u0427\u0430\u043a\u0430\u0449\u043e
-PeersView.state.connecting=\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435
-PeersView.state.handshake=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0440\u044a\u043a\u043e\u0441\u0442\u0438\u0441\u043a\u0430\u043d\u0435
-PeersView.state.established=\u041d\u0430\u043f\u044a\u043b\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e
-ConfigView.section.tracker.processinglimits=\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u0442\u0430
-ConfigView.section.tracker.maxgettime=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0432\u0440\u0435\u043c\u0435 \u0437\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 GET [s] [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.tracker.maxgettime.info=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u0435 \u0437\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0438\u044f
-ConfigView.section.tracker.maxposttimemultiplier=\u0412\u0440\u0435\u043c\u0435-\u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b \u043d\u0430 GET \u0437\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 POST [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.tracker.maxposttimemultiplier.info=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u0435 \u0437\u0430 \u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u044f\u0440\u0438 \u0438 \u043a\u0430\u0447\u0432\u0430\u043d\u0438\u044f
-ConfigView.section.tracker.maxthreads=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u0438 \u0437\u0430\u044f\u0432\u043a\u0438
-DownloadManager.error.operationcancancelled=\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0435 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430
-Torrent.create.progress.cancelled=\u041e\u0442\u043c\u0435\u043d\u0435\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f
-sharing.progress.cancel=\u041e\u0442\u043a\u0430\u0437
-wizard.maketorrents.autoopen=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0437\u0430 \u0441\u0435\u0435\u043d\u0435 \u0441\u043b\u0435\u0434 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435
-ConfigView.section.sharing.rescanenable=\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0432\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u043e\u0442\u043e \u0437\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0438
-ConfigView.section.sharing.rescanperiod=\u041f\u0435\u0440\u0438\u043e\u0434 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 [s]
-ConfigView.section.connection.advanced=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.connection.advanced.mtu=\u041d\u0430\u0439-\u0433\u043e\u043b\u044f\u043c \u043f\u0440\u0435\u043d\u0430\u0441\u044f\u043d \u043f\u0430\u043a\u0435\u0442 (MTU) \u0437\u0430 \u043b\u0438\u043d\u0438\u044f
-ConfigView.section.connection.advanced.mtu.tooltip=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u043f\u0430\u043a\u0435\u0442, \u043a\u043e\u0439\u0442\u043e \u0441\u0435 \u043f\u0440\u0435\u043d\u0430\u0441\u044f \u043e\u0442 1 \u0440\u0430\u043c\u043a\u0430 \u043f\u043e \u043c\u0440\u0435\u0436\u0430\u0442\u0430.\nVuze \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 MTU-40 (MSS) \u0437\u0430 \u043f\u0430\u043a\u0435\u0 [...]
-ConfigView.section.connection.advanced.SO_RCVBUF=\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0446\u043e\u043a\u044a\u043b SO_RCVBUF [0: \u043f\u043e \u043f\u043e\u0434\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u043d\u0435 \u043e\u0442 \u041e\u0421-\u0430]
-ConfigView.section.connection.advanced.SO_RCVBUF.tooltip=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0432\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u0437\u0430 \u0446\u043e\u043a\u044a\u043b SO_RCVBUF (\u0432 \u0431\u0430\u0439\u0442\u043e\u0432\u0435), \u0442.\u0435. \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043c\u0430\u0449\u0430\u0431 \u043d\u0430 TCP \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u0437\ [...]
-ConfigView.section.connection.advanced.SO_SNDBUF=\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0446\u043e\u043a\u044a\u043b SO_SNDBUF [0: \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u043e\u0442 \u041e\u0421-\u0430]
-ConfigView.section.connection.advanced.SO_SNDBUF.tooltip=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0432\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u0437\u0430 \u0446\u043e\u043a\u044a\u043b SO_SNDBUF (\u0432 \u0431\u0430\u0439\u0442\u043e\u0432\u0435), \u0442.\u0435. \u0440\u0430\u0437\u043c\u0435\u0440\u044a\u0442 \u043d\u0430 TCP \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u0437\u0430 \u0438\u0437\u043f\u [...]
-ConfigView.section.connection.advanced.IPDiffServ=\u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u0437\u0430 DiffServ \u043d\u0430 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438 \u043f\u0430\u043a\u0435\u0442\u0438 (TOS \u043f\u043e\u043b\u0435)
-ConfigView.section.connection.advanced.IPDiffServ.tooltip=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430 DiffServ \u0447\u0430\u0441\u0442\u0442\u0430 \u043e\u0442 TOS \u043f\u043e\u043b\u0435\u0442\u043e \u0432 IP \u0437\u0430\u0433\u043b\u0430\u0432\u043a\u0430\u0442\u0430 \u043d\u0430 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438\u0442\u0435 \u043f\u0430\u043a\u0435\u0442\u0438.\n\u0428\u0435\u0441\u0442\u043d\u0430\u0434\u0435\u0441\u0435\u0442\u0438\u0447\u043d\u043 [...]
-TableColumn.header.seed_to_peer_ratio=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0435\u0435\u043d\u0435/\u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-TableColumn.header.seed_to_peer_ratio.info=\u041e\u0431\u0449\u043e \u0437\u0430 \u0440\u043e\u044f\u043a\u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0435\u0435\u043d\u0435/\u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-PeersView.connected_time=\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430
-PeersView.connected_time.info=\u041e\u0431\u0449\u043e\u0442\u043e \u0432\u0440\u0435\u043c\u0435 \u043d\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e\u0441\u0442 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-TableColumn.header.maxdownspeed=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-TableColumn.header.maxdownspeed.info=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-PeersGraphicView.title.full=\u0420\u043e\u044f\u043a
-ConfigView.section.tracker.passwordwebhttpsonly=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0441\u0430\u043c\u043e \u0447\u0440\u0435\u0437 HTTPS
-TableColumn.header.torrentpath=\u041c\u044f\u0441\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430
-TableColumn.header.torrentpath.info=\u041c\u044f\u0441\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0432\u044a\u0440\u0445\u0443 \u0434\u0438\u0441\u043a\u0430
-ConfigView.section.sharing.torrentcomment=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440 \u0437\u0430 \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u043d\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.label.copyanddeleteratherthanmove=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u043e \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u043d\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u0441 \u0435\u0434\u043d\u0430 \u043e\u043f\u0435\u0 [...]
-ConfigView.label.openstatsonstart=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0442\u0432\u0430\u0440\u044f \u043f\u0440\u0438 \u043d\u0430\u0447\u0430\u043b\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-swt.install.window.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0437\u0430 Vuze
-swt.install.window.ok=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435
-swt.install.window.header=\u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0438 \u0441\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u0438 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435:
-swt.uninstall.window.title=\u0427\u0438\u0441\u0442\u0430\u0447 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0437\u0430 Vuze
-swt.uninstall.window.ok=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-swt.uninstall.window.header=\u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0438 \u0441\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u0438 \u0437\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435:
-installPluginsWizard.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-installPluginsWizard.mode.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435
-installPluginsWizard.mode.list=\u041f\u043e \u0441\u043f\u0438\u0441\u044a\u043a \u043e\u0442 sourceforge.net
-installPluginsWizard.list.title=\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0443\u0435\u043c\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-installPluginsWizard.list.loading=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a \u0441 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438.
-installPluginsWizard.list.loaded=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435.
-installPluginsWizard.list.name=\u0418\u043c\u0435
-installPluginsWizard.list.version=\u0412\u0435\u0440\u0441\u0438\u044f
-installPluginsWizard.list.description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430
-installPluginsWizard.finish.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
-installPluginsWizard.finish.explanation=\u0418\u0437\u0431\u0440\u0430\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0449\u0435 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442 \u0441 \u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\n\n\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0442\u044a\u0440\u043f\u0435\u043d\u0438\u043 [...]
-installPluginsWizard.details.loading=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438\u0085\u2026
-installPluginsWizard.mode.file=\u041f\u043e \u0444\u0430\u0439\u043b
-installPluginsWizard.installMode.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0432\u0438\u0434\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f
-installPluginsWizard.installMode.user=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430/\u0438 \u0437\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b
-installPluginsWizard.installMode.shared=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430/\u0438 \u0437\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438
-installPluginsWizard.file.title=\u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430, \u043a\u043e\u044f\u0442\u043e \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430
-installPluginsWizard.file.file=\u0424\u0430\u0439\u043b:
-installPluginsWizard.file.invalidfile=\u0424\u0430\u0439\u043b\u044a\u0442 \u043d\u0435 \u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0430 Vuze.
-installPluginsWizard.file.no_such_file=\u041d\u044f\u043c\u0430 \u0444\u0430\u0439\u043b \u0441 \u0442\u0430\u043a\u043e\u0432\u0430 \u0438\u043c\u0435.
-installPluginsWizard.file.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0085\u2026
-uninstallPluginsWizard.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-uninstallPluginsWizard.list.title=\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-uninstallPluginsWizard.list.loaded=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0436\u0435\u043b\u0430\u043d\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435.
-installPluginsWizard.list.nullversion=\u041d\u044f\u043c\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-uninstallPluginsWizard.finish.title=\u0412 \u043f\u0440\u043e\u0446\u0435\u0441 \u043d\u0430 \u0434\u0435\u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f
-uninstallPluginsWizard.finish.explanation=\u0418\u0437\u0431\u0440\u0430\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0449\u0435 \u0441\u0435 \u0434\u0435\u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442 \u0447\u0440\u0435\u0437 \u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435.
-MainWindow.menu.plugins.installPlugins=\u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0085\u2026
-MainWindow.menu.plugins.uninstallPlugins=\u0421\u044a\u0432\u0435\u0442\u043d\u0438\u043a \u0437\u0430 \u0434\u0435\u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0085\u2026
-ConfigView.section.ipfilter.totalIPs=%1 IP-\u0442\u0430 \u043e\u0431\u0449\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438, \u043a\u043e\u0435\u0442\u043e \u0435 %2 \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442.
-update.instance.install=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430
-update.instance.uninstall=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0434\u0435\u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430
-update.instance.update=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438
-MainWindow.status.update.tooltip=\u0418\u0437\u0431\u043e\u0440 \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043e
-updater.progress.window.title=\u0422\u0435\u043a\u0443\u0449\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u043e\u043d\u043d\u0438 \u0437\u0430\u0434\u0430\u0447\u0438
-updater.progress.window.info=\u0414\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 '\u0418\u0437\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435' \u0437\u0430 \u043f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0438
-Button.abort=\u0418\u0437\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435
-ConfigView.section.ipfilter.enablebanning=\u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430\u0442\u043e \u043f\u0440\u0430\u0449\u0430\u0442 \u043b\u043e\u0448\u0438 \u0434\u0430\u043d\u043d\u0438
-Network.alert.acceptfail=\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u043d\u0438 \u043f\u0440\u043e\u0432\u0430\u0301\u043b\u0438 \u043d\u0430 \u043f\u043e\u0440\u0442 %1, %2 - \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0442\u0430 \u0435 \u0438\u0437\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0430. \u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u043d\u0430\u0441\u0442\u [...]
-MyShares.column.category=\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-UpdateWindow.restartLater=\u041f\u043e-\u043a\u044a\u0441\u0435\u043d \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u043d\u0430 Vuze
-MainWindow.menu.file.restart=\u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Vuze
-MainWindow.dialog.restartconfirmation.title=\u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Vuze?
-MainWindow.dialog.restartconfirmation.text=\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 Vuze?
-ConfigView.label.prioritizemostcompletedfiles=\u041f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u043e \u043f\u043e\u0432\u0438\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441 \u0432\u0438\u0441\u043e\u043a \u0442\u0430\u043a\u044a\u0432 \u0441\u043f\u043e\u0440\u0435\u0434 % \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e\u0441\u0442 \u0438 \u0440\u0430\u0437 [...]
-splash.plugin.init=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430:
-splash.plugin.UIinit=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0413\u041f\u0418 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430: %1
-ConfigView.section.style.osx_small_fonts=\u0414\u0440\u0435\u0431\u043d\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432\u0435 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-ConfigView.section.tracker.tcpnonblocking=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043d\u0435-\u0431\u043b\u043e\u043a\u0438\u0440\u0430\u0449 \u0412/\u0418 \u0437\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440 \u043f\u043e TCP. \u0418\u0437\u0431\u043e\u0440\u044a\u0442 \u043d\u0430 \u0442\u043e\u0432\u0430 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0 [...]
-ConfigView.section.tracker.nonblocking=\u041d\u0435\u0431\u043b\u043e\u043a\u0438\u0440\u0430\u0449\u0438 \u043e\u043f\u0446\u0438\u0438
-ConfigView.section.tracker.nonblockingconcmax=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u0438 \u0432\u0440\u044a\u0437\u043a\u0438 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-MyTorrentsView.menu.exportmenu=\u0415\u043a\u0441\u043f\u043e\u0440\u0442
-MyTorrentsView.menu.exporttorrent=\u0422\u043e\u0440\u0435\u043d\u0442\u0085
-ConfigView.group.scrape=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435
-ConfigView.section.tracker.client.scrapeinfo=\u0417\u0430\u0431\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435\u0442\u043e \u0449\u0435 \u0441\u043f\u0440\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u0430 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e \u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043d\u0430 \u043e\u043f\u0430\u0448\u [...]
-ConfigView.section.tracker.client.scrapeenable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435
-ConfigView.section.tracker.client.scrapestoppedenable=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438, \u043a\u043e\u0438\u0442\u043e \u043d\u0435 \u0441\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0438
-Scrape.status.disabled=\u0411\u0435\u0437 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435
-MyTorrentsView.menu.explore=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-MyTorrentsView.menu.explore._mac=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0432\u044a\u0432 Finder
-MyTorrentsView.menu.explore._windows=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0432 Explorer
-wizard.maketorrents.autohost=\u041f\u043e\u0434\u0441\u043b\u043e\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0432\u044a\u0440\u0445\u0443 \u0432\u0433\u0440\u0430\u0434\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043a\u0435\u0440
-ConfigView.label.overrideip=\u041f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 IP-\u0442\u0430\u0442\u0430 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430 \u0437\u0430 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435 - ';' \u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b \u0430\u043a\u043e \u0441\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u0442 1 \u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0438 [...]
-ConfigView.label.overrideip.tooltip=\u0418\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430 \u043f\u0440\u0438 IP \u0430\u0434\u0440\u0435\u0441/\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0438 \u043e\u0442 \u0442\u043e\u0437\u0438/\u0442\u0435\u0437\u0438, \u043e\u0442 \u043a\u043e\u0438\u0442\u043e \u043f\u0440\u0438\u0441\u0442\u0438\u0433\u0430\u0442 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438\u0442\u0435 [...]
-ConfigView.section.connection.group.networks=\u041c\u0440\u0435\u0436\u0438
-ConfigView.section.connection.group.networks.info=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438 \u043c\u0440\u0435\u0436\u0438 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u043f\u0440\u0435\u043d\u043e\u0441 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d-\u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u044 [...]
-ConfigView.section.connection.networks.prompt=\u041f\u043e\u0434\u0441\u0435\u0449\u0430\u043d\u0435 \u0437\u0430 \u0438\u0437\u0431\u043e\u0440, \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u044f \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0441 \u0430\u043d\u043e\u043d\u0438\u043c\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440
-ConfigView.section.connection.networks.Public=\u041e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u0430 IP \u043c\u0440\u0435\u0436\u0430 (\u043d\u0435 \u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0430)
-ConfigView.section.connection.networks.I2P=\u041c\u0440\u0435\u0436\u0430 I2P
-ConfigView.section.connection.networks.Tor=\u041c\u0440\u0435\u0436\u0430 The Onion Router (Tor)
-TableColumn.header.networks=\u041c\u0440\u0435\u0436\u0438
-TableColumn.header.networks.info=\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438 \u043c\u0440\u0435\u0436\u0438 \u0437\u0430 \u043e\u0431\u043c\u0435\u043d \u043d\u0430 \u0434\u0430\u043d\u043d\u0438 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-Scrape.status.networkdisabled=\u041d\u044f\u043c\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.tracker.server.group.networks=\u041c\u0440\u0435\u0436\u0438
-ConfigView.section.tracker.server.group.networks.info=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043c\u0440\u0435\u0436\u0438, \u0437\u0430 \u043a\u043e\u0438\u0442\u043e \u0442\u0440\u0430\u043a\u0435\u0440\u044a\u0442 \u0449\u0435 \u043f\u0440\u0438\u0435\u043c\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-window.networkselection.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043c\u0440\u0435\u0436\u0430
-window.networkselection.info=\u041f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0442 \u043f\u043e-\u0434\u043e\u043b\u0443 \u0442\u043e\u0440\u0435\u043d\u0442 \u0438\u043c\u0430 \u0442\u0440\u0430\u043a\u0435\u0440(\u0438), \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u0449(\u0438) \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043c\u0440\u0435\u0436\u0438.\n\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0430\u0442 \u0442\u0435\u0437\u0438 \u0437\u0430 \u0442\u04 [...]
-window.networkselection.description=\u0422\u043e\u0440\u0435\u043d\u0442:
-plugins.basicview.clear=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435
-ConfigView.section.connection.group.peersources=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0438\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438
-ConfigView.section.connection.group.peersources.info=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438 \u0438\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.section.connection.peersource.Tracker=\u041e\u0442 \u0442\u0440\u0430\u043a\u0435\u0440
-ConfigView.section.connection.peersource.DHT=\u0414\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435
-ConfigView.section.connection.peersource.PeerExchange=\u0414\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e \u043e\u0442 \u0434\u0440\u0443\u0433 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-ConfigView.section.connection.peersource.Plugin=\u0414\u043e\u0431\u0430\u0432\u0435\u043d\u043e \u043e\u0442 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430
-ConfigView.section.connection.peersource.Incoming=\u0412\u0445\u043e\u0434\u044f\u0449\u0430 \u0432\u0440\u044a\u0437\u043a\u0430
-PeersView.source=\u0418\u0437\u0442\u043e\u0447\u043d\u0438\u043a
-PeersView.source.info=\u0418\u0437\u0442\u043e\u0447\u043d\u0438\u043a\u044a\u0442 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-TableColumn.header.peersources=\u0418\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-TableColumn.header.peersources.info=\u0418\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438 \u0437\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-wizard.tracker.dht=\u0414\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u043e (\u0441\u0430\u043c\u043e \u0437\u0430 Vuze \u043a\u043b\u0438\u0435\u043d\u0442\u0438)
-MyTorrentsView.menu.advancedmenu=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438
-MyTorrentsView.menu.networks=\u041c\u0440\u0435\u0436\u0438
-MyTorrentsView.menu.peersource=\u0418\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.section.sharing.permitdht=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u043d\u044f\u043c\u0430 \u0442\u0440\u0430\u043a\u0435\u0440
-ConfigView.section.sharing.protocol=\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430)
-PeersView.Messaging=\u0421\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f
-PeersView.Messaging.info=\u041f\u043e\u043a\u0430\u0437\u0432\u0430 \u043a\u0430\u043a\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0435 \u0432 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0430.
-ConfigView.label.queue.newseedsmovetop=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0443\u043a\u0443-\u0449\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e\u0442\u043e \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-ConfigView.label.seeding.firstPriority.ignore.info=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u0435\u0437\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u043f\u0440\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\n\u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e.
-ConfigView.label.seeding.firstPriority.ignore=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u041d\u0412\u041f \u0437\u0430:
-ConfigView.label.seeding.firstPriority.ignoreSPRatio=\u0422\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0441\u044f\u0432\u043a\u0438\u0442\u0435 \u043a\u044a\u043c \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u0442\u0435 \u043d\u0430\u0434
-ConfigView.label.seeding.firstPriority.ignore0Peer=\u0422\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.section.tracker.sendjavaversionandos=\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u0432\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 Java \u0438 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u041e\u0421
-MagnetPlugin.contextmenu.exporturi=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430 \u043d\u0430 Magnet URI
-ConfigView.section.plugins.dht=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0411\u0430\u0437\u0430 \u0414\u0430\u043d\u043d\u0438
-dht.info=\u0422\u0430\u0437\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430, \u043c\u0435\u0436\u0434\u0443 \u0434\u0440\u0443\u0433\u043e\u0442\u043e, \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 - \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043c\u0443 \u0449\u0435 \u043d\ [...]
-dht.enabled=\u0421 \u0440\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438
-dht.portdefault=\u041f\u0440\u0435\u0437 \u043f\u043e\u0440\u0442 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-dht.port=UDP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0431\u0430\u0437\u0430\u0442\u0430 \u0434\u0430\u043d\u043d\u0438
-dht.execute.command=\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430
-dht.execute.info=\u0421 \u043d\u0430\u0442\u0438\u0441\u043a\u0430\u043d\u0435 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430
-dht.execute=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435
-dht.logging=\u0421 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0439\u043d\u043e\u0441\u0442\u0442\u0430
-ConfigView.section.plugins.dhttracker=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440
-dhttracker.tracknormalwhenoffline=\u041f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043d\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438, \u043a\u043e\u0433\u0430\u0442\u043e \u0442\u0440\u0430\u043a\u0435\u0440\u044a\u0442 \u0438\u043c \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d
-ConfigView.section.file.nativedelete._mac=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043a\u043e\u0448\u0430 \u043f\u0440\u0438 \u0442\u0440\u0438\u0435\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-ConfigView.section.file.nativedelete._windows=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0442\u0440\u0438\u0442\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u043a\u043e\u0448\u0447\u0435\u0442\u043e
-ConfigView.section.logging.generatediagnostics=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435
-ConfigView.section.logging.netinfo=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.logging.statsinfo=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430
-ConfigView.section.logging.generatediagnostics.info=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u0438 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430 \u0438 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0430, \u0430\u043a\u043e \u0435 \u043a\u043e\u043d\u0444\u0438 [...]
-ConfigView.section.sharing.privatetorrent=\u0427\u0430\u0441\u0442\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442 - \u043f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0441\u0430\u043c\u043e \u043e\u0442 \u0442\u0440\u0430\u043a\u0435\u0440\u0430
-MainWindow.menu.tools.nattest=\u0422\u0435\u0441\u0442 \u043d\u0430 &NAT/\u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435\u043d\u0430
-Button.apply=\u041f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0435
-Button.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-window.welcome.title=\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0442 Vuze %1
-#file can be a URL or a path in the jar
-MainWindow.menu.help.releasenotes=\u0411\u0435\u043b\u0435\u0436\u043a\u0438 \u0437\u0430 \u0438\u0437\u0434\u0430\u043d\u0438\u0435\u0442\u043e
-dht.reseed.label=\u041d\u043e\u0440\u043c\u0430\u043b\u043d\u043e, \u0441\u0435\u0435\u043d\u0435 \u043d\u0430\u043d\u043e\u0432\u043e \u043d\u0430 \u0420\u0411\u0414 \u043d\u0435 \u0435 \u043d\u0443\u0436\u043d\u043e. \u0410\u043a\u043e, \u043e\u0431\u0430\u0447\u0435 \u0431\u0440\u043e\u044f\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0438 \u0435 \u043c\u0430\u043b\u044a\u043a, \u0442\u043e\u0432\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u0 [...]
-dht.reseed.group=\u0421\u0435\u0435\u043d\u0435 \u043d\u0430\u043d\u043e\u0432\u043e
-dht.reseed.ip=IP \u0430\u0434\u0440\u0435\u0441
-dht.reseed.port=\u041f\u043e\u0440\u0442
-dht.reseed=\u0421\u0435\u0435\u043d\u0435 \u043d\u0430\u043d\u043e\u0432\u043e
-dht.reseed.info=\u0421\u0435\u0435\u043d\u0435 \u043d\u0430\u043d\u043e\u0432\u043e \u043d\u0430 \u0431\u0430\u0437\u0430\u0442\u0430 \u0434\u0430\u043d\u043d\u0438
-dht.diagnostics.group=\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438
-DHTView.title.full=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438
-DHTView.title.fullcvs=CVS \u043d\u0430 \u0440\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430\u0442\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438
-DHTView.general.title=\u041e\u0431\u0449\u043e
-DHTView.general.uptime=\u0410\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u0440\u0435\u043c\u0435:
-DHTView.general.users=\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438:
-DHTView.general.nodes=\u0412\u044a\u0437\u043b\u0438:
-DHTView.general.leaves=\u041e\u0441\u0442\u0430\u0432\u043a\u0438:
-DHTView.general.contacts=\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0438:
-DHTView.general.replacements=\u0417\u0430\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0438\u044f:
-DHTView.general.live=\u0416\u0438\u0432\u0438:
-DHTView.general.unknown=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0438:
-DHTView.general.dying=\u0423\u043c\u0438\u0440\u0430\u0449\u0438:
-DHTView.transport.title=\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-DHTView.transport.packets=\u041f\u0430\u043a\u0435\u0442\u0438
-DHTView.transport.bytes=B
-DHTView.transport.received=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e
-DHTView.transport.sent=\u0418\u0437\u043f\u0440\u0430\u0442\u0435\u043d\u043e
-DHTView.transport.in=\u0412\u0445\u043e\u0434\u044f\u0449\u043e:
-DHTView.transport.out=\u0418\u0437\u0445\u043e\u0434\u044f\u0449\u043e:
-DHTView.operations.title=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430
-DHTView.operations.sent=\u0418\u0437\u043f\u0440\u0430\u0442\u0435\u043d\u0438
-DHTView.operations.ok=\u0414\u0430
-DHTView.operations.failed=\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0438
-DHTView.operations.received=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438
-DHTView.operations.ping=\u041f\u0438\u043d\u0433
-DHTView.operations.findNode=\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0432\u044a\u0437\u0435\u043b
-DHTView.operations.findValue=\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442
-DHTView.operations.store=\u0421\u044a\u0445\u0440\u0430\u043d\u0435\u043d\u0438
-DHTView.activity.title=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-DHTView.activity.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-DHTView.activity.status.true=\u041d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430
-DHTView.activity.status.false=\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-DHTView.activity.type=\u0422\u0438\u043f
-DHTView.activity.type.1=\u0412\u044a\u0442\u0440\u0435\u0448\u0435\u043d Get
-DHTView.activity.type.2=\u0412\u044a\u043d\u0448\u0435\u043d Get
-DHTView.activity.type.3=\u0412\u044a\u0442\u0440\u0435\u0448\u0435\u043d Put
-DHTView.activity.type.4=\u0412\u044a\u043d\u0448\u0435\u043d Put
-DHTView.activity.target=\u0426\u0435\u043b
-DHTView.activity.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-DHTView.db.title=\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438
-DHTView.db.keys=\u041a\u043b\u044e\u0447\u043e\u0432\u0435
-DHTView.db.values=\u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438
-DHTView.db.local=\u041b\u043e\u043a\u0430\u043b\u043d\u043e
-DHTView.db.direct=\u0414\u0438\u0440\u0435\u043a\u0442\u043d\u043e
-DHTView.db.indirect=\u0418\u043d\u0434\u0438\u0440\u0435\u043a\u0442\u043d\u043e
-DHTView.db.divfreq=\u0427\u0435\u0441\u0442. Div.
-DHTView.db.divsize=\u0420\u0430\u0437\u043c. Div.
-MainWindow.dht.status.tooltip=\u041a\u043e\u0433\u0430\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0438 \u0420\u0411\u0414, \u0442\u043e\u0432\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430 \u0438\u0437\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0431\u0440\u043e\u0439 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u043e \u043d\u0430 \u043b\u0438\u043d\u0438\u044f
-MainWindow.dht.status.disabled=\u0411\u0435\u0437 DHT
-MainWindow.dht.status.failed=DHT \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-MainWindow.dht.status.initializing=DHT \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435
-MainWindow.dht.status.users=%1 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438
-MainWindow.dht.status.unreachable=DHT \u0437\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435\u043d\u0430
-MainWindow.dht.status.unreachabletooltip=\u0418\u043c\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 UDP \u043f\u043e\u0440\u0442 \u043d\u0430 \u0420\u0411\u0414 (NAT/\u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435\u043d\u0430)
-MyTorrentsView.menu.setUpSpeed=\u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-MyTorrentsView.menu.setDownSpeed=\u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-ConfigView.section.tracker.client.showwarnings=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0438\u0437\u0434\u0430\u0432\u0430\u043d\u0438 \u043e\u0442 \u0442\u0440\u0430\u043a\u0435\u0440\u0438\u0442\u0435
-dht.advanced=\u0421 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-dht.advanced.group=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-dht.advanced.label=\u041f\u0440\u043e\u043c\u044f\u043d\u0430\u0442\u0430 \u043d\u0430 \u0442\u0435\u0437\u0438 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u0442\u0430
-dht.override.ip=\u041f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u044a\u043d\u0448\u0435\u043d IP \u0430\u0434\u0440\u0435\u0441
-ConfigView.section.logging.loggerenable=\u0412\u043e\u0434\u0435\u043d\u0435 \u043d\u0430 \u0434\u043d\u0435\u0432\u043d\u0438\u043a
-ConfigView.section.ipfilter.blockbanning=\u0417\u0430\u0431\u0440\u0430\u043d\u0430 \u043d\u0430 \u0431\u043b\u043e\u043a \u043e\u0442 256 \u0430\u0434\u0440\u0435\u0441\u0430, \u043a\u043e\u0433\u0430\u0442\u043e \u043d\u0430\u0439-\u043c\u0430\u043b\u043a\u043e \u0442\u043e\u043b\u043a\u043e\u0432\u0430 \u043e\u0442 \u0442\u044f\u0445 \u0432 \u0431\u043b\u043e\u043a\u0430 \u0441\u0430 \u0432\u0435\u0447\u0435 \u0437\u0430\u0431\u0440\u0430\u043d\u0435\u043d\u0438
-MyTrackerView.passive=\u041f\u0430\u0441\u0438\u0432\u043d\u043e
-TableColumn.header.swarm_average_speed=\u0421\u0440\u0435\u0434\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u0437\u0430 \u0440\u043e\u044f\u043a\u0430
-TableColumn.header.swarm_average_speed.info=\u0421\u0440\u0435\u0434\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u0442\u0435 \u0432 \u0440\u043e\u044f\u043a\u0430
-TableColumn.header.comment=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-TableColumn.header.comment.info=\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e
-TableColumn.header.commenticon=\u0418\u043a\u043e\u043d\u0430 \u043d\u0430 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-TableColumn.header.commenticon.info=\u041f\u043e\u043a\u0430\u0437\u0432\u0430 \u0438\u043a\u043e\u043d\u0430, \u0430\u043a\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u0438\u043c\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-MyTrackerView.category=\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f
-MainWindow.menu.file.open.torrentfortracking=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0085\u2026 (\u0437\u0430 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e)
-VivaldiView.title.full=\u0412\u0438\u0432\u0430\u043b\u0434\u0438
-VivaldiView.title.fullcvs=\u0412\u0438\u0432\u0430\u043b\u0434\u0438 CVS
-VivaldiView.title.full_v6=\u0412\u0438\u0432\u0430\u043b\u0434\u0438 IPv6
-MyTrackerView.date_added=\u0414\u043e\u0431\u0430\u0432\u0435\u043d\u043e
-ConfigView.section.tracker.portbackup=\u0417\u0430\u043f\u0430\u0300\u0441 \u043d\u0430 \u043f\u043e\u0440\u0442\u043e\u0432\u0435 (';' \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b)
-ConfigView.label.playfilespeech=\u0413\u043b\u0430\u0441\u043e\u0432\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u0444\u0430\u0439\u043b
-ConfigView.label.playfilefinished=\u0417\u0432\u0443\u043a\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u0444\u0430\u0439\u043b
-ConfigView.label.backupconfigfiles=\u0417\u0430\u043f\u0430\u0441 \u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0437\u0430 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u043d\u0443\u0436\u0434\u0430
-ConfigView.section.tracker.client.scrapesingleonly=\u0417\u0430\u0431\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430\u0442\u0440\u0443\u043f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0442\u0440\u0430\u043a\u0435\u0440 \u043f\u043e\u043e\u0442\u0434\u0435\u043b\u043d\u043e (\u043f\u043e\u043c\u0430\u0433\u0430 \u043f\u0440\u0438 \u0442\u0440\u0430\u043a\u0435\u0440\u0438 \u0438\u0437\u04 [...]
-dht.ipfilter.log=\u0414\u043d\u0435\u0432\u043d\u0438\u043a \u0437\u0430 \u043f\u0440\u0435\u0441\u0442\u044a\u043f\u0432\u0430\u043d\u0438\u044f\u0442\u0430 \u043d\u0430 IP \u0444\u0438\u043b\u0442\u044a\u0440\u0430
-ConfigView.label.seeding.addForSeedingDLCopyCount=\u0421\u0447\u0438\u0442\u0430\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f \u0442\u0438\u043f '\u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0437\u0430 \u0441\u0435\u0435\u043d\u0435' \u0434\u0430 \u0441\u0430 \u0441\u0432\u0430\u043b\u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u043d\u0438\u044f \u0431\u0440\u043e\u0439 \u043a\u043e\u043f\u0438\u044f
-ActivityView.legend.limit=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435
-ActivityView.legend.achieved=\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435
-ActivityView.legend.overhead=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0431\u0430\u043b\u0430\u0441\u0442\u0430
-ActivityView.legend.peeraverage=\u0421\u0440\u0435\u0434\u043d\u043e
-ActivityView.legend.swarmaverage=\u0421\u0440\u0435\u0434\u043d\u043e \u0437\u0430 \u0440\u043e\u044f\u043a\u0430
-ActivityView.legend.trimmed=\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e
-MyTorrentsView.menu.movemenu=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-MyTorrentsView.menu.movedata=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441 \u0434\u0430\u043d\u043d\u0438\u0085
-MyTorrentsView.menu.movetorrent=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0085
-MyTorrentsView.menu.movedata.dialog=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u043e \u043c\u044f\u0441\u0442\u043e
-DHTView.operations.data=\u0414\u0430\u043d\u043d\u0438
-DHTView.general.reachable=\u0414\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0438:
-DHTView.general.rendezvous=\u0420\u0430\u043d\u0434\u0435\u0432\u0443:
-ConfigView.label.queue.maxactivetorrentswhenseeding=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u043e \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435 \u0441\u0430\u043c\u043e [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-IrcView.title.short=IRC \u041c\u0440\u0435\u0436\u0430
-Views.plugins.IRC.title=IRC - \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f
-Formats.units.alot=\u041c\u043d\u043e\u0433\u043e!!!
-ConfigView.section.ipfilter.persistblocking=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438\u0442\u0435 IP \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438
-FilesView.menu.rename=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0430 \u0446\u0435\u043b
-FilesView.menu.rename_only=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435
-FilesView.menu.retarget=\u041d\u043e\u0432\u0430 \u0446\u0435\u043b
-FilesView.rename.choose.path=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432 \u0438\u043b\u0438 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449 \u0444\u0430\u0439\u043b
-FilesView.rename.choose.path.dir=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u0430 \u0438\u043b\u0438 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-FilesView.rename.confirm.delete.title=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0440\u0438\u0435\u043d\u0435\u0442\u043e
-FilesView.rename.confirm.delete.text=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435 \u0442\u0440\u0438\u0435\u043d\u0435\u0442\u043e \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u043d\u0438\u044f \u0444\u0430\u0439\u043b '%1'
-FilesView.rename.filename.title=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-FilesView.rename.filename.text=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u043e \u0438\u043c\u0435 \u0437\u0430 \u0444\u0430\u0439\u043b
-ConfigView.higher.mode.available=\u041f\u043e\u0432\u0435\u0447\u0435 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u043c\u0430 \u0432 \u043f\u043e-\u0432\u0438\u0441\u043e\u043a\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u0440\u0435\u0436\u0438\u043c\u0438
-ConfigView.section.mode=\u0420\u0435\u0436\u0438\u043c
-ConfigView.section.mode.title=\u041e\u043f\u0438\u0442 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f
-ConfigView.section.mode.beginner=\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0449
-ConfigView.section.mode.beginner.wiki.definitions=\u0420\u0435\u0447\u043d\u0438\u043a \u043d\u0430 BitTorrent
-ConfigView.section.mode.intermediate=\u041d\u0430\u043f\u0440\u0435\u0434\u043d\u0430\u043b
-ConfigView.section.mode.intermediate.wiki.host=\u041f\u043e\u0434\u0441\u043b\u043e\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-ConfigView.section.mode.intermediate.wiki.publish=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-ConfigView.section.mode.advanced=\u0417\u0430\u043f\u043e\u0437\u043d\u0430\u0442
-ConfigView.section.mode.advanced.wiki.main=\u0413\u043b\u0430\u0432\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430 Wiki
-ConfigView.section.mode.beginner.text=\u0412\u0441\u0438\u0447\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438.\n\u0410\u043a\u043e \u0441\u0430\u043c\u043e \u0449\u0435 \u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0438, \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u04 [...]
-ConfigView.section.mode.intermediate.text=\u0414\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430.\n\u0410\u043a\u043e \u0449\u0435 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0432\u0430 \u043c\u0435\u0441\u0442\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440 \u0438 \u0449\u0435 \u0441\u0435 \u043f\u043e\u0434\u0441\u043b\u043e\u043d\u044f\u0432\u0430\u0442/\u043f\u0443\u0431\u043b\u0438\u043a\ [...]
-ConfigView.section.mode.advanced.text=\u0414\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043c\u0440\u0435\u0436\u043e\u0432\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.\n\u0414\u0430 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043f\u0440\u0438 \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 MTU \u0438\u043b\u0438 \u043d\u0435-\u0431\u043b\u043e\u043a\u0438\u0440\u0430\u0449 \u0412/\u0418\u0085\u2026
-Files.column.storagetype=\u0422\u0438\u043f \u0441\u044a\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435
-Files.column.fileext=\u0422\u0438\u043f
-FileItem.storage.linear=\u041b\u0438\u043d\u0435\u0439\u043d\u043e
-FileItem.storage.compact=\u0421\u0431\u0438\u0442\u043e
-MessageBoxWindow.rememberdecision=\u0417\u0430\u043f\u043e\u043c\u043d\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u043e\u0440\u0430
-ConfigView.section.interface.cleardecisions=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u043e\u043c\u043d\u0435\u043d\u0438\u0442\u0435 \u0438\u0437\u0431\u043e\u0440\u0438 \u0432 \u0434\u0438\u0430\u043b\u043e\u0437\u0438\u0442\u0435
-ConfigView.section.interface.cleardecisionsbutton=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435
-ConfigView.section.interface.cleartrackers=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u043e\u043c\u043d\u0435\u043d\u0438 \u0442\u0440\u0430\u043a\u0435\u0440\u0438
-ConfigView.section.interface.cleartrackersbutton=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435
-ConfigView.section.interface.clearsavepaths=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u043e\u043c\u043d\u0435\u043d\u0438\u0442\u0435 \u043f\u044a\u0442\u0438\u0449\u0430 \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-ConfigView.section.interface.clearsavepathsbutton=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435
-configureWizard.welcome.usermodes=\u041e\u043f\u0438\u0442\u044a\u0442 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438 \u043e\u0442 '\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u2192 \u [...]
-FilesView.skip.confirm.delete.text=\u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b '%1' \u0437\u0430 \u0438\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u043d\u0430 \u043c\u044f\u0441\u0442\u043e?
-FilesView.rename.failed.title=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435\u0442\u043e/\u0441\u043c\u044f\u043d\u0430\u0442\u0430 \u043d\u0430 \u0446\u0435\u043b\u0442\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-FilesView.rename.failed.text=\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0437\u0430\u0440\u0430\u0434\u0438 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0438\u0437\u0431\u043e\u0440 \u043d\u0430 \u0446\u0435\u043b
-diagnostics.log_found=\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u0430 \u0441 Vuze \u043d\u0435 \u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e. \u0414\u0430 \u0441\u0435 \u043f\u043e\u0433\u043b\u0435\u0434\u043d\u0435 \u0437\u0430 <A HREF="%1">\u0434\u043d\u0435\u0432\u043d\u0438\u0446\u0438 \u0441 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430</A>. \u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u044 [...]
-ManagerItem.paused=\u0412 \u043f\u0430\u0443\u0437\u0430
-Utils.link.visit=\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438
-ConfigView.section.connection.serverport.wiki=\u0418\u0437\u0431\u0440\u0430\u043d\u0438 \u0434\u043e\u0431\u0440\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\u0435
-ConfigView.section.transfer.speeds.wiki=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0434\u043e\u0431\u0440\u0430 \u0432\u0440\u044a\u0437\u043a\u0430
-installPluginsWizard.installMode.info.title=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-installPluginsWizard.installMode.info.text=\u041d\u0435 \u0441\u0430 \u043d\u0443\u0436\u043d\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438, \u0437\u0430 \u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e Vuze, \u043d\u043e \u0442\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u044f\u0442 \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u04 [...]
-Views.plugins.Distributed.DB.title=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0411\u0414
-Views.plugins.Distributed.Tracker.title=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440
-Views.plugins.Plugin.Update.title=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-Views.plugins.UPnP.title=UPnP \u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430
-Views.plugins.UPnP.title.tooltip=\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u0435\u043d\u043e \u041f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435 \u0438 \u041f\u043e\u043b\u0437\u0432\u0430\u043d\u0435
-openUrl.url.info=\u041f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 HTTP, HTTPS, magnet \u0438 raw hex infohash \u043d\u0438\u0437\u043e\u0432\u0435
-TableColumn.header.swarm_average_completion=\u0421\u0440\u0435\u0434\u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e\u0441\u0442 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-TableColumn.header.swarm_average_completion.info=\u0421\u0440\u0435\u0434\u043d\u0438\u044f\u0442 % \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e\u0441\u0442 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u0442\u0435 \u0432 \u0440\u043e\u044f\u043a\u0430
-GeneralView.label.swarm_average_completion=\u0421\u0440\u0435\u0434\u043d\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e:
-GeneralView.label.swarm_average_completion.tooltip=\u0421\u0440\u0435\u0434\u043d\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u0432 % \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u0442\u0435 \u0432 \u0440\u043e\u044f\u043a\u0430
-MainWindow.nat.status.tooltip.unknown=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0434\u043e\u0301\u0441\u0435\u0433\u0430 \u043f\u0440\u0438 \u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435\u043d\u0430/NAT \u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u043f\u0440\u0435\u0437 TCP
-MainWindow.nat.status.ok=NAT \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-MainWindow.nat.status.tooltip.ok=\u0414\u043e\u0441\u0435\u0433 \u043d\u043e\u0440\u043c\u0430\u043b\u0435\u043d TCP
-MainWindow.nat.status.probok=NAT \u043f\u0440\u043e\u0431\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-MainWindow.nat.status.tooltip.probok=\u0414\u043e\u0441\u0435\u0433\u044a\u0442 \u0431\u0435\u0448\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0435\u043d, \u043d\u043e \u043d\u044f\u043c\u0430 \u0441\u043a\u043e\u0440\u043e\u0448\u043d\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438 TCP \u0432\u0440\u044a\u0437\u043a\u0438
-MainWindow.nat.status.bad=\u0417\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435\u043d\u0430
-MainWindow.nat.status.tooltip.bad=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0434\u043e\u0301\u0441\u0435\u0433\u0430 \u043f\u0440\u0438 \u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435\u043d\u0430/NAT \u043f\u0440\u0435\u0437 TCP. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 Wiki \u0437\u0430 \u043f\u043e\u043c\u043e\u0449
-plugin.installer.recommended.plugin=\u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430\u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 - \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u0433\u043b\u0435\u0434\u0430 \u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430, \u0430\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e
-LoggerView.pause=\u041f\u0430\u0443\u0437\u0430 \u043d\u0430 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0430
-LoggerView.clear=\u0418\u0437&\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435
-LoggerView.filter=\u0424\u0438\u043b\u0442\u044a\u0440
-LoggerView.filter.uncheckAll=\u0412\u0441\u0438\u0447\u043a\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043d\u0435\u043e\u0442\u043c\u0435\u0442\u043d\u0430\u0442\u0438
-LoggerView.filter.checkAll=\u0412\u0441\u0438\u0447\u043a\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043e\u0442\u043c\u0435\u0442\u043d\u0430\u0442\u0438
-LoggerView.loggingDisabled=\u0411\u0435\u0437 \u0434\u043d\u0435\u0432\u043d\u0438\u043a.
-LoggerView.includeOnly=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0435 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f\u0449\u0438 \u043d\u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u0438\u044f \u0438\u0437\u0440\u0430\u0437:
-LoggerView.excludeAll=\u0411\u0435\u0437 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0435 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f\u0449\u0438 \u043d\u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u0438\u044f \u0438\u0437\u0440\u0430\u0437:
-ConfigView.section.logging.log0type=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-ConfigView.section.logging.log1type=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435
-ConfigView.section.logging.log2type=\u0413\u0440\u0435\u0448\u043a\u0430
-ConfigView.section.logging.filter=\u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441 \u0432 \u0434\u043d\u0435\u0432\u043d\u0438\u043a
-ConfigView.section.logging.level=\u041d\u0438\u0432\u043e \u043d\u0430 \u0437\u0430\u043f\u0438\u0441 \u0437\u0430 \u0434\u043d\u0435\u0432\u043d\u0438\u043a\u0430
-ConfigView.section.logging.showLogsFor=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 %1 \u0434\u043d\u0435\u0432\u043d\u0438\u0446\u0438 \u0437\u0430 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438:
-ConfigView.pluginlist.column.loadAtStartup=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-ConfigView.pluginlist.column.type=\u0422\u0438\u043f
-ConfigView.pluginlist.column.type.perUser=\u0417\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b
-ConfigView.pluginlist.column.type.shared=\u0421\u043f\u043e\u0434\u0435\u043b\u0435\u043d
-ConfigView.pluginlist.column.type.builtIn=\u0412\u0433\u0440\u0430\u0434\u0435\u043d
-ConfigView.pluginlist.column.name=\u0418\u043c\u0435
-ConfigView.pluginlist.column.version=\u0412\u0435\u0440\u0441\u0438\u044f
-ConfigView.pluginlist.column.directory=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-ConfigView.pluginlist.column.isOperational=\u0420\u0430\u0431\u043e\u0442\u0438?
-PeersView.BlockView.Avail.Have=\u0418 \u0434\u0432\u0430\u043c\u0430\u0442\u0430 \u0438\u043c\u0430\u0442
-PeersView.BlockView.Avail.NoHave=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f\u0442 \u0438\u043c\u0430; \u043c\u0435\u0441\u0442\u043d\u043e \u043d\u044f\u043c\u0430
-PeersView.BlockView.NoAvail.Have=\u041c\u0435\u0441\u0442\u043d\u043e \u0438\u043c\u0430; \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f\u0442 \u043d\u044f\u043c\u0430
-PeersView.BlockView.NoAvail.NoHave=\u0418 \u0434\u0432\u0430\u043c\u0430\u0442\u0430 \u043d\u044f\u043c\u0430\u0442
-PeersView.BlockView.Transfer=\u041f\u0440\u0435\u043d\u0430\u0441\u044f\u043d\u0435
-PeersView.BlockView.NextRequest=\u0421\u043b\u0435\u0434\u0432\u0430\u0449\u0430 \u0437\u0430\u044f\u0432\u043a\u0430
-PeersView.BlockView.title=\u041a\u0430\u0440\u0442\u0430 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430\u0442\u0430
-PeersView.BlockView.AvailCount=\u0411\u0440\u043e\u044f\u0447 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u043d\u043e
-MyTorrentsView.dialog.NumberError.title=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0437\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442
-MyTorrentsView.dialog.NumberError.text=\u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0430\u0442\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0437\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u0430.
-MyTorrentsView.menu.manual=&\u0420\u044a\u0447\u043d\u043e\u0085
-MyTorrentsView.menu.manual.per_torrent=\u0420\u044a\u0447\u043d\u043e (\u043f\u043e \u0442\u043e\u0440\u0435\u043d\u0442)
-MyTorrentsView.menu.manual.shared_torrents=\u0420\u044a\u0447\u043d\u043e (\u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438)
-MyTorrentsView.dialog.setSpeed.title=\u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u0437\u0430 %1
-# %1 = "in kbps" or ""; %2 = "upload" or "download"
-MyTorrentsView.dialog.setNumber.text=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 %1 \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 %2:
-MyTorrentsView.dialog.setNumber.upload=\u043a\u0430\u0447\u0432\u0430\u043d\u0435
-MyTorrentsView.dialog.setNumber.download=\u0441\u0432\u0430\u043b\u044f\u043d\u0435
-MyTorrentsView.dialog.setNumber.inKbps=\u0432 %1
-OpenTorrentWindow.torrentLocation=\u0422\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0435:
-OpenTorrentWindow.addFiles.URL=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 &URL
-OpenTorrentWindow.addFiles.Folder=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 &\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-OpenTorrentWindow.addFiles.Clipboard=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043e\u0442 \u043a\u043b\u0438\u043f&\u0431\u043e\u0440\u0434\u0430
-OpenTorrentWindow.changeDestination=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0442\u043e
-OpenTorrentWindow.fileList=\u0424\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u0442\u043e\u0440\u0435\u043d\u0442\u0438:
-OpenTorrentWindow.torrentTable.name=\u0418\u043c\u0435
-OpenTorrentWindow.torrentTable.saveLocation=\u041c\u044f\u0441\u0442\u043e \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-OpenTorrentWindow.fileTable.fileName=\u0418\u043c\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-OpenTorrentWindow.fileTable.size=\u0420\u0430\u0437\u043c\u0435\u0440
-OpenTorrentWindow.fileTable.destinationName=\u0418\u043c\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435
-OpenTorrentWindow.startMode.seeding=\u0421\u0435\u0435\u043d\u0435
-OpenTorrentWindow.fileList.changeDestination=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0442\u043e
-OpenTorrentWindow.mb.badSize.title=\u041d\u0435\u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0444\u0430\u0439\u043b
-OpenTorrentWindow.mb.badSize.text='%1' \u043d\u0435 \u0435 '%2' \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0437\u0430 \u0441\u0435\u0435\u043d\u0435
-OpenTorrentWindow.mb.alreadyExists.text=\u0422\u043e\u0440\u0435\u043d\u0442 '%1' \u0432\u0435\u0447\u0435 \u0435 \u0434\u043e\u0431\u0430\u0432\u0435\u043d \u043a\u0430\u0442\u043e '%2'
-OpenTorrentWindow.mb.alreadyExists.default.name=\u041d\u043e\u0441\u0438\u0442\u0435\u043b
-OpenTorrentWindow.mb.alreadyExists.title=\u0422\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u0432\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430
-OpenTorrentWindow.mb.openError.title=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-OpenTorrentWindow.mb.openError.text='%1' \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043e\u0442\u0432\u043e\u0440\u0438:\n%2
-OpenTorrentWindow.torrent.remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430
-OpenTorrentWindow.torrent.options=\u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0449\u0435 \u0441\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0430\u0442 \u043d\u0430 \u0433\u043e\u0440\u0435\u0438\u0437\u0431\u0440\u0430\u043d\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438:
-OpenTorrentWindow.xOfTotal=(%1 \u043e\u0442 %2)
-iconBar.open.tooltip=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442(\u0438)
-LocaleUtil.column.text=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442 \u0442\u0435\u043a\u0441\u0442
-Tracker.tooltip.MultiSupport=\u0422\u043e\u0437\u0438 \u0442\u0440\u0430\u043a\u0435\u0440 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435\u0442\u043e \u0437\u0430 \u0437\u0430\u044f\u0432\u043a\u0430.
-Tracker.tooltip.NoMultiSupport=\u0422\u043e\u0437\u0438 \u0442\u0440\u0430\u043a\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435\u0442\u043e \u0437\u0430 \u0437\u0430\u044f\u0432\u043a\u0430.
-ConfigView.label.lazybitfield=\u041c\u044a\u0440\u0437\u0435\u043b\u0438\u0432\u043e \u0431\u0438\u0442-\u043f\u043e\u043b\u0435 (\u043f\u043e\u043c\u0430\u0433\u0430 \u0441\u0435\u0435\u043d\u0435\u0442\u043e \u0432 \u043c\u0440\u0435\u0436\u0438, \u0432 \u043a\u043e\u0438\u0442\u043e \u0438\u043c\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0435 \u043f\u043e \u0431\u0438\u0442-\u043f\u043e\u043b\u0435)
-LoggerView.realtime=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0440\u0435\u0430\u043b\u043d\u043e \u0432\u0440\u0435\u043c\u0435
-ConfigView.section.file.perf.cache.flushpieces=\u041c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0446\u0435\u043b\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0430. \u0423\u043b\u0435\u0441\u043d\u044f\u0432\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u0430 \u0434\u043e \u0434\u0438\u0441\u043a\u0430, \u043d\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0 [...]
-ConfigView.section.file.writemblimit=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0437\u0430\u044f\u0432\u043a\u0438 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u0432 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 (\u0432 %1)
-ConfigView.section.file.writemblimit.explain=\u041a\u043e\u0433\u0430\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441 \u0432\u044a\u0440\u0445\u0443 \u0434\u0438\u0441\u043a\u0430 \u0435 \u043f\u043e-\u043d\u0438\u0441\u043a\u0430 \u043e\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435, \u0442\u043e\u0437\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a [...]
-ConfigView.section.file.readmblimit=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u043e \u0437\u0430\u044f\u0432\u043a\u0438 \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435 \u0432 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 (\u0432 %1)
-ConfigView.section.file.readmblimit.explain=\u0422\u043e\u0437\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0430\u0432\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u0430\u043c\u0435\u0442, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0430 \u0437\u0430 \u0441\u044a\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0438, \u0447\u0430\u043a\u0430\u0449\u0438 \u0 [...]
-Button.moveUp=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430&\u0433\u043e\u0440\u0435
-Button.moveDown=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430&\u0434\u043e\u043b\u0443
-ConfigView.notAvailableForMode=\u0422\u0430\u0437\u0438 \u0441\u0435\u043a\u0446\u0438\u044f \u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u0430 \u0437\u0430 %1 \u0440\u0435\u0436\u0438\u043c \u0438\u043b\u0438 \u043f\u043e-\u0432\u0438\u0441\u043e\u043a. \u041d\u0435 \u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430 \u0437\u0430 %2 \u0440\u0435\u0436\u0438\u043c.
-health.explain.error=\u0418\u043c\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0442\u043e\u0437\u0438 \u0442\u043e\u0440\u0435\u043d\u0442. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 \u043a\u043e\u043b\u043e\u043d\u0430\u0442\u0430 '\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435' \u0438\u043b\u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430\u0442\u0430 \u0432\u044a\u0440\u0445\u0443 \u0438\u043a\u043e\u043d\u0430\u0442\u0430 \u0437\u0430 \u [...]
-GeneralView.label.trackerscrapeupdate=\u041e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430
-PeersView.piece=\u041f\u0430\u0440\u0447\u0435
-PeersView.piece.info=\u2116 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u043f\u0430\u0440\u0447\u0435 \u043f\u043e\u0438\u0441\u043a\u0430\u043d\u043e \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PiecesView.priority=\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-PiecesView.priority.info=\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0432\u0430 \u043f\u0430\u0440\u0447\u0435, \u043d\u043e \u043d\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435
-PiecesView.speed=\u0421\u043a\u043e\u0440\u043e\u0441\u0442
-PiecesView.speed.info=\u041f\u043e-\u0431\u0430\u0432\u043d\u0438\u0442\u0435 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u043c\u043d\u043e\u0433\u043e \u0434\u0430 \u0441\u0435 \u0431\u044a\u0440\u043a\u0430\u0442 \u0432 \u043f\u043e-\u0431\u044a\u0440\u0437\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-TableColumn.header.AvgAvail.info=\u0421\u0443\u043c\u0430 \u043e\u0442 \u043d\u0430\u043b\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438 \u043d\u0430 \u0431\u0440. \u043f\u0430\u0440\u0447\u0435\u0442\u0430 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438 \u043d\u0430 \u0431\u0440. \u0432\u0440\u044a\u0437\u043a\u0438
-TableColumn.header.AvgAvail=\u0421\u0440. \u043d\u0430\u043b./\u043f\u0430\u0440\u0447\u0435
-ConfigView.label.strictfilelocking=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u0437\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441\u0440\u0435\u0434 \u0442\u043e\u0440\u0435\u043d\u0442\u0438\u0442\u0435
-MyTorrentsView.menu.checkfilesexist=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-MyTorrentsView.menu.rescanfile=\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043d\u0435\u043f\u044a\u043b\u043d\u0438\u0442\u0435 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-MyTorrentsView.menu.clear_resume_data=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0430\u0432\u0430\u043d\u0435
-Plugin.extseed.name=\u0412\u044a\u043d\u0448\u043d\u0438 \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-Plugin.localtracker.name=\u0422\u044a\u0440\u0441\u0430\u0447 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0432 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430
-Plugin.localtracker.info=\u0422\u044a\u0440\u0441\u0430\u0447\u044a\u0442 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0432 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043f\u0438\u044f \u043d\u0430 Vuze \u0437\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043d\u0430 \u0441\u0442\u0435 [...]
-Plugin.localtracker.enable=\u0421 \u0442\u044a\u0440\u0441\u0430\u0447 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0432 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430
-azinstancehandler.alert.portclash=\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442\u043e\u0432\u0435 \u0432 \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0440\u0435\u0436\u0430: %1 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 Vuze \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b, \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u043d\u043e\u0432 \u043f\u0440\u [...]
-ConfigView.section.transfer.lan=\u041b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.transfer.lan.tooltip=\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.transfer.lan.uploadrate=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430 KB/s [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.transfer.lan.uploadrate.tooltip=\u0412\u0440\u044a\u0437\u043a\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0432 \u0441\u044a\u0449\u0430\u0442\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430 \u0438\u043c\u0430\u0442 \u043e\u0442\u0434\u0435\u043b\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u0442\u043d\u043e\u0448\u04 [...]
-ConfigView.section.transfer.lan.downloadrate=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430 KB/s [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.transfer.lan.downloadrate.tooltip=\u0412\u0440\u044a\u0437\u043a\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0432 \u0441\u044a\u0449\u0430\u0442\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430 \u0438\u043c\u0430\u0442 \u043e\u0442\u0434\u0435\u043b\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u0442\u043d\u043e\u0448\u [...]
-TorrentOptionsView.title.short=\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438
-TorrentOptionsView.title.full=\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438
-TorrentOptionsView.param.max.peers=\u041c\u0430\u0441\u043a\u0438\u043c\u0443\u043c \u0431\u0440\u043e\u0439 \u0432\u0440\u044a\u0437\u043a\u0438 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.connection.encryption.require_encrypted_transport=\u0418\u0437\u0438\u0441\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442
-ConfigView.section.connection.encryption.require_encrypted_transport.tooltip=\u041d\u0430\u0441\u0438\u043b\u0441\u0442\u0432\u0435\u043d\u0430 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0430 \u043d\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438 \u0432\u0440\u044a\u0437\u043a\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438.
-ConfigView.section.connection.encryption.min_encryption_level=\u041d\u0430\u0439-\u043d\u0438\u0441\u043a\u043e \u043d\u0438\u0432\u043e \u043d\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430
-ConfigView.section.connection.encryption.min_encryption_level.tooltip=\u041f\u0440\u043e\u0441\u0442\u043e - \u0441\u0430\u043c\u043e \u0437\u0430 \u0440\u044a\u043a\u043e\u0441\u0442\u0438\u0441\u043a\u0430\u043d\u0435\nRC4 - \u043f\u044a\u043b\u0435\u043d \u043f\u043e\u0442\u043e\u043a\n\u041f\u043e-\u0432\u0438\u0441\u043e\u043a\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043f\u0440\u043e\u044 [...]
-Peers.column.Encryption=\u0428\u0438\u0444\u0440\u043e\u0432\u043a\u0430
-Peers.column.Encryption.info=\u041d\u0438\u0432\u043e \u043d\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u043e
-ConfigView.section.connection.encryption.encrypt.info=\u0410\u043a\u043e \u0435 \u0432 \u0441\u0438\u043b\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430, \u043d\u044f\u043c\u0430 \u0434\u0430 \u0435 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0441 \u043d\u0435\u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0438, \u043e\u0441\u0432\u0435\u043d \u0430\u043a\u043e \u043d\u0435 [...]
-ConfigView.section.connection.encryption.encrypt.info.link=\u0417\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0434\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438
-MainWindow.sr.status.tooltip.ok=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 %1 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e
-MainWindow.sr.status.tooltip.poor=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 %1 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e: <0,9
-MainWindow.sr.status.tooltip.bad=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 %1 \u043b\u043e\u0448\u043e: <0,5
-ConfigView.section.style.status=\u0417\u043e\u043d\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e:
-ConfigView.section.style.status.show_sr=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-ConfigView.section.style.status.show_nat=NAT \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-ConfigView.section.style.status.show_ddb=\u0420\u0411\u0414 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-ConfigView.section.style.status.show_ipf=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 IPFilter
-ConfigView.section.connection.encryption.encrypt.group=\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0435/\u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435
-ConfigView.section.connection.encryption.encrypt.fallback_info=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0441\u044f\u043a\u0430 \u043e\u043f\u0446\u0438\u044f \u0437\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u043b\u0435\u043d\u0438\u0435 \u0449\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438 \u0432\u0440\u044a\u0437\u043a\u0438 \u0434\u043e \u043d\u0435\u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u043a\u043b\u04 [...]
-ConfigView.section.connection.encryption.encrypt.fallback_outgoing=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438 \u0432\u0440\u044a\u0437\u043a\u0438, \u0430\u043a\u043e \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0430 \u0432\u0440\u044a\u043 [...]
-ConfigView.section.connection.encryption.encrypt.fallback_incoming=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438 \u0432\u0440\u044a\u0437\u043a\u0438
-ConfigView.section.connection.encryption=\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0435
-upnp.selectedinterfaces=\u0418\u0437\u0431\u0440\u0430\u043d\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0438 (\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b ';', \u043f\u0440. eth0;eth1) [\u043f\u0440\u0430\u0437\u043d\u043e: \u0432\u0441\u0438\u0447\u043a\u0438]
-ConfigView.section.style.defaultSortOrder=\u041f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.style.defaultSortOrder.desc=\u041d\u0438\u0437\u0445\u043e\u0434\u044f\u0449\u043e
-ConfigView.section.style.defaultSortOrder.asc=\u0412\u044a\u0437\u0445\u043e\u0434\u044f\u0449\u043e
-ConfigView.section.style.defaultSortOrder.flip=\u041e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u043f\u0440\u0435\u0434\u0438\u0448\u043d\u0438\u044f \u0440\u0435\u0434
-LoggerView.autoscroll=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u0432\u044a\u0440\u0442\u0430\u043d\u0435
-Button.selectAll=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e
-Button.markSelected=\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u043e\u0442\u043e
-Button.unmarkSelected=\u0414\u0435\u043c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u043e\u0442\u043e
-plugins.basicview.config=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
-TorrentOptionsView.param.max.uploads=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0431\u0440\u043e\u0439 \u0433\u043d\u0435\u0437\u0434\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 [\u043c\u0438\u043d\u0438\u043c\u0443\u043c: 2]
-MyTorrentsView.dialog.setPosition.title=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f
-MyTorrentsView.dialog.setPosition.text=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438:
-MyTorrentsView.menu.reposition.manual=\u041f\u0440\u0435\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0430\u043d\u0435\u0085\u2026
-ConfigView.section.connection.advanced.info.link=\u0417\u0430 \u0434\u0435\u0442\u0430\u0439\u043b\u0438 \u0434\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438
-ConfigView.section.connection.advanced.socket.group=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0446\u043e\u043a\u044a\u043b
-ConfigView.section.connection.advanced.bind_port=\u041f\u0440\u0438\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043a\u044a\u043c \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u043f\u043e\u0440\u0442 [0: \u0431\u0435\u0437]
-ConfigView.section.connection.advanced.bind_port.tooltip=\u0412\u0440\u044a\u0437\u043a\u0438\u0442\u0435 \u043d\u0430 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438\u044f \u0446\u043e\u043a\u044a\u043b \u0449\u0435 \u0441\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u043e \u043f\u0440\u0438\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u043a\u044a\u043c \u0434\u0430\u0434\u0435\u043d \u043f\u043e\u0440\u0442.\n\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435\u0442\u043e \ [...]
-ConfigView.section.proxy.group.tracker=\u0422\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438
-ConfigView.section.proxy.group.peer=\u041a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-Pieces.column.Requested=\u0417\u0430\u044f\u0432\u0435\u043d\u043e
-Pieces.column.Requested.info=\u041f\u043e\u043a\u0430\u0437\u0432\u0430 \u043c\u043e\u0436\u0435 \u043b\u0438 \u043f\u043e\u0432\u0435\u0447\u0435 \u0437\u0430\u044f\u0432\u043a\u0438 \u0434\u0430 \u0441\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u044f\u0442 \u0437\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u043e \u0438\u043b\u0438 \u043d\u0435 (*)
-ConfigView.label.maxuploadsseeding=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u043e\u0442\u043e \u0441\u0435 \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435
-MyTorrentsView.filter=\u0424\u0438\u043b\u0442\u044a\u0440:
-popup.error.hideall=\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e
-ConfigView.section.style.dataStatsOnly=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438 (\u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u0437\u0438 \u0437\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b)
-ConfigView.section.style.separateProtDataStats=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u0430\u0442\u043e '\u0434\u0430\u043d\u043d\u0438 (\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b)'
-MyTorrentsView.dialog.setFilter.title=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0444\u0438\u043b\u0442\u044a\u0440\u0430
-MyTorrentsView.dialog.setFilter.text=\u0421\u0435\u043a\u0446\u0438\u044f %1 \u0449\u0435 \u0431\u044a\u0434\u0435 \u0444\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0430 \u0441\u043f\u043e\u0440\u0435\u0434 \u0432\u044a\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442. \u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b | (pipe) \u0437\u0430 \u0444\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u04 [...]
-MyTorrentsView.filter.tooltip=Ctrl+X \u043f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0432\u0430 \u043c\u0435\u0436\u0434\u0443 RegEx \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u0438 \u043d\u0430\u0447\u0438\u043d\u0438 \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435.\n\u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b | (pipe) \u0437\u0430 \u0444\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043f\u043 [...]
-MyTorrentsView.clearFilter.tooltip=\u0411\u0435\u0437 \u0444\u0438\u043b\u0442\u044a\u0440
-MyTorrentsView.menu.filter=\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0444\u0438\u043b\u0442\u0440\u0438\u0085
-ConfigView.section.file.resume.recheck.all=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u0438 \u043d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u043d\u0430 \u0446\u0435\u043b\u0438\u044f \u0444\u0430\u0439\u043b \u0437\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430\n(\u0438\u043d\u0430\u0447\u0435 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0 [...]
-ConfigureWizard.language.choose=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0435\u0437\u0438\u043a \u043e\u0442 \u0441\u043b\u0435\u0434\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u044a\u043a:
-popup.closing.in=\u0421\u0430\u043c\u043e\u0437\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u0430 \u0441\u043b\u0435\u0434 %1 \u0441\u0435\u043a.
-popup.more.waiting=\u041e\u0449\u0435 %1 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435(\u044f)\u0085\u2026
-# > 2402
-popup.next=\u2192
-popup.previous=\u2190 (%1)
-popup.download.finished=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0437\u0430 "%1".
-popup.file.finished=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0437\u0430 "%1".
-ConfigView.auto=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e
-Plugin.localtracker.autoadd.info=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043c\u0435\u0441\u0442\u043d\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 (';' \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438 \u0430\u0434\u0440\u0435\u0441\u0438, \u043f\u0440. 1.2.3.4)
-Plugin.localtracker.autoadd=\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-Plugin.localtracker.networks.info=\u0421\u0447\u0438\u0442\u0430\u043d\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043c\u0440\u0435\u0436\u0438 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0438 (';' \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438 \u043c\u0440\u0435\u0436\u0438, \u043f\u0440. 145.227.*.*)
-Plugin.localtracker.networks=\u041b\u043e\u043a\u0430\u043b\u043d\u0438 \u043c\u0440\u0435\u0436\u0438
-MainWindow.menu.view.plugins.logViews=\u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0434\u043d\u0435\u0432\u043d\u0438\u0446\u0438
-SpeedView.stats.autospeed=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-SpeedView.stats.autospeed.disabled=\u0422\u0430\u0437\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 \u0435 \u0438\u043b\u0438 \u0441\u043f\u0440\u044f\u043d\u0430 (\u0442\u0440\u044f\u0431\u0432\u0430 \u0420\u0411\u0414), \u0438\u043b\u0438 \u043d\u0435 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 (\u0440\u044a\u0447\u043d\u043e \u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\ [...]
-SpeedView.stats.idlePing=\u041d\u0435\u043d\u0430\u0442\u043e\u0432\u0430\u0440\u0435\u043d \u043f\u0438\u043d\u0433:
-SpeedView.stats.maxPing=\u041c\u0430\u043a\u0441. \u043f\u0438\u043d\u0433:
-SpeedView.stats.currentPing=\u0422\u0435\u043a\u0443\u0449 \u043f\u0438\u043d\u0433:
-SpeedView.stats.maxUp=\u041c\u0430\u043a\u0441. \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0441:
-ConfigView.pluginlist.unloadSelected=\u0420\u0430\u0437\u0442\u043e\u0432\u0430\u0440\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u0438\u0442\u0435
-ConfigView.pluginlist.scan=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430 \u043d\u043e\u0432\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-ConfigView.section.transfer.autospeed=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442
-ConfigView.section.transfer.autospeed.tooltip=\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442
-ConfigView.section.transfer.autospeed.info=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430\u0442\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u043c\u0435\u043d\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0437\u0430 \u0438\u0437\u0431\u044f\u0433\u0432\u0430\u043d\u0435 \u043f\u0440\u0435\u043d\u0430\u0442\u [...]
-ConfigView.section.transfer.autospeed.minupload=%1 \u043c\u0438\u043d. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-ConfigView.section.transfer.autospeed.minupload.tooltip=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0435 \u043d\u0430\u043c\u0430\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u043e\u0434 \u0442\u0430\u0437\u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0430
-ConfigView.section.transfer.autospeed.maxupload=%1 \u043c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-ConfigView.section.transfer.autospeed.maxupload.tooltip=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043d\u0430\u0434 \u0442\u0430\u0437\u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0430
-ConfigView.section.transfer.autospeed.chokeping=Ping \u0432\u0440\u0435\u043c\u0435 \u043f\u0440\u0438 \u0441\u043f\u043e\u0434\u0430\u0432\u044f\u043d\u0435 [ms]
-ConfigView.section.transfer.autospeed.chokeping.tooltip=Ping \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0432 \u0434\u043e\u0431\u0430\u0432\u043a\u0430 \u043a\u044a\u043c \u0442\u0430\u0437\u0438 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u0449\u0435 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430\u0442 \u043a\u0430\u0442\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430 \u043c\u0440\u0435\u0436\u043e\u0432\u043e \u043d\u0430\u0441\u0438\u0449\u0430\u043d\u0435
-ConfigView.section.transfer.autospeed.enableauto=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0438 \u0441\u0435\u0435\u043d\u0435
-ConfigView.section.transfer.autospeed.enableautoseeding=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435
-ConfigView.pluginlist.column.unloadable=\u041c\u043e\u0436\u0435 \u0434\u0430 \u043d\u0435 \u0441\u0435 \u0437\u0430\u0440\u0435\u0436\u0434\u0430
-ConfigView.section.transfer.lan.enable=\u0421 \u043e\u0442\u0434\u0435\u043b\u043d\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u043d\u0438\u0442\u0435 \u043c\u0440\u0435\u0436\u043e\u0432\u0438 \u0432\u0440\u044a\u0437\u043a\u0438
-Plugin.localtracker.wellknownlocals=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 loopback/link/site \u043b\u043e\u043a\u0430\u043b\u043d\u0438 \u043c\u0440\u0435\u0436\u0438 (192.168 \u0438 \u0442.\u043d.)
-TableColumn.header.filesdone=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-TableColumn.header.filesdone.info=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435/\u043e\u0431\u0449\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0418\u041b\u0418 \u043d\u0435-\u043f\u0440\u043e\u043f\u0443\u0441\u043d\u0430\u0442\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 (\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435)/\u043e\u0431\u0449\u043e \u043d\u0435-\u043f\u0440\u043e [...]
-MagnetPlugin.private_torrent=<\u0447\u0430\u0441\u0442\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442>
-MagnetPlugin.decentral_disabled=<\u0431\u0435\u0437 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435>
-MagnetPlugin.decentral_backup_disabled=<\u0431\u0435\u0437 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d \u0437\u0430\u043f\u0430\u0300\u0441>
-MagnetPlugin.report.waiting_ddb=\u0438\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0420\u0411\u0414\u2026
-MagnetPlugin.report.searching=\u0442\u044a\u0440\u0441\u0435\u043d\u0435\u2026
-MagnetPlugin.report.found=\u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 %1
-MagnetPlugin.report.alive=%1 \u0435 \u0436\u0438\u0432
-MagnetPlugin.report.dead=%1 \u0435 \u043c\u044a\u0440\u0442\u044a\u0432
-MagnetPlugin.report.tunnel=\u043f\u043e \u0442\u0443\u043d\u0435\u043b \u0434\u043e %1
-MagnetPlugin.report.downloading=\u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043e\u0442 %1
-MagnetPlugin.report.error=\u0433\u0440\u0435\u0448\u043a\u0430 %1
-MagnetURLHandler.report.no_sources=\u043d\u044f\u043c\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 \u0438\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-MagnetURLHandler.report.torrent_size=\u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442: %1
-MagnetURLHandler.report.percent=\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e: %1%
-MagnetURLHandler.report.error=\u0433\u0440\u0435\u0448\u043a\u0430 %1
-DHTTransport.report.request_all=\u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0446\u0435\u043b\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 \u043e\u0442 %1
-DHTTransport.report.received_bit=\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e %1 \u0434\u043e %2 \u043e\u0442 %3
-DHTTransport.report.complete=\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-DHTTransport.report.timeout=\u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0432\u0430\u043d\u0435, \u043d\u044f\u043c\u0430 \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u0438 \u043e\u0442 %1
-DHTTransport.report.rerequest_all=\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0446\u0435\u043b\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 \u043e\u0442 %1
-DHTTransport.report.rerequest_bit=\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 %1 \u0434\u043e %2 \u043e\u0442 %3
-DHTTransport.report.timeout_some=\u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0432\u0430\u043d\u0435, %1 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438 \u043f\u0430\u043a\u0435\u0442\u0438 \u043e\u0442 %2, \u043d\u043e \u043d\u0435\u043f\u044a\u043b\u043d\u0438
-DHTTransport.report.sending=\u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438
-DHTTransport.report.resending=\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438
-DHTTransport.report.send_complete=\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435
-DHTTransport.report.send_timeout=\u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435\u0442\u043e
-ConfigView.section.transfer.autospeed.enabledebug=\u0417\u0430\u043f\u0438\u0441 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u0432 \u0434\u043d\u0435\u0432\u043d\u0438\u043a
-TableColumn.header.date_added=\u0414\u0430\u0442\u0430 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-TableColumn.header.date_added.info=\u0414\u0430\u0442\u0430 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.section.file.hashchecking.smallestfirst=\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043d\u0430\u0439-\u043c\u0430\u043b\u043a\u0438\u0442\u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f \u043f\u044a\u0440\u0432\u043e
-platform.win32.baddll.info=Vuze \u043e\u0442\u043a\u0440\u0438 \u043f\u0440\u0438\u0441\u044a\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u043d\u0430 '%1'. \u0422\u043e\u0432\u0430 \u0435 \u0447\u0430\u0441\u0442 \u043e\u0442 '%2' \u0438 \u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044f\u0432\u0430 \u0442\u0440\u0430\u0439\u043d\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u043a\u0430\u0442\u043e \u0441\u043f\u0438\ [...]
-platform.win32.baddll.niphk=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Norman Anti-Virus
-platform.win32.baddll.nvappfilter=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 NVidia Firewall
-platform.win32.baddll.netdog=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Armor2net Personal Firewall
-platform.win32.baddll.vlsp=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Venturi Firewall
-platform.win32.baddll.imon=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 NOD32
-platform.win32.baddll.sarah=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 FRITZ! Application Layer Firewall
-platform.win32.baddll.MxAVLsp=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 VCom Fix-It Utilities
-platform.win32.baddll.mclsp=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 McAfee Privacy Service
-platform.win32.baddll.radhslib=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Naomi Internet Filter (Radiant)
-platform.win32.baddll.nl_lsp=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 NetLimiter
-platform.win32.baddll.winsflt=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 PureSight Internet Content Filter
-platform.win32.baddll.AxShlex=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Alcohol 120%
-platform.win32.baddll.iFW_Xfilter=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 iolo Personal Firewall
-platform.win32.baddll.gapsp=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Neoteris
-platform.win32.baddll.WSOCKHK=\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Net Nanny
-upnp.ignorebaddevices=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0438\u0442\u043e \u043d\u0435 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e
-upnp.ignorebaddevices.info=\u0422\u0435\u043a\u0443\u0449\u043e \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u043d\u0430\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430: %1
-upnp.ignorebaddevices.reset=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u043d\u0430\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-upnp.ignorebaddevices.reset.action=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-upnp.ignorebaddevices.alert=UPnP \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043d\u0430\u043c\u0438\u0440\u0430\u0449\u043e \u0441\u0435 \u043d\u0430 %1 \u0435 \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u043d\u0430\u0442\u043e \u043f\u043e\u0440\u0430\u0434\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0438 \u043f\u0440\u043e\u0432\u0430\u043b\u0438. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u04 [...]
-TorrentOptionsView.param.max.uploads.when.busy=KB/s \u043c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u043d\u0435 \u043d\u0430 \u0433\u043b\u043e\u0431\u0430\u043b\u043d\u043e\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 [0: \u0438\u0437\u043a\u043b\u044e\u0447\u04 [...]
-UpdateMonitor.messagebox.verification.failed.title=\u041f\u0440\u043e\u0432\u0430\u043b \u0432 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430
-UpdateMonitor.messagebox.verification.failed.text=\u0423\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 '%1' \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438: %2
-UpdateMonitor.messagebox.accept.unverified.title=\u041f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0435\u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f
-UpdateMonitor.messagebox.accept.unverified.text=\u041d\u0435 \u043c\u043e\u0436\u0430 \u0434\u0430 \u0441\u0435 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0438, \u0447\u0435 '%1' \u0435 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0430 Vuze.\n\u0410\u043a\u043e \u043d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u0435 \u0442\u0430\u043a\u0430, \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430 \ [...]
-FileView.BlockView.title=\u0424\u0430\u0439\u043b\u043e\u0432\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-FileView.BlockView.Done=\u0413\u043e\u0442\u043e\u0432\u0438
-FileView.BlockView.Skipped=\u041f\u0440\u043e\u043f\u0443\u0441\u043d\u0430\u0442\u0438
-FileView.BlockView.Active=\u0410\u043a\u0442\u0438\u0432\u043d\u0438
-FileView.BlockView.Outstanding=\u041e\u0441\u0442\u0430\u043d\u0430\u043b\u0438
-ConfigView.label.tcplistenport=\u0412\u0445\u043e\u0434\u044f\u0449 TCP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0441\u043b\u0443\u0448\u0430\u043d\u0435
-ConfigView.label.udplistenport=UDP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0441\u043b\u0443\u0448\u0430\u043d\u0435
-upnp.portchange.alert=\u0421\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u043f\u043e\u0440\u0442\u043e\u0432\u0435 \u0441\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0435\u043d\u0438 \u0437\u0430 \u0438\u0437\u0431\u044f\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441 UPnP \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: %1 [\u0441\u0442\u0430\u0440 \u043f\u043e\u0440\u0442=%2] %3 [\u0441\u0442\u0430\u0440 \u043f\u043e\u0440\ [...]
-ConfigView.section.proxy.username.info=\u0410\u043a\u043e \u0441\u044a\u0440\u0432\u044a\u0440\u044a\u0442-\u043f\u044a\u043b\u043d\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043b\u0438\u0447\u043d\u043e\u0441\u0442, \u0442\u043e \u0434\u043e\u0440\u0438, \u043a\u043e\u0433\u0430\u0442\u043e \u0435 \u0434\u0435\u0444\u0438\u043d\u0438\u [...]
-ConfigView.label.maxuploadswhenbusymin=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043f\u043e \u0442\u043e\u0440\u0435\u043d\u0442 \u043f\u0440\u0438 \u0437\u0430\u0435\u0442\u043e \u0442\u0430\u0439\u043c\u0435\u0440 [s]
-MainWindow.menu.help.debug=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438
-DownloadManager.error.badsize=\u041d\u0435\u0432\u0435\u0440\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440
-ConfigView.section.NATPMP=NAT-PMP \u0437\u0430 \u041c\u0430\u043a
-natpmp.info=NAT-PMP \u0435 \u0430\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u0442\u0430 \u043d\u0430 Apple \u0437\u0430 UPnP \u0438 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u043e\u0442 \u043f\u043e-\u043d\u043e\u0432\u0438\u0442\u0435 Airport \u0441\u0442\u0430\u043d\u0446\u0438\u0438\n\nUPnP \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0443\u0441\u043d\u0430\u0442\u043e, \u0437\u0430 \u0434\u0430 \u0441\u0435 [...]
-natpmp.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435 (\u0449\u0435 \u0440\u0430\u0431\u043e\u0442\u0438, \u0430\u043a\u043e \u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 Airport \u0441\u0442\u0430\u043d\u0446\u0438\u044f\u0442\u0430)
-ConfigView.section.tracker.host.addurls=\u0423\u0442\u0432\u044a\u0440\u0436\u0434\u0430\u0432\u0430\u043d\u0435, \u0447\u0435 \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u0442\u0435 URL-\u0442\u0430 \u043f\u0440\u0438\u0441\u044a\u0441\u0442\u0432\u0430\u0442 \u0432 \u043f\u043e\u0434\u0441\u043b\u043e\u043d\u0435\u043d\u0438\u0442\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-ConfigView.filter=\u0442\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-ConfigView.section.files.move=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435\u0442\u043e
-ConfigView.section.file.defaultdir.section=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-ConfigView.section.file.defaultdir.auto=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 (\u0431\u0435\u0437 \u043f\u043e\u0434\u0441\u0435\u0449\u0430\u043d\u0435)
-ConfigView.section.file.defaultdir.bestguess=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0430\u0439-\u0434\u043e\u0431\u0440\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0438\u0437\u0431\u043e\u0440 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0 [...]
-ConfigView.section.file.defaultdir.ask=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435:
-ConfigView.section.file.defaultdir.lastused=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0434\u0430 \u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u043e\u0442\u043e \u043c\u044f\u0441\u0442\u043e, \u0432 \u043a\u043e\u0435\u0442\u043e \u0435 \u0437\u0430\u043f\u0430\u0437\u0432\u0 [...]
-ConfigView.section.file.config.section=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
-ConfigView.section.file.config.currentdir=\u0422\u0435\u043a\u0443\u0449\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f:
-ConfigView.section.torrent.decoding=\u0414\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043d\u0438 \u043d\u0430\u0431\u043e\u0440\u0438
-ConfigView.section.logging.udptransport=\u0421 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 UDP \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430
-Tracker.announce.ignorePeerSeed=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u0431\u0440\u043e\u044f \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438/\u043f\u043e\u0441\u044f\u0432\u043a\u0438. %1
-ConfigView.section.connection.encryption.use_crypto_port=\u0414\u0430 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 'cryptoport' \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u043e \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0437\u0430 \u0434\u0430 \u043d\u044f\u043c\u0430 \u043e\u043f\u0438\u0442\u0438 \u0437\u0430 \u043f\u0440\u043e\u0441\u0442\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438 \u0432\u0440\u044a\u0437\u043a\u0438. \u041d\u044f\u043a\u043e\u0438 [...]
-TorrentOptionsView.param.reset.to.default=\u0412\u0440\u044a\u0449\u0430\u043d\u0435 \u043d\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u043a\u044a\u043c \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-TorrentOptionsView.param.reset.button=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-natpmp.routeraddress=\u0410\u0434\u0440\u0435\u0441 \u043d\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u044f [\u043f\u0440\u0430\u0437\u043d\u043e: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e]
-ConfigView.section.style.disableAlertSliding=\u0411\u0435\u0437 \u043f\u0440\u0438\u043f\u043b\u044a\u0437\u0432\u0430\u0449\u0430 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0438 \u043f\u0440\u0438\u043f\u043e\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u043d\u0438\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f
-ConfigView.section.transfer.autospeed.maxinc=%1 \u043c\u0430\u043a\u0441. \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u0446\u0438\u043a\u044a\u043b
-ConfigView.section.transfer.autospeed.maxdec=%1 \u043c\u0430\u043a\u0441. \u043d\u0430\u043c\u0430\u043b\u0435\u043d\u0438\u0435 \u0437\u0430 \u0446\u0438\u043a\u044a\u043b
-ConfigView.section.transfer.autospeed.enabledownadj=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-ConfigView.section.transfer.autospeed.downadjratio=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435:\u043a\u0430\u0447\u0432\u0430\u043d\u0435\n(\u043f\u0440. 2.0 \u2192 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0435 \u0443\u0434\u0432\u043e\u0435\u043d\u043e\u0442\u043e \u [...]
-ConfigView.section.transfer.autospeed.latencyfactor=\u0424\u0430\u043a\u0442\u043e\u0440 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u043c\u044f\u043d\u0430\u0442\u0430 \u043d\u0430 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0442\u0430 \u0438 \u043f\u0440\u043e\u043c\u044f\u043d\u0430\u0442\u0430 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0 [...]
-ConfigView.section.transfer.autospeed.reset=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438
-ConfigView.section.transfer.autospeed.reset.button=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-PeerColumn.activationCount=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u043e\u043f\u0438\u0442\u0432\u0430\u0449\u0438 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0430\u0442: %1
-TableColumn.header.timesincedownload.info=\u0412\u0440\u0435\u043c\u0435 \u043e\u0442\u043a\u0430\u043a\u0442\u043e \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0441\u0430 \u0441\u0432\u0430\u043b\u0435\u043d\u0438
-TableColumn.header.timesincedownload=\u0412\u0440\u0435\u043c\u0435 \u0441\u043b\u0435\u0434 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-TableColumn.header.timesinceupload.info=\u0412\u0440\u0435\u043c\u0435\u0442\u043e \u043e\u0442\u043a\u0430\u043a\u0442\u043e \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0441\u0430 \u043a\u0430\u0447\u0435\u043d\u0438
-TableColumn.header.timesinceupload=\u0412\u0440\u0435\u043c\u0435 \u0441\u043b\u0435\u0434 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-PeersView.incomingreqcount=\u0412\u0445. \u0437\u0430\u044f\u0432\u043a\u0438
-PeersView.incomingreqcount.info=\u0411\u0440\u043e\u0439 \u0432\u0445\u043e\u0434\u044f\u0449\u0438 \u0437\u0430\u044f\u0432\u043a\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u0435\u043d\u0438 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PeersView.outgoingreqcount=\u0418\u0437\u0445. \u0437\u0430\u044f\u0432\u043a\u0438
-PeersView.outgoingreqcount.info=\u0411\u0440\u043e\u0439 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438 \u0437\u0430\u044f\u0432\u043a\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u0435\u043d\u0438 \u043a\u044a\u043c \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-upnp.mapping.trackerclientudp=UDP \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438 \u043f\u043e\u0440\u0442
-upnp.mapping.dhtudp=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438
-ConfigView.section.connection.nondata.udp.same=\u0415\u0434\u0438\u043d \u0438 \u0441\u044a\u0449 UDP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0420\u0411\u0414 \u0438 UDP \u0442\u0440\u0430\u043a\u0435\u0440
-ConfigView.section.connection.tcp.enable=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 TCP
-ConfigView.section.connection.udp.enable=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 UDP
-ConfigView.section.style.showiconbar=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438
-MainWindow.menu.view.iconbar=\u041b\u0435\u043d\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438
-MyTorrentsView.menu.rename=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435
-MyTorrentsView.menu.rename.displayed=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e\u0442\u043e \u0438\u043c\u0435
-MyTorrentsView.menu.rename.save_path=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u044a\u0442\u044f \u0437\u0430 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-AdvRenameWindow.title=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-AdvRenameWindow.message=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u043d\u043e\u0432\u043e \u0438\u043c\u0435 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435.
-AdvRenameWindow.rename.torrent=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-MyTorrentsView.menu.rename.displayed.enter.title=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e\u0442\u043e \u0438\u043c\u0435
-MyTorrentsView.menu.rename.displayed.enter.message=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u043e \u0438\u043c\u0435 \u0437\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435.
-MyTorrentsView.menu.edit_comment=\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-MyTorrentsView.menu.edit_comment.enter.title=\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-MyTorrentsView.menu.edit_comment.enter.message=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435.
-UIDebugGenerator.messageask.title=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u0434\u043e\u043a\u043b\u0430\u0434 \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438
-UIDebugGenerator.messageask.text=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0430\u0442\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442
-UIDebugGenerator.complete.title=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0434\u043e\u043a\u043b\u0430\u0434 \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438
-UIDebugGenerator.complete.text=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u0440\u0430\u0442\u0438 \u0444\u0430\u0439\u043b '%1' \u0434\u043e az-bugreports at Vuze-inc.com\n\n\u0414\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 '\u0414\u0430' \u0437\u0430 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u043a\u044a\u043c \u0442\u043e\u0437\u0438 \u0444\u0430\u0439\u043b.
-ConfigView.section.style.showProgramIcon=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043d\u0430 \u0438\u043a\u043e\u043d\u0430 \u0432 \u043a\u043e\u043b\u043e\u043d\u0430\u0442\u0430 \u0437\u0430 \u0438\u043c\u0435
-ConfigView.section.style.showProgramIcon.tooltip=\u0418\u0437\u0433\u043b\u0435\u0434\u044a\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043e\u0442\u043d\u043e\u0432\u043e, \u0437\u0430 \u0434\u0430 \u0432\u043b\u044f\u0437\u0430\u0442 \u0432 \u0441\u0438\u043b\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0438\u0442\u0435
-swt.alert.cant.update=SWT \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u0437\u0430\u0440\u0435\u0434\u0435\u043d\u0430 \u043e\u0442 "%3" \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u044f %1 \u043a\u044a\u043c %2 (\u0434\u0430 \u0441\u0435 \u [...]
-authenticator.savepassword=\u0417\u0430\u043f\u043e\u043c\u043d\u044f\u043d\u0435 \u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430
-ConfigView.section.security.clearpasswords=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0437\u0430\u043f\u043e\u043c\u043d\u0435\u043d\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0438
-ConfigView.section.security.clearpasswords.button=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-TorrentInfoView.torrent.encoding=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-TorrentInfoView.columns=\u041a\u043e\u043b\u043e\u043d\u0438 \u043e\u0442 \u0438\u0437\u0433\u043b\u0435\u0434 '\u041c\u0435\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438'
-progress.window.title=\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
-progress.window.msg.filemove=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0447\u0430\u043a\u0430 \u0434\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435\u0442\u043e/\u043f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430
-ConfigView.label.popup.timestamp=\u0421 \u0432\u0440\u0435\u043c\u0435-\u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a \u0432\u044a\u0440\u0445\u0443 \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f
-ConfigView.label.popup.autohide=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u043a\u043e\u0438\u0442\u043e \u043d\u0435 \u0441\u0430 \u0433\u0440\u0435\u0448\u043a\u0438 [s] [0: \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e]
-ConfigView.label.please.visit.here=\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438 \u0442\u0443\u043a \u0437\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-ConfigView.section.ipfilter.enable.descriptionCache=\u0421\u044a\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 IP \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u0442\u0430 \u0432\u044a\u0432 \u0444\u0430\u0439\u043b
-ConfigView.section.ipfilter.enable.descriptionCache.tooltip=\u0410\u043a\u043e \u043d\u0435 \u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u043e, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u0442\u0430 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043c\u043d\u044f\u0442
-OpenTorrentWindow.filesInfo=\u0429\u0435 \u0441\u0435 \u0441\u0432\u0430\u043b\u0438 %1 \u043e\u0442 %2.
-OpenTorrentWindow.diskUsage=%1 \u043e\u0442 %2
-ConfigView.label.openmytorrents=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 '\u041c\u0435\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438' \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-ConfigView.label.open_transfer_bar_on_start=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-ConfigView.section.style.DNDalwaysInIncomplete=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0432\u0438\u043d\u0430\u0433\u0438 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 '\u041d\u0435 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435' \u0432 \u0441\u0435\u043a\u0446\u0438\u044f \u041d\u0435\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u043d\u0430 '\u041c\u0435\u0441\u0442\u043d\u0438 \u0442\u043e\u [...]
-OpenTorrentWindow.mb.noGlobalDestDir.title=\u041a\u0440\u0430\u0439\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0430
-OpenTorrentWindow.mb.noGlobalDestDir.text=\u041a\u0440\u0430\u0439\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f '%1' \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0438\u043b\u0438 \u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430.
-OpenTorrentWindow.mb.noDestDir.title=\u041a\u0440\u0430\u0439\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0430
-OpenTorrentWindow.mb.noDestDir.text=\u041a\u0440\u0430\u0439\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f '%1' \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 '%2' \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0438\u043b\u0438 \u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430.
-OpenTorrentWindow.mb.notValid.title=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-OpenTorrentWindow.mb.notValid.text=\u0422\u043e\u0440\u0435\u043d\u0442 '%1' \u043d\u0435 \u0441\u0435 \u043e\u0442\u0432\u0430\u0440\u044f. \u0410\u043a\u043e \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435\u0442\u043e \u0435 \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u0435\u0435\u043d\u0435, \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u0434\u0430\u043b\u0438 \u0441\u0430 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\ [...]
-OpenTorrentWindow.mb.notTorrent.title=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-OpenTorrentWindow.mb.notTorrent.text='%1' \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043e\u0442\u0432\u043e\u0440\u0438. \u041d\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u0430 \u043d\u0430 .torrent \u0444\u0430\u0439\u043b.\n\n\u0427\u0430\u0441\u0442 \u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438:\n%2
-ConfigView.label.pause.downloads.on.exit=\u041f\u0430\u0443\u0437\u0430 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430 \u043f\u0440\u0438 \u0438\u0437\u0445\u043e\u0434
-ConfigView.label.resume.downloads.on.start=\u041f\u043e\u0434\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430 \u0432 \u043f\u0430\u0443\u0437\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-UIDebugGenerator.message.cancel.title=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442 \u0435 \u043e\u0442\u043c\u0435\u043c\u0435\u043d\u043e
-UIDebugGenerator.message.cancel.text=\u041d\u0435 \u0435 \u0432\u044a\u0432\u0435\u0434\u0435\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442, \u043a\u043e\u044f\u0442\u043e \u0441\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u0432\u0430. \u0422\u0430\u0437\u0438 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043e\u0447\ [...]
-ConfigView.section.connection.group.http=\u041f\u043e HTTP
-ConfigView.section.connection.group.http.info=\u041f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u043d\u0430 HTTP \u0441\u0435\u0435\u043d\u0435.
-ConfigView.section.connection.http.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435
-ConfigView.section.connection.http.port=\u0412\u0445\u043e\u0434\u044f\u0449 \u043f\u043e\u0440\u0442
-ConfigView.section.connection.http.portoverride=\u0422\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 HTTP \u043f\u043e\u0440\u0442 \u0437\u0430 \u043f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435 [0: \u0431\u0435\u0437]
-window.update.noupdates.title=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438\u0442\u0435 \u043e\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438
-window.update.noupdates.text=\u041d\u044f\u043c\u0430 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u043d\u043e\u0432\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430 \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f.\n\n\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f!
-ConfigView.label.bindip.details=\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: 192.168.1.5;eth0;eth1[2] \u0449\u0435 \u043f\u0440\u0438\u0432\u044a\u0440\u0436\u0435 \u0443\u043a\u0430\u0300\u0437\u0430\u043d\u0438\u044f IP \u043a\u044a\u043c \u0432\u0441\u0438\u0447\u043a\u0438 IP-\u0442\u0430 \u043d\u0430 1-\u0432\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 3-\u0442\u0438\u044f IP \u043d\u0430 2-\u0440\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0 [...]
-ConfigView.label.mindownloads=\u041c\u0438\u043d. \u0435\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-UI.cannot_submit_blank_text=\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442.
-crypto.alert.as.warning=\u041c\u0440\u0435\u0436\u0430 '%1' \u0435 \u0441 \u043d\u0430\u043b\u043e\u0436\u0435\u043d \u043e\u0444\u043e\u0440\u043c\u0435\u043d \u0442\u0440\u0430\u0444\u0438\u043a \u0437\u0430 \u043d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e [...]
-ConfigView.section.interface.alerts=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f
-ConfigView.label.popupdownloadadded=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-popup.download.added="%1" \u0432\u0435\u0447\u0435 \u0435 \u0434\u043e\u0431\u0430\u0432\u0435\u043d \u043a\u044a\u043c \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441\u044a\u0441 \u0441\u0432\u0430\u043b\u0430\u043d\u0438\u044f.
-MessageBoxWindow.nomoreprompting=\u0411\u0435\u0437 \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u043e \u043d\u0430\u043f\u043e\u043c\u043d\u044f\u043d\u0435
-TorrentOptionsView.param.max.seeds=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0432\u0440\u044a\u0437\u043a\u0438 \u0437\u0430 \u0441\u0435\u0435\u043d\u0435 [0: \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0430]
-TorrentOptionsView.param.alternative.value.enable=\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435
-ConfigView.section.proxy.check.on.start=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u043f\u044a\u043b\u043d\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-TransferStatsView.legend.pingaverage=\u0421\u0440\u0435\u0434\u043d\u043e
-TransferStatsView.legend.ping1=\u0426\u0435\u043b 1
-TransferStatsView.legend.ping2=\u0426\u0435\u043b 2
-TransferStatsView.legend.ping3=\u0426\u0435\u043b 3
-ConfigView.section.interface.enabletray._mac=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u043a\u043e\u043d\u0430 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-ConfigView.label.closetotray._mac=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430 \u0432 \u0438\u043a\u043e\u043d\u0430 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e
-ConfigView.label.minimizetotray._mac=\u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0430 \u0432 \u0438\u043a\u043e\u043d\u0430 \u043d\u0430 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e
-OpenTorrentWindow.mb.existingFiles.title=\u0418\u043c\u0430 \u0432\u0435\u0447\u0435 \u0442\u0430\u043a\u044a\u0432(\u0438\u0432\u0430) \u0444\u0430\u0439\u043b(\u043e\u0432\u0435)!
-OpenTorrentWindow.mb.existingFiles.text=\u041d\u044f\u043a\u043e\u0438 \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0432\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0442 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u0430\u0442\u0430(\u0438\u0442\u0435) \u043a\u0440\u0430\u0439\u043d\u0430(\u0438) \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f(\u0438)\n\n%1\n\u041f\u0440\u0438 \u043f\u0440\u043e\u0434\u044a\u043b\u0 [...]
-splash.unloadingTorrents=\u041d\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-splash.unloadingTorrent=\u041d\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.section.file.defaultdir.autorename=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u043e\u0442 \u0442\u043e\u0440\u0435\u043d\u0442, \u0430\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0432 \u043f\u044a\u0442\u044f \u043f\u0440\u0438\u043b\u0438\u0447\u0430\u0442 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\ [...]
-ConfigView.section.file.defaultdir.autorename.tooltip=\u0422\u043e\u0432\u0430 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0434\u0430 \u043f\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433 \u0442\u043e\u0440\u0435\u043d\u0442, \u043a\u043e\u0433\u0430\u0442\u043e \u0438\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u0 [...]
-alert.raised.at.close=(\u0421\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u0440\u0435\u0434\u0438\u0448\u043d\u043e \u0437\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 Vuze)
-Plugin.trackerpeerauth.name=\u041e\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0432 \u0442\u0440\u0430\u043a\u0435\u0440
-Plugin.trackerpeerauth.info=\u0422\u0430\u0437\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0438 \u0441 \u0442\u0440\u0430\u043a\u0435\u0440\u0438 \u0437\u0430 \u0443\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435, \u0447\u0435 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u0442\u0435 \u0441\u0430 \u043a\u043e\u0440\u0435\u043a\u0442\u043d\u0438 \u0447\u043b\u0435\u043d\u043e\u0432\u0435 \ [...]
-Peers.column.maxupspeed=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-Peers.column.maxdownspeed=\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-MyTorrents.items.DownSpeedLimit.disabled=\u0411\u0435\u0437 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-Peers.column.lan=\u041b\u043e\u043a\u0430\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430
-upnp.selectedaddresses=\u0410\u0434\u0440\u0435\u0441\u0438 (';' \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b, '-' \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043a\u0430=\u043e\u0442\u043a\u0430\u0437, '+' =\u043f\u0440\u0438\u0435\u043c\u0430\u043d\u0435) [\u043f\u0440\u0430\u0437\u043d\u043e: \u0432\u0441\u0438\u0447\u043a\u043e]
-upnp.alert.multipledevice.warning=\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e UPnP \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0430 \u043e\u0442\u043a\u0440\u0438\u0442\u0438 - \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u0434\u0430\u043b\u0438 \u0432\u0441\u0438\u0447\u043a\u0438 \u0438\u0441\u043a\u0430\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u043e\u0432\ [...]
-UpdateMonitor.messagebox.restart.title=\u0421\u043e\u0444\u0442\u0443\u0435\u0440\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-UpdateMonitor.messagebox.restart.text=Vuze \u0442\u043e\u043a\u0443-\u0449\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0430\u0436\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u04 [...]
-PiecesView.BlockView.Have=\u0418\u043c\u0430
-PiecesView.BlockView.NoHave=\u041d\u044f\u043c\u0430
-PiecesView.BlockView.Header=%1 \u043a\u043e\u043b\u043e\u043d\u0430/\u0438, %2 \u0440\u0435\u0434/\u0430, %3 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-ConfigView.section.update.autodownload=\u0421\u0430\u043c\u043e\u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0434\u0441\u0435\u0449\u0430\u043d\u0435 \u043f\u0440\u0438 \u0433\u043e\u0442\u043e\u0432\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f
-Peers.column.peer_id=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u0418\u0434.
-Peers.column.peer_id.info=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u0418\u0434. \u0447\u0438\u0442\u0430\u0435\u043c\u043e
-Peers.column.peer_byte_id=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u0418\u0434.
-Peers.column.peer_byte_id.info=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d \u0418\u0434. \u0432 \u0431\u0430\u0439\u0442\u0438
-Peers.column.handshake_reserved=\u0417\u0430\u043f\u0430\u0437\u0435\u043d\u0438 \u0431\u0430\u0439\u0442\u043e\u0432\u0435 \u0437\u0430 \u0440\u044a\u043a\u043e\u0441\u0442\u0438\u0441\u043a\u0430\u043d\u0435
-Peers.column.handshake_reserved.info=\u041f\u043e\u043a\u0430\u0437\u0432\u0430 \u043a\u0430\u043a\u0432\u0438 \u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0438 \u0431\u0438\u0442\u043e\u0432\u0435 \u0441\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438 \u0432 \u0440\u044a\u043a\u043e\u0441\u0442\u0438\u0441\u043a\u0430\u043d\u0435\u0442\u043e \u043d\u0430 BitTorrent
-Peers.column.client_identification=\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442
-Peers.column.client_identification.info=\u041f\u043e\u043a\u0430\u0437\u0432\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0442\u0435 \u0438\u043c\u0435\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438 \u043e\u0442 Vuze - \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0437\u0430 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438
-dht.warn.user=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441 NAT/\u043f\u043e\u0440\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0432\u0430\u043d\u0435
-ConfigView.label.openbar.incomplete=\u041b\u0435\u043d\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435: \u0441\u0430\u043c\u043e\u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-ConfigView.label.openbar.complete=\u0441\u0430\u043c\u043e\u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-ConfigView.label.transferbar.remember_location=\u0417\u0430\u043f\u043e\u043c\u043d\u044f\u043d\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-ConfigView.section.transfer.autospeed.forcemin=\u0421\u043a\u043e\u0440\u043e\u0441\u0442 %1 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0435 \u043d\u0430\u0441\u0438\u043b\u0435\u043d\u0430 \u043f\u0440\u0438 \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430
-MainWindow.menu.tools.speedtest=\u0422\u0435\u0441\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u2026
-speedtest.wizard.title=\u0422\u0435\u0441\u0442 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442
-speedtest.wizard.run=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u0441\u0442 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442
-speedtest.wizard.test.mode.updown=\u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0438 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-speedtest.wizard.test.mode.up=\u043a\u0430\u0447\u0432\u0430\u043d\u0435
-speedtest.wizard.test.mode.down=\u0441\u0432\u0430\u043b\u044f\u043d\u0435
-SpeedTestWizard.test.panel.currinfo=\u0422\u0435\u0441\u0442 \u0437\u0430 \u0448\u0438\u0440\u043e\u0447\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 BitTorrent \u043b\u0435\u043d\u0442\u0430.
-SpeedTestWizard.test.panel.label=\u0422\u0435\u0441\u0442 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 Vuze:
-SpeedTestWizard.test.panel.already.running=\u0422\u0435\u0441\u0442\u044a\u0442 \u0432\u0435\u0447\u0435 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430!
-SpeedTestWizard.test.panel.not.accepted=\u041d\u0435\u043f\u0440\u0438\u0435\u0442\u0430 \u0437\u0430\u044f\u0432\u043a\u0430 \u0437\u0430 \u0442\u0435\u0441\u0442:
-SpeedTestWizard.test.panel.abort=\u041e\u0442\u043a\u0430\u0437
-SpeedTestWizard.test.panel.abort.countdown=\u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u0442\u0435\u0441\u0442 \u0441\u043b\u0435\u0434:
-SpeedTestWizard.test.panel.test.countdown=\u043a\u0440\u0430\u0439 \u043d\u0430 \u0442\u0435\u0441\u0442\u0430 \u0441\u043b\u0435\u0434:
-SpeedTestWizard.test.panel.testfailed=\u041f\u043e\u0440\u043e\u0432\u0430\u043b \u043d\u0430 \u0442\u0435\u0441\u0442\u0430
-SpeedTestWizard.test.panel.aborted=\u0420\u044a\u0447\u043d\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u043d \u0442\u0435\u0441\u0442.
-SpeedTestWizard.test.panel.enc.label=\u0414\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 \u0437\u0430 \u0442\u0435\u0441\u0442 \u0441 \u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430:
-SpeedTestWizard.test.panel.standard=\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e
-SpeedTestWizard.test.panel.encrypted=\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043e
-SpeedTestWizard.set.upload.button.apply=\u041f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0435
-SpeedTestWizard.set.upload.result=\u0420\u0435\u0437\u0443\u043b\u0442\u0430\u0442 \u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u044f \u0442\u0435\u0441\u0442
-SpeedTestWizard.set.upload.bytes.per.sec=B/s
-SpeedTestWizard.set.upload.bits.per.sec=b/s
-SpeedTestWizard.finish.panel.title=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u0442\u0435\u0441\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430!
-SpeedTestWizard.finish.panel.click.close=\u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u044a\u0442 \u0437\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438. \u0414\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 '\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435' \u0437\u0430 \u0438\u0437\u0445\u043e\u0434.
-SpeedTestWizard.finish.panel.max.upload=\u041c\u0430\u043a\u0441. \u043a\u0430\u0447\u0432\u0430\u043d\u0435:
-SpeedTestWizard.finish.panel.max.seeding.upload=\u041c\u0430\u043a\u0441. \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435:
-SpeedTestWizard.finish.panel.max.download=\u041c\u0430\u043a\u0441. \u0441\u0432\u0430\u043b\u044f\u043d\u0435:
-SpeedTestWizard.finish.panel.enabled=\u0432\u043a\u043b\u044e\u0447\u0435\u043d
-SpeedTestWizard.finish.panel.disabled=\u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d
-SpeedTestWizard.abort.message.scheduled.in=\u041f\u043b\u0430\u043d\u0438\u0440\u0430\u043d \u0442\u0435\u0441\u0442 \u0441\u043b\u0435\u0434\u2026 %1 \u0441\u0435\u043a\u0443\u043d\u0434\u0438"
-SpeedTestWizard.abort.message.unsupported.type=\u041d\u0435\u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u043d \u0442\u0438\u043f \u0442\u0435\u0441\u0442!
-SpeedTestWizard.abort.message.manual.abort=\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d \u0440\u044a\u0447\u043d\u043e
-SpeedTestWizard.abort.message.scheduling.failed=\u041f\u043b\u0430\u043d\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u0435\u0441\u0442 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-SpeedTestWizard.abort.message.download.added=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 %1 \u0434\u043e\u0431\u0430\u0432\u0435\u043d\u043e \u043f\u043e \u0432\u0440\u0435\u043c\u0435 \u043d\u0430 \u0442\u0435\u0441\u0442
-SpeedTestWizard.abort.message.entered.error=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 '%1' \u043f\u0440\u0438 \u0442\u0435\u0441\u0442 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-SpeedTestWizard.abort.message.entered.queued=\u0422\u0435\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u0435\u043d\u043e\u0442\u043e \u043f\u0440\u0435\u043c\u0438\u043d\u0430 \u0432 \u0441\u043f\u0440\u044f\u043d\u043e/\u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-SpeedTestWizard.abort.message.interrupted=TorrentSpeedTestMonitorThread \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430 \u043f\u0440\u0435\u0434\u0438 \u043a\u0440\u0430\u044f \u043d\u0430 \u0442\u0435\u0441\u0442\u0430
-SpeedTestWizard.abort.message.execution.failed=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0442\u0435\u0441\u0442\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-SpeedTestWizard.abort.message.failed.peers=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u0441 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-SpeedTestWizard.abort.message.insufficient.slots=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043a\u0430\u0447\u0432\u0430 \u0434\u043e \u043d\u0438\u043a\u043e\u0439 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d - \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0433 \u043d\u0430 \u0433\u043d\u0435\u0437\u0434\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435?
-SpeedTestWizard.abort.message.not.unchoked=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u0430\u043b\u044f \u043e\u0442 \u043d\u0438\u043a\u043e\u0439 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d - \u043d\u0435 \u0441\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0430\u043b\u0438 \u0441\u043f\u043e\u0434\u0430\u0432\u044f\u043d\u0435\u0442\u043e
-SpeedTestWizard.stage.message.requesting=\u0437\u0430\u044f\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u0441\u0442\u2026
-SpeedTestWizard.stage.message.preparing=\u043f\u043e\u0434\u0433\u043e\u0442\u0432\u044f\u043d\u0435 \u043d\u0430 \u0442\u0435\u0441\u0442\u2026
-SpeedTestWizard.stage.message.starting=\u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u0441\u0442\u2026
-SpeedTestWizard.stage.message.connect.stats=\u0421\u0442\u0430\u0442. \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430: \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438=%1, \u0434\u043e\u0431\u0440\u0435 \u0441\u0432.=%2, \u0434\u043e\u0431\u0440\u0435 \u043a\u0447.=%3
-window.uiswitcher.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0413\u041f\u0418 \u0437\u0430 Vuze
-window.uiswitcher.text=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043d\u0430\u0439-\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449 \u0413\u041f\u0418.
-window.uiswitcher.ClassicUI.title=\u041a\u043b\u0430\u0441\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441
-iconBar.switch.tooltip=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0413\u041f\u0418 \u0437\u0430 Vuze
-VivaldiView.notAvailable=\u041d\u044f\u043c\u0430 Vivaldi \u0438\u0437\u0433\u043b\u0435\u0434
-restart.error=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442:\n%1\n\u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 <A HREF="{restart.error.url}">restarting issues</a>.
-restart.error.oom=\u041d\u0435\u0434\u043e\u0441\u0442\u0438\u0433 \u043d\u0430 \u043f\u0430\u043c\u0435\u0442
-restart.error.fnf='%1' \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u0432 '%2'
-restart.error.pnf=\u041d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043f\u044a\u0442 '%1'
-restart.error.bad=\u041f\u043e\u0432\u0440\u0435\u0434\u0435\u043d \u0444\u043e\u0440\u043c\u0430\u0442 \u0437\u0430 '%1'
-restart.error.denied=\u0414\u043e\u0441\u0442\u044a\u043f \u043e\u0442\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u0438 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 '%1'. \u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u0434\u0430\u043b\u0438 \u0438\u043c\u0430 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u043 [...]
-TableColumn.header.date_completed=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u043d\u0430
-TableColumn.menu.date_added.reset=\u041d\u0430\u0447\u0430\u043b\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u0442\u0430
-ConfigView.section.ipfilter.discardbanning=\u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0441 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d\u0438/\u0434\u043e\u0431\u0440\u0438 \u0434\u0430\u043d\u043d\u0438 \u043d\u0430\u0434 [0: \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e]
-ConfigView.section.ipfilter.discardminkb=\u041c\u0438\u043d\u0438\u043c\u0443\u043c %1 \u043e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d\u043e \u043f\u0440\u0435\u0434\u0438 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0435
-ConfigView.interface.start.advanced=\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0432 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434 (2.x)
-MyTorrents.column.ColumnQuality=\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e
-MyTorrents.column.ColumnSpeed=\u0421\u043a\u043e\u0440\u043e\u0441\u0442
-MyTorrents.column.ColumnProgressETA.2ndLine=\u041e\u0412\u041f: %1 %2
-MyTorrents.column.ColumnProgressETA.StreamReady=\u041f\u043e\u0442\u043e\u043a \u0433\u043e\u0442\u043e\u0432 %1
-MyTorrents.column.ColumnProgressETA.PlayableIn=\u0418\u0437\u043f\u044a\u043b\u043d\u0438\u043c\u043e \u0441\u043b\u0435\u0434 %1 %2
-TableColumn.header.Quality=\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e
-TableColumn.header.Speed=\u0421\u043a\u043e\u0440\u043e\u0441\u0442
-TableColumn.header.RateIt=\u0413\u043b\u0430\u0441\u0443\u0432\u0430\u043d\u0435
-TableColumn.header.Rating=\u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442
-TableColumn.header.SpeedGraphic=\u0421\u043a\u043e\u0440\u043e\u0441\u0442
-TableColumn.header.AzProduct=\u041e\u0442
-TableColumn.header.MediaThumb=\u041d\u043e\u0441\u0438\u0442\u0435\u043b
-TableColumn.header.ProgressETA=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435
-TableColumn.header.name.ext=\u0422\u0438\u043f \u043d\u0430 \u0444\u0430\u0439\u043b: %1
-v3.MainWindow.tab.home=\u041d\u0430\u0447\u0430\u043b\u043e
-v3.MainWindow.tab.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-v3.MainWindow.tab.library=\u041c\u0435\u0441\u0442\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430
-v3.MainWindow.tab.publish=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435
-v3.MainWindow.tab.advanced=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438
-v3.MainWindow.menu.home=&\u041d\u0430\u0447\u0430\u043b\u043e
-v3.MainWindow.menu.browse=&\u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-v3.MainWindow.menu.library=\u041c\u0435\u0441\u0442\u043d\u0430 \u0411\u0438\u0431&\u043b\u0438\u043e\u0442\u0435\u043a\u0430
-v3.MainWindow.menu.publish=&\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435
-v3.MainWindow.menu.advanced=\u0420&\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438
-v3.MainWindow.menu.view.searchbar=\u041b\u0435\u043d\u0442\u0430 \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435
-v3.MainWindow.currentDL=\u0422\u0435\u043a\u0443\u0449\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-v3.MainWindow.button.stream=\u041f\u043e\u0442\u043e\u043a
-v3.MainWindow.button.stop=\u0421\u043f\u0438\u0440\u0430\u043d\u0435
-v3.MainWindow.button.start=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435
-v3.MainWindow.button.pause=\u041f\u0430\u0443\u0437\u0430
-v3.MainWindow.button.resume=\u041f\u043e\u0434\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-v3.MainWindow.button.delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-v3.MainWindow.button.comment=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-v3.MainWindow.button.viewdetails=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-v3.MainWindow.button.play=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435
-v3.MainWindow.button.cancel=\u041e\u0442\u043a\u0430\u0437
-v3.MainWindow.button.preview=\u041e\u043d\u0430\u0433\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435
-v3.MainWindow.view.wait=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434.
-v3.MainWindow.xofx=%1 \u043e\u0442 %2
-v3.MainWindow.Loading=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u2026
-v3.filter-bar=\u0424\u0438\u043b\u0442\u044a\u0440 \u043f\u043e \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435:
-v3.MainWindow.search.defaultText=Vuze \u0442\u044a\u0440\u0441\u0435\u043d\u0435
-v3.mb.delPublished.title=\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0441\u0435\u0435\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-v3.mb.delPublished.text=\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415: \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u041d\u0415 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u043e\u0442\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 '%1' \u043e\u0442 <A HREF="%2">%3</A> .\n\n\u0414\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 '\u0418\u0437\u0442\u0440\u0438\u0432\u0430 [...]
-v3.mb.delPublished.delete=&\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-v3.mb.delPublished.cancel=&\u041e\u0442\u043a\u0430\u0437
-v3.mb.PlayFileNotFound.title=\u041d\u0435\u043d\u0430\u043c\u0435\u0440\u0435\u043d \u0444\u0430\u0439\u043b
-v3.mb.PlayFileNotFound.text=\u0424\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0437\u0430 '%1' \u0441\u0430 \u0438\u0437\u0442\u0440\u0438\u0442\u0438 \u0438\u043b\u0438 \u043b\u0438\u043f\u0441\u0432\u0430\u0442.
-v3.mb.PlayFileNotFound.button.remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043e\u0442 Vuze
-v3.mb.PlayFileNotFound.button.redownload=\u041d\u0430\u043d\u043e\u0432\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438
-v3.mb.PlayFileNotFound.button.find=\u0420\u044a\u0447\u043d\u043e \u043d\u0430\u043c\u0438\u0440\u0430\u043d\u0435\u2026
-v3.topbar.menu.show.logo=Vuze \u043b\u043e\u0433\u043e
-v3.topbar.menu.show.plugin=\u0417\u043e\u043d\u0430 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-v3.topbar.menu.show.search=\u0422\u044a\u0440\u0441\u0435\u043d\u0435
-v3.topbar.menu.show.frog=Vuze \u043b\u043e\u0433\u043e
-splash.initializeCore=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u044f\u0434\u0440\u043e\u0442\u043e
-splash.initializeUIElements=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u0413\u041f\u0418 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438
-ConfigView.section.transfer.autospeedbeta=\u0410\u0432\u0442\u043e-\u0421\u043a\u043e\u0440\u043e\u0441\u0442-\u0411\u0435\u0442\u0430
-ConfigView.section.ipfilter.peerblocking.group=\u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.section.ipfilter.autoload.group=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435
-ConfigView.section.ipfilter.autoload.file=IP \u0444\u0438\u043b\u0442\u044a\u0440 \u043e\u0442 \u0444\u0430\u0439\u043b \u0437\u0430 \u0430\u0432\u0442\u043e-\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435
-ConfigView.section.ipfilter.autoload.info=\u041f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 DAT (eMule), P2P (PeerGuardian, splist) \u0438 P2B v1,2,3 (PeerGuardian 2) \u0444\u043e\u0440\u043c\u0430\u0442\u0438. \u0424\u0430\u0439\u043b\u044a\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0438\u043b\u0438 URL, zip-\u043d\u0430\u0442, gzip-\u043d\u0430\u0442 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442 \u0442\u0435\u043a\u0441\u0442. UR [...]
-ConfigView.section.ipfilter.autoload.loadnow=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u0441\u0435\u0433\u0430
-splash.loadIpFilters=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 IP \u0444\u0438\u043b\u0442\u0440\u0438\u2026
-SpeedTestWizard.set.upload.title=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-SpeedTestWizard.set.download.label=\u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435:
-SpeedTestWizard.set.upload.label=\u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0430\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 - %1
-SpeedTestWizard.name.conf.level.absolute=\u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e
-SpeedTestWizard.name.conf.level.high=\u0412\u0438\u0441\u043e\u043a\u043e
-SpeedTestWizard.name.conf.level.med=\u0421\u0440\u0435\u0434\u043d\u043e
-SpeedTestWizard.name.conf.level.low=\u041d\u0438\u0441\u043a\u043e
-SpeedTestWizard.name.conf.level.none=\u0411\u0435\u0437
-ConfigView.section.transfer.select=\u0410\u0432\u0442\u043e-\u0441\u043a\u043e\u0440\u043e\u0441\u0442
-ConfigView.section.transfer.select.v2=\u0410\u0432\u0442\u043e-\u0441\u043a\u043e\u0440\u043e\u0441\u0442 (\u0431\u0435\u0442\u0430)
-mb.azmustclose.title=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-mb.azmustclose.text=Vuze \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0437\u0430\u0442\u0432\u043e\u0440\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 (\u0440\u0435-)\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430, \u043d\u0430\u0439-\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043f\u043e\u0440\u0430\u0434\u0438 \u0441\u0442\u0430 [...]
-network.ipv6.prefer.addresses=\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u043d\u0438\u044f \u0437\u0430 IPv6 \u0430\u0434\u0440\u0435\u0441\u0438 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 IPv6 \u0438 IPv4
-network.bindError=\u041f\u0440\u043e\u0432\u0430\u043b \u0432 \u043f\u0440\u0438\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0435\u043d \u0446\u043e\u043a\u044a\u043b \u043f\u043e\u0440\u0430\u0434\u0438 \u043d\u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u0430\u0434\u0440\u0435\u0441\u0438. \u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u043f\u0 [...]
-network.enforce.ipbinding=\u041d\u0430\u043b\u0430\u0433\u0430\u043d\u0435 \u043d\u0430 IP \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0440\u0438 \u0431\u0435\u0437 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0438 - \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043d\u0438\u043a\u0430\u043a\u0432\u0438 \u0432\u0440\u044a\u0437\u043a\u0438 \u0430\u043a\u043e \u043d\u0438\u043 [...]
-DHTView.title.full_v6=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0411\u0414 IPv6
-ConfigView.pluginlist.loadSelected=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u043e\u0442\u043e
-SpeedView.stats.asn=\u041c\u0440\u0435\u0436\u0430:
-SpeedView.stats.estupcap=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435:
-SpeedView.stats.estdowncap=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435:
-SpeedView.stats.unknown=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e
-SpeedView.stats.estimate=\u041e\u0447\u0430\u043a\u0432\u0430\u043d\u043e
-SpeedView.stats.measured=\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u043e
-SpeedView.stats.measuredmin=\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u043e \u043c\u0438\u043d.
-SpeedView.stats.manual=\u0417\u0430\u0434\u0430\u0434\u0435\u043d\u043e
-ConfigView.section.transfer.autospeed.networks=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u043c\u0440\u0435\u0436\u0430
-ConfigView.section.transfer.autospeed.resetnetwork=\u041e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u043e\u0432\u0438\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-ConfigView.section.transfer.autospeed.network.info=\u0413\u043e\u0440\u043d\u0438\u0442\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u0435 \u043f\u0440\u0435\u0441\u043c\u044f\u0442\u0430\u0442 \u043f\u043e \u0432\u0440\u0435\u043c\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0438\u043b\u0438 \u0441\u0430 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442 \u043e\u0442 \u [...]
-dialog.uiswitcher.restart.title=\u0413\u041f\u0418 \u0441\u043c\u044f\u043d\u0430: Vuze \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430
-dialog.uiswitcher.restart.text=Vuze \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0438 \u0413\u041f\u0418.
-TrayWindow.menu.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043a\u043e\u0448\u043d\u0438\u0446\u0430\u0442\u0430 \u0441\u044a\u0441 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-# Used for peers which we can't determine.
-PeerSocket.unknown=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d
-PeerSocket.fake_client=\u041f\u043e\u0434\u043f\u0440\u0430\u0432\u0435\u043d
-PeerSocket.bad_peer_id=\u041b\u043e\u0448 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-PeerSocket.mismatch_id=\u041d\u0435\u0441\u044a\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0430\u0449
-PeerSocket.unknown_az_style=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d %1/%2
-PeerSocket.unknown_shadow_style=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d %1/%2
-OpenTorrentWindow.mb.askCreateDir.title=\u0426\u0435\u043b\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430
-OpenTorrentWindow.mb.askCreateDir.text=\u0426\u0435\u043b\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f '%1' \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430.\n\n\u0414\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u043b\u0438?
-SpeedView.stats.estimatechoke=\u041e\u0447\u0430\u043a\u0432\u0430\u043d\u043e (\u043f\u043e\u0442\u0438\u0441\u043a\u0430\u043d\u0435)
-ConfigTransferAutoSpeed.upload.capacity.usage=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u043f\u0430\u0446\u0438\u0442\u0435\u0442\u0430 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-ConfigTransferAutoSpeed.mode=\u0420\u0435\u0436\u0438\u043c:
-ConfigTransferAutoSpeed.capacity.used=% \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d \u043a\u0430\u043f\u0430\u0446\u0438\u0442\u0435\u0442
-ConfigTransferAutoSpeed.while.downloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435:
-ConfigTransferAutoSpeed.set.dht.ping=DHT \u043f\u0438\u043d\u0433 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430:
-ConfigTransferAutoSpeed.set.point=\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b (ms)
-ConfigTransferAutoSpeed.set.tolerance=\u0442\u043e\u043b\u0435\u0440\u0430\u043d\u0441 (ms)
-ConfigTransferAutoSpeed.ping.time.good=\u0414\u043e\u0431\u044a\u0440:
-ConfigTransferAutoSpeed.ping.time.bad=\u041b\u043e\u0448:
-ConfigTransferAutoSpeed.adjustment.interval=\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043d\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430:
-ConfigTransferAutoSpeed.skip.after.adjust=\u041f\u0440\u0435\u0441\u043a\u0430\u0447\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 \u043f\u0440\u043e\u043c\u044f\u043d\u0430:
-GeneralView.label.distributedCopies=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438 \u043a\u043e\u043f\u0438\u044f:
-PiecesView.DistributionView.title=\u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-PiecesView.DistributionView.NoAvl=\u041f\u0430\u0440\u0447\u0435\u0442\u0430, \u043a\u043e\u0438\u0442\u043e \u0433\u0438 \u043d\u044f\u043c\u0430
-PiecesView.DistributionView.SeedAvl=\u041f\u0440\u0438\u043d\u043e\u0441 \u043d\u0430\u043b\u0438\u0447\u0435\u043d \u043e\u0442 \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-PiecesView.DistributionView.PeerAvl=\u041f\u0440\u0438\u043d\u043e\u0441 \u043d\u0430\u043b\u0438\u0447\u0435\u043d \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-PiecesView.DistributionView.RarestAvl=\u0420\u044f\u0434\u043a\u043e \u0441\u0440\u0435\u0449\u0430\u043d\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430: %1 (\u043d\u0430\u043b\u0438\u0447\u043d\u0438:%2)
-PiecesView.DistributionView.weHave=\u0412\u0435\u0447\u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430
-PiecesView.DistributionView.theyHave=\u041f\u0430\u0440\u0447\u0435\u0442\u0430 \u0443 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-PiecesView.DistributionView.weDownload=\u041f\u0430\u0440\u0447\u0435\u0442\u0430, \u043a\u043e\u0438\u0442\u043e \u0441\u0435 \u0441\u0432\u0430\u043b\u044f\u0442
-PeersView.gain=\u0414\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435
-PeersView.gain.info=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u0442\u043e \u0441\u0432\u0430\u043b\u0435\u043d\u0438 - \u043a\u0430\u0447\u0435\u043d\u0438 \u0434\u0430\u043d\u043d\u0438
-unix.script.new.title=\u0418\u043c\u0430 \u043d\u043e\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 Vuze
-unix.script.new.text=\u0418\u043c\u0430 \u043d\u043e\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 Vuze \u0438 \u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u0442\u043e '%1'.\n\n\u0421\u0438\u043b\u043d\u043e \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u0435 \u0438\u0437\u043b\u0438\u0437\u0430\u043d\u0435\u0442\u043e \u043e\u0442 Vuze \u0432\u0435\u0434\u043d\u0430 [...]
-unix.script.new.button.quit=\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435 \u0441\u0435\u0433\u0430
-unix.script.new.button.continue=\u041f\u043e-\u043a\u044a\u0441\u043d\u043e
-unix.script.new.button.asknomore=\u0411\u0435\u0437 \u043f\u043e\u0432\u0442\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e
-unix.script.new.auto.title=\u041d\u043e\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 Vuze
-unix.script.new.auto.text=\u0418\u043c\u0430 \u043d\u043e\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 Vuze.\n\n\u0421\u0438\u043b\u043d\u043e \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 Vuze \u0432\u0435\u0434\u043d\u0430\u0433\u0430.
-Content.alert.notuploaded.button.abort=&\u0414\u0430 \u043d\u0435 \u0441\u0435 \u043e\u0442\u043a\u0430\u0437\u0432\u0430
-ConfigView.label.checkOnSeeding=\u0421 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430 \u043f\u0440\u0438 \u043c\u0430\u043b\u043a\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u043f\u0440\u0438 \u0441\u0435\u0435\u043d\u0435
-ConfigView.label.ui_switcher=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u043e\u0440 \u043d\u0430 \u0413\u041f\u0418 \u0437\u0430 Vuze
-ConfigView.label.ui_switcher_button=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435
-SpeedTestWizard.test.panel.explain=\u0418\u0437\u043c\u0435\u0440\u0432\u0430\u043d\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0438 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0447\u0440\u0435\u0437 BT \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b. \u0418\u0437\u0431\u0438\u0440\u0430 \u0441\u0435 \u0442\u0438\u043f \u043d\u0430 \u0442\u0435\u0441\u0442 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\ [...]
-SpeedTestWizard.set.upload.hint=\u0414\u0430 \u0441\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438 \u043a\u0430\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 80% \u043e\u0442 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0430\u0442\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442.
-SpeedTestWizard.set.upload.panel.explain=\u0417\u0430 \u043d\u0430\u0439-\u0434\u043e\u0431\u0440\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 Vuze \u0441\u0435 \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0434\u0430 \u0435 80% \u043e\u0442 \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0438\u0 [...]
-SpeedTestWizard.set.limit.conf.level=\u041d\u0438\u0432\u043e \u043d\u0430 \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u043e\u0441\u0442
-SpeedTestWizard.finish.panel.auto.speed=\u0410\u0432\u0442\u043e-\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u0435:
-SpeedTestWizard.finish.panel.auto.speed.seeding=\u0410\u0432\u0442\u043e-\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0435:
-ConfigTransferAutoSpeed.add.comment.to.log.group=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440 \u0432 \u0434\u043d\u0435\u0432\u043d\u0438\u043a \u0437\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438
-ConfigTransferAutoSpeed.add.comment.to.log=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440:
-ConfigTransferAutoSpeed.log.button=\u0414\u043d\u0435\u0432\u043d\u0438\u043a
-ConfigTransferAutoSpeed.algorithm.selector=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0430\u0432\u0442\u043e-\u0441\u043a\u043e\u0440\u043e\u0441\u0442
-ConfigTransferAutoSpeed.algorithm=\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u044a\u043c:
-ConfigTransferAutoSpeed.auto.speed.classic=\u0410\u0432\u0442\u043e-\u0441\u043a\u043e\u0440\u043e\u0441\u0442 (\u043a\u043b\u0430\u0441\u0438\u043a)
-ConfigTransferAutoSpeed.auto.speed.beta=\u0410\u0432\u0442\u043e-\u0441\u043a\u043e\u0440\u043e\u0441\u0442 (\u0431\u0435\u0442\u0430)
-ConfigTransferAutoSpeed.data.update.frequency=\u0427\u0435\u0441\u0442\u043e\u0442\u0430 \u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-Alert.failed.update=\u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u043d\u0430\u0439-\u043c\u0430\u043b\u043a\u043e 1 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0435 \u0443\u0441\u043f\u044f. \u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438 <A HREF="{Alert.failed.update.url}">VuzeWiki: Failed Update</A>
-OpenTorrentWindow.mb.existingFiles.partialList=(\u041d\u0435\u043f\u044a\u043b\u0435\u043d \u0441\u043f\u0438\u0441\u044a\u043a. \u041e\u0449\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0442)
-TableColumn.header.bad_avail_time.info=\u041a\u043e\u0433\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0435 \u0431\u0438\u043b\u043e \u043d\u0430\u043b\u0438\u0447\u043d\u043e \u043f\u044a\u043b\u043d\u043e \u043a\u043e\u043f\u0438\u0435 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-TableColumn.header.bad_avail_time=\u0412\u0438\u0434\u044f\u043d\u043e \u043f\u044a\u043b\u043d\u043e \u043a\u043e\u043f\u0438\u0435
-MyTorrentsView.menu.exporthttpseeds=\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 HTTP \u043f\u043e\u0441\u044f\u0432\u043a\u043e\u0432\u0438 URL \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430
-SWT.alert.erroringuithread=\u041d\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0432\u0430\u0435\u043c\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u0432 \u0413\u041f\u0418. \u041c\u043e\u0436\u0435 \u0434\u0430 \u0438\u043c\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438 \u043f\u0440\u043e\u0432\u0430\u043b\u0438 -
-ConfigView.label.minannounce=\u041c\u0438\u043d. \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u0442\u0435 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0438\u044f [s].
-ConfigView.label.maxnumwant=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u0431\u0440\u043e\u044f \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u0442\u0440\u0430\u043a\u0435\u0440\u044a\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0432\u044a\u0440\u043d\u0435
-ConfigView.label.announceport=\u041f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0431\u044f\u0432\u0435\u043d\u0438\u044f TCP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0438 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0438\u044f, PEX \u0438 DHT\n[\u043f\u0440\u0430\u0437\u043d\u043e: \u0431\u0435\u0437 \u043f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435, 0: \u043 [...]
-ConfigView.label.noportannounce=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u043e\u0431\u044f\u0432\u044f\u0432\u0430 \u043d\u0430 \u0442\u0440\u0430\u043a\u0435\u0440\u0430 \u043f\u043e\u0440\u0442\u0430 \u0437\u0430 \u0441\u043b\u0443\u0448\u0430\u043d\u0435 (\u043d\u0435 \u0432\u043b\u0438\u044f\u0435 \u043d\u0430 PEX, DHT)
-ConfigView.label.maxseedspertorrent=\u041c\u0430\u043a\u0441. \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-wizard.webseed=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 HTTP \u043f\u043e\u0441\u044f\u0432\u043a\u0438 \u043a\u044a\u043c \u0442\u043e\u0440\u0435\u043d\u0442
-wizard.webseed.title=HTTP \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-wizard.webseed.configuration=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0430 HTTP \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-wizard.webseed.adding=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 HTTP \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-GeneralView.label.private=\u0427\u0430\u0441\u0442\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442:
-GeneralView.yes=\u0434\u0430
-GeneralView.no=\u043d\u0435
-ConfigView.label.userequestlimiting=\u0421 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u044f\u0432\u043a\u0438\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u043b\u0430\u0433\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0438\u0442\u0435 \u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0441\u0432\u0430 [...]
-ConfigView.label.userequestlimiting.tooltip=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0437\u0430\u044f\u0432\u043a\u0438\u0442\u0435 \u0435 \u043f\u043e-\u0433\u0440\u0443\u0431\u043e \u043e\u0442 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u0438\u0442\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0438, \u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0438\u04 [...]
-ConfigView.label.userequestlimitingpriorities=\u0421 \u0444\u043e\u043a\u0443\u0441 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043a\u044a\u043c \u043d\u0430\u0447\u0430\u043b\u043e\u0442\u043e \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430, \u043a\u043e\u0433\u0430\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447 [...]
-ConfigView.section.logging.timestamp=\u0424\u043e\u0440\u043c\u0430\u0442 \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a\u0430 \u0437\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0434\u043d\u0435\u0432\u043d\u0438\u0446\u0438
-Peers.column.timetocomplete=\u041e\u0441\u0442\u0430\u0432\u0430\u0449\u043e \u0432\u0440\u0435\u043c\u0435
-Peers.column.timetocomplete.info=\u041e\u0441\u0442\u0430\u0432\u0430\u0449\u043e \u0432\u0440\u0435\u043c\u0435 \u0437\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-ConfigView.section.interface.display.suppress.file.download.dialog=\u041f\u043e\u0442\u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0430 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-ConfigView.section.interface.display.suppress.file.download.dialog.tooltip=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0442\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0432 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0432 \u0434\u0438\u04 [...]
-FileDownload.canceled=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 \u0444\u0430\u0439\u043b \u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u043e \u0447\u0440\u0435\u0437 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435: %1
-Progress.reporting.status.canceled=\u041e\u0442\u043c\u0435\u043d\u0435\u043d\u043e
-Progress.reporting.status.finished=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e
-Progress.reporting.status.retrying=\u041e\u043f\u0438\u0442 \u043e\u0442\u043d\u043e\u0432\u043e\u2026
-Progress.reporting.action.label.retry.tooltip=\u041e\u043f\u0438\u0442 \u043e\u0442\u043d\u043e\u0432\u043e \u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430
-Progress.reporting.action.label.remove.tooltip=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0447\u0435\u0442\u0430 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043e\u0442 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0442\u0430
-Progress.reporting.action.label.cancel.tooltip=\u041e\u0442\u043c\u044f\u043d\u0430 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430
-Progress.reporting.action.label.detail=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-Progress.reporting.default.error=\u041f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043e
-Progress.reporting.no.reports.to.display=\u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u044f\u043c\u0430 \u043e\u0442\u0447\u0435\u0442\u0438 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043e \u0437\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435
-Progress.reporting.no.history.to.display=\u041d\u044f\u043c\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435
-Progress.reporting.detail.history.limit=\u041d\u0430\u0434\u0432\u0438\u0448\u0435\u043d \u0435 \u043b\u0438\u043c\u0438\u0442\u044a\u0442 \u0437\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0442\u043e\u0437\u0438 \u043e\u0442\u0447\u0435\u0442 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u [...]
-Progress.reporting.statusbar.button.tooltip=\u041f\u043e\u043a\u0437\u0430\u0432\u0430\u043d\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u0430 \u0437\u0430 \u043e\u0442\u0447\u0435\u0442\u0438 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043e
-webui.bindip=\u041f\u0440\u0438\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0418\u041f (IP) - \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e \u043d\u0435 \u0441\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 (*)
-v3.MainWindow.text.log.in=\u0412\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-v3.MainWindow.text.log.out=\u041e\u0442\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-v3.MainWindow.text.get.started=\u0417\u0430 \u043d\u0430\u0447\u0430\u043b\u043e
-v3.MainWindow.text.my.account=\u0421\u043c\u0435\u0442\u043a\u0430
-v3.MainWindow.text.my.profile=\u041f\u0440\u043e\u0444\u0438\u043b
-OpenTorrentWindow.simple.open=\u041c\u044f\u0441\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442 (\u0444\u0430\u0439\u043b, URL, \u0440\u0430\u0437\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435)
-Progress.reporting.window.remove.auto=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u0438\u0442\u0435
-Progress.reporting.window.remove.auto.tooltip=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438, \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u0438 \u0438\u043b\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0438 \u043e\u0442 \u0438\u0437\u0433\u043b\u0435\u0 [...]
-Progress.reporting.window.remove.now=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u0438\u0442\u0435
-Progress.reporting.window.remove.now.tooltip=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438, \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u0438 \u0438\u043b\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0438 \u043e\u0442 \u0438\u0437\u0433\u043b\u0435\u0434\u0430
-dhttracker.tracklimitedwhenonline=\u0421 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u0437\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0433 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f \u0437\u0430 \u043a\u0440\u044a\u0441\u0442\u043e\u0441\u0430\u043d\u043e \u043d\u0430\u0441\u0438\u0449\u0430\u043d\u0435 \u043d\u0430 \u0440\u043e\u044f\u043a\u0430
-TorrentOptionsView.multi.title.short=\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-TorrentOptionsView.multi.title.full=\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-MyTorrentsView.menu.open_parent_folder=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0449\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-ConfigView.section.style.use_show_parent_folder=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 "%1" \u0432\u043c\u0435\u0441\u0442\u043e "%2" \u0432 \u0442\u043e\u0440\u0435\u043d\u0442 \u043c\u0435\u043d\u044e\u0442\u0430\u0442\u0430
-ConfigView.section.style.use_show_parent_folder.tooltip=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u0430\u0437\u0438 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0449\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043f\u0440\u0430 [...]
-PeerManager.status.ps_disabled=\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440 \u043d\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-ConfigView.section.stats.exportfiles=\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0444\u0430\u0439\u043b
-updater.cant.write.to.app.title=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0432\u0430 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e
-updater.cant.write.to.app.details=\u0412 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f "%1" \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0432\u0430.\n\n\u0422\u043e\u0432\u0430 \u0449\u0435 \u043f\u043e\u043f\u0440\u0435\u0447\u0438 \u0431\u044a\u0434\u0435\u0449\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043f\u0440\u0438\u043b\u0430\u0433\u0 [...]
-plugin.install.class_version_error=\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430 \u043f\u043e-\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Java.
-v3.MainWindow.tab.minilibrary=\u0421\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-v3.MainWindow.tab.events=\u0410\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442
-button.columnsetup.tooltip=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043b\u043e\u043d\u0438
-v3.activity.remove.title=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-v3.activity.remove.text=\u0414\u0430 \u0441\u0435 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435 \u043b\u0438 \u043d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u0441\u044a\u0431\u0438\u0442\u0438\u0435 '%1'?
-v3.MainWindow.menu.file.closewindow=\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-Menu.show.torrent.menu=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u043d\u044e '\u0422\u043e\u0440\u0435\u043d\u0442\u0438'
-Menu.show.torrent.menu.tooltip=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u043d\u044e '\u0422\u043e\u0440\u0435\u043d\u0442\u0438' \u0432 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0442\u043e \u043c\u0435\u043d\u044e
-Views.plugins.aznetstatus.title=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u0430
-plugin.aznetstatus.pingtarget=Ping/trace route \u043d\u0430 \u0446\u0435\u043b
-ConfigView.section.style.usePathFinder=\u0421 '\u0422\u044a\u0440\u0441\u0430\u0447 \u043d\u0430 \u043f\u044a\u0442' \u0432\u043c\u0435\u0441\u0442\u043e '\u0422\u044a\u0440\u0441\u0430\u0447'
-menu.sortByColumn=\u041f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043f\u043e %1
-MyTorrentsView.menu.manual.per_peer=\u0420\u044a\u0447\u043d\u043e (\u043f\u043e \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d)
-MyTorrentsView.menu.manual.shared_peers=\u0420\u044a\u0447\u043d\u043e (\u0432\u0441\u0438\u0447\u043a\u0438 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438)
-v3.button.removeActivityEntry=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-v3.splash.initSkin=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u0413\u041f\u0418 \u043c\u0430\u0441\u043a\u0430
-v3.splash.hookPluginUI=\u0417\u0430\u043a\u0430\u0447\u0430\u043d\u0435 \u0437\u0430 \u0413\u041f\u0418 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430
-OpenTorrentWindow.mb.notTorrent.cannot.display=\u0414\u0430\u043d\u043d\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0436\u0430\u0445\u0430 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u0442 \u043a\u0430\u043a\u0442\u043e \u0442\u0440\u044f\u0431\u0432\u0430
-MainWindow.menu.window.zoom.maximize=\u041c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u0430\u043d\u0435
-MainWindow.menu.window.zoom.restore=\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-security.crypto.title=\u0414\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043b\u044e\u0447 \u0437\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0435
-security.crypto.encrypt=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u043f\u0430\u0440\u043e\u043b\u0430 \u0437\u0430 \u0437\u0430\u0449\u0438\u0442\u0430 \u043d\u0430 \u043d\u043e\u0432\u043e\u0441\u044a\u0437\u0434\u0430\u0434\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447 \u0437\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0435. \u0414\u0430 \u043d\u0435 \u0441\u0435 \u0437\u0430\u0431\u0440\u0430\u0432\u044f \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u [...]
-security.crypto.decrypt=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u043f\u0430\u0440\u043e\u043b\u0430 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043b\u044e\u0447\u0430 \u0437\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0435.
-security.crypto.reason=\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-security.crypto.password=\u041f\u0430\u0440\u043e\u043b\u0430
-security.crypto.password2=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430
-security.crypto.persist_for=\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442 \u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430
-security.crypto.persist_for.dont_save=\u0411\u0435\u0437 \u0437\u0430\u043f\u0438\u0441
-security.crypto.persist_for.session=\u0422\u0435\u043a\u0443\u0449\u0430 \u0441\u0435\u0441\u0438\u044f
-security.crypto.persist_for.day=1 \u0434\u0435\u043d
-security.crypto.persist_for.week=1 \u0441\u0435\u0434\u043c\u0438\u0446\u0430
-security.crypto.persist_for.30days=30 \u0434\u043d\u0438
-security.crypto.persist_for.forever=\u0417\u0430\u0432\u0438\u043d\u0430\u0433\u0438
-security.crypto.password.mismatch.title=\u0413\u0440\u0435\u0448\u043a\u0430 \u0432 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430
-security.crypto.password.mismatch=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u043e\u0442\u043d\u043e\u0432\u043e, \u043f\u0430\u0440\u043e\u043b\u0438\u0442\u0435 \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430\u0442.
-ConfigView.section.security.group.crypto=\u041e\u0431\u0449\u0438/\u043b\u0438\u0447\u043d\u0438 \u043a\u043b\u044e\u0447\u043e\u0432\u0435
-ConfigView.section.security.resetkey=\u041f\u0440\u0435\u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u044e\u0447\u043e\u0432\u0435
-ConfigView.section.security.resetkey.warning.title=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0437\u0430\u0433\u0443\u0431\u0430 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438
-ConfigView.section.security.resetkey.warning=\u0414\u0430 \u0441\u0435 \u043f\u0440\u0435\u0441\u044a\u0437\u0434\u0430\u0434\u0430\u0442 \u043b\u0438 \u043a\u043b\u044e\u0447\u043e\u0432\u0435\u0442\u0435 \u0437\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0435? \u0426\u044f\u043b\u0430\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0430 \u0441 \u0442\u044f\u0445 \u0449\u0435 \u0431\u044a\u0434\u0435 [...]
-ConfigView.section.security.unlockkey=\u0418\u0437\u0440\u0438\u0447\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043b\u044e\u0447\u043e\u0432\u0435
-ConfigView.section.security.unlockkey.button=\u0414\u043e\u0441\u0442\u044a\u043f
-ConfigView.section.security.publickey=\u041e\u0431\u0449 \u043a\u043b\u044e\u0447
-ConfigView.section.security.publickey.undef=\u0411\u0435\u0437 \u0434\u0435\u0444\u0438\u043d\u0438\u0446\u0438\u044f \u0432\u0441\u0435 \u043e\u0449\u0435
-ConfigView.section.security.resetkey.error.title=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043e
-ConfigView.section.security.resetkey.error=\u041f\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435 \u043f\u0440\u0435\u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043a\u043b\u044e\u0447\u043e\u0432\u0435\u0442\u0435
-ConfigView.section.security.unlockkey.error=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430 - \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043b\u044e\u0447
-ConfigView.copy.to.clipboard.tooltip=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u043a\u043b\u0438\u043f-\u0431\u043e\u0440\u0434\u0430
-Views.plugins.azbuddy.title=\u0414\u0440\u0443\u0436\u043a\u0438
-Browser.popup.error.no.access=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d \u0440\u0435\u0441\u0443\u0440\u0441.\n\u0414\u0430 \u0441\u0435 \u043e\u043f\u0438\u0442\u0430 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.\n
-ConfigView.label.queue.stoponcebandwidthmet=\u0414\u0430 \u043d\u0435 \u0441\u0435 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u043f\u043e\u0432\u0435\u0447\u0435 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435/\u0441\u0432\u0430\u0 [...]
-ConfigView.section.style.forceMozilla=Vuze \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 Mozilla \u0437\u0430 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0441\u043a\u0438 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u0438\u044f [\u0438\u0437\u0438\u0441\u043a\u0432\u0430 XULRunner \u0438\u043b\u0438 Firefox 3; \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442]
-ConfigView.section.style.xulRunnerPath=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u044a\u0442 \u0434\u043e XULRunner/Firefox \u0440\u044a\u0447\u043d\u043e [\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0437\u0430 Firefox 3; \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442]
-azbuddy.name=\u0414\u0440\u0443\u0436\u043a\u0438
-azbuddy.enabled=\u0410\u043a\u0442\u0438\u0432\u043d\u0430
-azbuddy.disabled=\u041d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430, \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 - \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430.
-azbuddy.nickname=\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c
-azbuddy.msglog.title=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0434\u0440\u0443\u0436\u043a\u0430
-azbuddy.addtorrent.title=\u041f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e?
-azbuddy.addtorrent.msg=\u0414\u0440\u0443\u0436\u043a\u0430 '%1' \u0438\u0437\u043f\u0440\u0430\u0449\u0430 '%2'.\n\u0414\u0430 \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u0438 \u043b\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e?
-azbuddy.contextmenu=\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043a\u044a\u043c \u0434\u0440\u0443\u0436\u043a\u0430
-azbuddy.ui.mykey=\u041c\u0435\u0441\u0442\u0435\u043d \u043a\u043b\u044e\u0447:
-azbuddy.ui.add=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-azbuddy.ui.new_buddy=\u041d\u043e\u0432 \u043a\u043b\u044e\u0447 \u043d\u0430 \u0434\u0440\u0443\u0436\u043a\u0430:
-azbuddy.ui.table.name=\u0418\u043c\u0435
-azbuddy.ui.table.online=\u041d\u0430 \u043b\u0438\u043d\u0438\u044f
-azbuddy.ui.table.last_ygm=\u041d\u043e\u0432\u0430 \u043f\u043e\u0449\u0430
-azbuddy.ui.table.last_msg=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435
-azbuddy.ui.menu.remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-azbuddy.ui.menu.copypk=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043e\u0431\u0449 \u043a\u043b\u044e\u0447
-azbuddy.ui.menu.send=\u0421\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435
-azbuddy.ui.menu.send_msg=\u0422\u0435\u043a\u0441\u0442 \u0437\u0430 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043a\u044a\u043c \u0434\u0440\u0443\u0436\u043a\u0430(\u0438)
-azbuddy.ui.menu.ping=\u041f\u0438\u043d\u0433
-azbuddy.ui.menu.ygm=\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 YGM
-azbuddy.ui.menu.enc=\u0428\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430
-azbuddy.ui.menu.dec=\u0414\u0435\u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0438\u043f-\u0431\u043e\u0440\u0434\u0430
-azbuddy.ui.menu.sign=\u041f\u043e\u0434\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0438\u043f-\u0431\u043e\u0440\u0434
-azbuddy.ui.menu.verify=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043a\u043b\u0438\u043f-\u0431\u043e\u0440\u0434\u0430
-azbuddy.ui.table.lastseen=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0432\u0438\u0434\u044f\u043d
-Button.retry=&\u041e\u0442\u043d\u043e\u0432\u043e
-Button.ignore=&\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435
-DHTView.general.skew=\u041d\u0430\u043a\u043b\u043e\u043d:
-azbuddy.ui.table.msg_in=\u0412\u0445\u043e\u0434\u044f\u0449\u0438
-azbuddy.ui.table.msg_out=\u0418\u0437\u0445\u043e\u0434\u044f\u0449\u0438
-v3.MainWindow.menu.view.footer=\u041b\u0435\u043d\u0442\u0430 \u0441 \u0434\u0440\u0443\u0436\u043a\u0438
-azbuddy.downspeed=KB/s \u043c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0437\u0430 \u0434\u0440\u0443\u0436\u043a\u0430 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-security.crypto.badpw=\u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0430\u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u0430 \u0435 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430
-ConfigView.section.security.backupkeys=\u0417\u0430\u043f\u0430\u0300\u0441 \u043d\u0430 \u043a\u043b\u044e\u0447\u043e\u0432\u0435 \u0432\u044a\u0432 \u0444\u0430\u0439\u043b
-ConfigView.section.security.backupkeys.button=\u0417\u0430\u043f\u0430\u0300\u0441
-ConfigView.section.security.restorekeys=\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u044e\u0447\u043e\u0432\u0435 \u043e\u0442 \u0444\u0430\u0439\u043b
-ConfigView.section.security.restorekeys.button=\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-ConfigView.section.security.op.error.title=\u041f\u0440\u043e\u0432\u0430\u043b \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f
-ConfigView.section.security.op.error=\u041f\u0440\u043e\u0432\u0430\u043b \u0432 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f:\n %1
-ConfigView.section.security.restart.title=\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442
-ConfigView.section.security.restart.msg=Vuze \u0449\u0435 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430.
-ConfigView.section.security.system.managed=\u041f\u0440\u0435\u0434\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u044e\u0447\u043e\u0432\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u043d\u043e \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430
-azbuddy.ui.table.msg_queued=\u041d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430
-azbuddy.ui.menu.chat=\u041b\u0430\u0444\u0447\u0435
-azbuddy.chat.title=Vuze \u043b\u0430\u0444\u0447\u0435
-azbuddy.chat.says=%1 \u043a\u0430\u0437\u0432\u0430:
-Button.bar.show=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435
-Button.bar.hide=\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435
-Button.bar.share=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-Button.bar.add=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-Button.bar.edit=\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f
-Button.bar.edit.cancel=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u043e
-v3.MainWindow.menu.view.pluginbar=\u041b\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-MainWindow.dialog.select.vuze.file=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 Vuze \u0444\u0430\u0439\u043b
-MainWindow.menu.file.open.vuze=Vuze \u0444\u0430\u0439\u043b\u2026
-metasearch.addtemplate.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435?
-metasearch.addtemplate.desc=\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435 \u0441 \u0438\u043c\u0435 '%1'?
-v3.share.private.title=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-v3.share.private.text=\u0418\u0437\u0431\u0440\u0430\u043d\u0438\u044f\u0442 \u0442\u043e\u0440\u0435\u043d\u0442 \u0435 \u043c\u0430\u0440\u043a\u0438\u0440\u0430\u043d \u043a\u0430\u0442\u043e \u0447\u0430\u0441\u0442\u0435\u043d \u0442\u043e\u0440\u0435\u043d\u0442.\n\n\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u0442 \u0447\u0430\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438.
-metasearch.addtemplate.dup.title=\u0414\u0443\u0431\u043b\u0438\u0440\u0430\u043d \u0448\u0430\u0431\u043b\u043e\u043d
-metasearch.addtemplate.dup.desc=\u0428\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435 %1 \u0432\u0435\u0447\u0435 \u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d
-metasearch.export.select.template.file=\u0417\u0430\u043f\u0438\u0441 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d
-metasearch.import.select.template.file=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d
-azbuddy.tracker.enabled=\u0421 '\u041b\u0430\u043d\u0441\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u0440\u0443\u0436\u043a\u0430' \u0441\u0435 \u0434\u0430\u0432\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u0441 \u0434\u0440\u0443\u0436\u043a\u0438
-azbuddy.protocolspeed=KB/s \u043c\u0430\u043a\u0441. \u0431\u0430\u043b\u0430\u0441\u0442 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430 \u0434\u0440\u0443\u0436\u043a\u0430
-v3.MainWindow.button.download=\u0421\u0432\u0430\u043b\u044f\u043d\u0435
-v3.MainWindow.button.run=\u0421\u0442\u0430\u0440\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b
-v3.activity.header.downloads=\u0421\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-v3.activity.header.vuze.news=Vuze \u043d\u043e\u0432\u0438\u043d\u0438
-message.taking.too.long=\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0441\u0435 \u0431\u0430\u0432\u0438 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u0442 \u043e\u0447\u0430\u043a\u0432\u0430\u043d\u043e\u0442\u043e\n\u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u0436\u0438\u0435 \u0434\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 'ESC' \u0437\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u044f\u0432\u0430\u043d\u0435
-message.status.success=\u0423\u0441\u043f\u0435\u0448\u043d\u043e
-azbuddy.tracker.bbb.status.title=\u041b\u0430\u043d\u0441\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u0440\u0443\u0436\u043a\u0430
-azbuddy.tracker.bbb.status.title.tooltip=\u0418\u0437\u0431\u043e\u0440 \u0437\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-azbuddy.tracker.bbb.status.idle=\u0411\u0435\u0437 \u043b\u0430\u043d\u0441\u0438\u0440\u0430\u043d\u0435
-azbuddy.tracker.bbb.status.nli=\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-azbuddy.tracker.bbb.status.in=\u041c\u0435\u0441\u0442\u043d\u043e \u043b\u0430\u043d\u0441\u0438\u0440\u0430\u043d\u0435
-azbuddy.tracker.bbb.status.out=\u0422\u0435\u043a\u0443\u0449\u043e \u043b\u0430\u043d\u0441\u0438\u0440\u0430\u043d\u0438 \u0434\u0440\u0443\u0436\u043a\u0438
-v3.MainWindow.search.go.tooltip=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435\u0442\u043e
-v3.MainWindow.search.last.tooltip=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435
-metasearch.addtemplate.done.title=\u0414\u043e\u0431\u0430\u0432\u0435\u043d \u0448\u0430\u0431\u043b\u043e\u043d
-metasearch.addtemplate.done.desc=\u0428\u0430\u0431\u043b\u043e\u043d '%1' \u0435 \u0434\u043e\u0431\u0430\u0432\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e.\n\u0429\u0435 \u0431\u044a\u0434\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435.
-ConfigView.section.security.nopw=\u041d\u0435 \u0435 \u043f\u043e\u0434\u0430\u0434\u0435\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430
-ConfigView.section.security.nopw_v=\u041d\u044f\u043c\u0430 \u043f\u0430\u0440\u043e\u043b\u0430, \u0442\u0440\u044f\u0431\u0432\u0430 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u0432\u044a\u0432 Vuze
-fileplugininstall.install.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430?
-fileplugininstall.install.desc=\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 '%1', \u0432\u0435\u0440\u0441\u0438\u044f %2?
-fileplugininstall.duplicate.title=\u0414\u0443\u0431\u043b\u0438\u0440\u0430\u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430
-fileplugininstall.duplicate.desc=\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 '%1', \u0432\u0435\u0440\u0441\u0438\u044f %2 \u0432\u0435\u0447\u0435 \u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0430
-azbuddy.online_status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e\u0441\u0442
-azbuddy.os_online=\u041d\u0430 \u043b\u0438\u043d\u0438\u044f
-azbuddy.os_away=\u041e\u0442\u0441\u044a\u0441\u0442\u0432\u0430\u0449
-azbuddy.os_not_avail=\u041d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d
-azbuddy.os_busy=\u0417\u0430\u0435\u0442
-azbuddy.os_offline=\u041d\u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f
-azbuddy.ui.menu.disconnect=\u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435
-azbuddy.enable_chat_notif=\u0421 \u0438\u0437\u0432\u0435\u0441\u0442\u044f\u0432\u0430\u043d\u0438\u044f \u0432 \u043b\u0430\u0444\u0447\u0435\u0442\u043e
-progress.window.msg.progress=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0447\u0430\u043a\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430
-ConfigView.section.connection.advanced.read_select=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0437\u0430\u043a\u044a\u0441\u043d\u0435\u043d\u0438\u0435 \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435 (m, \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 %1)
-ConfigView.section.connection.advanced.read_select_min=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043c\u0438\u043d. \u0447\u0430\u043a\u0430\u043d\u0435 \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435 (m, \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 %1)
-ConfigView.section.connection.advanced.write_select=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0437\u0430\u043a\u044a\u0441\u043d\u0435\u043d\u0438\u0435 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 (m, \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 %1)
-ConfigView.section.connection.advanced.write_select_min=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043c\u0438\u043d. \u0447\u0430\u043a\u0430\u043d\u0435 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 (m, \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 %1)
-DetailedListView.title=\u041f\u043e\u0434\u0440\u043e\u0431\u0435\u043d \u0441\u043f\u0438\u0441\u044a\u043a
-ConfigView.section.connection.network.max.outstanding.connect.attempts=\u041c\u0430\u043a\u0441. \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438 \u0438\u0437\u0445\u043e\u0434\u044f\u0449\u0438 \u0432\u0440\u044a\u0437\u043a\u0438
-plugins.init.force_enabled=Vuze \u043e\u0442\u043a\u0440\u0438, \u0447\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 "%1" \u0435 \u0441\u043f\u0440\u044f\u043d\u0430, \u043d\u043e \u0437\u0430 \u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0438 Vuze \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e, \u0442\u044f \u0435 \u043f\u0443\u0441\u043d\u0430\u0442\u0430 \u043e\u0442\u043d\u043e\u0432\u043e.
-ConfigView.section.connection.prefer.udp=\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u043d\u0435 \u043d\u0430 UDP \u0432\u0440\u044a\u0437\u043a\u0438
-subscript.add.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442?
-subscript.add.desc=\u0414\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u043b\u0438 \u043d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 '%1'?
-subscript.add.dup.title=\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-subscript.add.dup.desc=\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 '%1' \u0435 \u0432\u0435\u0447\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d.
-subscript.add.upgrade.title=\u041d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442?
-subscript.add.upgrade.desc=\u0414\u0430 \u0441\u0435 \u043d\u0430\u0434\u0433\u0440\u0430\u0434\u0438 \u043b\u0438 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 '%1'?
-subscript.add.upgradeto.desc=\u0412\u0435\u0440\u0441\u0438\u044f %1 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 '%2' \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u0430.\n\u0414\u0430 \u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430 \u043b\u0438?
-azsubs.contextmenu.addassoc=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0430\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0437\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-azsubs.contextmenu.lookupassoc=\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0430\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0437\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-iconBar.start=\u0421\u0442\u0430\u0440\u0442
-iconBar.stop=\u0421\u0442\u043e\u043f
-iconBar.remove=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-iconBar.up=\u041d\u0430\u0433\u043e\u0440\u0435
-iconBar.down=\u041d\u0430\u0434\u043e\u043b\u0443
-iconBar.run=\u041f\u0443\u0441\u043a\u0430\u043d\u0435
-iconBar.editcolumns=\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0438
-iconBar.top=\u041d\u0430\u0439-\u043e\u0442\u0433\u043e\u0440\u0435
-iconBar.bottom=\u041d\u0430\u0439-\u043e\u0442\u0434\u043e\u043b\u0443
-iconBar.queue=\u0421\u0442\u0430\u0440\u0442
-iconBar.open=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-iconBar.share=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435
-iconBar.share.tooltip=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-iconBar.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-iconBar.comment=\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440
-iconBar.play=\u0418\u0437\u043f\u044a\u043b\u043d.
-iconBar.queue.tooltip=\u041d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430
-v3.MainWindow.menu.view.sidebar=\u0421\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430 \u043b\u0435\u043d\u0442\u0430
-v3.MainWindow.menu.view.actionbar=\u041b\u0435\u043d\u0442\u0430 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u0442\u0430
-v3.MainWindow.menu.view.toolbars=\u041b\u0435\u043d\u0442\u0438 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438
-ump.install=\u0411\u044a\u0440\u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f:\n\u0421 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043c\u0430\u043b\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043a\u0430 \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u0449\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0433\u043b\u0435\u0434\u0430 \u0442\u043e\u0432\u0430 \u0432\ [...]
-subscriptions.listwindow.title=\u0422\u044a\u0440\u0441\u0430\u0447 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-subscriptions.listwindow.autochecktext=Vuze \u043c\u043e\u0436\u0435 \u0434\u0430 \u043d\u0430\u043c\u0438\u0440\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0441\u044a\u0441 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432 \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430. \u0414\u0430 \u0441\u0435 \u0432\u043a\u043b\u044e\u0447\u0438 \u [...]
-subscriptions.listwindow.loadingtext=\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0441 %1
-subscriptions.listwindow.failed=\u041d\u0435 \u0441\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-subscriptions.listwindow.popularity=\u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442
-subscriptions.listwindow.popularity.unknown=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u043e
-subscriptions.listwindow.name=\u0418\u043c\u0435
-subscriptions.listwindow.subscribe=\u0410\u0431\u043e\u043d\u0438\u0440\u0430\u043d\u0435
-TableColumn.header.azsubs.ui.column.subs=\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-subscriptions.listwindow.popularity.reading=\u0427\u0435\u0442\u0435\u043d\u0435\u2026
-PluginDeprecation.log.start=\u0422\u0443\u043a \u0438\u043c\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442, \u043a\u043e\u044f\u0442\u043e \u0449\u0435 \u043e\u0442\u043f\u0430\u0434\u043d\u0435 \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u [...]
-PluginDeprecation.view=\u041d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438
-PluginDeprecation.alert=\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u0441\u0435 \u0435 \u043e\u043f\u0438\u0442\u0430\u043b\u0430 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442, \u043a\u043e\u044f\u0442\u043e \u0449\u0435 \u043e\u0442\u043f\u0430\u0434\u043d\u0435 \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438 \u0432\u0435\u0440\u0441\u0438\u0438. \u0414\u0 [...]
-TableColumn.header.Thumbnail=\u0418\u043a\u043e\u043d\u0430
-TableColumn.header.Thumbnail.info=\u041d\u0430\u043c\u0430\u043b\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434 \u043d\u0430 Vuze \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435. \u0417\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0434\u0440\u0443\u0433\u0438 \u043d\u0430\u043c\u0430\u043b\u0435\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 \u0441\u0435 \u0434\u0430\u0432\u0430\u0442 \u043e\u0442 \u041e\u0421-\u0430.
-v3.MainWindow.menu.getting_started=&\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430
-MainWindow.menu.community=&\u0414\u0440\u0443\u0436\u0435\u0441\u0442\u0432\u043e
-MainWindow.menu.help.faq=&\u0427\u0417\u0412
-MainWindow.menu.community.wiki=\u0414\u0440\u0443\u0436\u0435\u0441\u0442\u0432\u0435\u043d &\u0423\u0438\u043a\u0438
-MainWindow.menu.community.forums=\u0414\u0440\u0443\u0436\u0435\u0441\u0442\u0432\u0435\u043d &\u0444\u043e\u0440\u0443\u043c
-MainWindow.menu.community.blog=Vuze &\u0415\u043c\u0438\u0441\u0438\u044f
-MainWindow.menu.help.support=&\u041f\u043e\u043c\u043e\u0449 \u0438 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430
-externalLogin.title=\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-externalLogin.explanation=\u0428\u0430\u0431\u043b\u043e\u043d "%1" \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435. \u0421\u043b\u0435\u0434 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u044a\u0442 \u0449\u0435 \u0441\u0435 \u0437\u0430\u0442\u0432\u043e\u0440\u0438. \u0410\u043a\u043e \u043d\u0435 \u0441\u0435 \u0437\u0430\u0442\u0432\u043e\u0442, \u0434\u0430 \u0441\u0435 \u043d\u0430\u044 [...]
-externalLogin.explanation.capture=\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u0437\u0430 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u043e\u0437\u0438 \u0448\u0430\u0431\u043b\u043e\u043d. \u0421\u043b\u0435\u0434 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u0434\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 "\u0413\u043e\u0442\u043e\u0432\u043e".
-Button.done=\u0413\u043e\u0442\u043e\u0432\u043e
-GeneralView.torrent_created_on_and_by=%1 \u043e\u0442 %2
-Button.continue=\u041d\u0430\u043f\u0440\u0435\u0434
-Button.preview=\u041f\u0440\u0435\u0433\u043b\u0435\u0434
-Subscription.menu.forcecheck=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-Subscription.menu.clearall=\u041e\u0442\u043c\u044f\u0442\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438 \u043a\u0430\u0442\u043e \u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u0438
-Subscription.menu.remove=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-sidebar.Library=\u041c\u0435\u0441\u0442\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430
-sidebar.LibraryDL=\u0421\u0432\u0430\u043b\u044f\u0449\u0438 \u0441\u0435
-sidebar.LibraryCD=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438
-authenticator.location=\u041c\u044f\u0441\u0442\u043e
-authenticator.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-v3.MainWindow.menu.showActionBarText=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442
-subscript.import.fail.title=\u041f\u0440\u043e\u0432\u0430\u043b \u043d\u0430 \u0438\u043c\u043f\u043e\u0440\u0442
-subscript.import.fail.desc=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438: %1
-Subscription.menu.export=\u0415\u043a\u0441\u043f\u043e\u0440\u0442
-subscript.export.select.template.file=\u0417\u0430\u043f\u0438\u0441 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-Button.remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-Button.send=\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435
-Button.back=\u041d\u0430\u0437\u0430\u0434
-sidebar.LibraryUnopened=\u041d\u0435 \u0441\u043b\u0435\u0434\u0435\u043d\u0438
-TableColumn.header.unopened=\u041d\u043e\u0432\u043e
-Unopened.bigView.header=\u041d\u043e\u0432
-Subscription.menu.deleteall=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438
-Subscription.menu.reset=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u043d\u043e \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-ConfigView.section.Subscriptions=\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-subscriptions.config.maxresults=\u041c\u0430\u043a\u0441. \u0431\u0440\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438 \u0437\u0430 \u0437\u0430\u0434\u044a\u0440\u0436\u0430\u043d\u0435 \u0437\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-v3.activity.button.readall=\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e \u043a\u0430\u0442\u043e \u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u043e
-TableColumn.header.activityNew=\u041d\u043e\u0432\u043e
-TableColumn.header.activityType=\u0422\u0438\u043f
-TableColumn.header.activityText=\u0421\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435
-TableColumn.header.activityDate=\u0414\u0430\u0442\u0430 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-TableColumn.header.activityActions=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f
-Subscription.menu.resetauth=\u041d\u0430\u043d\u043e\u0432\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435
-Search.menu.engines=\u0428\u0430\u0431\u043b\u043e\u043d\u0438
-Wizard.Subscription.title=\u0410\u0431\u043e\u043d\u0438\u0440\u0430\u043d\u0435
-Wizard.Subscription.optin.title=\u0414\u0430 \u0438\u043c\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-Wizard.Subscription.subscribe.title=\u041d\u0430\u043b\u0438\u0447\u043d\u0438 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-Wizard.Subscription.create.title=\u041d\u043e\u0432 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-Button.search=\u0422\u044a\u0440\u0441\u0435\u043d\u0435
-Button.save=\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435
-Button.add=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435
-Button.createNewSubscription=\u041d\u043e\u0432 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-Button.availableSubscriptions=\u0421\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-Wizard.Subscription.optin.description=\u0410\u043a\u043e \u0441\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438\u0442\u0435, Vuze \u0449\u0435 \u043f\u043e\u043a\u0430\u0437\u0432\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0441\u044a\u0441 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u0432 \u043c\u0435\u0441\u0442\u043d\u043 [...]
-Wizard.Subscription.create.rss=\u0415\u043c\u0438\u0441\u0438\u044f
-Wizard.Subscription.create.search=\u0422\u044a\u0440\u0441\u0435\u043d\u0435
-Wizard.Subscription.search.subtitle1=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u0442\u044a\u0440\u0441\u0435\u043d\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442:
-Wizard.Subscription.search.subtitle2=\u041a\u0430\u043a\u0432\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0442\u044a\u0440\u0441\u0438?
-Wizard.Subscription.search.subtitle2.sub1=HD \u0444\u0438\u043b\u043c\u0438, TV \u0448\u043e\u0443\u0442\u0430, \u0444\u0438\u043b\u043c\u0438, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0438\u044f \u0432\u044a\u0432 Vuze \u043c\u0440\u0435\u0436\u0430\u0442\u0430
-Wizard.Subscription.search.subtitle2.sub2=\u0422\u043e\u0440\u0435\u043d\u0442\u0438 \u043e\u0442 \u0446\u0435\u043b\u0438\u044f \u0443\u0435\u0431
-Wizard.Subscription.search.subtitle3=\u041f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 \u0449\u0435 \u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u0442 \u0436\u0438\u0432\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430, \u0430\u043a\u043e \u0438\u043c\u0430 \u043d\u0 [...]
-Wizard.Subscription.rss.subtitle1=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u0438\u043b\u0438 \u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 URL:
-Wizard.Subscription.rss.subtitle2=\u041c\u043d\u043e\u0433\u043e \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u0438\u043c\u0430\u0442 \u0435\u043c\u0438\u0441\u0438\u0438 \u043a\u044a\u043c \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e. \u0414\u0430 \u0441\u0435 \u043d\u0430\u043c\u0435\u0440\u0438 \u0432 \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0441\u043a\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 URL \u043d\u0430 \u0435\u043c\u [...]
-Wizard.Subscription.rss.subtitle3=\u0421\u043b\u0435\u0434 \u0437\u0430\u043f\u0438\u0441, \u0449\u0435 \u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u0442 \u0436\u0438\u0432\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430, \u0430\u043a\u043e \u0438\u043c\u0430 \u043d\u043e\u0432\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u043 [...]
-Wizard.Subscription.subscribe.library=\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432 \u043c\u0435\u0441\u0442\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430
-Wizard.Subscription.subscribe.subscriptions=\u0421\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-Wizard.Subscription.subscribe.library.empty=\u041d\u044f\u043c\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438?\n \n\u0414\u0430 \u0441\u0435 \u0441\u043b\u0435\u0434\u0438 \u044f\u0440\u043a\u043e \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u0438\u044f \u0431\u0443\u0442\u043e\u043d \u0437\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0432\u044a\u0432 Vuze HD \u043c\u0440\u0435\u0436\u0430\u0442\u0430.\n \n<A HREF="http://faq.vuze.com/?View=entry&EntryI [...]
-message.confirm.delete.title=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435
-message.confirm.delete.text=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u043b\u0438 \u043d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 '%1'?
-Subscription.menu.properties=\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438
-props.window.title=\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043d\u0430 '%1'
-subs.prop.is_auto=\u0410\u0432\u0442\u043e-\u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438
-subs.prop.last_scan=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-subs.prop.last_result=\u041f\u043e\u0441\u043b\u0435\u0434\u0435\u043d \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043d\u043e\u0432 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442
-subs.prop.last_error=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430
-subs.prop.num_read=\u0411\u0440\u043e\u0439 \u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438
-subs.prop.num_unread=\u0411\u0440\u043e\u0439 \u043d\u0435\u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438
-subs.prop.template=\u0428\u0430\u0431\u043b\u043e\u043d
-subs.prop.auth=\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u0432\u0430\u043d\u0435
-externalLogin.auth_method_proxy=\u0421 \u043c\u0435\u0442\u043e\u0434 \u0437\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u043e \u043f\u0440\u0438\u0445\u0432\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438. \u0410\u043a\u043e \u0442\u043e\u0432\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438, \u0434\u0430 \u0441\u0435 \u043e\u0442\u043c\u0435\u043d\u0438 \u0438 \u043e\u043f\u0438\u0442\u0430 \u043e\u0442\u043d\u04 [...]
-externalLogin.wait=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u2026
-TableColumn.menu.date_added.time=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435/\u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0447\u0430\u0441
-sidebar.VuzeHDNetwork=Vuze HD \u043c\u0440\u0435\u0436\u0430
-subs.prop.next_scan=\u0421\u043b\u0435\u0434\u0432\u0430\u0449\u043e \u043f\u0440\u043e\u0443\u0447\u0432\u0430\u043d\u0435
-subs.prop.assoc=\u0410\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438
-subs.prop.version=\u0412\u0435\u0440\u0441\u0438\u044f
-subscriptions.column.new=\u041d\u043e\u0432
-subscriptions.column.new.info=\u041f\u043e\u043a\u0430\u0437\u0432\u0430 \u0434\u0430\u043b\u0438 \u0438\u043c\u0430 \u0435\u0434\u0438\u043d \u0438\u043b\u0438 \u043f\u043e\u0432\u0435\u0447\u0435 \u043d\u043e\u0432\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438
-subscriptions.column.name=\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-subscriptions.column.nb-results=\u041e\u0431\u0449\u043e \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438
-subscriptions.column.nb-new-results=\u041d\u043e\u0432\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438
-subscriptions.column.last-checked=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e
-subscriptions.view.title=\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-subs.prop.is_public=\u041e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043e
-subs.prop.high_version=\u041d\u0430\u043b\u0438\u0447\u043d\u0430 \u0435 \u043d\u0430\u0439-\u0432\u0438\u0441\u043e\u043a\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-Subscription.menu.upgrade=\u0421 \u043d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0434\u043e \u043f\u043e-\u0432\u0438\u0441\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-metasearch.template.version.bad=\u0428\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435 '%1' \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u0431\u0435\u0437 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 Vuze
-metasearch.addtemplate.failed.title=\u041f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f
-metasearch.addtemplate.failed.desc=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435: %1
-subscription.version.bad=\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 '%1' \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u0434\u043e\u043a\u0430\u0442\u043e \u043d\u0435 \u0441\u0435 \u043d\u0430\u0434\u0433\u0440\u0430\u0434\u0438 Vuze
-statusbar.feedback=\u041f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0437\u0438\u0432
-statusbar.feedback.tooltip=\u0414\u0430 \u0441\u0435 \u043d\u0430\u0442\u0438\u0441\u043d\u0435 \u0442\u0443\u043a \u0437\u0430 \u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0437\u0438\u0432
-sidebar.Activity=\u0418\u0437\u0432\u0435\u0441\u0442\u0438\u044f
-v3.activity.button.watchall=\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e \u043a\u0430\u0442\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0432\u0430\u043d\u043e
-subscriptions.view.help.1=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 \u043a\u044a\u0434\u0435\u0442\u043e \u0433\u0438 \u0438\u043c\u0430
-subscriptions.view.help.2=\u041f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0435\u0437\u043f\u043b\u0430\u0442\u043d\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043d\u043e\u0432\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u043e \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435. <A HREF="http://faq.vuze.com/?View=entry&EntryID=288">\u041 [...]
-sidebar.sash.tooltip=F7 \u0431\u044a\u0440\u0437\u043e \u043f\u043e\u043a\u0430\u0437\u0432\u0430/\u0441\u043a\u0440\u0438\u0432\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430
-sidebar.expand.tooltip=\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430
-sidebar.dropdown.tooltip=\u0421\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043a\u0430\u0437\u0432\u0430 \u043a\u0430\u0442\u043e \u043c\u0435\u043d\u044e
-subscript.all.subscribed=\u0418\u043c\u0430 \u043c\u0435\u0441\u0442\u0435\u043d \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-subscript.some.subscribed=\u0418\u043c\u0430 \u043c\u0435\u0441\u0442\u0435\u043d \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442 \u0437\u0430 \u043d\u044f\u043a\u043e\u0438 \u043e\u0442 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438\u0442\u0435 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435.\n\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434 \u043 [...]
-subscript.none.subscribed=\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0437\u0430 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-v3.iconBar.up.tooltip=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430\u0433\u043e\u0440\u0435\n\u0417\u0430\u0434\u044a\u0440\u0436\u0430\u043d\u0435 \u043d\u0430 \u0431\u0443\u0442\u043e\u043d\u0430 \u043d\u0430 \u043c\u0438\u0448\u043a\u0430\u0442\u0430 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e\u0442\u043e
-v3.iconBar.down.tooltip=\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430\u0434\u043e\u043b\u0443\n\u0417\u0430\u0434\u044a\u0440\u0436\u0430\u043d\u0435 \u043d\u0430 \u0431\u0443\u0442\u043e\u043d\u0430 \u043d\u0430 \u043c\u0438\u0448\u043a\u0430\u0442\u0430 \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u043a\u0440\u0430\u044f
-TableColumn.header.azsubs.ui.column.subs_link=\u0410\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f
-TableColumn.header.azsubs.ui.column.subs_link.info=\u0410\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0441 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-Button.deleteContent.fromLibrary=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430
-Button.deleteContent.fromComputer=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043e\u0442 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430
-v3.deleteContent.message=\n\u0414\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u043b\u0438 '%1' \u043e\u0442 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430 \u0438\u043b\u0438 \u0441\u0430\u043c\u043e \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435 \u043e\u0442 \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 Vuze \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430?
-v3.MainWindow.menu.view.toolbartext=\u0422\u0435\u043a\u0441\u0442 \u043d\u0430 \u043b\u0435\u043d\u0442\u0438\u0442\u0435 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438
-v3.MainWindow.menu.view.asSimpleList=\u041e\u043f\u0440\u043e\u0441\u0442\u0435\u043d \u0441\u043f\u0438\u0441\u044a\u043a
-v3.MainWindow.menu.view.asAdvancedList=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d \u0441\u043f\u0438\u0441\u044a\u043a
-v3.MainWindow.menu.view.statusbar=\u041b\u0435\u043d\u0442\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e
-Subscription.menu.dirtyall=\u041e\u0442\u043c\u044f\u0442\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438 \u043a\u0430\u0442\u043e \u043d\u0435\u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u0438
-configureWizard.file.message3=Vuze \u0449\u0435 \u0441\u0432\u0430\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u043a\u043e\u044f\u0442\u043e \u0441\u0435 \u0438\u0437\u0431\u0438\u0440\u0430 \u0442\u0443\u043a:
-v3.deleteContent.applyToAll=\u041f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u0437\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 %1 \u0438\u0437\u0431\u0440\u0430\u043d\u0438 \u043d\u0435\u0449\u0430
-ConfigView.label.seeding.firstPriority.ignoreIdleHours=\u0422\u043e\u0440\u0435\u043d\u0442\u0438, \u043a\u043e\u0438\u0442\u043e \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u0442 \u043d\u0438\u0449\u043e \u0437\u0430
-v3.MainWindow.menu.contentnetworks=HD &\u041c\u0440\u0435\u0436\u0438
-v3.MainWindow.menu.contentnetworks.about=\u0417\u0430 HD \u043c\u0440\u0435\u0436\u0438\u0442\u0435
-Peers.column.as=\u0410\u0421
-Peers.column.as.info=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0410\u0421 (\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u0430 \u0421\u0438\u0441\u0442\u0435\u043c\u0430) \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-ConfigTransferAutoSpeed.auto.speed.neural=\u041d\u0435\u0432\u0440\u0430\u043b\u0435\u043d \u043c\u0435\u0442\u043e\u0434 (Gudy \u0430\u043b\u0444\u0430)
-ConfigView.label.autoopen.downloadbars=\u0410\u0432\u0442\u043e-\u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043b\u0435\u043d\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043f\u0440\u0438
-ConfigView.label.autoopen=\u0410\u0432\u0442\u043e-\u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435
-ConfigView.label.autoopen.detailstab=\u0410\u0432\u0442\u043e-\u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 '\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438' \u043f\u0440\u0438
-ConfigView.label.systray=\u0421\u0438\u0441\u0442\u0435\u043c\u0435\u043d \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440
-ConfigView.label.systray._mac=\u0418\u043a\u043e\u043d\u0430 \u0432 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e
-ConfigView.section.interface.legacy=\u041f\u0440\u0435\u0434\u0438\u0448\u0435\u043d
-v3.MainWindow.menu.contentnetworks.manage=&\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 HD \u043c\u0440\u0435\u0436\u0438
-subs.prop.update_period=\u041f\u0435\u0440\u0438\u043e\u0434 \u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-TableColumn.header.#=\u2116
-TableColumn.header.#.info=\u2116 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f/\u043f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435
-TableColumn.header.category.info=\u0418\u043c\u0430 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f, \u043a\u044a\u043c \u043a\u043e\u044f\u0442\u043e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442
-TableColumn.header.DateCompleted.info=\u0414\u0430\u0442\u0430 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-TableColumn.header.AzProduct.info=\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u0442\u0435\u043b\u043d\u0430 \u043c\u0440\u0435\u0436\u0430, \u043e\u0442 \u043a\u043e\u044f\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0445\u043e\u0436\u0434\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442
-TableColumn.header.health.info=\u041a\u043e\u043b\u043a\u043e \u0437\u0434\u0440\u0430\u0432\u0430 \u0435 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0434\u043e \u0440\u043e\u044f\u043a\u0430 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430
-TableColumn.header.maxuploads.info=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438, \u043a\u044a\u043c \u043a\u043e\u0438\u0442\u043e \u0435\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u0435 \u043a\u0430\u0447\u0432\u0430
-TableColumn.header.name.info=\u0418\u043c\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-TableColumn.header.unopened.info=\u0424\u043b\u0430\u0433 \u0437\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043b\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u043d (\u043e\u0442\u0432\u0430\u0440\u044f\u043d)
-TableColumn.header.savepath.info=\u0426\u0435\u043b\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0438\u043b\u0438 \u0444\u0430\u0439\u043b \u0437\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430
-TableColumn.header.SeedingRank.info=\u0420\u0430\u043d\u0433, \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u0449 \u043a\u043e\u043b\u043a\u043e \u043c\u043d\u043e\u0433\u043e \u0442\u043e\u0440\u0435\u043d\u0442\u044a\u0442 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435\u0435\u043d\u0435. \u041f\u043e-\u0432\u0438\u0441\u043e\u043a\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u0437\u043d\u0430\u0447\u0438 \u043f\u043e-\u0433\u043e\u043b\u044f\u043c\u0430 \u043d\u0443\u0 [...]
-TableColumn.header.shareRatio.info=\u041a\u043e\u043b\u043a\u043e \u0435 \u043a\u0430\u0447\u0435\u043d\u043e (\u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u043e) \u0441\u043f\u0440\u044f\u043c\u043e \u0441\u0432\u0430\u043b\u0435\u043d\u043e\u0442\u043e.
-TableColumn.header.size.info=\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0432\u044a\u0440\u0445\u0443 \u0434\u0438\u0441\u043a\u0430
-TableColumn.header.azsubs.ui.column.subs.info=\u0411\u0443\u0442\u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430\u0449 \u0430\u0431\u043e\u043d\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0435\u043c\u0438\u0441\u0438\u044f \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0449\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-TableColumn.header.upspeed.info=\u0422\u0435\u043a\u0443\u0449\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435
-TableColumn.header.downspeed.info=\u0422\u0435\u043a\u0443\u0449\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-TableColumn.header.up.info=\u0422\u0435\u043a\u0443\u0449\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u0438 \u0438\u0437\u043f\u0440\u0430\u0442\u0435\u043d\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438
-TableColumn.header.down.info=\u0422\u0435\u043a\u0443\u0449\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438
-TableColumn.header.ProgressETA.info=\u041a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0430 \u043a\u043e\u043b\u043e\u043d\u0438 \u0437\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e\u0441\u0442, \u041e\u0412\u0417 \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0432 \u0435\u0434\u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0440\u0435\u0434\u043e\u0432\u0430 \u0 [...]
-TableColumn.header.eta.info=\u041e\u0447\u0430\u043a\u0432\u0430\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u043f\u0440\u0435\u0434\u0438 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-Pieces.column.#=\u2116
-Pieces.column.#.info=\u2116 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435
-Peers.column.%.info=% \u043e\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0430 \u0441\u0432\u0430\u043b\u0435\u043d \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0435\u0433\u0430
-TableColumn.header.download.info=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-TableColumn.header.upload.info=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u0438 \u043c\u0435\u0441\u0442\u043d\u043e \u0438\u0437\u043f\u0440\u0430\u0442\u0435\u043d\u0438 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-TableColumn.header.downloadspeed.info=\u041f\u043e \u043a\u043e\u043b\u043a\u043e \u0441\u0435 \u0432\u0437\u0438\u043c\u0430 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-TableColumn.header.uploadspeed.info=\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435, \u0441 \u043a\u043e\u0435\u0442\u043e \u0441\u0435 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u0442 \u0434\u0430\u043d\u043d\u0438 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f
-TableColumn.header.lan.info=\u0424\u043b\u0430\u0433 \u0437\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f, \u0447\u0435 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f\u0442 \u0435 \u0432 \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0440\u0435\u0436\u0430
-TableColumn.header.downloadspeedoverall.info=\u041e\u0447\u0430\u043a\u0432\u0430\u043d\u043e \u0442\u0435\u043c\u043f\u043e \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043e\u0442 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d
-Peers.column.pieces.info=\u0413\u0440\u0430\u0444\u0438\u0447\u043d\u0430 \u043b\u0435\u043d\u0442\u0430, \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u0449\u0430 \u043a\u043e\u0438 \u043f\u0430\u0440\u0447\u0435\u0442\u0430 \u0435 \u0441\u0432\u0430\u043b\u0438\u043b \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438\u044f\u0442
-TableColumn.header.TableColumnNameInfo=\u0418\u043c\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
-TableColumn.header.TableColumnSample=\u041f\u0440\u0438\u043c\u0435\u0440
-TableColumn.header.TableColumnInfo=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430
-TableColumn.header.TableColumnChosenColumn=\u0418\u0437\u0431\u0440\u0430\u043d\u0438 \u043a\u043e\u043b\u043e\u043d\u0438
-subs.prop.is_auto_ok=\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0435 \u0430\u0432\u0442\u043e-\u0441\u0432\u0430\u043b\u044f\u043d\u0435
-label.learnmore=\u041e\u0449\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-ColumnSetup.title=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u0437\u0430 '%1'
-ColumnSetup.explain=\u041e\u0442 \u043d\u0430\u043b\u0438\u0447\u043d\u0438\u0442\u0435 \u043a\u043e\u043b\u043e\u043d\u0438 \u0432\u043b\u044f\u0432\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u044f\u0442 \u0432\u0438\u0434\u0438\u043c\u0438 \u043a\u043e\u043b\u043e\u043d\u0438 \u0432\u0434\u044f\u0441\u043d\u043e. \u0420\u0430\u0437\u0433\u0440\u044a\u0449\u0430\u043d\u0435 \u0438\u043b\u0438 \u0441\u044a\u043a\u0440\u0430\u0449\u0430\u0432\u [...]
-ColumnSetup.chosencolumns=\u0418\u0437\u0431\u0440\u0430\u043d\u0438 \u043a\u043e\u043b\u043e\u043d\u0438
-ColumnSetup.proficiency=\u041f\u043e\u0434\u0433\u043e\u0442\u0432\u0435\u043d\u043e\u0441\u0442:
-ColumnSetup.categories=\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438:
-ColumnSetup.filters=\u0424\u0438\u043b\u0442\u0440\u0438
-ColumnSetup.availcolumns=\u041d\u0430\u043b\u0438\u0447\u043d\u0438 %1 \u043a\u043e\u043b\u043e\u043d\u0438
-ColumnSetup.availcolumns.filteredby=\u041d\u0430\u043b\u0438\u0447\u043d\u0438 %1 \u043a\u043e\u043b\u043e\u043d\u0438 \u0444\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0438 \u043f\u043e %2
-devices.view.title=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-device.renderer.view.title=\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0438
-device.mediaserver.view.title=\u041c\u0435\u0434\u0438\u0439\u043d\u0438 \u0441\u044a\u0440\u0432\u044a\u0440\u0438
-device.router.view.title=\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0438
-device.model.desc=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b
-device.model.name=\u0418\u043c\u0435 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b
-device.model.num=\u041d\u043e\u043c\u0435\u0440 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b
-device.manu.desc=\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b
-device.router.is_mapping=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u043e\u0432\u0435
-device.router.req_map=\u0418\u0437\u0438\u0441\u043a\u0432\u0430\u043d\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-device.router.configure=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 UPnP
-device.mediaserver.configure=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043c\u0435\u0434\u0438\u0439\u043d\u0438\u044f \u0441\u044a\u0440\u0432\u044a\u0440
-device.hide=\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-device.show=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-device.search=\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-device.router.con_type=\u0412\u0440\u044a\u0437\u043a\u0430: %1
-device.browse=\u041f\u0440\u0435\u0433\u043b\u0435\u0434
-device.upnp.desc_url=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-device.upnp.present_url=\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-ConfigView.label.maxStalledSeeding=\u041c\u0430\u043a\u0441. '\u0437\u0430\u043f\u044a\u043d\u0430\u0442\u0438' [0:\u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-device.search.auto=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-devices.sidebar.simple=\u041e\u043f\u0440\u043e\u0441\u0442\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434
-devices.xcode.working_dir=\u0417\u043e\u043d\u0430 \u043d\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435
-devices.xcode.prof_def=\u041f\u0440\u043e\u0444\u0438\u043b \u043d\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-devices.xcode.profs=\u041d\u0430\u043b\u0438\u0447\u043d\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u0437\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435
-device.lastseen=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0432\u0438\u0434\u044f\u043d\u043e
-devices.contextmenu.xcode=\u041f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-devices.device=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-devices.profile=\u041f\u0440\u043e\u0444\u0438\u043b
-General.percent=%
-devices.installed=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u043e
-devices.comp.missing=\u041d\u0435 \u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0430 Vuze \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430
-devices.state=\u041a\u0430\u043a \u0435
-MainWindow.menu.help.donate=&\u0414\u0430\u0440\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430
-DonationWindow.noload.title=\u0414\u0430\u0440\u0435\u043d\u0438\u044f
-DonationWindow.noload.text=\u041f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u044a\u0442 \u0437\u0430 \u0434\u0430\u0440\u0435\u043d\u0438\u044f \u043d\u0435 \u043c\u043e\u0436\u0430 \u0434\u0430 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438. \u0414\u0430 \u0441\u0435 \u043e\u043f\u0438\u0442\u0430 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.
-devices.xcode.only.show=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043d\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-device.quit.transcoding.title=\u041f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
-device.quit.transcoding.text='%1' \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430 \u0437\u0430 '%2' \u0438 \u0435 %3% \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d.\n\u041f\u0440\u0438 \u0438\u0437\u0445\u043e\u0434 \u0432 \u0442\u043e\u0437\u0438 \u043c\u043e\u043c\u0435\u043d\u0442 \u0449\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043f\u043e\u0447\u043d\u0435 \u043e\u0442\u043d\u0430\u04 [...]
-download.removerules.unauthorised.data=\t\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438
-device.config.xcode.maxbps=\u041c\u0430\u043a\u0441. KB/sec \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-device.xcode=\u041f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435
-device.xcode.always=\u0412\u0438\u043d\u0430\u0433\u0438
-device.xcode.whenreq=\u041a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430
-device.xcode.never=\u041d\u0438\u043a\u043e\u0433\u0430
-devices.copy.pending=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-devices.sidebar.hide.rend.generic=\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-v3.devicesview.infobar.text2=\u0417\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043a\u044a\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0432\u043b\u0430\u0447\u0438 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043e\u0442 \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 \u0431\u0438 [...]
-iconBar.transcode=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-iconBar.transcode.tooltip=\u041c\u0435\u0434\u0438\u044f\u0442\u0430 \u0434\u0430 \u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430 \u0437\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-device.retry.copy=\u041d\u043e\u0432 \u043e\u043f\u0438\u0442 \u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435
-devices.copy.fail=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-devices.on.demand=\u041f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0432\u0430\u043d\u0435
-devices.ready=\u0413\u043e\u0442\u043e\u0432\u043e
-TableColumn.header.trancode_qpos=\u2116
-TableColumn.header.trancode_qpos.info=\u041c\u044f\u0441\u0442\u043e \u0432 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u0437\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435
-TableColumn.header.profile=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-TableColumn.header.profile.info=\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d \u043f\u0440\u043e\u0444\u0438\u043b \u0437\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435
-TableColumn.header.copied=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u043e
-TableColumn.header.device=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-TableColumn.header.device.info=\u0426\u0435\u043b\u0435\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-TableColumn.header.trancode_completion=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043d\u0435\u0442\u043e
-# This is the beginning of the word "View". It's right aligned under the icon bar item
-v3.iconBar.view.big=\u0418\u0437\u0433
-v3.iconBar.view.big.tooltip=\u041f\u0440\u043e\u0441\u0442 \u0441\u043f\u0438\u0441\u044a\u043a
-# This is the end of the word "View". It's left aligned under the icon bar item
-v3.iconBar.view.small=\u043b\u0435\u0434
-v3.iconBar.view.small.tooltip=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d \u0441\u043f\u0438\u0441\u044a\u043a
-general.dont.ask.again=\u0411\u0435\u0437 \u043d\u043e\u0432\u043e \u043f\u0438\u0442\u0430\u043d\u0435
-general.na.short=\u041d\u044f\u043c\u0430
-v3.menu.device.exploreTranscodes=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-v3.menu.device.exploreTranscodes._windows=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 Explorer
-v3.menu.device.exploreTranscodes._mac=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432\u044a\u0432 Finder
-v3.menu.device.defaultprofile=\u041f\u0440\u043e\u0444\u0438\u043b \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435
-devices.button.installitunes=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 iTunes
-device.itunes.install=\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d iTunes
-device.itunes.start=\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 iTunes \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0430\u0432\u0442\u043e-\u0441\u0442\u0430\u0440\u0442
-device.itunes.install_problem=\u0418\u043c\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 iTunes
-devices.downloading=\u0421\u0432\u0430\u043b\u044f\u043d\u0435
-TableColumn.header.duration=\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442
-TableColumn.header.resolution=\u0420\u0430\u0441\u0442\u0435\u0440
-devices.xcode.autoStart=\u0410\u0432\u0442\u043e-\u0441\u0442\u0430\u0440\u0442, \u043a\u043e\u0433\u0430\u0442\u043e \u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e
-option.askeverytime=\u041f\u0438\u0442\u0430\u043d\u0435 \u0432\u0441\u0435\u043a\u0438 \u043f\u044a\u0442
-option.rememberthis=\u0417\u0430\u043f\u043e\u043c\u043d\u044f\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0442\u0430
-devices.associate=\u0410\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0441
-devices.associate.already=\u0418\u043c\u0430 \u0430\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f
-devices.always.cache=\u0411\u0443\u0444\u0435\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435-\u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-devices.turnon.prepageload=\u0417\u0430 \u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0437\u0438 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0441\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0438.
-devices.turnon.itunes=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u0437\u0430 iTunes (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0437\u0430 Apple \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430)
-devices.turnon.qos=\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u0441 Vuze \u043d\u0430 \u0430\u043d\u0438\u043d\u0438\u043c\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-devices.turnon.title=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u0437\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-devices.choose.device.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430 \u0442\u043e\u0432\u0430 \u0432\u0438\u0434\u0435\u043e:
-devices.choose.profile.info.text=\u0421\u043b\u0435\u0434 \u0438\u0437\u0431\u043e\u0440\u0430 Vuze \u0449\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438 \u0434\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u044a\u0442 \u0449\u0435 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u043e\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u043d\u [...]
-devices.choose.profile.info.title.selected=%1 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438:
-devices.view.heading=\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u0434\u0438\u044f \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-device.view.heading=\u041c\u0435\u0434\u0438\u044f \u0437\u0430 %1
-devices.choose.device.info.title=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430 \u0437\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-devices.choose.device.info.text=\u0421\u043b\u0435\u0434\u0432\u0430\u0449\u0438\u044f\u0442 \u043f\u044a\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0430 \u0441\u0435 \u0432\u043b\u0430\u0447\u0430\u0442 \u0438 \u043f\u0443\u0441\u043a\u0430\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u0438\u0437\u0431\u0440\u0430\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u [...]
-label.clickone=\u041f\u043e\u0441\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0435\u0434\u043d\u043e
-Button.turnon=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435
-ConfigView.label.dm.dblclick=\u0418\u0437\u0431\u043e\u0440 \u0441 \u043c\u0438\u0448\u043a\u0430 \u0432 \u0438\u0437\u0433\u043b\u0435\u0434 \u043d\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0438:
-ConfigView.option.dm.dblclick.play=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-ConfigView.option.dm.dblclick.details=\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0442\u043e\u0440\u0435\u043d\u0442
-ConfigView.option.dm.dblclick.show=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b
-ConfigView.option.dm.dblclick.show._mac=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b(\u043e\u0432\u0435) \u0432\u044a\u0432 Finder
-ConfigView.option.dm.dblclick.show._windows=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b(\u043e\u0432\u0435) \u0432 Explorer
-subscriptions.column.auto-download=\u0410\u0432\u0442\u043e-\u0441\u0432\u0430\u043b\u044f\u043d\u0435
-xcode.deletedata.title=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-xcode.deletedata.message=\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u043a\u043e\u043f\u0438\u0435\u0442\u043e \u043d\u0430 '%1' \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u043e \u0437\u0430 '%2'%3?
-xcode.deletedata.message.2=\n(\u043a\u043e\u043f\u0438\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u043c\u0430 \u0432\u0441\u0435 \u043e\u0449\u0435 \u0432 '%1')
-v3.deviceview.infobar.line1=\u0412\u043b\u0430\u0447\u0435\u043d\u0435/\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043e\u0442 \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e \u0438\u0437\u0431\u043e\u0440.
-v3.deviceview.infobar.line2=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043a\u043e\u0439 \u0434\u0430 \u0435 \u0435\u043a\u0440\u0430\u043d - iPhone, iPod, TV
-v3.deviceview.infobar.line1.generic=\u0412\u043b\u0430\u0447\u0435\u043d\u0435/\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043e\u0442 \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0432 %1 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430.
-v3.deviceview.infobar.line2.itunes=\u0412\u0438\u0434\u0435\u043e-\u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0449\u0435 \u0441\u0435 \u043f\u043e\u044f\u0432\u044f\u0442 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f 'iTunes Movies', \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0430 \u0433\u043e\u0442\u043e\u0432\u0438 \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435.
-v3.deviceview.infobar.line2.xbox=\u0417\u0430 \u043f\u0440\u0430\u0432\u0435\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043f\u043e\u0442\u043e\u043a \u043f\u0440\u0435\u0437 Xbox 360 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 My XBox \u2192 Video Library \u2192 Vuze.
-v3.deviceview.infobar.line2.ps3=\u0417\u0430 \u043f\u0440\u0430\u0432\u0435\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043f\u043e\u0442\u043e\u043a \u043f\u0440\u0435\u0437 PS3 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 Videos \u2192 Vuze.
-devices.copy_url=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 URL \u043f\u043e\u0442\u043e\u043a \u0432 \u043a\u043b\u0438\u043f-\u0431\u043e\u0440\u0434\u0430
-devices.converting=\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043d\u0435
-Button.reload=\u041f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435
-devices.auto.start=\u0410\u0432\u0442\u043e-\u0441\u0442\u0430\u0440\u0442
-Subscription.menu.setcookies=\u041d\u0430\u0441\u0442\u043e\u0439\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438
-general.enter.cookies=\u0411\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438 \u0437\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435
-device.config.xcode.workdir=\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-MyTorrentsView.menu.clear_alloc_data=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0437\u0430\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e
-DiskManager.error.nospace=\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u043c\u044f\u0441\u0442\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0430
-DiskManager.error.nospace_fat32={DiskManager.error.nospace} - \u0434\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 {wiki.fat32}
-ConfigView.section.file.rename.incomplete=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0430 \u043d\u0435\u043f\u044a\u043b\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-subscriptions.config.auto=\u0421\u0430\u043c\u043e-\u0441\u0432\u0430\u043b\u044f\u043d\u0435
-subscriptions.config.autostartdls=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 (\u0432\u043c\u0435\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0432 \u0441\u043f\u0440\u044f\u043d\u043e \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435)
-subscriptions.config.autostart.min=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e, \u0430\u043a\u043e >= MB [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-subscriptions.config.autostart.max=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u0441\u0430\u043c\u043e, \u0430\u043a\u043e <= MB [0: \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e]
-dlg.corewait.title=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u044f\u0434\u0440\u043e\u0442\u043e
-dlg.corewait.text=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435\u2026\n\n\u0417\u0430\u044f\u0432\u043a\u0430\u0442\u0430 \u0449\u0435 \u0441\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0438 \u0441\u043b\u0435\u0434 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 Vuze.
-library.core.wait=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435\u2026\n\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Vuze \u043a\u043b\u0438\u0435\u043d\u0442\u0430.
-ConfigView.label.StartUIBeforeCore=\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0413\u041f\u0418 \u043f\u0440\u0435\u0434\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u044f\u0434\u0440\u043e\u0442\u043e
-general.add.friends=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u044f\u0442\u0435\u043b\u0438
-general.all.friends=\u0412\u0441\u0438\u0447\u043a\u0438 \u043f\u0440\u0438\u044f\u0442\u0435\u043b\u0438
-friend.mod.subs=\u0414\u044f\u0441\u043d\u043e \u043f\u043e\u0441\u043e\u0447\u0432\u0430\u043d\u0435 \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-TableColumn.header.class=\u041a\u043b\u0430\u0441
-device.rss.group=\u041c\u0435\u0441\u0442\u043d\u0430 \u0435\u043c\u0438\u0441\u0438\u044f
-devices.xcode.rsspub=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0435\u043c\u0438\u0441\u0438\u044f
-device.rss.enable=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0435\u043c\u0438\u0441\u0438\u044f \u043e\u0442 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 - \u043f\u0440\u0430\u0432\u0438 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430 [...]
-device.rss.port=\u041f\u043e\u0440\u0442 \u0437\u0430 \u0435\u043c\u0438\u0441\u0438\u044f
-device.rss.view=\u041e\u043d\u0430\u0433\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0435\u043c\u0438\u0441\u0438\u044f
-device.rss.localonly=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0441\u0430\u043c\u043e \u0437\u0430 \u0442\u043e\u0437\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440
-devices.xcode.autoCopy=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-devices.xcode.setcopyto=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u2026
-devices.xcode.setcopyto.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043c\u044f\u0441\u0442\u043e, \u0432 \u043a\u043e\u0435\u0442\u043e \u0434\u0430 \u0441\u0435 \u043a\u043e\u043f\u0438\u0440\u0430
-devices.copy.folder.auto=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-devices.copy.folder.dest=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-TableColumn.menu.maxuploads=\u0411\u0440. \u043c\u0430\u043a\u0441. \u043a\u0430\u0447\u0432\u0430\u043d\u0438\u044f
-devices.xcode.mancopy=\u0420\u044a\u0447\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-devices.xcode.show.cat=\u041e\u0442\u0434\u0435\u043b\u044f\u043d\u0435 \u0441\u043f\u043e\u0440\u0435\u0434 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0442\u0430
-devices.cat.show=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438
-devices.tivo.machine=\u0418\u043c\u0435 \u043d\u0430 TiVo \u043c\u0430\u0448\u0438\u043d\u0430
-devices.info.copypending=%1 \u0444\u0430\u0439\u043b\u0430 \u0447\u0430\u043a\u0430\u0442 \u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435
-device.error.xcodefail=\u041f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-device.error.copyfail=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 1 \u0438\u043b\u0438 \u043f\u043e\u0432\u0435\u0447\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
-device.error.copytonotset='\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f' \u043d\u0435 \u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e
-device.error.copytomissing='\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f' "%1" \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043e
-device.error.copytonowrite='\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f' "%1" \u043d\u044f\u043c\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d \u0437\u0430\u043f\u0438\u0441
-device.error.copyfail2=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 1 \u0438\u043b\u0438 \u043f\u043e\u0432\u0435\u0447\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-v3.deviceview.infobar.line2.tivo=\u041f\u043e\u0442\u043e\u0447\u043d\u043e \u0432\u0438\u0434\u0435\u043e-\u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441\u0435 \u043f\u0443\u0441\u043a\u0430\u0442 \u043a\u0430\u0442\u043e \u043e\u0442 TiVo \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 Vuze \u0432 Now Playing List.
-v3.deviceview.infobar.line2.psp=\u0412\u0438\u0434\u0435\u043e-\u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0449\u0435 \u0441\u0435 \u043a\u043e\u043f\u0438\u0440\u0430\u0442, \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435 PSP.
-devices.info.copypending2=%1 \u0444\u0430\u0439\u043b\u0430 \u0447\u0430\u043a\u0430\u0442 \u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435, \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-subscriptions.column.nb-subscribers=\u0410\u0431\u043e\u043d\u0430\u0442\u0438
-device.offlinedownloader.view.title=\u041d\u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-device.od.enable=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-device.odauto.enable=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f\u0442\u0430
-device.odpt.enable=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0447\u0430\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-devices.contextmenu.od=\u041d\u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-devices.contextmenu.od.auto=<\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e>
-devices.contextmenu.od.enable=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435
-devices.contextmenu.od.enabled=\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e
-devices.od.view.heading=\u0421\u0432\u0430\u043b\u044f\u043d\u0438\u044f \u043f\u043e \u0433\u0440\u0430\u0444\u0438\u043a \u0437\u0430 \u043d\u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-DevicesOD.column.od_completion=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0430
-devices.od.idle=\u041d\u0435\u043d\u0430\u0442\u043e\u0432\u0430\u0440\u0435\u043d\u043e
-device.od.turnon.title=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u0437\u0430 \u043d\u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-device.is.disabled=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u043d\u0435 \u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e
-device.configure=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435\u2026
-device.od.error.notfound=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0438\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u043d\u0435 \u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e
-device.od.error.opfailstatus=\u041f\u0440\u043e\u0432\u0430\u043b \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u043f\u0440\u0438 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 %1: \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 %2
-device.od.error.opfailexcep=\u041f\u0440\u043e\u0432\u0430\u043b \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u043f\u0440\u0438 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 %1: \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 %2
-device.od.error.nospace=\u041d\u044f\u043c\u0430 \u043c\u044f\u0441\u0442\u043e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0438\u043b\u0438 \u043d\u0435 \u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e \u0432\u044a\u043d\u0448\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-device.od.space=\u041d\u0430\u043b\u0438\u0447\u043d\u043e \u043c\u044f\u0441\u0442\u043e
-ConfigView.section.style.forceSIValues=\u041d\u0430\u0441\u0438\u043b\u0435\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e IEC \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438 \u0431\u0435\u0437 \u043e\u0433\u043b\u0435\u0434 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0435\u043d\u0438\u0442\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\ [...]
-ConfigView.label.enableSystrayToolTip=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0441\u0432\u0430\u043b\u0430\u043d\u0435\u0442\u043e \u043f\u0440\u0438 \u043f\u0440\u0435\u043c\u0438\u043d\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0435\u0446\u0430
-devices.activation=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-button.nothanks=\u041d\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f
-devices.od.turnon.text1=\u0418\u043c\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e\u0441\u0442 \u0441 %1.
-devices.od.turnon.text2=\u0414\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438 \u043b\u0438 %1 \u0434\u0430 \u0441\u0432\u0430\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u044a\u0442 \u043d\u0435 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f?
-devices.od.turnon.text3=\u0414\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435 \u0442\u0432\u044a\u0440\u0434 \u0434\u0438\u0441\u043a \u043a\u044a\u043c %1 \u0437\u0430 \u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0437\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f.
-devices.od.turnon.learn=\u041f\u043e\u0432\u0435\u0447\u0435 >
-devices.router=\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440
-devices.od=\u041d\u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-webui.pairingenable=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435\u0442\u043e
-webui.group.access=\u041a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0434\u043e\u0441\u0442\u044a\u043f
-ConfigView.section.Pairing=\u0421\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435
-pairing.accesscode=\u041a\u043e\u0434 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f
-pairing.ac.getnew=\u0417\u0430\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432 \u043a\u043e\u0434 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f
-pairing.ac.getnew.create=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435
-pairing.ipv4=IPv4 \u0430\u0434\u0440\u0435\u0441
-pairing.ipv6=IPv6 \u0430\u0434\u0440\u0435\u0441
-pairing.local.ipv4=\u041c\u0435\u0441\u0442\u0435\u043d IPv4 \u0430\u0434\u0440\u0435\u0441
-pairing.local.ipv6=\u041c\u0435\u0441\u0442\u0435\u043d IPv6 \u0430\u0434\u0440\u0435\u0441
-pairing.host=Host \u0430\u0434\u0440\u0435\u0441 (DNS \u0438\u043c\u0435)
-pairing.group.explicit=\u0418\u0437\u0440\u0438\u0447\u043d\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438
-pairing.explicit.enable=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435
-pairing.explicit.info=\u041d\u043e\u0440\u043c\u0430\u043b\u043d\u043e \u043d\u0435 \u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0438\u0437\u0440\u0438\u0447\u043d\u0438 IP \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438, \u0437\u0430\u0449\u043e\u0442\u043e \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442 \u0430\u0432\u0442\u043e\u0 [...]
-pairing.op.fail=\u0421\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-pairing.alloc.fail=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0437\u0430\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432 \u043a\u043e\u0434 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\n%1
-pairing.enable=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 Vuze \u0438 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f/\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0438
-pairing.status.info=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-pairing.status.registered=\u0423\u0441\u043f\u0435\u0448\u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f (%1)
-pairing.status.pending=\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0449\u0435 \u0441\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u0432 %1
-pairing.status.initialising=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435
-pairing.status.disabled=\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d
-pairing.view.registered=\u041f\u043e\u0441\u043e\u0447\u0432\u0430\u043d\u0435 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u0442\u0430
-webui.pairing.info.n=\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0435 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435\u0442\u043e. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 "\u0412\u0440\u044a\u0437\u043a\u0430" \u2192 "\u0421\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435" \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0442\u0430\u0437\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f.
-webui.pairing.info.y=\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0435 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435\u0442\u043e. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 "\u0412\u0440\u044a\u0437\u043a\u0430" \u2192 "\u0421\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435" \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438.
-webui.enable=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 (*)
-ConfigView.section.rss=\u041c\u0435\u0441\u0442\u043d\u0438 \u0435\u043c\u0438\u0441\u0438\u0438 \u0438 \u0434\u0440.
-subscriptions.rss.enable=\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0435\u043c\u0438\u0441\u0438\u0438 \u043e\u0442 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-device.tivo.enable=\u0421 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u043d\u0430 TiVo
-Button.removeAll=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u0432\u0441\u0438\u0447\u043a\u0438
-label.rename=\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 %1
-pairing.server.warning.title=\u0421\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u0449\u0438\u044f \u0441\u0435 \u0441\u044a\u0440\u0432\u044a\u0440
-wizard.webseedseditor.edit.title=\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043d\u0430 \u043f\u043e\u0441\u044f\u0432\u043a\u0438\u0442\u0435 \u043f\u0440\u0435\u0437 HTTP
-wizard.webseedseditor.edit.newseed=\u041d\u043e\u0432\u0430 \u043f\u043e\u0441\u044f\u0432\u043a\u0430
-MyTorrentsView.menu.editWebSeeds=\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043f\u043e\u0441\u044f\u0432\u043a\u0438\u0442\u0435 \u043f\u0440\u0435\u0437 HTTP
-ClientStats.title.full=\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438
-ClientStats.column.count=\u0411\u0440\u043e\u044f\u0447
-Scrape.status.cached=\u0411\u0443\u0444\u0435\u0440\u0438\u0440\u0430\u043d\u043e \u043e\u0441\u0442\u044a\u0440\u0433\u0432\u0430\u043d\u0435
-network.ipv6.enable.support=\u0421 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u043d\u0430 IPv6
-ConfigView.section.plugins.magnetplugin=\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 Magnet URI
-MagnetPlugin.use.lookup.service=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u043d\u0430 Vuze \u0437\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435, \u0430\u043a\u043e magnet \u0442\u044a\u0440\u0441\u0435\u043d\u0435\u0442\u043e \u043f\u0440\u0435\u0437 DHT \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-MagnetPlugin.report.secondarylookup=\u041e\u043f\u0438\u0442 \u0441 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435
-MagnetPlugin.report.secondarylookup.ok=\u0412\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0442\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435 \u0443\u0441\u043f\u044f
-MagnetPlugin.report.secondarylookup.fail=\u0412\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0442\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438: \u043d\u044f\u043c\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 \u0438\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438
-TrackerView.title.short=\u0418\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438
-TrackerView.title.full=\u0418\u0437\u0442\u043e\u0447\u043d\u0438\u0446\u0438
-Trackers.column.type=\u0422\u0438\u043f
-Trackers.column.name=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-Trackers.column.status=\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-Trackers.column.seeds=\u041f\u043e\u0441\u044f\u0432\u043a\u0438
-Trackers.column.seeds.info=\u041f\u043e\u0441\u044f\u0432\u043a\u0438 \u0432 \u0440\u043e\u044f\u043a\u0430
-Trackers.column.leechers=\u041f\u0438\u044f\u0432\u0438\u0446\u0438
-Trackers.column.leechers.info=\u041f\u0438\u044f\u0432\u0438\u0446\u0438 \u0432 \u0440\u043e\u044f\u043a\u0430
-Trackers.column.peers=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-Trackers.column.peers.info=\u0420\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0441\u043f\u043e\u0440\u0435\u0434 \u0442\u0440\u0430\u043a\u0435\u0440\u0430
-Trackers.column.interval=\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b
-Trackers.column.interval.info=\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0442\u044a\u0440\u0441\u0435\u043d\u0435, s: \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b (\u043c\u0438\u043d. \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b)
-Trackers.column.updatein=\u041d\u0430\u043f\u0440\u0435\u0434
-Trackers.column.updatein.info=\u0412\u0440\u0435\u043c\u0435 \u0434\u043e \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-tps.status.available=\u041d\u0430\u043b\u0438\u0447\u043d\u043e
-tps.status.unavailable=\u041d\u0435 \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u043e
-tps.type.dht=\u0420\u0411\u0414
-tps.lan.details=%1 \u043c\u0435\u0441\u0442\u043d\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0438 \u0441\u0430 \u043e\u0442\u043a\u0440\u0438\u0442\u0438
-tps.pex.details=\u0421\u0432\u044a\u0440\u0437\u0430\u043d \u0441 %1 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438 (\u0447\u0430\u043a\u0430\u0449\u0438: pex=%2, \u0434\u0440\u0443\u0433\u0438=%3)
-tps.tracker.cache=\u0411\u0443\u0444\u0435\u0440 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438
-tps.tracker.cache1=\u0411\u0443\u0444\u0435\u0440 \u043d\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u0438: \u0431\u0440\u043e\u0439=%1
-dht.status.disabled=\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u0420\u0411\u0414 \u043d\u0435 \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u0430
-tps.type.incoming=\u0412\u0445\u043e\u0434\u044f\u0449\u0438
-tps.incoming.details=\u0422\u0435\u043a\u0443\u0449\u043e: TCP=%1, UDP=%2; \u041e\u0431\u0449\u043e \u043e\u0442\u043d\u0430\u0447\u0430\u043b\u043e=%3
-tps.type.plugin=\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430
-group.auto=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e
-ConfigView.label.autoadjust=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u0441\u043f\u043e\u0440\u0435\u0434 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430
-ConfigView.label.start=\u041f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435
-ConfigView.label.stop=\u0418\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435
-ConfigView.label.start.onlogin=\u0421\u0442\u0430\u0440\u0442 \u043d\u0430 Vuze \u043f\u0440\u0438 \u0432\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-ConfigView.label.stop.seedcomp=\u041f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0435\u0435\u043d\u0435
-ConfigView.label.stop.downcomp=\u041f\u0440\u0438 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-ConfigView.label.stop.Nothing=\u0411\u0435\u0437 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-ConfigView.label.stop.QuitVuze=\u0418\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 Vuze
-ConfigView.label.stop.Sleep=\u041f\u0440\u0435\u0441\u0442\u043e\u0439 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430
-ConfigView.label.stop.Hibernate=\u041f\u0440\u0438\u0441\u043f\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430
-ConfigView.label.stop.Shutdown=\u0418\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430
-core.shutdown.alert=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 '%1' \u0435 \u043f\u0443\u0441\u043d\u0430\u0442\u043e \u043a\u0430\u0442\u043e %2
-core.shutdown.dl=\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-core.shutdown.se=\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u043f\u043e\u0441\u044f\u0432\u043a\u0438
-pairing.last.error=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430
-MainWindow.menu.pairing=\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435
-ConfigView.label.pauseresume=\u0410\u0432\u0442\u043e-\u043f\u0430\u0443\u0437\u0430/\u043f\u043e\u0434\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-update.now.title=\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f
-update.now.desc=Vuze \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0430\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430.\n\n\u0421\u043b\u0435\u0434 \u0437\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0434\u04 [...]
-ConfigView.label.jvm=\u0412\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 Java
-platform.jvmopt.sunonly=\u041f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u0442 \u0441\u0435 \u0441\u0430\u043c\u043e JVM \u043d\u0430 Sun (\u0442\u0435\u043a\u0443\u0449 \u0434\u043e\u0441\u0442\u0430\u0432\u0447\u0438\u043a=%1)
-platform.jvmopt.configerror=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0442 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 JVM \u0437\u0430\u0440\u0430\u0434\u0438 \u0433\u0440\u0435\u0448\u043a\u0430 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0442\u0430
-platform.jvmopt.nolinkfile=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0442 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 JVM \u0437\u0430\u0440\u0430\u0434\u0438 \u043d\u0435\u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f
-platform.jvmopt.nolink=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0442 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 JVM \u0437\u0430\u0440\u0430\u0434\u0438 \u0437\u0430\u0431\u0440\u0430\u043d\u0430 \u043e\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0442\u0430
-platform.jvmopt.accesserror=\u041f\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0444\u0430\u0439\u043b\u0430 \u0441 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 JVM: %1
-pairing.status.noservices=\u041d\u044f\u043c\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0438 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u0443\u0441\u043b\u0443\u0433\u0438
-webui.pairingtest=\t\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0437\u0430 \u043f\u0440\u043e\u0431\u0430 \u043d\u0430 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435\u0442\u043e
-webui.connectiontest=\t\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0437\u0430 \u043f\u0440\u043e\u0431\u0430 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430
-jvm.info=Vuze \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430, \u0430\u043a\u043e \u0441\u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u044f\u0442 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435. *** \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435 - \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u [...]
-jvm.show.file=\u041c\u0435\u0441\u0442\u043d\u0438\u044f\u0442 \u0444\u0430\u0439\u043b \u0441 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 JVM \u0435 '%1' - \u0434\u0430 \u0441\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0430\u043c\u043e \u043f\u0440\u0438 \u0432\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435
-jvm.reset=JVM \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u0434\u0430 \u0441\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u043e\u043d\u043d\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u0438\u0442\u0435 \u0441\u0435
-jvm.error=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u044a\u043f\u0430 \u0434\u043e \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 JVM: %1
-jvm.max.mem=\u041c\u0430\u043a\u0441. \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u043c\u0435\u0442 [\u043f\u0440\u0430\u0437\u043d\u043e=\u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435,\u043c\u0438\u043d.=%1]
-jvm.min.mem=\u041c\u0438\u043d. \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u043c\u0435\u0442 [\u043f\u0440\u0430\u0437\u043d\u043e=\u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435,\u043c\u0438\u043d.=%1]
-ConfigView.section.invalid.value.title=\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442
-ConfigView.section.invalid.value=\u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0430 \u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 '%1' \u0437\u0430 '%2': %3
-Button.dismiss=\u041f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u043e
-webui.pairing.autoauth=\u0421\u044a\u0441 \u0437\u0430\u0449\u0438\u0442\u0430 \u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435: \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b=vuze, \u043f\u0430\u0440\u043e\u043b\u0430=<\u043a\u043e\u0434 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u043d\u0430 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435\u0442\u043e>
-ConfigView.label.stop.autoreset=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u0430 \u043f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u0442\u0430 \u043a\u0430\u0442\u043e '%1' \u043f\u0440\u0438 \u043f\u0443\u0441\u043a\u0430\u043d\u0435
-remote.pairing.title=\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435
-remote.pairing.subtitle=Vuze Remote \u0434\u0430\u0432\u0430 \u0432\u043b\u0430\u0441\u0442 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 Vuze \u043e\u0442 \u0432\u0441\u0435\u043a\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0438\u043b\u0438 \u043c\u043e\u0431\u0438\u043b\u0435\u043d \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043f\u043e \u0432\u0441\u044f\u043a\u043e \u0432\u0440\u0435\u043c\u0435 \u0438 \u043d\u0430\u0432\u0441\u044f\u043a\u044a\u04 [...]
-remote.pairing.instruction=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u0441\u043b\u0435\u0434\u043d\u0438\u044f\u0442 \u043a\u043e\u0434 \u0432 \u043f\u0440\u0430\u0437\u043d\u043e\u0442\u043e \u043c\u044f\u0441\u0442\u043e \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e \u043e\u0442 \u043d\u044f\u043a\u043e\u0435 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.
-remote.pairing.functions=<A HREF="clip">\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0434\u0430 \u0432 \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430</A> | <A HREF="new">\u041f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432 \u043a\u043e\u0434</A>
-remote.pairing.tip.title=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430: 2 \u043b\u0435\u0441\u043d\u0438 \u043d\u0430\u0447\u0438\u043d\u0430 \u0437\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 Vuze Remote:
-remote.pairing.tip.text=Vuze Remote \u043b\u0435\u043d\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438: \u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438 <A HREF="http://remote.vuze.com/download/">remote.vuze.com/download</A>\nVuze Remote \u043c\u043e\u0431\u0438\u043b\u0435\u043d: \u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u0435\u0442\u0438 <A HREF="http://remote.vuze.com/">remote.vuze.com</A> \u0447\u0440\u0435\u0437 \u043c\u043e\u04 [...]
-remote.pairing.learnmore=<A HREF="/pairing_learnmore.start">\u0427\u0417\u0412 \u0437\u0430 \u0441\u0434\u0432\u043e\u044f\u0432\u0430\u043d\u0435</A>
-remote.pairing.accesscode=\u041a\u043e\u0434 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f:
-remote.pairing.test.running=\u041f\u0440\u043e\u0431\u0430 \u043d\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e\u0441\u0442\u2026
-remote.pairing.test.success=Vuze \u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e.
-remote.pairing.test.unavailable=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e\u0441\u0442. <A HREF="retry">\u041d\u043e\u0432 \u043e\u043f\u0438\u0442</A>
-remote.pairing.test.fail=Vuze \u043d\u0435 \u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d \u0438\u0437\u0432\u044a\u043d \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u043c\u0440\u0435\u0436\u0430. <A HREF="/pairing_error_faq.start">\u041f\u043e\u0432\u0435\u0447\u0435</A>
-update.fail.app.changed.title=\u041f\u0440\u043e\u0432\u0430\u043b \u043d\u0430 \u043d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e
-update.fail.app.changed=Vuze \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u044a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0432\u044a\u0440\u0448\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e, \u0437\u0430\u0449\u043e\u0442\u043e \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u043f\u0440\u0438\u043b\u043e\u04 [...]
-webui.port.override=\u041f\u0440\u0435\u0432\u044a\u0437\u043c\u043e\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442: \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0441\u0430\u043c\u043e, \u0430\u043a\u043e \u0432\u044a\u043d\u0448\u043d\u0438\u044f\u0442 \u043f\u043e\u0440\u0442 \u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0435\u043d \u043e\u0442 \u0432\u044a\u0442\u0440\u0435\u0448\u043d\u0438\u044f \u0437\u0430\u0440\u0430\u0434\u0438 NAT \u043a\u043e\u [...]
-MainWindow.status.warning.tooltip=\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0442\u0443\u043a \u0437\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438
-search.dialog.text=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438:
-core.not.available=Vuze \u0432\u0441\u0435 \u043e\u0449\u0435 \u0441\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430, \u0434\u0430 \u0441\u0435 \u043e\u043f\u0438\u0442\u0430 \u043e\u0442\u043d\u043e\u0432\u043e \u0441\u043b\u0435\u0434 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435\u0442\u043e \u043c\u0443.
-dlg.auth.title=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f
-dlg.auth.enter.subtitle.try.1=\u041f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u043e.
-dlg.auth.enter.line.try.1=\u0414\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0434\u0435 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0438\u044f\u0442 \u043a\u043e\u0434 \u0437\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0434\u043e Vuze \u041f\u043b\u044e\u0441.
-dlg.auth.enter.line.try.2=\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0438\u044f \u043a\u043e\u0434. \u0414\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u043d\u043e\u043c\u0435\u0440\u0430 \u0438 \u0434\u0430 \u0441\u0435 \u043e\u043f\u0438\u0442\u0430 \u04 [...]
-dlg.auth.enter.prompt=Vuze \u041f\u043b\u044e\u0441 \u043a\u043e\u0434 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f:
-Button.validate=\u0412\u0430\u043b\u0438\u0434\u0438\u0440\u0430\u043d\u0435
-Button.getstarted=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435
-Button.goLibrary=\u041a\u044a\u043c \u041c\u0435\u0441\u0442\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430
-dlg.auth.success.subtitle=\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f!
-dlg.auth.success.line1=\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u043d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0434\u043e Vuze \u041f\u043b\u044e\u0441.
-dlg.auth.success.line2=\u0412\u0435\u0447\u0435 \u0435 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u043c\u0438 DVD-\u0442\u0430, \u043f\u0440\u043e\u0443\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0437\u0430 \u0432\u0438\u0440\u0443\ [...]
-dlg.auth.trial.success.line1=Vuze \u0435 \u0433\u043e\u0442\u043e\u0432 \u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u0432\u0430 DVD-\u0442\u0430.
-dlg.auth.trial.success.subtitle=DVD \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u0435 \u0432 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442
-dlg.auth.trial.success.info=\u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0432\u043b\u0430\u0447\u0430\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u0434\u043e "\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 DVD." \u0410\u043a\u043e \u0432\u0435\u0447\u0435 \u0435 \u0434\u043e\u0431\u0430\u0432\u0435\u043d\u043e \u0432\u0438\u0434\u0435\u043e \u043f\u0440\u0435\u0434\u04 [...]
-dlg.auth.revoked=\u041a\u043e\u0434\u044a\u0442 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d
-dlg.auth.revoked.line1=\u0422\u043e\u0437\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u0435\u043d \u043a\u043e\u0434 \u0437\u0430 Vuze \u041f\u043b\u044e\u0441 \u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d. \u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u043f\u043e-\u0434\u043e\u043b\u0443 \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f.
-dlg.auth.revoked.link=<A HREF="info">\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0438 \u043a\u043e\u0434\u043e\u0432\u0435</A>
-dlg.auth.denied=\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d \u043a\u043e\u0434 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435
-dlg.auth.denied.line1=\u041a\u043e\u0434\u044a\u0442 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043d\u0430 Vuze \u041f\u043b\u044e\u0441 \u0435 \u043e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d. \u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u043f\u043e-\u0434\u043e\u043b\u0443 \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f.
-dlg.auth.denied.link=<A HREF="info">\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u0438 \u043a\u043e\u0434\u043e\u0432\u0435</A>
-dlg.auth.cancelled=\u041a\u043e\u0434\u044a\u0442 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043d
-dlg.auth.cancelled.line1=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 Vuze \u041f\u043b\u044e\u0441 \u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u0430.
-dlg.auth.cancelled.line2=\u041f\u0440\u0438 \u0441\u044a\u043c\u043d\u0435\u043d\u0438\u044f \u0437\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u0442\u044a\u0440\u0441\u0438 \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430 \u0447\u0440\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0442\u0430 \u0432 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0449\u043e \u0444\u04 [...]
-dlg.auth.enter.subtitle.try.2=\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438.
-dlg.auth.enter.link.try.2=<A HREF="link">\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0442\u0443\u043a</A>, \u0430\u043a\u043e \u043d\u0435 \u0435 \u0437\u0430\u043a\u0443\u043f\u0435\u043d \u0432\u0441\u0435 \u043e\u0449\u0435 Vuze \u041f\u043b\u044e\u0441.
-dlg.auth.enter.link.try.1=\u041d\u044f\u043c\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u0435\u043d \u043a\u043e\u0434? <A HREF="upgrade">\u041d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0441\u0435\u0433\u0430</A>.
-dlg.auth.enter.expiry=\u0422\u0435\u043a\u0443\u0449\u0438\u044f\u0442 \u043a\u043e\u0434 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0438\u0437\u0442\u0438\u0447\u0430 \u043d\u0430 %1.
-dlg.auth.enter.revoked=\u0422\u0435\u043a\u0443\u0449\u0438\u044f\u0442 \u043a\u043e\u0434 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d.
-dlg.auth.enter.cancelled=\u0422\u0435\u043a\u0443\u0449\u0438\u044f\u0442 \u043a\u043e\u0434 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0435\u043d.
-dlg.auth.enter.denied=\u0422\u0435\u043a\u0443\u0449\u0438\u044f\u0442 \u043a\u043e\u0434 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0435 \u043e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d.
-dlg.auth.validating.subtitle=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u2026
-dlg.try.trial.title=\u0418\u0437\u043f\u0440\u043e\u0431\u0432\u0430\u043d\u0435 \u043d\u0430 DVD \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-dlg.try.trial.text=Vuze \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e-\u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043a\u0430\u0442\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u043c\u0438 DVD-\u0442\u0430. \u0414\u0430 \u0441\u0435 \u04 [...]
-dlg.auth.tos=\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u0435 \u0438 \u043f\u0440\u0438\u0435\u043c\u0430\u043d\u0435 \u043d\u0430 <A HREF="tos">\u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0442\u0430 \u043d\u0430 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430.</A>
-dlg.auth.install.subtitle.plus=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Vuze \u041f\u043b\u044e\u0441\u2026
-dlg.auth.install.subtitle.trial=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 DVD Burn
-dlg.auth.install.progress=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 %1 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0438\u2026
-dlg.auth.install.pct=%1% \u0433\u043e\u0442\u043e\u0432\u043e
-mdi.entry.plus.full=Vuze \u041f\u043b\u044e\u0441
-mdi.entry.plus.free=Vuze \u041f\u043b\u044e\u0441
-mdi.entry.dvdburn=DVD \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-mdi.entry.dvdburn.new=\u0417\u0430\u043f\u0438\u0441 \u043d\u0430 \u043d\u043e\u0432\u043e DVD
-menu.plus=Vuze \u041f\u043b\u044e\u0441
-menu.register=Vuze \u041f\u043b\u044e\u0441 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f
-dlg.auth.trial.title=\u041f\u0440\u043e\u0431\u043d\u043e DVD \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435
-dlg.player.install.subtitle=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435
-dlg.player.install.description=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u043d \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435\u2026
-devices.xcode.remove.vetoed=\u041f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 '%1' \u0435 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435. \u0421\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0430\u0442\u043e \u0434\u043e\u043a\u0430\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u044a\u0442 \u043d\u0435 \u0437\u0430 [...]
-Button.agree=\u0421\u044a\u0433\u043b\u0430\u0441\u0438\u0435
-dlg.auth.install.failed.title=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f\u0442\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438
-dlg.auth.install.failed.text=\u041a\u043e\u0434 \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f '%1' \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 \u0433\u0440\u0435\u0448\u043a\u0430 \u0432 \u0441\u044a\u0440\u0432\u044a\u0440\u0430.\n\n\u0414\u0430 \u0441\u0435 \u043e\u043f\u0438\u0442\u0430 \u043e\u0442\u043d\u043e\u0432\u043e \u0441 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f\u0442\u0430 \u043f\u043e-\u043a [...]
-device.status.online=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0435 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u043e
-device.itunes.status.running=iTunes \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d
-device.itunes.status.notrunning=iTunes \u043d\u0435 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d
-device.itunes.status.notinstalled=iTunes \u043d\u0435 \u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d
-OpenTorrentWindow.mb.notTorrent.retry=\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 Magnet
-ConfigView.section.ipfilter.clear.on.reload=\u0411\u0435\u0437 \u0444\u0438\u043b\u0442\u0440\u0438 \u043f\u0440\u0438 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0430 \u043d\u0430 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 IP-\u0442\u0430\u0442\u0430 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438. \u0411\u0435\u0437 \u043e\u0 [...]
-view.waiting.core=\u0418\u0437\u0433\u043b\u0435\u0434\u044a\u0442 \u0449\u0435 \u0435 \u043d\u0430\u043b\u0438\u0447\u0435\u043d \u0441\u043b\u0435\u0434 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u044f\u0434\u0440\u043e\u0442\u043e \u043d\u0430 Vuze\u2026
-devices.profile.direct=\u0414\u0438\u0440\u0435\u043a\u0442\u043d\u043e
-cat.autoxcode=\u0410\u0432\u0442\u043e-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-ConfigView.section.tables=\u0422\u0430\u0431\u043b\u0438\u0446\u0438
-ConfigView.section.style.useTree=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0432 \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430/\u041c\u0435\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-ConfigView.section.mode.resetdefaults=\u041f\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0441\u044a\u0441 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 (\u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-resetconfig.warn.title=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
-resetconfig.warn=\u0422\u043e\u0432\u0430 \u0449\u0435 \u043f\u0440\u0435\u0434\u0438\u0437\u0432\u0438\u043a\u0430 \u0437\u0430\u0433\u0443\u0431\u0430 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u0435\u043d\u0438 \u043f\u0440\u043e\u043c\u0435\u043d\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 Vuze.\n\u0414\u0430 \u0441\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u043b\u04 [...]
-ConfigView.label.xfer.bias_up=\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0447\u0440\u0435\u0437 \u0442\u043e\u043b\u0435\u0440\u0430\u043d\u0441 \u043d\u0430 \u043a\u0430\u043f\u0430\u0446\u0438\u0442\u0435\u0442\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0432\u044a\u0440\u0445\u0443 \u043d\u0435\u0437\u0430\u0432 [...]
-ConfigView.label.xfer.bias_slack=KB/s \u0437\u0430\u043f\u0430\u0437\u0435\u043d \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0437\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0438\u044f
-ConfigView.label.xfer.bias_no_limit=\u041e\u043f\u0438\u0442 \u0437\u0430 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u043b\u0435\u0440\u0430\u043d\u0441, \u043a\u043e\u0433\u0430\u0442\u043e \u043d\u044f\u043c\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043e \u043e\u0431\u0449\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435\u0442\u043e
-SpeedView.stats.upload=\u0414\u0430\u043d\u043d\u0438 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435:
-SpeedView.stats.con=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430:
-SpeedView.stats.con_details=\u043e\u0431\u0449\u043e=%1, \u0441 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0430\u0442\u043e \u043f\u043e\u0442\u0438\u0441\u043a\u0430\u043d\u0435=%2, \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430=%3, \u0431\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u0438=%4
-SpeedView.stats.upbias=\u0422\u043e\u043b\u0435\u0440\u0430\u043d\u0441 \u043d\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435:
-dlg.install.mlab.subtitle=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435
-dlg.install.mlab.description=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0437\u0430 \u0442\u0435\u0441\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442
-dial.up=\u041d\u0430\u0431\u0438\u0440\u0430\u043d\u0435
-auto.mode=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e (\u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430 \u0441\u0435)
-manual.mode=\u0420\u044a\u0447\u043d\u043e
-configureWizard.transfer2.hint=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e \u0433\u043e\u043b\u044f\u043c\u043e \u0438\u043b\u0438 \u043c\u0430\u043b\u043a\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0449\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u04 [...]
-configureWizard.transfer2.message=Bittorrent \u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 "\u0442\u0430\u043d\u0442\u043e \u0437\u0430 \u0442\u0430\u043d\u0442\u043e" \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b. \u041d\u0430\u0439-\u043e\u0431\u0449\u043e, \u043a\u043e\u043b\u043a\u043e\u0442\u043e \u043f\u043e-\u0431\u044a\u0440\u0437\u043e \u0441\u0435 \u043a\u0430\u0447\u0432\u0430, \u0442\u043e\u043b\u043a\u043e\u0432\u0430 \u043f\u043e-\u0431\u044a\u0440\u0437 [...]
-configureWizard.transfer2.group=\u0420\u0435\u0436\u0438\u043c
-configureWizard.transfer2.test.info=\u0418\u0437\u0431\u043e\u0440 \u0437\u0430 \u0438\u0437\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u0435\u043d \u0442\u0435\u0441\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430
-configureWizard.transfer2.test=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0435\u0441\u0442\u0430
-configureWizard.transfer2.mselect=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0442\u0430 \u0437\u0430 \u041a\u0410\u0427\u0412\u0410\u041d\u0415 \u043f\u0440\u0438 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u0432\u0440\u044a\u0437\u043a\u0430
-configureWizard.transfer2.mselect.info=xxx/<\u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 <\u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442> b/s \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435.\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430 ADSL \u0432\u0440\u044a\u0437\u043a\u0430 768 Kbps \u0441\u043a\u043e\u0440 [...]
-configureWizard.transfer2.rate.unchanged=\u0429\u0435 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-configureWizard.transfer2.rate.changed=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 = %1\n\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043e\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0449\u0435 \u0435 %2 (\u043c\u0430\u043a\u0441. \u0430\u043a\u0442\u0438\u0432\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438 = %3, \u043c\u0430\u043a\u0441. \u0437\u0430 \u0 [...]
-speedtest.wizard.select.title=\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0442\u0438\u043f\u0430 \u0442\u0435\u0441\u0442 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435
-speedtest.wizard.select.group=\u0422\u0438\u043f \u043d\u0430 \u0442\u0435\u0441\u0442\u0430
-speedtest.wizard.select.general=\u041e\u0431\u0449 \u0442\u0435\u0441\u0442 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 (\u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430 \u0441\u0435)
-speedtest.wizard.select.bt=\u0422\u0435\u0441\u0442 \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u043d \u0437\u0430 Bittorrent
-FileItem.storage.reorder=\u041f\u0440\u0435\u043f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435
-ConfigView.label.piecereorder=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438 \u043a\u044a\u043c \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043f\u0440\u0438 \u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u0438 \u043f\u0440\u0435\u043d\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u0440\u0447\u0435\u0442\u0430 \u0434\u043e\u043a\u0430\u0442\u043e \u0442\u0435\u0447\u0435 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u04 [...]
-ConfigView.label.piecereorderminmb=\u041f\u0440\u0435\u043f\u043e\u0434\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u0441\u0430\u043c\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043f\u043e-\u0433\u043e\u043b\u0435\u043c\u0438 \u043e\u0442 (MB)
-configureWizard.transfer2.current=<\u0422\u0435\u043a\u0443\u0449\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438>
-ConfigView.section.style.extendedErase=\u0418\u0437\u0447\u0435\u0440\u0442\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u0430 \u0438 \u0437\u0430\u043f\u044a\u043b\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0430\u0437\u043d\u0438 \u0437\u043e\u043d\u0438
-iconBar.stream=\u041f\u043e\u0442\u043e\u043a
-FilesView.menu.setpriority.numeric=\u0427\u0438\u0441\u043b\u043e\u0432\u2026
-FilesView.dialog.priority.title=\u0412\u044a\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0447\u0438\u0441\u043b\u043e\u0432 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-FilesView.dialog.priority.text=0=\u041d\u043e\u0440\u043c\u0430\u043b\u043d\u043e, 1=\u0412\u0438\u0441\u043e\u043a\u043e, 2=\u041f\u043e-\u0432\u0438\u0441\u043e\u043a\u043e\u2026
-beta.wizard.title=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0431\u0435\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f
-beta.wizard.intro.title=\u0421\u0435\u043a\u0446\u0438\u044f \u0437\u0430 \u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435
-beta.wizard.info=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u0432 \u0431\u0435\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430 \u043d\u0430 Vuze \u0434\u0430\u0432\u0430 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438 \u0432\u044a\u [...]
-beta.wizard.link=\u0414\u0430 \u0441\u0435 \u043f\u043e\u0441\u043e\u0447\u0438 \u0442\u0443\u043a \u0437\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u0441 \u0431\u0435\u0442\u0430 \u0438\u0437\u0434\u0430\u043d\u0438\u044f\u0442\u0430
-beta.wizard.off=\u041e\u0442\u043a\u0430\u0437, \u0449\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u0441\u0430\u043c\u043e \u0440\u0435\u0434\u043e\u0432\u043d\u0438 \u0438\u0437\u0434\u0430\u043d\u0438\u044f.
-beta.wizard.on=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u043d\u0430 \u0431\u0435\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f.
-beta.wizard.version=\u0422\u0435\u043a\u0443\u0449\u043e \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044f %1
-beta.wizard.disable.title=\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435 \u043f\u0440\u0435\u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435
-beta.wizard.disable.text=\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0430\u0442\u0430 \u043d\u0430 \u0431\u0435\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435!\n\n\u0417\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u044f\u0432\u0430\u043d\u0435 \u043e\u0442 \u0431\u0435\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0432 [...]
-beta.wizard.forum=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u0444\u043e\u0440\u0443\u043c\u0438\u0442\u0435 \u043d\u0430 Vuze \u0437\u0430 \u043e\u0442\u0437\u0438\u0432\u0438 \u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u0438\u0437\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438.
-dlg.install.vuzexcode.subtitle=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0437\u0430 \u043c\u0435\u0434\u0438\u0435\u043d \u0430\u043d\u0430\u043b\u0438\u0437
-dlg.install.vuzexcode.description=\u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0437\u0430 \u043c\u0435\u0434\u0438\u0435\u043d \u0430\u043d\u0430\u043b\u0438\u0437
-TableColumn.header.filecount=\u0424\u0430\u0439\u043b\u043e\u0432\u0435
-TableColumn.header.torrentspeed=\u0421\u043a\u043e\u0440\u043e\u0441\u0442
-FileProgress.deleted=\u0418\u0437\u0442\u0440\u0438\u0442\u043e
-priority.high=\u0412\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-priority.normal=\u041d\u043e\u0440\u043c\u0430\u043b\u0435\u043d \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442
-label.wrap.text=\u0421\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442
-ScrapeInfoView.title=\u041e\u0441\u043d\u043e\u0432\u0435\u043d \u0442\u0440\u0430\u043a\u0435\u0440
-Column.seedspeers.started=%1 \u043e\u0442 %2
-#connected to more seeds/peers than tracker reports
-library.all.header.p=%1 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430: %2 \u0430\u043a\u0442\u0438\u0432\u043d\u0438
-library.incomplete.header.p=%1 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441\u0435 \u0441\u0432\u0430\u043b\u044f\u0442, %2 \u0447\u0430\u043a\u0430\u0442 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-library.unopened.header.p=%1 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430
-library.all.header=%1 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430: %2 \u0430\u043a\u0442\u0438\u0432\u043d\u043e
-library.incomplete.header=%1 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441\u0435 \u0441\u0432\u0430\u043b\u044f, %2 \u0447\u0430\u043a\u0430 \u0437\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435
-library.unopened.header=%1 \u043e\u0442 \u0441\u043f\u0438\u0441\u044a\u043a\u0430
-ConfigView.section.style.status.show_rategraphs=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u0442\u0430 \u043a\u0430\u0442\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u043e\u0434 \u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435/\u043a\u0430\u0447\u0432\u0430\u043d\u0435
-device.error.mountrequired="%1" \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u043c\u043e\u043d\u0442\u0438\u0440\u0430\u043d\u0435 \u0432\u044a\u0440\u0445\u0443 \u043c\u0435\u0441\u0442\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-v3.deviceview.infobar.line2.android=\u0414\u0430 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u0430\u043d\u0435 \u043f\u0440\u0435\u0437 USB \u043e\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0437\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0435.
-MyTorrents.column.ColumnProgressETA.compon=\u0417\u0430\u0432\u044a\u0440\u0448\u0435\u043d \u043d\u0430 %1
-Sidebar.beta.title=\u0411\u0435\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430
-MainWindow.menu.beta.on=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u0432 \u0431\u0435\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430\u2026
-MainWindow.menu.beta.off=\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435 \u043e\u0442 \u0431\u0435\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430\u2026
-Button.sendNow=\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u0441\u0435\u0433\u0430
-Button.sendManual=\u0420\u044a\u0447\u043d\u043e \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 (\u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 .zip)
-deletecontent.also.deletetorrent=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u0438 \u043d\u0430 .torrent \u0444\u0430\u0439\u043b
-ConfigView.section.file.deletion.section=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435
-ConfigView.section.file.delete.torrent=\u041f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0434\u0430 \u0441\u0435 \u0442\u0440\u0438\u0435 .torrent \u0444\u0430\u0439\u043b\u044a\u0442 \u043f\u0440\u0438 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435
-ConfigView.section.file.delete.confirm=\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0447\u0440\u0435\u0437 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u0438 \u0431\u0443\u0442\u043e\u043d\u0430 \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0 [...]
-MainWindow.menu.view.beta=\u0411\u0435\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430
-ConfigView.section.server.enableudpprobe=\u0421 UDP \u0442\u0440\u0430\u043a\u0435\u0440\u0441\u043a\u0430 \u043f\u0440\u043e\u0431\u0430 \u0437\u0430 HTTP \u0442\u0440\u0430\u043a\u0435\u0440\u0438
-memmon.low.warning=\u0421\u0432\u044a\u0440\u0448\u0432\u0430 \u043f\u0430\u043c\u0435\u0442\u0442\u0430, \u043e\u0441\u0442\u0430\u0432\u0430\u0442 %1 \u043e\u0442 %2.\n\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u0449\u0435 \u0441\u0435 \u0432\u043b\u043e\u0448\u0438 \u0438 \u043d\u0430\u043a\u0440\u0430\u044f Vuze \u0449\u0435 \u0441\u043f\u0440\u0435 \u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0438\n\u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u04 [...]
-jvm.max.mem.current=\u0422\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u043c\u0430\u043a\u0441. \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0430 \u043f\u0430\u043c\u0435\u0442 \u0435 %1
-jvm.max.direct.mem=\u041c\u0430\u043a\u0441. \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0430 \u043f\u0430\u043c\u0435\u0442 [\u043f\u0440\u0430\u0437\u043d\u043e=\u043f\u043e-\u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435,\u043c\u0438\u043d.=%1]
-jvm.max.direct.mem.info=\u0412\u0430\u0436\u043d\u043e: \u0442\u0443\u043a \u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430 *\u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0430* \u043f\u0430\u043c\u0435\u0442, \u043d\u043e \u043f\u043e-\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0430 \u0435 \u043d\u0443\u0436\u0434\u0430\u0442\u0430 \u043e\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 *\u0438\u0437\u043f\u044a\u043b\u043 [...]
-jvm.options.summary=\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0442\u0435 \u0438\u0437\u0440\u0438\u0447\u043d\u0438 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:
-memmon.heap.auto.increase.warning=\u0418\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0430\u0442\u0430 \u043f\u0430\u043c\u0435\u0442 \u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0430 \u043d\u0430 %1. \u0429\u0435 \u0432\u043b\u0435\u0437\u0435 \u0432 \u0441\u0438\u043b\u0430 \u0441\u043b\u0435\u0434 \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u043d\u0430 Vuze.
-device.showGeneric=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-mdi.entry.games=\u0418\u0433\u0440\u0438
-Peers.column.Protocol=\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b
-devices.copying=\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-devices.cancel_xcode=\u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043d\u0435\u0442\u043e
-sidebar.header.transfers=\u0422\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0438
-sidebar.header.devices=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-sidebar.header.subscriptions=\u0410\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-sidebar.header.plugins=\u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0434\u043e\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u044f
-mdi.entry.about.devices=\u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-mdi.entry.about.plugins=\u0417\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435
-mdi.entry.about.dvdburn=\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435
-ConfigView.section.file.tb.delete=\u041f\u0440\u0438 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u0441 \u0431\u0443\u0442\u043e\u043d "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435" \u043e\u0442 \u043b\u0435\u043d\u0442\u0430\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438:
-ConfigView.tb.delete.ask=\u041f\u0438\u0442\u0430\u043d\u0435
-ConfigView.tb.delete.content=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u0431\u0435\u0437 \u043f\u0438\u0442\u0430\u043d\u0435
-ConfigView.tb.delete.torrent=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430
-search.export.all=\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0442\u0435 \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435\u2026
-subscriptions.search.enable=\u0421 \u0442\u044a\u0440\u0441\u0435\u043d\u0435 \u0432 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438 \u043e\u0442 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
-devices.cancel_xcode_del=\u041e\u0442\u043a\u0430\u0437 \u043e\u0442 \u043f\u0440\u0435\u0432\u0440\u044a\u0449\u0430\u043d\u0435/\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435
-subscriptions.add.tooltip=\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442
-subscriptions.overview=\u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438
-configureWizard.nat.title=NAT/\u0441\u044a\u0440\u0432\u044a\u0440\u0435\u043d \u043f\u043e\u0440\u0442
-configureWizard.nat.message=\u0417\u0430 \u043d\u0430\u0439-\u0434\u043e\u0431\u0440\u0438 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438 \u043e\u0442 Vuze, \u0441\u0435 \u043f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430 \u043f\u044a\u043b\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430 \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u0422\u043e\u04 [...]
-configureWizard.nat.server.udp_listen_port=\u0412\u0445\u043e\u0434\u044f\u0449 UDP \u043f\u043e\u0440\u0442 \u0437\u0430 \u0441\u043b\u0443\u0448\u0430\u043d\u0435
-v3.menu.device.defaultprofile.never=\u041d\u0438\u043a\u043e\u0433\u0430 \u0434\u0430 \u043d\u0435 \u0441\u0435 \u043f\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0430
-subscriptions.info.avail=\u041d\u0435 \u0441\u0430 \u0434\u043e\u0431\u0430\u0432\u0435\u043d\u0438 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 \u0432\u0441\u0435 \u043e\u0449\u0435. \u041d\u0430\u043b\u0438\u0447\u043d\u0438 \u0441\u0430 %1 \u0437\u0430 \u043c\u0435\u0441\u0442\u043d\u0430\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.
-subscriptions.dl_subs.enable=\u0421\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0430\u0431\u043e\u043d\u0430\u043c\u0435\u043d\u0442\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0438 \u043f\u0440\u0438 \u043d\u0443\u0436\u0434\u0430
-# Will be used for {library.name} in classic view
-library.name._classic=\u041c\u0435\u0441\u0442\u043d\u0438 \u0442\u043e\u0440\u0435\u043d\u0442\u0438
-# Will be used for {library.name} in VuzeUI view
-library.name._vuze=\u041c\u0435\u0441\u0442\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430
-ConfigView.section.style.units=\u0421 \u043c\u0435\u0440\u043d\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0438
-ConfigView.section.style.CatInSidebar=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430
-library.category.header=\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f '%1'
-device.import.title=\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e?
-device.import.desc=\u0414\u0430 \u0441\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u043b\u0438 \u0438\u043c\u043f\u043e\u0440\u0442 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e '%1'?
-device.import.dup.title=\u0414\u0443\u0431\u043b\u0438\u0440\u0430\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-device.import.dup.desc=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e '%1' \u0432\u0435\u0447\u0435 \u043f\u0440\u0438\u0441\u044a\u0441\u0442\u0432\u0430.
-stream.analysing.media=\u0410\u043d\u0430\u043b\u0438\u0437 \u043d\u0430 \u043d\u043e\u0441\u0438\u0442\u0435\u043b
-device.export.select.template.file=\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-dlg.stream.plus.subtext=\u041c\u043e\u0436\u0435 \u0434\u0430 \u043d\u0435 \u0441\u0435 \u0447\u0430\u043a\u0430 \u0441\u0432\u0430\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0446\u044f\u043b\u043e\u0442\u043e \u0432\u0438\u0434\u0435\u043e \u043f\u0440\u0435\u0434\u0438 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435.\n\u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438 \u0438 \u043f\u043e-\u0441\u043a\u043e\u0440\u043e \u04 [...]
-dlg.stream.plus.text=\u0421\u043b\u0435\u0434 \u043d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0434\u043e Vuze \u041f\u043b\u044e\u0441 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u0432\u0438\u0434\u0435\u043e \u0434\u043e\u043a\u0430\u0442\u043e \u0441\u0435 \u0441\u0432\u0430\u043b\u044f.
-dlg.stream.plus.title=\u041d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435
-dlg.stream.plus.subtitle=\u041d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435
-Button.upgrade=\u041d\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435
-stream.analysing.media.preview=\u0410\u043d\u0430\u043b\u0438\u0437 \u043d\u0430 \u043d\u043e\u0441\u0438\u0442\u0435\u043b (\u043e\u043d\u0430\u0433\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435)
+v3.MainWindow.menu.contentnetworks=HD &\u041C\u0440\u0435\u0436\u0438
+window.uiswitcher.text=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043D\u0430\u0439-\u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449 \u0413\u041F\u0418.
+plugin.sharing.download.remove.veto=\u0422\u043E\u0432\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0435 \u0432 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0440\u0435\u0441\u0443\u0440\u0441.\n\u0417\u0430 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E, \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C [...]
+VivaldiView.notAvailable=\u041D\u044F\u043C\u0430 Vivaldi \u0438\u0437\u0433\u043B\u0435\u0434
+ConfigView.section.file.showopentorrentoptions.sep=\u0421 \u043E\u0442\u0434\u0435\u043B\u0435\u043D \u0434\u0438\u0430\u043B\u043E\u0433 \u0437\u0430 \u0432\u0441\u0435\u043A\u0438 \u0442\u043E\u0440\u0435\u043D\u0442
+sidebar.header.devices=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0437 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+speedtest.wizard.run=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u0442\u0435\u0441\u0442 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442
+importTorrentWizard.title=\u0418\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 XML \u0442\u043E\u0440\u0435\u043D\u0442
+v3.deviceview.infobar.line2.itunes=\u0412\u0438\u0434\u0435\u043E-\u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0449\u0435 \u0441\u0435 \u043F\u043E\u044F\u0432\u044F\u0442 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F 'iTunes Movies', \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0430 \u0433\u043E\u0442\u043E\u0432\u0438 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435.
+splash.loadingImages=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0437\u0438
+CacheView.writes.toFile=\u0412\u044A\u0432 \u0444\u0430\u0439\u043B
+unix.script.new.text=\u0418\u043C\u0430 \u043D\u043E\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043A\u0440\u0438\u043F\u0442 \u0437\u0430 Vuze \u0438 \u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D \u0432 '%1'.\n\n\u0421\u0438\u043B\u043D\u043E \u043F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0438\u0442\u0435\u043B\u043D\u043E \u0435 \u0438\u0437\u043B\u0438\u0437\u0430\u043D\u0435\u0442\u043E \u043E\u0442 Vuze \u0432\u0435\u0434\u043D\u0430\u0433\u0430 \u043 [...]
+ConfigView.section.style.showRankIcon=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u043A\u043E\u043D\u0430 \u0437\u0430 \u043F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435
+columnChooser.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0438 \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435
+ConfigView.section.tracker.maxgettime=\u041C\u0430\u043A\u0441. \u0432\u0440\u0435\u043C\u0435 \u0437\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043D\u0430 GET [s] [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+Button.moveDown=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430&\u0434\u043E\u043B\u0443
+ConfigView.label.hapds=\u0418\u0437\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043F\u043E\u0441\u044F\u0432\u043A\u0438\u0442\u0435 \u0437\u0430 \u0441\u043A\u0440\u0438\u0442\u0438, \u043D\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+tag.stats.none.defined=\u041D\u0435 \u0441\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438/\u0434\u0435\u0444\u0438\u043D\u0438\u0440\u0430\u043D\u0438 \u0435\u0442\u0438\u043A\u0435\u0442\u0438 \u0441 \u043E\u0446\u0435\u043D\u043A\u0438\!
+label.download.file=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+splash.unloadingTorrent=\u041D\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ManagerItem.forced=\u041D\u0430\u0441\u0438\u043B\u0435\u043D
+device.search=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+iconBar.play=\u0418\u0437\u043F\u044A\u043B\u043D.
+ConfigView.label.seeding.rankType.seed.options=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0430\u043C\u043E \u0437\u0430 \u0431\u0440\u043E\u0439 \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+IPChecker.external.service.discoveryvip.name=Discoveryvip
+azbuddy.msglog.title=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0434\u0440\u0443\u0436\u043A\u0430
+MyTorrentsView.menu.rename=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435\u2026
+stats.long.monthstart=\u0421\u0447\u0435\u0442\u043E\u0432\u043E\u0434\u043D\u0438\u044F\u0442 \u043C\u0435\u0441\u0435\u0446 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u043D\u0430\:
+wizard.tracker.dht=\u0414\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u043E (\u0441\u0430\u043C\u043E \u0437\u0430 Vuze \u043A\u043B\u0438\u0435\u043D\u0442\u0438)
+subscript.import.fail.desc=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438\: %1
+pairing.ui.icon.tip.no.recent=\u041D\u044F\u043C\u0430 \u0441\u043A\u043E\u0440\u043E\u0448\u043D\u0438 \u0432\u0440\u044A\u0437\u043A\u0438
+platform.win32.baddll.FPServiceProvider=FoxyProxy Video Utility
+ConfigView.label.prioritizefirstpiece=\u041F\u043E-\u0432\u0438\u0441\u043E\u043A \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u0437\u0430 \u043F\u044A\u0440\u0432\u043E \u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u043F\u0430\u0440\u0447\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B(\u043E\u0432\u0435)
+Wizard.Subscription.search.subtitle3=\u041F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0449\u0435 \u0441\u0435 \u043F\u043E\u043B\u0443\u0447\u0430\u0432\u0430\u0442 \u0436\u0438\u0432\u0438 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430, \u0430\u043A\u043E \u0438\u043C\u0430 \u043D\u0 [...]
+Wizard.Subscription.search.subtitle2=\u041A\u0430\u043A\u0432\u043E \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0442\u044A\u0440\u0441\u0438?
+Wizard.Subscription.search.subtitle1=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u0442\u044A\u0440\u0441\u0435\u043D\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\:
+Peers.column.peer_id.info=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u0418\u0434. \u0447\u0438\u0442\u0430\u0435\u043C\u043E
+ConfigView.section.connection.peersource.Plugin=\u041E\u0442 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430
+settings.updated.title=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+Button.ignore=&\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435
+ConfigTransferAutoSpeed.set.dht.ping=DHT \u043F\u0438\u043D\u0433 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\:
+ConfigView.section.connection.advanced.mtu.tooltip=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u0435\u043D \u0440\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u043F\u0430\u043A\u0435\u0442, \u043A\u043E\u0439\u0442\u043E \u0441\u0435 \u043F\u0440\u0435\u043D\u0430\u0441\u044F \u043E\u0442 1 \u0440\u0430\u043C\u043A\u0430 \u043F\u043E \u043C\u0440\u0435\u0436\u0430\u0442\u0430.\nVuze \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 MTU-40 (MSS) \u0437\u0430 \u043F\u0430\u043A\u0435\u0 [...]
+subscriptions.listwindow.subscribe=\u0410\u0431\u043E\u043D\u0438\u0440\u0430\u043D\u0435
+ConfigView.title.full._mac=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+remote.pairing.test.fail=Vuze \u043D\u0435 \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D \u0438\u0437\u0432\u044A\u043D mestnata \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430. <A HREF\="/pairing_error_faq.start">\u041F\u043E\u0432\u0435\u0447\u0435</A>
+ipCheckerWizard.chooseService=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0443\u0441\u043B\u0443\u0433\u0430 \u0437\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 IP \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u0443\u0441\u043B\u0443\u0433\u0438
+ConfigView.label.downloading.autoReposition=\u041F\u0440\u0435\u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0438\u0440\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E
+iconBar.top=\u041D\u0430\u0439-\u043E\u0442\u0433\u043E\u0440\u0435
+configureWizard.welcome.title=\u041F\u043E\u0437\u0434\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043E\u0442 \u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A\u0430 \u0437\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 Vuze
+ManagerItem.ready=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0434\u0440\u0443\u0433(\u0438) \u0442\u043E\u0440\u0435\u043D\u0442(\u0438) \u0437\u0430 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430
+PeersView.BlockView.NoAvail.Have=\u041C\u0435\u0441\u0442\u043D\u043E \u0438\u043C\u0430; \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442 \u043D\u044F\u043C\u0430
+label.information={wizard.information}
+wizard.tracker.external=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u044A\u043D\u0448\u0435\u043D \u0442\u0440\u0430\u043A\u0435\u0440
+MagnetPlugin.report.found=\u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 %1
+MagnetPlugin.report.md.done=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0435 \u043D\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u0438
+Plugin.trackerpeerauth.info=\u0422\u0430\u0437\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 \u0440\u0430\u0431\u043E\u0442\u0438 \u0441 \u0442\u0440\u0430\u043A\u0435\u0440\u0438, \u0437\u0430 \u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0432\u0430, \u0447\u0435 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u0442\u0435 \u0441\u0430 \u0432\u0430\u043B\u0438\u0434\u043D\u0438 \u0447\u043B\u0435\u043D\u043E\u0432\u0435 \u043 [...]
+FilesView.click.info=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u0438\u0437\u0447\u0438\u0441\u043B\u044F\u0432\u0430; \u0441 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 - \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0438\u0437\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F
+MyTorrentsView.menu.editWebSeeds=\u0420\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u043F\u043E\u0441\u044F\u0432\u043A\u0438\u0442\u0435 \u043F\u0440\u0435\u0437 HTTP
+Button.yes=&\u0414\u0430
+MyTorrents.items.UpSpeedLimit.disabled=\u041D\u044F\u043C\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+ConfigView.section.style.confirmationOnExit=\u0414\u0438\u0430\u043B\u043E\u0433 \u0437\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0438\u0437\u0445\u043E\u0434
+label.num_selected=%1 \u0438\u0437\u0431\u0440\u0430\u043D(\u0438)
+PeersView.gain.info=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0442\u043E \u0441\u0432\u0430\u043B\u0435\u043D\u0438 - \u043A\u0430\u0447\u0435\u043D\u0438 \u0434\u0430\u043D\u043D\u0438
+MagnetURLHandler.report.percent=\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\: %1%
+MyTorrentsView.dialog.NumberError.title=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0438\u043B\u0438 \u043D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0435\u043C\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442
+ConfigView.section.connection.webseed.act.on.avail=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 Web/HTTP \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0441\u0430\u043C\u043E, \u043A\u043E\u0433\u0430\u0442\u043E \u043D\u0430\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u0442\u0430 \u0435 \u0437\u043B\u0435
+SpeedTestWizard.test.panel.abort.countdown=\u043E\u0442\u043A\u0430\u0437 \u043E\u0442 \u043F\u0440\u043E\u0431\u0430 \u0441\u043B\u0435\u0434\:
+remote.pairing.tip.title=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\: 2 \u043B\u0435\u0441\u043D\u0438 \u043D\u0430\u0447\u0438\u043D\u0430 \u0437\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 Vuze Remote\:
+Peers.column.as=AS/ASN
+PeersView.state.handshake=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0440\u044A\u043A\u043E\u0441\u0442\u0438\u0441\u043A\u0430\u043D\u0435
+upnp.mapping.dataport=\u041F\u043E\u0440\u0442 \u0437\u0430 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0434\u0430\u043D\u043D\u0438 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+crypto.alert.as.warning=\u041C\u0440\u0435\u0436\u0430 '%1' \u0435 \u0441 \u043D\u0430\u043B\u043E\u0436\u0435\u043D\u0438 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043D\u0430 \u0442\u0440\u0430\u0444\u0438\u043A\u0430 \u0437\u0430 \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044F\u043D\u0435\u0442\u043E \u043F\u0440\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435. \u0410\u0432\u044 [...]
+network.admin.maybe.vpn.title=\u0410\u043A\u0442\u0438\u0432\u043D\u0430 VPN?
+ConfigView.section.security.restart.msg=Vuze \u0449\u0435 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430.
+DevicesOD.column.od_status={MyTrackerView.status}
+library.incomplete.header=%1 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F, %2 \u0447\u0430\u043A\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+TableColumn.menu.date_added.time=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435/\u0441\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0447\u0430\u0441
+ConfigView.section.proxy.testsocks=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 SOCKS
+MainWindow.menu.file.export=&\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 XML \u0442\u043E\u0440\u0435\u043D\u0442\u0085\u2026
+splash.loadingTorrents=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+Button.removeAll=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u0432\u0441\u0438\u0447\u043A\u0438
+devices.copying=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+sidebar.expand.tooltip=\u0423\u0432\u0435\u043B\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430
+ConfigView.label.stop.RunScriptAndClose=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043A\u0440\u0438\u043F\u0442 + \u0441\u043F\u0438\u0440\u0430\u043D\u0435 Vuze
+v3.MainWindow.view.wait=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0433\u043B\u0435\u0434.
+openUrl.title=\u041C\u044F\u0441\u0442\u043E \u0437\u0430 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+Torrent.create.progress.piececount=\u0411\u0440\u043E\u0439 \u043F\u0430\u0440\u0447\u0435\u0442\u0430\:
+ConfigView.section.startstop={ConfigView.label.start} \u0438 {ConfigView.label.stop}
+OpenTorrentFile.column.download=\u0421\u0432\u0430\u043B\u044F\u043D\u0435?
+authenticator.location=\u041C\u044F\u0441\u0442\u043E
+upnp.alertothermappings=\u0414\u043E\u043A\u043B\u0430\u0434\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\u0435, \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u0430\u0449\u0438 \u043D\u0430 \u0434\u0440\u0443\u0433\u0438 \u043A\u043E\u043C\u043F\u044E\u0442\u0440\u0438
+ConfigView.section.ipfilter.peerblocking.group=\u0411\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+TableColumn.header.tag.upload_priority={cat.upload.priority}
+SystemTray.menu.startalltransfers=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+health.explain.error=\u0418\u043C\u0430 \u0433\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u0442\u043E\u0437\u0438 \u0442\u043E\u0440\u0435\u043D\u0442. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 \u043A\u043E\u043B\u043E\u043D\u0430\u0442\u0430 '\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435' \u0438\u043B\u0438 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\u0442\u0430 \u0432\u044A\u0440\u0445\u0443 \u0438\u043A\u043E\u043D\u0430\u0442\u0430 \u0437\u0430 \u [...]
+IPChecker.external.service.discoveryvip.url=http\://ip.discoveryvip.com/
+ConfigView.section.Devices={devices.view.title}
+SpeedView.stats.estimatechoke=\u041E\u0447\u0430\u043A\u0432\u0430\u043D\u043E (\u0437\u0430\u043F\u0443\u0448\u0432\u0430\u043D\u0435)
+MainWindow.dht.status.unreachable=DHT \u0437\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435\u043D\u0430
+Views.plugins.UPnP.title.tooltip=\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u0435\u043D\u043E \u041F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u044F\u0432\u0430\u043D\u0435 \u0438 \u041F\u043E\u043B\u0437\u0432\u0430\u043D\u0435
+dlg.stream.plus.subtext=\u041C\u043E\u0436\u0435 \u0434\u0430 \u043D\u0435 \u0441\u0435 \u0447\u0430\u043A\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0446\u044F\u043B\u043E\u0442\u043E \u0432\u0438\u0434\u0435\u043E \u043F\u0440\u0435\u0434\u0438 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435.\n\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u0438 \u0438 \u043F\u043E-\u0441\u043A\u043E\u0440\u043E \u04 [...]
+MainWindow.menu.view.mytorrents=&\u041C\u0435\u0441\u0442\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+Wizard.Subscription.subscribe.library=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u0432 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430
+splash.initializeCore=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u044F\u0434\u0440\u043E\u0442\u043E
+ConfigView.section.transfer.autospeed=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 (\u043A\u043B\u0430\u0441\u0438\u0447\u0435\u0441\u043A\u0430)
+iconBar.transcode=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+ConfigView.section.file.truncate.too.large=\u041F\u0440\u0435\u043A\u044A\u0441\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435, \u043A\u043E\u0438\u0442\u043E \u0437\u0430 \u043F\u0440\u0435\u043A\u0430\u043B\u0435\u043D\u043E \u0433\u043E\u043B\u0435\u043C\u0438
+GeneralView.label.size=\u0420\u0430\u0437\u043C\u0435\u0440\:
+ConfigView.copy.to.clipboard.tooltip=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u043A\u043B\u0438\u043F-\u0431\u043E\u0440\u0434\u0430
+azbuddy.ui.table.name=\u0418\u043C\u0435
+ConfigView.section.security.resetcerts.warning.title=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430 \u0437\u0430\u0433\u0443\u0431\u0430 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438
+SpeedView.stats.maxPing=\u041C\u0430\u043A\u0441. \u043F\u0438\u043D\u0433\:
+TableColumn.header.writerate.info=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441 \u043D\u0430 \u0444\u0430\u0439\u043B
+MainWindow.menu.file.folder.keybinding=Meta+Shift+O
+Subscription.menu.forcecheck=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+ConfigView.text.minutes=\u043C\u0438\u043D\u0443\u0442\u0438
+MainWindow.menu.view.mytracker=\u041C\u0435\u0441\u0442\u0435\u043D &\u0442\u0440\u0430\u043A\u0435\u0440
+wizard.choosefile=\u0424\u0430\u0439\u043B
+Button.preview=\u041E\u043D\u0430\u0433\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435
+menu.min.share.ratio=\u041C\u0438\u043D. \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 (%1)\u2026
+MyTorrents.column.ColumnQuality=\u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E
+SpeedTestWizard.finish.panel.enabled=\u0432\u043A\u043B\u044E\u0447\u0435\u043D
+DHTTransport.report.request_all=\u0438\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0446\u0435\u043B\u0438\u044F \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440 \u043E\u0442 %1
+ConfigView.label.seeding.preferLargerSwarms=\u041A\u043E\u0433\u0430\u0442\u043E \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u0442\u0435 \u0438\u043C\u0430\u0442 \u0435\u0434\u043D\u0430\u043A\u044A\u0432 \u0440\u0430\u043D\u0433, \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u0442 \u043F\u043E-\u0433\u043E\u043B\u0435\u043C\u0438\u0442\u0435 \u0440\u043E\u044F\u0446\u0438
+fileDownloadWindow.state_initializing=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.ircwiki=\u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0447\u0435\u0442\u0435 http\://wiki.vuze.com/w/Rules_for_IRC
+LoggerView.loggingDisabled=\u041D\u0435 \u0435 \u043F\u0443\u0441\u043D\u0430\u0442 \u0434\u043D\u0435\u0432\u043D\u0438\u043A.
+FilesView.%=\u0412 %
+subs.ext.view.launch.info=\u0414\u0430 \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043D\u0435 \u0442\u043E\u0437\u0438 \u0431\u0443\u0442\u043E\u043D, \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0431\u0440\u0430\u0443\u0437\u044A\u0440
+MainWindow.dialog.share.sharedircontents.recursive=\u0420\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E
+Button.deleteContent.fromComputer=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043E\u0442 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u0430
+MainWindow.menu.help.checkupdate=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430&\u0446\u0438\u0438\u0085
+Trackers.column.name=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+health.explain.yellow=\u041E\u0437\u043D\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0442\u0440\u0430\u043A\u0435\u0440\u044A\u0442 \u0435 \u0434\u043E\u0431\u0440\u0435, \u0438\u043C\u0430 \u0432\u0440\u044A\u0437\u043A\u0438 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u043D\u043E \u043D\u044F\u043C\u0430 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430.\n\u0412\u0435\u0440\u043E\u044F\u [...]
+dht.portdefault=\u041F\u0440\u0435\u0437 \u043F\u043E\u0440\u0442 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+Button.send=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435
+FilesView.mode=\u0420\u0435\u0436\u0438\u043C
+PeerManager.status.finished=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+MyTorrentsView.dialog.setSpeed.title=\u0417\u0430\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u0437\u0430 %1
+MyTorrentsView.header=\u041D\u0435\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+MagnetPlugin.report.dead=%1 \u0435 \u043C\u044A\u0440\u0442\u044A\u0432
+azbuddy.ui.menu.ping=\u041F\u0438\u043D\u0433
+devices.od.turnon.text3=\u0414\u0430 \u0441\u0435 \u0441\u0432\u044A\u0440\u0436\u0435 \u0442\u0432\u044A\u0440\u0434 \u0434\u0438\u0441\u043A \u043A\u044A\u043C %1 \u0437\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0430\u0437\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u044F.
+devices.od.turnon.text2=\u0414\u0430 \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u043B\u0438 %1 \u0434\u0430 \u0441\u0432\u0430\u043B\u044F \u0444\u0430\u0439\u043B\u043E\u0432\u0435, \u043A\u043E\u0433\u0430\u0442\u043E \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u044A\u0442 \u043D\u0435 \u0435 \u0441\u0432\u044A\u0440\u0437\u0430\u043D?
+pairing.srp.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0438\u0433\u0443\u0440\u043D\u043E \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435
+devices.od.turnon.text1=\u0418\u043C\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442 \u0441 %1.
+ConfigView.section.tracker.processinglimits=\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043D\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0442\u0430
+IPChecker.external.service.no-ip.url=http\://www.no - ip.com/
+ConfigView.section.transfer.autospeed.forcemin=\u041D\u0430\u0441\u0438\u043B\u0432\u0430\u043D\u0435 \u043D\u0430 %1 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u043F\u0440\u0438\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430
+popup.previous=\u2190 (%1)
+LocaleUtil.column.encoding=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
+MainWindow.menu.transfers.startalltransfers=&\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438
+upnp.alert.mappingfailed=UPnP\: \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 '%1' \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+FileView.BlockView.Active=\u0410\u043A\u0442\u0438\u0432\u043D\u0438
+authenticator.user=\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u043E \u0438\u043C\u0435
+label.torrent.structure=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+Button.markSelected=\u041E\u0442\u0431\u0435\u043B\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E
+sidebar.show.options=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0438\u0437\u0433\u043B\u0435\u0434\u0430 \u0437\u0430 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u043A\u0430\u0442\u043E \u0435\u043B\u0435\u043C\u0435\u043D\u0442 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430 \u0432\u043C\u0435\u0441\u0442\u043E \u043A\u0430\u0442\u043E \u043E\u0442\u0434\u0435\u043B\u0435\u043D \u043F\u0 [...]
+subscript.add.upgrade.title=\u041D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442?
+window.uiswitcher.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0413\u041F\u0418 \u0437\u0430 Vuze
+MyTorrentsView.menu.category.delete=&\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+ConfigView.section.plugins=\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+v3.MainWindow.menu.file.closewindow.keybinding=Meta+W
+DownloadManager.error.filenotfound=\u0424\u0430\u0439\u043B\u044A\u0442 \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D
+TableColumn.header.copied=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u043E
+ConfigView.section.security.resetkey.warning.title=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430 \u0437\u0430\u0433\u0443\u0431\u0430 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438
+devices.contextmenu.xcode=\u041F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+label.table.default=\u041F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430
+wizard.notimplemented=\u041D\u0435 \u0435 \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u043E \u043E\u0449\u0435
+ConfigView.label.seeding.autoStart0Peers=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+OpenTorrentOptions.header.saveto=\u041C\u044F\u0441\u0442\u043E \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435\: %1
+Torrent.create.progress.ignoringfile=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+config.external.browser.switch.subs={ConfigView.section.Subscriptions}
+TableColumn.header.torrentfileindex=\u0424\u0430\u0439\u043B\u043E\u0432 \u0438\u043D\u0434\u0435\u043A\u0441
+devices.installed=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u043E
+br.backup.auto.enable=\u0421 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u043D \u0437\u0430\u043F\u0430\u0300\u0441
+TrackerAvail.column.name={Trackers.column.name}
+device.router.req_map=\u0418\u0437\u0438\u0441\u043A\u0432\u0430\u043D\u0438 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
+ConfigView.section.tracker.ip=\u0412\u044A\u043D\u0448\u0435\u043D IP \u0430\u0434\u0440\u0435\u0441 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440
+azbuddy.enable_chat_notif=\u0421 \u0438\u0437\u0432\u0435\u0441\u0442\u044F\u0432\u0430\u043D\u0438\u044F \u0432 \u043B\u0430\u0444\u0447\u0435\u0442\u043E
+label.container.display=<\u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440>
+TableColumn.header.swarm_average_completion.info=\u0421\u0440\u0435\u0434\u043D\u0438\u044F\u0442 % \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\u0441\u0442 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u0442\u0435 \u0432 \u0440\u043E\u044F\u043A\u0430
+dialog.uiswitcher.restart.title=\u0413\u041F\u0418 \u0441\u043C\u044F\u043D\u0430\: Vuze \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430
+ConfigView.label.transferbar.remember_location=\u0417\u0430\u043F\u043E\u043C\u043D\u044F\u043D\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0437\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+ConfigView.label.show.win.on.add=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0438\u044F \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446, \u043A\u043E\u0433\u0430\u0442\u043E \u0434\u0440\u0443\u0433\u043E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0434\u043E\u0431\u0430\u0432\u044F \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+wizard.multitracker.group=\u0413\u0440\u0443\u043F\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0438
+dlg.auth.enter.line.try.2=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438 \u0432\u0430\u043B\u0438\u0434\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u043E\u043D\u043D\u0438\u044F \u043A\u043E\u0434. \u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u043D\u043E\u043C\u0435\u0440\u0430 \u0438 \u0434\u0430 \u0441\u0435 \u043E\u043F\u0438\u0442\u0430 \u04 [...]
+dlg.auth.enter.line.try.1=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u043E\u043D\u043D\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435\u0442\u043E \u0434\u043E Vuze \u041F\u043B\u044E\u0441.
+SpeedView.stats.upload_details=%1
+device.status.online=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u0442\u043E \u0435 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E
+FileItem.write=\u0437\u0430\u043F\u0438\u0441
+label.limit=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435
+PiecesView.DistributionView.RarestAvl=\u0420\u044F\u0434\u043A\u043E \u0441\u0440\u0435\u0449\u0430\u043D\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430\: %1 (\u043D\u0430\u043B\u0438\u0447\u043D\u0438\:%2)
+PeersView.BlockView.Transfer=\u041F\u0440\u0435\u043D\u0430\u0441\u044F\u043D\u0435
+LoggerView.filter.uncheckAll=\u0412\u0441\u0438\u0447\u043A\u0438 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043D\u0435\u043E\u0442\u043C\u0435\u0442\u043D\u0430\u0442\u0438
+MyTorrentsView.menu.manual.per_torrent=\u0420\u044A\u0447\u043D\u043E (\u043F\u043E \u0442\u043E\u0440\u0435\u043D\u0442)
+MainWindow.menu.file.open.torrentforseeding=\u0422\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u2026\u0085 (\u0437\u0430 \u0441\u0435\u0435\u043D\u0435)
+dialog.associations.title=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0430\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438
+ConfigView.label.jvm=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 Java
+ConfigView.label.playdownloadspeech=\u0413\u043B\u0430\u0441\u043E\u0432\u043E \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+dlg.auth.install.subtitle.trial=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 DVD Burn
+configureWizard.transfer.title=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440 \u0438 \u0432\u0440\u044A\u0437\u043A\u0430
+upnp.ignorebaddevices=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430, \u043A\u043E\u0438\u0442\u043E \u043D\u0435 \u043E\u0442\u0433\u043E\u0432\u0430\u0440\u044F\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u043E
+label.rerequest.blocks=\u0417\u0430\u044F\u0432\u043A\u0430 \u043D\u0430 \u0431\u043B\u043E\u043A\u043E\u0432\u0435 \u043E\u0442\u043D\u043E\u0432\u043E
+ConfigView.section.ipfilter.remove=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+OpenTorrentOptions.header.startoptions=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435\: %1
+Formats.units.Tibit=Tibit
+window.networkselection.description=\u0422\u043E\u0440\u0435\u043D\u0442\:
+configureWizard.transfer.connection=\u041B\u0438\u043D\u0438\u044F
+PeersView.Messaging.info=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u043A\u0430\u043A\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043C\u0430 \u0437\u0430 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0435 \u0432 \u0443\u043F\u043E\u0442\u0440\u0435\u0431\u0430.
+general.all.friends=\u0412\u0441\u0438\u0447\u043A\u0438 \u0434\u0440\u0443\u0436\u043A\u0438
+IrcClient.joining=\u041F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u044F\u0432\u0430\u043D\u0435
+subscriptions.dl_subs.enable=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u043E\u0442 \u0434\u0440\u0443\u0433\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0438 \u043F\u0440\u0438 \u043D\u0443\u0436\u0434\u0430
+ConfigView.section.connection.encryption.encrypt.info=\u0410\u043A\u043E \u0435 \u0432 \u0441\u0438\u043B\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435, \u043D\u044F\u043C\u0430 \u0434\u0430 \u0435 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0441 \u043D\u0435\u0441\u044A\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0438, \u043E\u0441\u0432\u0435\u043D \u0430\u043A\u043E \u043D\ [...]
+ConfigView.section.logging.log2type=\u0413\u0440\u0435\u0448\u043A\u0430
+TableColumn.header.sessionup.info=\u0411\u0430\u0439\u0442\u043E\u0432\u0435 \u043A\u0430\u0447\u0435\u043D\u0438 \u0432 \u0442\u0435\u043A\u0443\u0449\u0430\u0442\u0430 \u0441\u0435\u0441\u0438\u044F
+label.tags=\u0415\u0442\u0438\u043A\u0435\u0442\u0438
+SpeedTestWizard.finish.panel.auto.speed.seeding=\u0410\u0432\u0442\u043E-\u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435 \u0435\:
+ConfigView.label.seeding.numPeersAsFullCopy.tooltip=\u0421 \u0434\u043E\u043F\u0443\u0441\u043A\u0430\u043D\u0435\u0442\u043E, \u0447\u0435 \u0438\u043C\u0430 1 \u043F\u044A\u043B\u043D\u043E \u043A\u043E\u043F\u0438\u0435 \u0437\u0430 \u0425 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u0441\u0435 \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430 \u0440\u0430\u043D\u0433\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u0442\u0435 \u [...]
+ConfigView.section.dns.info=\u0422\u043E\u0437\u0438 \u0440\u0430\u0437\u0434\u0435\u043B \u0443\u043A\u0430\u0437\u0432\u0430 \u0430\u043B\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u0438 DNS \u0441\u044A\u0440\u0432\u044A\u0440\u0438 \u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F \u043A\u043E\u0433\u0430 \u043C\u043E\u0433\u0430\u0442 \u0434\u0430 \u0431\u044A\u0434\u0430\u0442 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438.\n\n\u041D\u0430\u043F\u0440 [...]
+TableColumn.header.DateCompleted={TableColumn.header.date_completed}
+dht.backup.only=\u0421\u0430\u043C\u043E \u0437\u0430\u043F\u0430\u0300\u0441 \u043D\u0430 DHT
+ConfigView.section.proxy.check.on.start=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0430 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+TableColumn.header.date_completed=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u043D\u0430
+UIDebugGenerator.messageask.text=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430 \u0434\u043E\u043A\u043B\u0430\u0434\u0432\u0430\u043D\u0430\u0442\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442
+Button.deleteContent.fromLibrary=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043E\u0442 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430
+ConfigView.section.connection.peersource.Tracker=\u041E\u0442 \u0442\u0440\u0430\u043A\u0435\u0440
+iconBar.queue=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435
+CacheView.reads.avgsize=\u0421\u0440\u0435\u0434\u0435\u043D \u0440\u0430\u0437\u043C\u0435\u0440
+ConfigView.section.file.perf.cache.enable.read=\u0418\u0437\u043F\u0440\u0435\u0432\u0430\u0440\u0432\u0430\u0449\u043E \u0447\u0435\u0442\u0435\u043D\u0435 \u0437\u0430 \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435 \u0447\u0435\u0442\u0435\u043D\u0438\u044F\u0442\u0430 \u043E\u0442 \u0434\u0438\u0441\u043A\u0430 \u043F\u0440\u0438 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+SpeedTestWizard.set.upload.panel.explain=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0442\u0430 \u0442\u0443\u043A \u0441\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u043E\u0442 Vuze AutoSpeed \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u044A\u043C\u0430. \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0432\u0430\u0442 \u0441\u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0442\u0430 \u0437\u0430 \u0442\u0440\u0430\u043 [...]
+wizard.maketorrent.piececount=\u0411\u0440\u043E\u0439 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+change.url.msg.desc=\u0422\u043E\u0432\u0430 \u0449\u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435 \u043D\u043E\u0432 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0438 \u0449\u0435 \u043F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438\u044F
+CacheView.reads.title=\u0412/\u0418 \u043F\u0440\u043E\u0447\u0438\u0442\u0438
+ConfigView.section.style.inactiveUpdate=\u041E\u0431\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0438\u044F \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446 \u043D\u0430 \u0432\u0441\u0435\u043A\u0438 N \u043E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0438\u044F \u043D\u0430 \u0413\u041F\u0418, \u043A\u043E\u0433\u0430\u0442\u043E \u0442\u043E\u0439 \u043D\u0435 \u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u0438\u044F\u0442 \u0 [...]
+v3.iconBar.up={iconBar.up}
+v3.mb.PlayFileNotFound.text=\u0424\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0437\u0430 '%1' \u0441\u0430 \u0438\u0437\u0442\u0440\u0438\u0442\u0438 \u0438\u043B\u0438 \u043B\u0438\u043F\u0441\u0432\u0430\u0442.
+plus.notificaiton.OfflineExpiredEntry=Vuze \u041F\u043B\u044E\u0441 \u0435 \u0434\u0435\u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D \u043F\u043E\u0440\u0430\u0434\u0438 \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E \u043D\u0435\u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435.
+tags.view.heading=\u041F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438
+ConfigView.label.queue.stoponcebandwidthmet=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u0442 \u043F\u043E\u0432\u0435\u0447\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0438\u0433\u043D\u0430\u0442\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435/\u0441\u0432\u0430\u0 [...]
+ConfigView.button.save=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+Security.keystore.corrupt=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0442\u043E \u0437\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435 '%1', \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u0438 \u043E\u0442\u043D\u043E\u0432\u043E \u0434\u0430 \u0441\u0435 \u0441\u044A\u0437\u0434\u0430\ [...]
+UpdateWindow.status.restartNeeded=\u0429\u0435 \u0431\u044A\u0434\u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0440\u0435\u0441\u0442\u0430\u0440\u0442\!
+importTorrentWizard.process.inputfilebad.message=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u0432\u0445\u043E\u0434\u0435\u043D \u0444\u0430\u0439\u043B\:
+ConfigView.section.security.op.error.title=\u041F\u0440\u043E\u0432\u0430\u043B \u0432 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F
+subscript.add.desc=\u0414\u0430 \u0441\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430 \u043B\u0438 \u043D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 '%1'?
+ConfigView.section.tracker.maxgettime.info=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0441\u0435 \u0437\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0438\u044F \u0438 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0438\u044F
+tps.type.plugin=\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430
+azbuddy.tracker.bbb.status.in=\u041C\u0435\u0441\u0442\u043D\u043E \u043B\u0430\u043D\u0441\u0438\u0440\u0430\u043D\u0435
+devices.copy.folder.dest=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+ConfigView.text.hours=\u0447\u0430\u0441\u0430
+label.monitor.clipboard=\u041D\u0430\u0431\u043B\u044E\u0434\u0435\u043D\u0438\u0435 \u043D\u0430 \u043A\u043B\u0438\u043F-\u0431\u043E\u0440\u0434\u0430 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0432\u0440\u044A\u0437\u043A\u0438
+#
+# Tooltips
+#
+GeneralView.label.status.pieces_available.tooltip=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u0431\u0440\u043E\u044F \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u043A\u043E\u043F\u0438\u044F \u043D\u0430 \u0432\u0441\u044F\u043A\u043E \u043F\u0430\u0440\u0447\u0435.\n\u0410\u043A\u043E \u0447\u0438\u0441\u043B\u043E\u0442\u043E \u0432\u0434\u044F\u0441\u043D\u043E \u0435 <1, \u0437\u043D\u0430\u0447\u0438 \u043D\u0435 \u0441\u0435 \u0432\u0438\u0436\u0434\u0430 \u043F\u044A\u043B\u043D\ [...]
+GeneralView.label.in_swarm=\u0432 \u0440\u043E\u044F\u043A\u0430
+MyTrackerView.scrapes=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0438\u044F
+MainWindow.menu.file.open.torrentfortracking=\u0422\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u0085\u2026 (\u0437\u0430 \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E)
+label.close.tab=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0440\u0430\u0437\u0434\u0435\u043B
+window.updateswt.title=\u0412\u0435\u0440\u0441\u0438\u044F\u0442\u0430 \u043D\u0430 SWT \u0435 \u043C\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0440\u0430\!
+ConfigView.label.autoupdate=\u0414\u0430 \u0441\u0435 \u043E\u0442\u0432\u043E\u0440\u0438 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446 '\u041D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435' \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043D\u0430 \u043D\u043E\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+update.now.title=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+subscript.add.dup.desc=\u0410\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 '%1' \u0435 \u0432\u0435\u0447\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D.
+upnp.ignorebaddevices.reset=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u043F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u043D\u0430\u0442\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+ManagerItem.downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435
+DiskManager.error.nospace_fat32={DiskManager.error.nospace} - \u0434\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 {wiki.fat32}
+Button.retry=&\u041E\u0442\u043D\u043E\u0432\u043E
+PeersView.state.info=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+device.rss.enable=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0435\u043C\u0438\u0441\u0438\u044F \u043E\u0442 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 - \u043F\u0440\u0430\u0432\u0438 \u0434\u043E\u0441\u0442\u044A\u043F\u043D\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E \u0437\u0430 \u0438\u043D\u0442\u0435\u0440\u043F\u0440\u0435\u0442\u0430 [...]
+ConfigView.section.ipfilter.allow=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0438 (\u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0430 \u0437\u0430\u0431\u0440\u0430\u043D\u0435\u043D\u0438)
+progress.window.msg.filemove=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0447\u0430\u043A\u0430 \u0434\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435\u0442\u043E/\u043F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B\u0430
+OpenTorrentWindow.mb.alreadyExists.default.name=\u041D\u043E\u0441\u0438\u0442\u0435\u043B
+mdi.entry.about.devices=\u0412 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
+update.fail.app.changed.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043D\u0430 \u043D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435\u0442\u043E
+pairing.alloc.fail=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0437\u0430\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432 \u043A\u043E\u0434 \u0437\u0430 \u0434\u043E\u0441\u0442\u044A\u043F\n%1
+ConfigView.section.tracker.portbackup=\u0417\u0430\u043F\u0430\u0300\u0441\u043D\u0438 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 (\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ';')
+MinimizedWindow.all_transfers=Vuze \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+ConfigView.section.tracker.natchecktimeout=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 [s]
+iconBar.share=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+TableColumn.header.sessiondown.info=\u0411\u0430\u0439\u0442\u043E\u0432\u0435 \u0441\u0432\u0430\u043B\u0435\u043D\u0438 \u0432 \u0442\u0435\u043A\u0443\u0449\u0430\u0442\u0430 \u0441\u0435\u0441\u0438\u044F
+devices.turnon.itunes=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u0437\u0430 iTunes (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0437\u0430 Apple \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430)
+PeersView.menu.showdownload=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u0438 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+SpeedTestWizard.abort.message.entered.queued=\u041F\u0440\u043E\u0431\u0430\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u0435\u043D\u043E\u0442\u043E \u043F\u0440\u0435\u043C\u0438\u043D\u0430 \u0432 \u0441\u043F\u0440\u044F\u043D\u043E/\u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+Button.renew=\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+ConfigView.text.any=\u0432\u0441\u044F\u043A\u043E
+FilesView.sha1.calculate=\u0418\u0437\u0447\u0438\u0441\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 SHA1 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435(\u0438\u044F)
+OpenTorrentFile.column.name.info={OpenTorrentWindow.fileTable.fileName}
+PeersView.outgoingreqcount.info=\u0411\u0440\u043E\u0439 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u043D\u0430\u043F\u0440\u0430\u0432\u0435\u043D\u0438 \u043A\u044A\u043C \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+ConfigView.section.style.ShowTagButtons=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0431\u0443\u0442\u043E\u043D\u0438 \u0437\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438 \u0432 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430
+subscriptions.view.help.2=\u041F\u043E\u043B\u0443\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0431\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u0438 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u0440\u0438 \u043D\u043E\u0432\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435. <A HREF\="http\://wiki.vuze.com/w/FAQ_Subscriptions">\u041E [...]
+subscriptions.view.help.1=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u043A\u044A\u0434\u0435\u0442\u043E \u0433\u0438 \u0438\u043C\u0430
+MyTorrentsView.menu.setSpeed.in=\u0432
+TorrentOptionsView.multi.title.short=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442(\u0438)/\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442(\u0438)
+br.backup.auto.now=\u0418\u0437\u043F\u0440\u043E\u0431\u0432\u0430\u043D\u0435 \u043D\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0438\u044F \u0437\u0430\u043F\u0430\u0300\u0441 \u0441\u0435\u0433\u0430
+OpenTorrentWindow.checkbox.showAdvanced=\u0421\u043B\u0435\u0434 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0434\u0430 \u0438\u043C\u0430 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442 \u0437\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u043A\u0430\u0442\u [...]
+ConfigView.section.proxy.username.info=\u0410\u043A\u043E \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u044A\u0442 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0430\u043C\u043E\u043B\u0438\u0447\u043D\u043E\u0441\u0442, \u0442\u043E \u0434\u043E\u0440\u0438, \u043A\u043E\u0433\u0430\u0442\u043E \u0435 \u0434\u0435\u0444\u0438\u043D\u0438\u0440\u0430\u043D\u043E none, \u0434\u [...]
+settings.updated.msg=\u041C\u0435\u0441\u0442\u043D\u0438\u0442\u0435 Vuze \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0438.
+GeneralView.label.numberofpieces=\u0411\u0440. \u043F\u0430\u0440\u0447\u0435\u0442\u0430\:
+ConfigView.label.enableSystrayToolTipNextETA=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u043E\u0442\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435
+splash.plugin=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\:
+Progress.reporting.window.remove.auto.tooltip=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438, \u043F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u0438 \u0438\u043B\u0438 \u043E\u0442\u043A\u0430\u0437\u0430\u043D\u0438 \u043F\u0440\u043E\u0446\u0435\u0441\u0438 \u043E\u0442 \u0438\u0437\u0433\u043B\u0435\u0 [...]
+ConfigView.label.set_ui_transfer_speeds.description.upload=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 (KB/s)
+wizard.webseedseditor.edit.newseed=\u041D\u043E\u0432\u0430 \u043F\u043E\u0441\u044F\u0432\u043A\u0430
+wizard.newtorrent.showtorrent=\u041E\u0442\u0438\u0432\u0430\u043D\u0435 \u0434\u043E \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D\u0438\u044F \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B
+installPluginsWizard.details.loading=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438\u0085\u2026
+v3.MainWindow.button.cancel=\u041E\u0442\u043A\u0430\u0437
+ConfigView.section.logging.netinfo=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043C\u0440\u0435\u0436\u0430
+importTorrentWizard.process.unknownfail.title=\u041D\u0435\u043E\u0447\u0430\u043A\u0432\u0430\u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430
+TableColumn.header.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+TableColumn.header.upspeed.info=\u0422\u0435\u043A\u0443\u0449\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+Button.bar.edit.cancel=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u043E
+PeersView.C1.info=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F \u043C\u0435\u0441\u0442\u043D\u043E \u0437\u0430\u0440\u0430\u0434\u0438 \u0441\u043F\u0438\u0440\u0430\u043D\u0435 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+menu.change.url=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 URL\u2026
+Network.alert.acceptfail=\u041C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u043D\u0438 \u043F\u0440\u043E\u0432\u0430\u0301\u043B\u0438 \u043D\u0430 \u043F\u043E\u0440\u0442 %1, %2 - \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0442\u0430 \u0435 \u0438\u0437\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0430. \u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u043D\u0430\u0441\u0442\u [...]
+TableColumn.header.activityDate=\u0414\u0430\u0442\u0430 \u043D\u0430 \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+TableColumn.header.priority.info=\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F \u043A\u043E\u043B\u043A\u043E \u0448\u0438\u0440\u043E\u043A\u0430 \u043B\u0435\u043D\u0442\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0435 \u0434\u0430\u0434\u0435\u043D\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+GeneralView.label.tracker=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430\:
+ConfigView.section.connection.peersource.DHT=\u0414\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u043E \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435
+ConfigView.section.interface.wavlocation=\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043D\u0430 .wav \u0444\u0430\u0439\u043B
+ConfigView.section.style.disableAlertSliding=\u0411\u0435\u0437 \u043F\u0440\u0438\u043F\u043B\u044A\u0437\u0432\u0430\u0449\u0430 \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F \u0438 \u043F\u0440\u0438\u043F\u043E\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u0437\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0434\u0438\u0442\u0435\u043B\u043D\u0438\u0442\u0435 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u044F
+device.od.error.nospace=\u041D\u044F\u043C\u0430 \u043C\u044F\u0441\u0442\u043E \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u0442\u043E \u0438\u043B\u0438 \u043D\u0435 \u0435 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E \u0432\u044A\u043D\u0448\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+PeersView.uniquepiece=\u041F\u0430\u0440\u0447\u0435\u0442\u0430 (\u0440\u0435\u0436\u0438\u043C \u0441\u0443\u043F\u0435\u0440-\u0441\u0435\u0435\u043D\u0435)
+security.certcreate.orgunit=\u041E\u0442\u0434\u0435\u043B
+metasearch.addtemplate.desc=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430 \u0448\u0430\u0431\u043B\u043E\u043D \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435 \u0441 \u0438\u043C\u0435 '%1'?
+ConfigView.section.transfer.autospeed.maxupload=%1 \u043C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+Formats.units.persec=/s
+# Will be used for {library.name} in VuzeUI view
+library.name._vuze=\u0411\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430
+ConfigView.pluginlist.coreplugins=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0432\u0433\u0440\u0430\u0434\u0435\u043D\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0441\u0430 \u0437\u0430\u0440\u0435\u0434\u0435\u043D\u0438\:
+ConfigView.section.transfer.autospeed.maxdec=%1 \u043C\u0430\u043A\u0441. \u043D\u0430\u043C\u0430\u043B\u0435\u043D\u0438\u0435 \u0437\u0430 \u0446\u0438\u043A\u044A\u043B
+configureWizard.nat.server.tcp_listen_port=\u0412\u0445\u043E\u0434\u044F\u0449 TCP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0441\u043B\u0443\u0448\u0430\u043D\u0435
+configureWizard.nat.tooManyPorts=\u041D\u0430\u0434\u0432\u0438\u0448\u0435\u043D \u0431\u0440\u043E\u0439 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 \u0437\u0430 \u043F\u0440\u043E\u0431\u0430 (\u22649)
+GeneralView.title.full=\u0413\u043B\u0430\u0432\u0435\u043D
+UIDebugGenerator.message.cancel.text=\u041D\u0435 \u0435 \u0432\u044A\u0432\u0435\u0434\u0435\u043D\u043E \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442, \u043A\u043E\u044F\u0442\u043E \u0441\u0435 \u0434\u043E\u043A\u043B\u0430\u0434\u0432\u0430. \u0422\u0430\u0437\u0438 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0435 \u043E\u0447\ [...]
+ConfigView.text.all=\u0432\u0441\u0438\u0447\u043A\u043E
+MainWindow.menu.tools.nattest=\u0422\u0435\u0441\u0442 \u043D\u0430 &NAT/\u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435\u043D\u0430
+ConfigView.section.transfer.autospeed.chokeping.tooltip=Ping \u0432\u0440\u0435\u043C\u0435\u043D\u0430 \u043F\u043E-\u0433\u043E\u043B\u0435\u043C\u0438 \u043E\u0442 \u0442\u0430\u0437\u0438 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0449\u0435 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430\u0442 \u043A\u0430\u0442\u043E \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0437\u0430 \u043C\u0440\u0435\u0436\u043E\u0432\u043E \u043D\u0430\u0441\u0438\u0449\u0430\u043D\u0435
+v3.MainWindow.tab.browse=\u0412\u044A\u0432 Vuze
+auto.mode=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E (\u043F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430 \u0441\u0435)
+v3.activity.button.watchall=\u041C\u0430\u0440\u043A\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u043E \u043A\u0430\u0442\u043E \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0432\u0430\u043D\u043E
+ConfigView.label.minPeersToBoostNoSeeds=\u041F\u043E-\u043D\u0438\u0441\u044A\u043A \u043F\u043E\u0441\u044F\u0432\u043A\u043E\u0432 \u0440\u0430\u043D\u0433 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0431\u0435\u0437 \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u0438\u043B\u0438 \u0441 \u043F\u043E-\u043C\u0430\u043B\u043A\u043E \u043E\u0442
+ConfigView.section.style.defaultSortOrder.flip=\u041E\u0431\u0440\u0430\u0442\u043D\u043E \u043D\u0430 \u043F\u0440\u0435\u0434\u0438\u0448\u043D\u0438\u044F \u0440\u0435\u0434
+TorrentOptionsView.param.alternative.value.enable=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435
+Trackers.column.last_update=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+IPChecker.external.httpinvalidresponse=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D HTTP \u043E\u0442\u0433\u043E\u0432\u043E\u0440
+columnChooser.apply=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435
+ConfigView.section.file.perf.cache.trace=\u041F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u0435\u0448\u0438\u0440\u0430\u0449\u0438\u0442\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430
+MagnetPlugin.report.alive=%1 \u0435 \u0436\u0438\u0432
+TableColumn.header.maxdownspeed=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.tracker.torrentsperpage=\u0411\u0440\u043E\u0439 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430? [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+platform.win32.baddll.AxShlex=Alcohol 120%
+ConfigView.section.ipfilter.bannedinfo=IP-\u0442\u0430 \u0438\u0437\u043F\u0440\u0430\u0442\u0438\u043B\u0438 \u043B\u043E\u0448\u0438 \u0434\u0430\u043D\u043D\u0438 - \u0437\u0430\u0431\u0440\u0430\u043D\u0430, \u0430\u043A\u043E \u0433\u0440\u0430\u043D\u0438\u0446\u0438\u0442\u0435 \u0441\u0435 \u043D\u0430\u0434\u0445\u0432\u044A\u0440\u043B\u044F\u0442
+OpenTorrentWindow.set.savepath=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043E\u0442 \u043D\u0430\u0439-\u0433\u043E\u0440\u043D\u043E \u043D\u0438\u0432\u043E
+Formats.units.Kibit=Kibit
+LoggerView.filter=\u0424\u0438\u043B\u0442\u044A\u0440
+OpenTorrentOptions.header.tags={label.initial_tags}\: %1
+FilesView.rename.failed.text=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438, \u0432\u0435\u0440\u043E\u044F\u0442\u043D\u043E \u0437\u0430\u0440\u0430\u0434\u0438 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0438\u0437\u0431\u043E\u0440 \u043D\u0430 \u0446\u0435\u043B
+azbuddy.tracker.bbb.status.out=\u0422\u0435\u043A\u0443\u0449\u043E \u043B\u0430\u043D\u0441\u0438\u0440\u0430\u043D\u0438 \u0434\u0440\u0443\u0436\u043A\u0438
+ConfigView.label.sleep.fpseed=\u0410\u043A\u0442\u0438\u0432\u043D\u043E \u0435 \u0441\u0435\u0435\u043D\u0435 \u0441 \u041D\u0412\u041F
+subscriptions.listwindow.autochecktext=Vuze \u043C\u043E\u0436\u0435 \u0434\u0430 \u043D\u0430\u043C\u0438\u0440\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u0441\u044A\u0441 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u0432 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430. \u0414\u0430 \u0441\u0435 \u0432\u043A\u043B\u044E\u0447\u0438 \u [...]
+discarded=\u0438\u0437\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u043E
+ConfigTransferAutoSpeed.ping.time.good=\u0414\u043E\u0431\u044A\u0440\:
+installPluginsWizard.list.name=\u0418\u043C\u0435
+ConfigView.section.backuprestore=\u0417\u0430\u043F\u0430\u0300\u0441 \u0438 \u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+DownloadActivityView.legend.up_smooth=\u041D\u0430\u0433\u043E\u0440\u0435 (\u043F\u043B\u0430\u0432\u043D\u043E)
+devices.contextmenu.od.enable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+pairing.status.registered=\u0423\u0441\u043F\u0435\u0448\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F (%1)
+DHTView.activity.details=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+platform.win32.baddll.WSOCKHK=Net Nanny
+ConfigView.label.minSeedingTime.tooltip=\u041F\u043E\u0441\u044F\u0432\u043A\u043E\u0432\u0438\u0442\u0435 \u0440\u0430\u043D\u0433\u043E\u0432\u0435 \u0441\u0435 \u043A\u043E\u043B\u0435\u0431\u0430\u044F\u0442 \u0447\u0435\u0441\u0442\u043E \u0432 \u043A\u0440\u0430\u0442\u044A\u043A \u043F\u0435\u0440\u0438\u043E\u0434 \u043A\u0430\u0442\u043E \u043F\u043E\u043D\u044F\u043A\u043E\u0433\u0430 \u043A\u0430\u0440\u0430\u0442 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0434\u0430 \u0437\ [...]
+PeerSocket.fake_client=\u041F\u043E\u0434\u043F\u0440\u0430\u0432\u0435\u043D
+TrackerChangerWindow.title=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440(\u0438)
+wizard.savingfile=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u0085\u2026
+platform.jvmopt.configerror=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u0442 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u043D\u0430 JVM \u0437\u0430\u0440\u0430\u0434\u0438 \u0433\u0440\u0435\u0448\u043A\u0430 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430
+OpenTorrentFile.column.size.info=\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0444\u0430\u0439\u043B
+ConfigView.section.security.resetkey.error.title=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043E
+ConfigView.section.queue.seeding.autoStarting=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435
+ConfigView.section.security.restorekeys=\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435 \u043E\u0442 \u0444\u0430\u0439\u043B
+MainWindow.menu.file.open.torrent.keybinding=Meta+O
+MainWindow.status.unofficialversion=Vuze \u0431\u0435\u0442\u0430
+wizard.operationfailed=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+IPChecker.external.timeout=\u0418\u043C\u0430 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0432\u0430\u043D\u0435
+ipfilter.disabled=IP \u0444\u0438\u043B\u0442\u0440\u0438\u0442\u0435 \u0441\u0430 \u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u0438
+TableColumn.header.seeds.info=\u0411\u0440. \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u0441 \u043A\u043E\u0438\u0442\u043E \u0438\u043C\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 (\u043E\u0431\u0449 \u0431\u0440. \u043F\u043E\u0441\u044F\u0432\u043A\u0438)
+speedtest.wizard.select.general=\u041E\u0431\u0449\u0430 \u043F\u0440\u043E\u0431\u0430 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 (\u043F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430 \u0441\u0435)
+wizard.comment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+unix.script.new.auto.text=\u0418\u043C\u0430 \u043D\u043E\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043A\u0440\u0438\u043F\u0442 \u0437\u0430 Vuze.\n\n\u0421\u0438\u043B\u043D\u043E \u043F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0438\u0442\u0435\u043B\u043D\u043E \u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043D\u0430 Vuze \u0432\u0435\u0434\u043D\u0430\u0433\u0430.
+installPluginsWizard.file.invalidfile=\u0424\u0430\u0439\u043B\u044A\u0442 \u043D\u0435 \u0435 \u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 \u0437\u0430 Vuze.
+wizard.multitracker.edit.newgroup=\u041D\u043E\u0432\u0430 \u0433\u0440\u0443\u043F\u0430
+v3.MainWindow.menu.view.footer=\u041B\u0435\u043D\u0442\u0430 \u0441 \u0434\u0440\u0443\u0436\u043A\u0438
+TableColumn.header.remaining.info=\u041E\u0441\u0442\u0430\u0432\u0430\u0449\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+platform.win32.baddll.gapsp=Neoteris
+Pieces.column.Requested=\u0417\u0430\u044F\u0432\u0435\u043D\u043E
+iconBar.bottom=\u041D\u0430\u0439-\u043E\u0442\u0434\u043E\u043B\u0443
+SpeedTestWizard.abort.message.scheduling.failed=\u041F\u043B\u0430\u043D\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u043E\u0431\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+TableColumn.header.file_eta={TableColumn.header.eta}
+PeersView.source.info=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u043A\u044A\u0442 \u043D\u0430 \u0442\u043E\u0437\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+GeneralView.label.totalspeed.tooltip=\u041E\u0431\u0449\u0430 (\u0438 \u0441\u0440\u0435\u0434\u043D\u0430) \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0438 \u0441 \u043A\u043E\u0438\u0442\u043E \u0438\u043C\u0430 \u0432\u0440\u044A\u0437\u043A\u0438.
+FilesView.menu.setpriority.high=&\u0412\u0438\u0441\u043E\u043A
+tag.type.man.featcon=\u041F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430\u043D\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+ConfigView.section.dns.alts=\u0410\u043B\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u0438 DNS \u0441\u044A\u0440\u0432\u044A\u0440\u0438 [\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ';']
+ConfigView.section.style.dropdiraction.sharefoldercontents=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E
+azbuddy.tracker.bbb.status.title.tooltip=\u0414\u0430 \u0441\u0435 \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0438 \u0442\u0443\u043A \u0437\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+speedtest.wizard.select.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0442\u0438\u043F\u0430 \u043F\u0440\u043E\u0431\u0430 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435
+PeersView.uploadspeed=\u041A\u0430\u0447\u0432\u0430\u043D\u0435 \u0441
+SpeedTestWizard.test.panel.already.running=\u041F\u0440\u043E\u0431\u0430\u0442\u0430 \u0432\u0435\u0447\u0435 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430\!
+table.columns.reset=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0438
+MySeedersView.header=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+device.renderer.view.title=\u041E\u043D\u0430\u0433\u043B\u0435\u0434\u0438\u0442\u0435\u043B\u0438
+upnp.mapping.tcpssltrackerport=TCP SSL \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043F\u043E\u0440\u0442
+IrcClient.hasleft=\u043D\u0430\u043F\u0443\u0441\u043D\u0430
+TableColumn.header.downspeed=\u0421\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+wizard.newtorrent.byo=\u0421\u0433\u043B\u043E\u0431\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432 \u0442\u043E\u0440\u0435\u043D\u0442
+MainWindow.menu.community.forums=&\u0424\u043E\u0440\u0443\u043C \u043D\u0430 \u043E\u0431\u0449\u043D\u043E\u0441\u0442\u0442\u0430
+GeneralView.label.user_comment=\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440\:
+MainWindow.IPs.tooltip=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u0444\u0438\u043B\u0442\u0440\u0438\: %1\n\u041E\u0431\u0449\u043E IPFilters \u0432 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 - \u0431\u0440. \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0438/\u0437\u0430\u0431\u0440\u0430\u043D\u0435\u043D\u0438/\u043B\u043E\u0448\u0438 IP-\u [...]
+OpenTorrentWindow.mb.notTorrent.cannot.display=\u0414\u0430\u043D\u043D\u0438\u0442\u0435 \u043D\u0435 \u043C\u043E\u0436\u0430\u0445\u0430 \u0434\u0430 \u0441\u0435 \u043F\u043E\u043A\u0430\u0436\u0430\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u043E
+General.percent=%
+beta.wizard.disable.text=\u0411\u043B\u0430\u0433\u043E\u0434\u0430\u0440\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0443\u043F\u043E\u0442\u0440\u0435\u0431\u0430\u0442\u0430 \u043D\u0430 \u0431\u0435\u0442\u0430 \u0438\u0437\u0434\u0430\u043D\u0438\u044F\u0442\u0430\!\n\n\u0417\u0430 \u043E\u0442\u043A\u0430\u0437 \u043E\u0442 \u0431\u0435\u0442\u0430 \u0438\u0437\u0434\u0430\u043D\u0438\u044F\u0442\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0432\u0430\u043B\u0438 \u0438 \u0438\u043D\u0 [...]
+Button.turnon=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+TableColumn.header.torrentrelpath=\u041F\u044A\u0442 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+swt.alert.cant.update=SWT \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430 \u0437\u0430\u0440\u0435\u0434\u0435\u043D\u0430 \u043E\u0442 "%3" \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043E\u0442 \u0432\u0435\u0440\u0441\u0438\u044F %1 \u043A\u044A\u043C %2 (\u0434\u0430 \u0441\u0435 \u [...]
+ConfigView.section.interface.checkassoc=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0430\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438\u0442\u0435 \u043F\u0440\u0438 \u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
+webui.port=\u041F\u043E\u0440\u0442
+subscript.some.subscribed=\u0418\u043C\u0430 \u043C\u0435\u0441\u0442\u0435\u043D \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0437\u0430 \u043D\u044F\u043A\u043E\u0438 \u043E\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438\u0442\u0435 \u0437\u0430 \u0442\u043E\u0432\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435.\n\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u0440\u0435\u0433\u043 [...]
+show.tooltip.label=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430
+br.backup.auto.everydays=\u0427\u0435\u0441\u0442\u043E\u0442\u0430 \u043D\u0430 \u0437\u0430\u043F\u0430\u0300\u0441\u0438\u0442\u0435 [\u0434\u043D\u0438]
+ConfigView.section.security.choosetoolssavedir=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F, \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u0449\u0430 'tools.jar'
+v3.MainWindow.menu.view.toolbars=\u041B\u0435\u043D\u0442\u0438 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438
+subscript.export.select.template.file=\u0417\u0430\u043F\u0438\u0441 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+window.update.noupdates.beta.title={window.update.noupdates.title}
+TableColumn.header.priority=\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+devices.copy.folder.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+MyTorrentsView.\#.info={TableColumn.header.\#.info}
+platform.win32.baddll.radhslib=Naomi Internet Filter (Radiant)
+Scrape.status.error.nohash=\u041B\u0438\u043F\u0441\u0432\u0430 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435 \u0432 \u043E\u0442\u0433\u043E\u0432\u043E\u0440\u0430.
+MagnetURLHandler.report.torrent_size=\u0440\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\: %1
+Wizard.Subscription.create.title=\u041D\u043E\u0432 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+jvm.max.direct.mem.info=\u0412\u0430\u0436\u043D\u043E\: \u0442\u0443\u043A \u0441\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430 *\u0434\u0438\u0440\u0435\u043A\u0442\u043D\u0430* \u043F\u0430\u043C\u0435\u0442, \u043D\u043E \u043F\u043E-\u0432\u0435\u0440\u043E\u044F\u0442\u043D\u0430 \u0435 \u043D\u0443\u0436\u0434\u0430\u0442\u0430 \u043E\u0442 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 *\u0438\u0437\u043F\u044A\u043B\u04 [...]
+azbuddy.chat.says=%1 \u043A\u0430\u0437\u0432\u0430\:
+menu.max.share.ratio=\u0426\u0435\u043B\u0435\u0432\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 (%1)\u2026
+device.xcode.group={device.xcode}
+OpenTorrentWindow.torrent.remove=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430
+ActivityView.legend.swarmaverage=\u0421\u0440\u0435\u0434\u043D\u043E \u0437\u0430 \u0440\u043E\u044F\u043A\u0430
+TableColumn.header.seed_to_peer_ratio=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0441\u0435\u0435\u043D\u0435/\u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+MainWindow.menu.window=\u041F\u0440\u043E\u0437\u043E\u0440\u0435&\u0446
+device.router.con_type=\u0412\u0440\u044A\u0437\u043A\u0430\: %1
+SpeedView.stats.estupcap=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\:
+importTorrentWizard.torrentfile.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0432\u0445\u043E\u0434\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.label.savedirectory=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+TableColumn.header.timesincedownload.info=\u0412\u0440\u0435\u043C\u0435 \u043E\u0442\u043A\u0430\u043A\u0442\u043E \u0434\u0430\u043D\u043D\u0438\u0442\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0441\u0430 \u0441\u0432\u0430\u043B\u0435\u043D\u0438
+DownloadActivityView.title.full={TableColumn.header.Speed}
+pairing.ac.getnew=\u0417\u0430\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432 \u043A\u043E\u0434 \u0437\u0430 \u0434\u043E\u0441\u0442\u044A\u043F
+Button.apply=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435
+ConfigView.section.style.launch=\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u0446\u0438\u0442\u0435
+TableColumn.header.done.info=% \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\u0441\u0442 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0430 \u0437\u0430\u0434\u0430\u0447\u0430
+GeneralView.label.shareRatio=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E\:
+SpeedTestWizard.set.upload.bits.per.sec=b/s
+FilesView.menu.rename_only=\u0411\u044A\u0440\u0437\u043E \u043F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435
+MainWindow.menu.view.ipFilter=&IP \u0444\u0438\u043B\u0442\u0440\u0438
+v3.mb.delPublished.cancel=&\u041E\u0442\u043A\u0430\u0437
+label.click.to.showhide=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430/\u0441\u043A\u0440\u0438\u0432\u0430
+label.alertnum=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F\: %1
+devices.xcode.rsspub=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u0435\u043C\u0438\u0441\u0438\u044F
+upnp.mapping.tcptrackerport=TCP \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043F\u043E\u0440\u0442
+remote.pairing.test.success=Vuze \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u043E.
+sidebar.header.subscriptions=\u0410\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+dlg.auth.revoked.link=<A HREF\="info">\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0430\u043D\u0443\u043B\u0438\u0440\u0430\u043D\u0438 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u043E\u043D\u043D\u0438 \u043A\u043E\u0434\u043E\u0432\u0435</A>
+TableColumn.header.readrate=\u041E\u0446\u0435\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0447\u0435\u0442\u0435\u043D\u0435\u0442\u043E
+ConfigView.section.file.defaultdir.section=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+Peers.column.peer_byte_id.info=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u0418\u0434. \u0432 \u0431\u0430\u0439\u0442\u0438
+label.color=\u0426\u0432\u044F\u0442
+ConfigView.label.seeding.firstPriority.info=\u041D\u0430\u0439-\u0432\u0438\u0441\u043E\u043A\u043E \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0449\u0435 \u0441\u0430 \u0432\u0438\u043D\u0430\u0433\u0438 \u043D\u0430\u0439-\u043E\u0442\u043F\u0440\u0435\u0434 \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430.\n\u041D\u0438\u043A\u043E\u0439 \u043E\u0442 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u0442\ [...]
+ConfigView.label.movetorrent=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 .torrent
+ConfigView.section.tracker.enablecompact=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u0437\u0430 \u043A\u043E\u043C\u043F\u0430\u043A\u0442\u043D\u043E \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435
+ConfigView.label.maxStalledSeeding=\u041C\u0430\u043A\u0441. '\u0437\u0430\u043F\u044A\u043D\u0430\u0442\u0438' [0\:\u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+azbuddy.ui.menu.send=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435
+jvm.min.mem=\u041C\u0438\u043D. \u0440\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0430\u0442\u0430 \u043F\u0430\u043C\u0435\u0442 [\u043F\u0440\u0430\u0437\u043D\u043E\=\u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435, \u043C\u0438\u043D.\=%1]
+ConfigView.notAvailableForMode=\u0422\u043E\u0437\u0438 \u0440\u0430\u0437\u0434\u0435\u043B \u0435 \u043F\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043D \u0437\u0430 %1 \u0440\u0435\u0436\u0438\u043C \u0438\u043B\u0438 \u043F\u043E-\u0432\u0438\u0441\u043E\u043A. \u041D\u0435 \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D \u0437\u0430 %2 \u0440\u0435\u0436\u0438\u043C.
+devices.choose.profile.info.text=\u0421\u043B\u0435\u0434 \u0438\u0437\u0431\u043E\u0440\u0430 Vuze \u0449\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438 \u0434\u0430\u043B\u0438 \u0432\u0438\u0434\u0435\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u044A\u0442 \u0449\u0435 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u0438 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0438\u043B\u0438 \u043D\u [...]
+ConfigView.label.userequestlimitingpriorities=\u0421 \u0444\u043E\u043A\u0443\u0441 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043A\u044A\u043C \u043D\u0430\u0447\u0430\u043B\u043E\u0442\u043E \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430, \u043A\u043E\u0433\u0430\u0442\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447 [...]
+UpdateWindow.columns.install=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435
+network.admin.maybe.vpn.msg=\u0418\u0437\u0433\u043B\u0435\u0436\u0434\u0430 \u0438\u043C\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043B\u043D\u0430 \u0447\u0430\u0441\u0442\u043D\u0430 \u043C\u0440\u0435\u0436\u0430 (VPN), \u0430\u043A\u0442\u0438\u0432\u043D\u0430 \u043D\u0430\n\n%1\n\n\u0410\u043A\u043E \u0435 \u0442\u0430\u043A\u0430, \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u043E\u0432\u0438\u0448\u0438 \u043D\u0435\u043F\u0440\u0438\u043A\u043E\u0441\u043D\u043E\ [...]
+MainWindow.upgrade.newerversion=\u0418\u043C\u0430 \u043D\u043E\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0430 Vuze \u043D\u0430 \u0440\u0430\u0437\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.label.experimental.osx.kernel.panic.fix=\u0415\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u043D\u0430 \u043F\u043E\u043F\u0440\u0430\u0432\u043A\u0430 \u043F\u0440\u0438 \u043F\u0430\u043D\u0438\u043A\u0430 \u043D\u0430 \u044F\u0434\u0440\u043E\u0442\u043E \u0432 \u0434\u0432\u0443\u043F\u0440\u043E\u0446\u0435\u0441\u043E\u0440\u043D\u0438 OSX \u0441\u0438\u0441\u0442\u0435\u043C\u0438 [\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441 [...]
+azbuddy.disabled=\u041D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430, \u0437\u0430 \u043F\u0440\u043E\u043C\u044F\u043D\u0430 - \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430.
+unix.script.new.auto.title=\u041D\u043E\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043A\u0440\u0438\u043F\u0442 \u0437\u0430 Vuze
+ConfigView.section.connection.advanced.SO_RCVBUF.tooltip=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0432\u0430 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0437\u0430 \u0446\u043E\u043A\u044A\u043B SO_RCVBUF (\u0432 \u0431\u0430\u0439\u0442\u043E\u0432\u0435), \u0442.\u0435. \u0440\u0430\u0437\u043C\u0435\u0440 \u0438 \u043C\u0430\u0449\u0430\u0431 \u043D\u0430 TCP \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446 \u0437\ [...]
+ConfigView.section.style.useSIUnits=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 IEC \u0435\u0434\u0438\u043D\u0438\u0446\u0438 (KB \u2192 KiB \u0438 \u0434\u0440.)
+azbuddy.ui.menu.cat=\u0415\u0442\u0438\u043A\u0435\u0442\u0438/\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438
+device.config.xcode.maxbps=\u041C\u0430\u043A\u0441. KB/sec \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+MainWindow.menu.file.closetab=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0420\u0430&\u0437\u0434\u0435\u043B
+ConfigView.label.stop=\u0418\u0437\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+wizard.invalidfile=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0444\u0430\u0439\u043B\!
+wizard.invaliddirectory=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\!
+installPluginsWizard.mode.file=\u041F\u043E \u0444\u0430\u0439\u043B
+config.external.browser.switch.subs.inf=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 'Vuze Web Remote; \u043D\u044F\u043C\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0437\u0430 \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043F\u0440\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435; \u043D\u044F\u043C\u0430 \u043D\u0430\u0441\u0442\u043E\u [...]
+ConfigView.label.savetorrentbackup=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u043F\u0430\u0300\u0441
+quick.view.no.files=\u041D\u044F\u043C\u0430 \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+UpdateProperty.list.message=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0437\u0430 %1. \u041C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043E\u0442\u043E \u0432\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u0435 \u0441 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ","; \u043F\u0440\u0430\u0437\u043D\u043E, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u [...]
+ConfigView.section.security.toolsdir=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F, \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u0449\u0430 'tools.jar'
+ConfigView.section.file.tb.delete=\u041F\u0440\u0438 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u0441 \u0431\u0443\u0442\u043E\u043D "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435" \u0438\u043B\u0438 \u043E\u0442 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438\:
+DHTTransport.report.send_complete=\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435
+MainWindow.about.internet.bugreports=\u0414\u043E\u043A\u043B\u0430\u0434\u0438 \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438
+azbuddy.downspeed=KB/s \u043C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0437\u0430 \u0434\u0440\u0443\u0436\u043A\u0430 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+TableColumn.header.timesinceupload.info=\u0412\u0440\u0435\u043C\u0435\u0442\u043E \u043E\u0442\u043A\u0430\u043A\u0442\u043E \u0434\u0430\u043D\u043D\u0438\u0442\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0441\u0430 \u043A\u0430\u0447\u0435\u043D\u0438
+ConfigView.label.systray._mac=\u0418\u043A\u043E\u043D\u0430 \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E
+v3.deviceview.infobar.line1.generic=\u0412\u043B\u0430\u0447\u0435\u043D\u0435/\u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0432\u0438\u0434\u0435\u043E \u043E\u0442 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430 \u0432 %1 \u0432 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430.
+ConfigView.section.proxy.enable_socks=\u041F\u043E\u043B\u0437\u0432\u0430 \u0441\u0435 SOCKS \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A
+azbuddy.ui.table.lastseen=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0432\u0438\u0434\u044F\u043D
+MyTorrentsView.menu.rescanfile=\u041F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u043D\u0435\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438\u0442\u0435 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+ConfigView.section.mode=\u0420\u0435\u0436\u0438\u043C
+xcode.deletedata.title=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+ConfigView.label.irclogin=\u041F\u0440\u044F\u043A\u043E\u0440
+TableColumn.header.device.info=\u0426\u0435\u043B\u0435\u0432\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+ConfigView.section.ipfilter.save=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+wizard.multitracker.delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+iconBar.editcolumns=\u0420\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0438
+PiecesView.DistributionView.NoAvl=\u041F\u0430\u0440\u0447\u0435\u0442\u0430, \u043A\u043E\u0438\u0442\u043E \u0433\u0438 \u043D\u044F\u043C\u0430
+sidebar.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430 \u043B\u0435\u043D\u0442\u0430
+TableColumn.header.upload.info=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0430\u043D\u043D\u0438 \u043C\u0435\u0441\u0442\u043D\u043E \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u0438 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+ConfigView.section.sharing.privatetorrent=\u0427\u0430\u0441\u0442\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442 - \u043F\u0440\u0438\u0435\u043C\u0430\u043D\u0435 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0441\u0430\u043C\u043E \u043E\u0442 \u0442\u0440\u0430\u043A\u0435\u0440\u0430
+installPluginsWizard.list.loading=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0441\u043F\u0438\u0441\u044A\u043A \u0441 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438.
+Button.bar.add=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+exportTorrentWizard.torrentfile.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434
+MyTrackerView.tracker=\u0422\u0440\u0430\u043A\u0435\u0440
+devices.associate=\u0410\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u0441
+ConfigView.section.security.backupkeys.button=\u0417\u0430\u043F\u0430\u0300\u0441
+ConfigView.option.dm.dblclick.details=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0438\u0437\u0433\u043B\u0435\u0434 \u0441 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+dlg.auth.trial.success.subtitle=DVD \u0437\u0430\u043F\u0438\u0441\u0432\u0430\u043D\u0435\u0442\u043E \u0435 \u0432 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442
+ConfigView.label.show.tag.but=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0431\u0443\u0442\u043E\u043D\u0438 \u0437\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438
+Button.abort=\u0418\u0437\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435
+SpeedView.stats.manual=\u0417\u0430\u0434\u0430\u0434\u0435\u043D\u043E
+MyTrackerView.completed=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+ConfigView.section.interface.cleardecisions=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u043F\u043E\u043C\u043D\u0435\u043D\u0438\u0442\u0435 \u0438\u0437\u0431\u043E\u0440\u0438 \u0432 \u0434\u0438\u0430\u043B\u043E\u0437\u0438\u0442\u0435
+iconBar.pstream={iconBar.stream}
+externalLogin.wait=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\u2026
+ConfigView.section.Subscriptions=\u0410\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+TableColumn.header.eta_next=\u0421\u043B\u0435\u0434\u0432\u0430\u0449\u043E \u041E\u0412\u0417
+pairing.srp.pw.req=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u043F\u0430\u0440\u043E\u043B\u0430 - \u043D\u0438\u0449\u043E \u043D\u044F\u043C\u0430 \u0434\u0430 \u0440\u0430\u0431\u043E\u0442\u0438 \u0431\u0435\u0437 \u0442\u043E\u0432\u0430\!
+SpeedView.stats.unknown=\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E
+remote.pairing.functions=<A HREF\="clip">\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u0434\u0430 \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430</A> | <A HREF\="new">\u041F\u043E\u043B\u0443\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432 \u043A\u043E\u0434</A>
+LocaleUtil.label.chooseencoding=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043D\u0430\u0439-\u0442\u043E\u0447\u043D\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
+wizard.information=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+ConfigView.section.tracker.seedretention.info=\u0417\u0430\u0431\u0435\u043B\u0435\u0436\u043A\u0430\: \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438\u0442\u0435 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0449\u0435 \u0441\u0435 \u0437\u0430\u0433\u0443\u0431\u044F\u0442 \u0437\u0430 \u043D\u0435\u0437\u0430\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0442\u0435 \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+CacheView.speeds.writes=\u0417\u0430\u043F\u0438\u0441\u0438
+window.updateswt.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+TorrentOptionsView.param.reset.to.default=\u0412\u0440\u044A\u0449\u0430\u043D\u0435 \u043D\u0430 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u043A\u044A\u043C \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+TableColumn.header.DownloadingRank=\u0420\u0430\u043D\u0433 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+device.renderer.remove_all=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043E\u043D\u0430\u0433\u043B\u0435\u0434\u0438\u0442\u0435\u043B\u0438
+torrentdownload.error.dl_fail=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 '%1' \u0432 '%2'\: %3
+DHTView.transport.packets=\u041F\u0430\u043A\u0435\u0442\u0438
+SpeedView.stats.maxUp=\u041C\u0430\u043A\u0441. \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0441\:
+tps.tracker.cache=\u0411\u0443\u0444\u0435\u0440 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+label.set=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u2026
+splash.initializePlugins=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438\u0442\u0435
+ConfigView.section.interface.cleardecisionsbutton=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435
+FilesView.dialog.priority.title=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0447\u0438\u0441\u043B\u043E\u0432 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+label.no.tag=\u041D\u044F\u043C\u0430 \u0435\u0442\u0438\u043A\u0435\u0442
+PeersView.upload=\u041A\u0430\u0447\u0432\u0430\u043D\u0435
+TableColumn.header.torrent_created.info=\u0414\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430, \u043A\u043E\u0433\u0430\u0442\u043E \u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u0430
+wizard.multitracker.configuration=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0437\u0430 \u043C\u0443\u043B\u0442\u0438-\u0442\u0440\u0430\u043A\u0435\u0440
+StartStopRules.shareRatioMet=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+TableColumn.header.azsubs.ui.column.subs=\u0410\u0431\u043E\u043D\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.seeding.autoStart0Peers.tooltip=\u0410\u043A\u043E \u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0442\u0440\u0430\u043A\u0435\u0440\u044A\u0442 \u0432\u0438\u043D\u0430\u0433\u0438 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438.
+security.certcreate.intro=\u0412 \u0442\u043E\u0437\u0438 \u0434\u0438\u0430\u043B\u043E\u0433 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435 \u0441\u0430\u043C\u043E\u043F\u043E\u0434\u043F\u0438\u0441\u0430\u043D \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
+device.itunes.install_problem=\u0418\u043C\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C \u0441 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 iTunes
+FilesView.md5.calculate=\u0418\u0437\u0447\u0438\u0441\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 MD5 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435(\u0438\u044F)
+min.sr.window.message=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043C\u0438\u043D. \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 [0\:\u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E]
+ConfigView.label.backupconfigfiles=\u0417\u0430\u043F\u0430\u0300\u0441 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0437\u0430 \u0432\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u043D\u0443\u0436\u0434\u0430
+iconBar.stop=\u0421\u043F\u0438\u0440\u0430\u043D\u0435
+StartStopRules.SPratioMet=\u0421\:\u0420 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+ConfigView.label.checkOnSeeding=\u0421 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430 \u043F\u0440\u0438 \u043C\u0430\u043B\u043A\u043E \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435
+DiskManager.alert.movefilerecoveryfails=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u0432\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u0441\u043B\u0435\u0434 \u043D\u0435\u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435\n\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B %1 \u043D\u0435 \u0443\u0441 [...]
+device.ms.group={device.mediaserver.view.title}
+ConfigView.label.seeding.rankType.seed=\u0411\u0440\u043E\u0439 \u0441\u0430\u043C\u043E \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+Unopened.bigView.header=\u041D\u043E\u0432
+ConfigView.section.sharing.rescanperiod=\u041F\u0435\u0440\u0438\u043E\u0434 \u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 [s]
+PeerManager.status.checking=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430
+device.xcode=\u041F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+wizard.progresstitle=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B
+wizard.tracker.howToLocal=\t\u0414\u0430 \u0441\u0435 \u043E\u0442\u0432\u043E\u0440\u0438 '\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u2192 \u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u2192 \u0422\u0440\u0430\u043A\u0435\u0440' \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0441\u043B\u0443\u0433\u0430\u0442\u0430
+TrayWindow.menu.startalldownloads=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u0432\u0441\u0438\u0447\u043A\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+ConfigView.section.tracker.client.scrapesingleonly=\u0411\u0435\u0437 \u043D\u0430\u0442\u0440\u0443\u043F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043E\u0442\u0434\u0435\u043B\u043D\u043E \u0437\u0430 \u0432\u0441\u0435\u043A\u0438 \u0442\u0440\u0430\u043A\u0435\u0440 (\u043F\u043E\u043C\u0430\u0433\u0430 \u043F\u0440\u0438 \u0442\u0440\u0430\u043A\u0435\u0440\u0438 \u0434\u0430\u0432\u0430\u0449\u0438 'URL too [...]
+TableColumn.header.availability.info=\u0411\u0440. \u0432\u0438\u0436\u0434\u0430\u0449\u0438 \u0441\u0435 \u043F\u044A\u043B\u043D\u0438 \u043A\u043E\u043F\u0438\u044F
+upnp.enable=\u0421 UPnP
+wizard.createtorrent.extrahashes=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0438\u044F \u0437\u0430 \u0434\u0440\u0443\u0433\u0438 \u043C\u0440\u0435\u0436\u0438 (\u043F\u0440. Gnutella2, eDonkey2000)
+stats.snapshot.group=\u0421\u043D\u0438\u043C\u043A\u0430
+v3.iconBar.down={iconBar.down}
+label.dont.show.again=\u0411\u0435\u0437 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0432\u0430 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0432\u043E
+azbuddy.ui.table.read_cat=\u041F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438 \u0435\u0442\u0438\u043A\u0435\u0442\u0438/\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438
+ConfigView.section.connection.network.max.outstanding.connect.attempts=\u041C\u0430\u043A\u0441. \u0441\u0442\u043E\u044F\u0449\u0438 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438
+security.certcreate.createok=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044A\u0442 \u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D \u0443\u0441\u043F\u0435\u0448\u043D\u043E
+webui.mode.info=\u0420\u0435\u0436\u0438\u043C\u044A\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0435\n\t"full"\t\= \u0414\u043E\u0441\u0442\u044A\u043F\u043D\u0438 \u0441\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435)\n\t"view"\t\= \u0441\u0430\u043C\u043E \u0437\u0430 \u0433\u043B\u0435\u0434\u0430\u043D\u0435 (\u043D\u043E \u0441 \u0430\u043A\u0442\u04 [...]
+wizard.multitracker.edit=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435\u0085\u2026
+PeersView.T.L.tooltip=\u041C\u0435\u0441\u0442\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430
+webui.access.info=\u0414\u043E\u0441\u0442\u044A\u043F\u044A\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0435\n\t"local"\t\= \u0441\u0430\u043C\u043E \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u043C\u0430\u0448\u0438\u043D\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044A\u0440\u0437\u0432\u0430\n\t"all"\t\= \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D \u0434\u043E\u0441\u0442\u044A\u043F (\u043F\u043E \u043F\u043E\u0434\u0440\u043 [...]
+MainWindow.menu.view.console.keybinding=Meta+4
+DownloadManager.error.filewithouttorrentinfo=\u041D\u044F\u043C\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0432\u044A\u0432 \u0444\u0430\u0439\u043B\u0430
+TableColumn.header.TableColumnSample=\u041F\u0440\u0438\u043C\u0435\u0440
+AlertMessageBox.warning=\u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435
+MyTrackerView.peers=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+SpeedView.stats.measuredmin=\u0418\u0437\u043C\u0435\u0440\u0435\u043D\u043E \u043C\u0438\u043D.
+Plugin.localtracker.info=\u0422\u044A\u0440\u0441\u0430\u0447\u044A\u0442 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0432 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u043A\u043E\u043F\u0438\u044F \u043D\u0430 Vuze \u0437\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435 [...]
+MainWindow.menu.file.open.torrentnodefault.keybinding.mac=Meta+Opt+O
+ConfigView.section.transfer.lan.tooltip=\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+UpdateMonitor.messagebox.accept.unverified.title=\u041F\u0440\u0438\u0435\u043C\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u0435\u043D\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F
+Formats.units.KiB=KiB
+security.certtruster.prompt=\u0414\u0430 \u043C\u0443 \u0441\u0435 \u0438\u043C\u0430 \u043B\u0438 \u0434\u043E\u0432\u0435\u0440\u0438\u0435?
+GeneralView.label.distributedCopies=\u0420\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438 \u043A\u043E\u043F\u0438\u044F\:
+label.socks=SOCKS
+ConfigView.section.torrent.decoding=\u0414\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0441\u0438\u043C\u0432\u043E\u043B\u043D\u0438 \u043D\u0430\u0431\u043E\u0440\u0438
+MainWindow.menu.file.open=&\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+MainWindow.menu.speed_limits.schedule.err=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0433\u0440\u0435\u0448\u043A\u0438 \u0441\u0430 \u0434\u043E\u043A\u043B\u0430\u0434\u0432\u0430\u043D\u0438, \u0434\u0430 \u0441\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0437\u0430 \u043F\u043E\u043F\u0440\u0430\u0432\u043A\u0430\!
+v3.MainWindow.menu.getting_started=&\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0431\u043E\u0442\u0430
+dlg.auth.success.line2=\u0412\u0435\u0447\u0435 \u0435 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E \u0437\u0430\u043F\u0438\u0441\u0432\u0430\u043D\u0435\u0442\u043E \u0431\u0435\u0437 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043D\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0438\u043C\u0438 DVD-\u0442\u0430, \u043F\u0440\u043E\u0443\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0437\u0430 \u0432\u0438\u0440\u0443\ [...]
+ConfigView.section.interface.resetassocbutton=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+dlg.auth.success.line1=\u0411\u043B\u0430\u0433\u043E\u0434\u0430\u0440\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435\u0442\u043E \u0434\u043E Vuze \u041F\u043B\u044E\u0441.
+TableColumn.header.peakup.info=\u0412\u044A\u0440\u0445\u043E\u0432\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+DHTView.title.fullcvs=CVS \u043D\u0430 \u0420\u0411\u0414
+webui.rootdir=\u0413\u043B\u0430\u0432\u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+wizard.multitracker.noannounce=URL \u0437\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0435 \u0435 \u0432 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u0442\u0440\u0430\u043A\u0435\u0440\u0438
+Button.add.tooltip=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u043A\u044A\u043C \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430
+ConfigView.label.start.inlrm=\u041F\u0443\u0441\u043A\u0430\u043D\u0435 \u0432 \u0440\u0435\u0436\u0438\u043C \u043D\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0430\u043B\u043A\u043E \u0440\u0435\u0441\u0443\u0440\u0441\u0438 (\u0431\u0435\u0437 \u0413\u041F\u0418, \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u0437\u0430 \u043C\u0440\u0435\u0436\u0430\u0442\u0430 \u0438 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0 [...]
+PeersView.statup=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+ConfigView.section.queue.seeding=\u0421\u0435\u0435\u043D\u0435
+ConsoleView.title.short=\u041A\u043E\u043D\u0437\u043E\u043B\u0430
+subs.prop.num_read=\u0411\u0440\u043E\u0439 \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438
+ManagerItem.finishing=\u041F\u0440\u0438\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+v3.MainWindow.menu.view.sidebar.keybinding=F7
+TableColumn.header.filesdone=\u0413\u043E\u0442\u043E\u0432\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+uninstallPluginsWizard.title=\u0414\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+MainWindow.menu.help.whatsnew=\u041A\u0430\u043A\u0432\u043E \u043D\u043E\u0432\u043E
+DHTView.operations.data=\u0414\u0430\u043D\u043D\u0438
+wizard.newtorrent.byo.addcontainer.title=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440
+StartStopRules.numSeedsMet=\u0411\u0440. \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+config.internal.browser.proxy.select=\u041F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A \u043D\u0430 \u0431\u0440\u0430\u0443\u0437\u044A\u0440\u0430
+TableColumn.header.torrent_created=\u0422\u043E\u0440\u0435\u043D\u0442 \u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D
+openTorrentWindow.mb.alreadyExists.merge=\u0414\u0430 \u0441\u0435 \u0434\u043E\u0431\u0430\u0432\u044F\u0442 \u043B\u0438 \u0434\u043E\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0438 \u0442\u0440\u0430\u043A\u0435\u0440\u0438 \u043E\u0442 \u043D\u043E\u0432\u043E\u0442\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043A\u044A\u043C \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u043E\u0442\u043E?
+dlg.stream.plus.title={Button.upgrade}
+ConfigView.section.tracker.createcert=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0430\u043C\u043E\u043F\u043E\u0434\u043F\u0438\u0441\u0430\u043D \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
+UIDebugGenerator.complete.text=\u0424\u0430\u0439\u043B \u0441 \u0434\u0430\u043D\u043D\u0438 \u0437\u0430 \u043E\u0442\u0441\u0442\u0440\u0430\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438 \u0441\u0435 \u043D\u0430\u043C\u0438\u0440\u0430 \u0432 '%1'\n\n\u0421 \u0438\u0437\u0431\u043E\u0440 \u043D\u0430 '\u0414\u0430' \u0441\u0435 \u043E\u0442\u0432\u0430\u0440\u044F \u043F\u0440\u043E\u0437\u043E\u0440\u0 [...]
+subscriptions.overview=\u0410\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+ConfigView.dialog.choosedefaultsavepath=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+v3.MainWindow.menu.showActionBarText=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442
+subscriptions.listwindow.popularity.unknown=\u041D\u0435\u043F\u043E\u0437\u043D\u0430\u0442\u043E
+MyTorrentsView.menu.edit_comment.enter.message=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440 \u0437\u0430 \u0442\u043E\u0432\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435.
+ConfigView.label.autoopen.downloadbars=\u0410\u0432\u0442\u043E-\u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u043B\u0435\u043D\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043F\u0440\u0438
+pairing.ui.icon.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u043A\u043E\u043D\u0430
+MainWindow.menu.closealldownloadbars=\u0417\u0430\u0442&\u0432\u0430\u0440\u044F\u043D\u0435 \u0432\u0441\u0438\u0447\u043A\u0438 \u043B\u0435\u043D\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+network.bindError=\u041F\u0440\u043E\u0432\u0430\u043B \u0432 \u043F\u0440\u0438\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0440\u0432\u044A\u0440\u0435\u043D \u0446\u043E\u043A\u044A\u043B \u043F\u043E\u0440\u0430\u0434\u0438 \u043D\u0435\u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0441\u044A\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u0438 \u0430\u0434\u0440\u0435\u0441\u0438. \u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u043F\u04 [...]
+Plugin.localtracker.networks.info=\u0421\u0447\u0438\u0442\u0430\u043D\u0435 \u043D\u0430 \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043C\u0440\u0435\u0436\u0438 \u0437\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u0438 (\u043D\u0430\u043F\u0440. 145.227.*.*, \u0440\u0430\u0437\u0435\u043B\u0438\u0442\u0435\u043B ';')
+network.check.ipbinding=\u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u043F\u0440\u0438\u0441\u044A\u0441\u0442\u0432\u0438\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u0438\u0432\u044A\u0440\u0437\u0430\u043D\u0438 IP \u0430\u0434\u0440\u0435\u0441\u0438/\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0438 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+label.various=\u0420\u0430\u0437\u043B\u0438\u0447\u043D\u0438
+TableColumn.header.ProgressETA.info=\u041A\u043E\u043C\u0431\u0438\u043D\u0438\u0440\u0430 \u043A\u043E\u043B\u043E\u043D\u0438 \u0437\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\u0441\u0442 \u0432 \u0435\u0434\u043D\u0430 \u043C\u043D\u043E\u0433\u043E\u0440\u0435\u0434\u043E\u0432\u0430 \u043A\u043E\u043B\u043E\u043D\u0430.\n\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043D\u0430\u0441\u0442\u0440\u0 [...]
+configureWizard.transfer.maxDownloads=\u041C\u0430\u043A\u0441. \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+wizard.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434\u0085\u2026
+GeneralView.title.short=\u0413\u043B\u0430\u0432\u0435\u043D
+FileItem.storage.linear=\u041B\u0438\u043D\u0435\u0439\u043D\u043E
+configureWizard.nat.ok=\u0414\u0430\!
+TrackerAvail.column.seeds.info={Trackers.column.seeds.info}
+Button.back=\u041D\u0430\u0437\u0430\u0434
+dhttracker.tracklimitedwhenonline=\u0421 \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435 \u0437\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0438\u0433 \u043D\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u043F\u0440\u0438 \u0440\u0430\u0431\u043E\u0442\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D \u0437\u0430 \u043A\u0440\u044A\u0441\u0442\u043E\u0441\u0430\u043D\u043E \u043D\u0430\u0441\u0438\u0449\u0430\u043D\u0435 \u043D\u0430 \u0440\u043E\u044F\u043A\u0430
+ConfigView.section.security.publickey=\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D \u043A\u043B\u044E\u0447
+MainWindow.menu.transfers.resumetransfers=\u041F\u043E\u0434&\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+ConfigView.label.playdownloadfinished=\u0417\u0432\u0443\u043A\u043E\u0432 \u0441\u0438\u0433\u043D\u0430\u043B \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+FileItem.read=\u0447\u0435\u0442\u0435\u043D\u0435
+TableColumn.header.commenticon.info=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u0438\u043A\u043E\u043D\u0430, \u0430\u043A\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u0438\u043C\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+splash.loadingTorrent=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+GenericText.column=\u043A\u043E\u043B\u043E\u043D\u0430
+ConfigView.section.ipfilter.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435
+MyTorrentsView.menu.setCategory.add=&\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0085\u2026
+popup.closing.in=\u0421\u0430\u043C\u043E\u0437\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446\u0430 \u0441\u043B\u0435\u0434 %1 \u0441\u0435\u043A.
+MagnetPlugin.private_torrent=<\u0447\u0430\u0441\u0442\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442>
+pairing.status.disabled=\u0418\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E
+torrent.fix.corrupt.result.nothing=\u0422\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u0438\u0437\u0433\u043B\u0435\u0436\u0434\u0430 \u0435 \u0432\u0430\u043B\u0438\u0434\u0435\u043D\!
+TableColumn.header.AzProduct.info=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u0442\u0435\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430, \u043E\u0442 \u043A\u043E\u044F\u0442\u043E \u043F\u0440\u043E\u0438\u0437\u0445\u043E\u0436\u0434\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442
+plugins.basicview.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\:
+label.test.internet=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442 \u0432\u0440\u044A\u0437\u043A\u0430
+azbuddy.ui.table.msg_queued=\u041D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430
+mdi.entry.dvdburn=DVD \u0437\u0430\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+configureWizard.nat.sharePort=\u0412\u0441\u0438\u0447\u043A\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0434\u0430 \u0441\u0430 \u043F\u0440\u0435\u0437 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D \u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D \u0432\u0445\u043E\u0434\u044F\u0449 \u043F\u043E\u0440\u0442
+FilesView.pieces=\u041F\u0430\u0440\u0447\u0435\u0442\u0430
+ManagerItem.paused=\u0412 \u043F\u0430\u0443\u0437\u0430
+MainWindow.menu.view.irc=&IRC
+PiecesView.\#=\u2116
+DonationWindow.noload.text=\u041F\u0440\u043E\u0437\u043E\u0440\u0435\u0446\u044A\u0442 \u0437\u0430 \u0434\u0430\u0440\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0430 \u0434\u0430 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438. \u0414\u0430 \u0441\u0435 \u043E\u043F\u0438\u0442\u0430 \u043F\u043E-\u043A\u044A\u0441\u043D\u043E.
+MainWindow.sr.status.tooltip.ok=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 %1 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+Torrent.create.progress.cancelled=\u041E\u0442\u043C\u0435\u043D\u0435\u043D\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F
+ConfigView.label.subdir_is_in_default=\u041F\u0440\u0438 \u043F\u0440\u0438\u0435\u043C\u0430\u043D\u0435, \u0447\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0442 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435, \u0434\u0430 \u0441\u0435 \u0438\u043C\u0430\u0442 \u043F\u0440\u0435\u0434\u [...]
+window.uiswitcher.ClassicUI.title=\u041A\u043B\u0430\u0441\u0438\u0447\u0435\u0441\u043A\u0438 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441
+ConfigView.section.style.showProgramIcon=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043D\u0430 \u0438\u043A\u043E\u043D\u0430 \u0432 \u043A\u043E\u043B\u043E\u043D\u0430\u0442\u0430 \u0437\u0430 \u0438\u043C\u0435
+MainWindow.menu.file.open.vuze=Vuze \u0444\u0430\u0439\u043B\u2026
+ConfigView.section.queue.downloading={ManagerItem.downloading}
+TableColumn.header.tags={label.tags}
+MagnetPlugin.use.md.download.delay=\t\u0437\u0430\u0431\u0430\u0432\u044F\u043D\u0435 [s]
+ConfigView.label.stopAfterMinutes=\u0412\u0435\u0434\u043D\u044A\u0436 \u043F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0435\u043D \u043A\u044A\u043C \u0441\u0435\u0435\u043D\u0435, \u0434\u0430 \u0441\u043F\u0440\u0435 \u0441\u043B\u0435\u0434 \u043F\u0435\u0440\u0438\u043E\u0434 \u043E\u0442 \u0432\u0440\u0435\u043C\u0435
+dht.execute=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435
+PiecesView.size=\u0420\u0430\u0437\u043C\u0435\u0440
+# Will be used for {library.name} in classic view
+library.name._classic=\u041C\u0435\u0441\u0442\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+MainWindow.dialog.exitconfirmation.title=\u0418\u0437\u0445\u043E\u0434 \u043E\u0442 Vuze?
+device.wiki=\u0423\u0438\u043A\u0438 \u0445\u0432\u0430\u0442\u043A\u0438 \u0438 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438\u2026
+v3.MainWindow.menu.view.searchbar=\u041B\u0435\u043D\u0442\u0430 \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435
+Trackers.column.type=\u0422\u0438\u043F
+OpenTorrentFile.column.name={TableColumn.header.name}
+core.not.available=Vuze \u0432\u0441\u0435 \u043E\u0449\u0435 \u0441\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430, \u0434\u0430 \u0441\u0435 \u043E\u043F\u0438\u0442\u0430 \u043E\u0442\u043D\u043E\u0432\u043E \u0441\u043B\u0435\u0434 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435\u0442\u043E \u043C\u0443.
+GeneralView.label.trackerscrapeupdate=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430
+ConfigView.section.pluginslist=\u0421\u043F\u0438\u0441\u044A\u043A
+PeersGraphicView.title.full=\u0420\u043E\u044F\u043A
+MyTrackerView.badnat=\u041B\u043E\u0448 NAT
+iconBar.host.tooltip=\u041F\u043E\u0434\u0441\u043B\u043E\u043D
+Column.seedspeers.started.noscrape=%1
+v3.MainWindow.menu.library=\u041C\u0435\u0441\u0442\u043D\u0430 \u0411\u0438\u0431&\u043B\u0438\u043E\u0442\u0435\u043A\u0430
+Peers.column.Protocol=\u041F\u0440\u043E\u0442\u043E\u043A\u043E\u043B
+CacheView.speeds.title=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u044F \u0437\u0430 \u0434\u0430\u043D\u043D\u0438\u0442\u0435
+window.uiswitcher.NewUI.text=* \u041F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430 \u0441\u0435 \u0437\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438.\n\n* \u041B\u0435\u0441\u0435\u043D \u0438\u043D\u0442\u0443\u0438\u0442\u0438\u0432\u0435\u043D \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u043D \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441.\n* \u0421 \u0440\u0430\u0437\u043D\u043E\u043E\u0431\u0440\u0430\u0 [...]
+StartStopRules.FP0Peers=\u041D\u0412\u041F/0 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+SubscriptionWizard.column.SubWizRank={subscriptions.column.SubWizRank}
+Plugin.localtracker.networks=\ \u041B\u043E\u043A\u0430\u043B\u043D\u0438 \u043C\u0440\u0435\u0436\u0438
+PeerManager.status.error=\u0413\u0440\u0435\u0448\u043A\u0430
+installPluginsWizard.file.file=\u0424\u0430\u0439\u043B\:
+PeersView.S.info=\u0421\u043C\u044A\u043C\u0440\u0435\u043D\: \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0441\u043C\u044A\u043C\u0440\u0435\u043D \u0440\u044A\u0447\u043D\u043E \u0438\u043B\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E (\u0437\u0430 \u0442\u043E\u0432\u0430, \u0447\u0435 \u043D\u0435 \u0434\u043E\u0441\u0442\u0430\u0432\u044F \u0434\u0430\u043D\ [...]
+Scrape.status.scraping.queued=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430\u2026
+ConfigView.section.style.extendedErase=\u0418\u0437\u0447\u0435\u0440\u0442\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0440\u0435\u0436\u0430 \u0438 \u0437\u0430\u043F\u044A\u043B\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0430\u0437\u043D\u0438 \u0437\u043E\u043D\u0438
+progress.window.msg.progress=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0447\u0430\u043A\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430
+MainWindow.menu.advanced_tools=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438
+wizard.newtorrent.byo.addcontainer.text=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u0438\u043C\u0435 \u043D\u0430 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0430, \u043A\u0430\u043A\u0442\u043E \u0449\u0435 \u0441\u0435 \u0432\u0438\u0436\u0434\u0430 \u0432 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+quick.view.scheduled.text=\u0418\u0437\u0431\u0440\u0430\u043D\u0438\u044F\u0442 \u0444\u0430\u0439\u043B \u0435 \u0441 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0449\u0435 \u0441\u0435 \u043E\u0442\u0432\u043E\u0440\u0438 \u0437\u0430 \u043F\u0440\u0435\u0433\u043B\u0435\u0434 \u0441\u043B\u0435\u0434 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435.
+DHTView.general.reachable=\u0414\u043E\u0441\u0442\u0438\u0436\u0438\u043C\u0438\:
+MyTorrentsView.menu.setSpeed.unlimit=\u0411\u0435\u0437 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435
+IPChecker.external.addressextracted=\u0418\u0437\u0432\u043B\u0435\u0447\u0435\u043D IP \u0430\u0434\u0440\u0435\u0441
+ConfigView.label.seeding.ignoreShareRatio=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+TorrentOptionsView.param.reset.stats=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430\u0442\u0430 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442(\u0438) \u0437\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440 \u043D\u0430 0
+Peers.column.DLedFromOthers=\u041E\u0442 \u0434\u0440\u0443\u0433\u0438
+tag.type.ds.comp={label.complete}
+ConfigView.section.interface.cleartrackersbutton=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435
+ConfigView.section.tracker.announcescrapepercentage=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435 \u043A\u0430\u0442\u043E % \u043E\u0442 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E\n\u043D\u0430\u043F\u0440. 200 \= 2\:1. 0 \= \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442 \u0440\u0435\u0448\u0430\u0432\u0430
+ConfigView.tb.delete.content=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u0431\u0435\u0437 \u043F\u0438\u0442\u0430\u043D\u0435
+MySharesView.menu.remove=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+DHTView.operations.title=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430
+ConfigView.section.ipfilter=IP \u0444\u0438\u043B\u0442\u0440\u0438
+DHTView.activity.status.true=\u041D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430
+azbuddy.nickname=\u041C\u0435\u0441\u0442\u0435\u043D \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C
+ConfigView.section.tracker.udpversion=\u0412\u0435\u0440\u0441\u0438\u044F \u043D\u0430 UDP \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B (1 \u0438\u043B\u0438 2)
+ConfigView.section.file.friendly.hashchecking=\u041F\u0440\u0438\u044F\u0442\u0435\u043B\u0441\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435
+ConfigView.section.style.doNotUseGB=\u0411\u0435\u0437 \u0435\u0434\u0438\u043D\u0438\u0446\u0438 \u0432 GB
+installPluginsWizard.list.loaded=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435.
+Security.jar.tools_not_found=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 JAR - 'tools.jar' \u0433\u043E \u043D\u044F\u043C\u0430 \u0432 %1. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 '\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u2192 \u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u2192 \u0421\u0438\u0433\u0443\u0440\u043D\u043E\u0441 [...]
+upnp.alert.mappingok=UPnP\: \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 '%1' \u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u043E
+TableColumn.header.file_eta.info=\u041E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0432\u0440\u0435\u043C\u0435 \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B
+configureWizard.nat.ko=\u0413\u0440\u0435\u0448\u043A\u0430 \u0432 NAT
+Button.goLibrary=\u041A\u044A\u043C {library.name}
+ManagerItem.high=\u0432\u0438\u0441\u043E\u043A
+TrackerAvail.column.type={Trackers.column.type}
+ConfigView.section.tracker.client.exclude_lan=\u0411\u0435\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430 \u043F\u0440\u0435\u043D\u043E\u0441 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438 \u043F\u043E LAN
+stats.longterm.group=\u0414\u044A\u043B\u0433\u043E\u0441\u0440\u043E\u0447\u0435\u043D
+upnp.alert.mappinggrabbed=UPnP\: \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 '%1' \u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u043E - \u0438\u0437\u0437\u0435\u0442\u043E \u043E\u0442 '%2'
+download.removerules.unauthorised.info=\u041D\u0435\u043E\u0442\u043E\u0440\u0438\u0437\u0438\u0440\u0430\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441\u0430 \u0442\u0435\u0437\u0438, \u0432 \u043A\u043E\u0438\u0442\u043E \u043E\u0442\u0433\u043E\u0432\u043E\u0440\u044A\u0442 \u043D\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430 \u0438\u043B\u0438 "not authoris(z)ed", \u0438\u043B\u0438 "unauthoris(z)ed" [...]
+MainWindow.menu.transfers.resumetransfers.keybinding=Meta+R
+ConfigView.text.ignoreRule=\u041F\u0440\u0430\u0432\u0438\u043B\u043E \u0437\u0430 \u043F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435
+ConfigView.section.sharing.torrentcomment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440 \u0437\u0430 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+ConfigView.label.checkonstart=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 Vuze
+MyTorrentsView.menu.explore._mac=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0432\u044A\u0432 Finder
+#connected to more seeds/peers than tracker reports
+library.all.header.p=%1 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430\: %2 \u0430\u043A\u0442\u0438\u0432\u043D\u0438
+ConfigView.section.tracker.passwordenabletorrent.info=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449 BitTorrent \u043A\u043B\u0438\u0435\u043D\u0442 (\u043F\u0440. Vuze)
+br.restore.info=\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043E\u0442 \u0437\u0430\u043F\u0430\u0300\u0441
+ConfigView.label.maxdownloads=\u041C\u0430\u043A\u0441. \u0435\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]\n\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0435 \u043F\u043E-\u0432\u0438\u0441\u043E\u043A\u043E \u043E\u0442 \u0431\u0440\u043E\u044F \u043C\u0430\u043A\u0441. \u0430\u043A\u0442\u0438\u0432\u043D\u0438 \u0442\u043E\u0440\ [...]
+UpdateMonitor.messagebox.restart.title=\u0421\u043E\u0444\u0442\u0443\u0435\u0440\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+MyTorrentsView.menu.moreColHidden=(%1 \u043E\u0449\u0435 \u0441\u043A\u0440\u0438\u0442\u0438\u2026)
+dlg.auth.cancelled=\u041A\u043E\u0434\u044A\u0442 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u0435 \u043E\u0442\u043A\u0430\u0437\u0430\u043D
+MyTrackerView.status.stopped=\u0421\u043F\u0440\u044F\u043D\u043E
+wizard.close.confirmation=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435
+FilesView.menu.setpriority.numeric=\u0427\u0438\u0441\u043B\u043E\u0432\u2026
+ConfigView.section.transfer.autospeed.tooltip=\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442
+subscriptions.listwindow.loadingtext=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u0441 %1
+tag.type.ds.seed={ManagerItem.seeding}
+UI.cannot_submit_blank_text=\u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442.
+updater.cant.write.to.app.title=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043F\u0438\u0441\u0432\u0430 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043D\u0430 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E
+OpenTorrentWindow.addFiles.Folder=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 &\u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+webui.bindip=\u041F\u0440\u0438\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0418\u041F (IP) - \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E \u043D\u0435 \u0441\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430
+max.sr.window.title=\u0426\u0435\u043B\u0435\u0432\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+PeerFilesView.title.short={FilesView.title.short}
+PeersView.I2.info=\u0414\u0430\u043B\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442 \u0441\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u0432\u0430 \u043E\u0442 \u043C\u0435\u0441\u0442\u043D\u043E \u043D\u0430\u043B\u0438\u0447\u043D\u043E\u0442\u043E?
+pairing.local.ipv6=\u041C\u0435\u0441\u0442\u0435\u043D IPv6 \u0430\u0434\u0440\u0435\u0441
+pairing.local.ipv4=\u041C\u0435\u0441\u0442\u0435\u043D IPv4 \u0430\u0434\u0440\u0435\u0441
+MainWindow.upgrade.tooltip.progressbar=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u043E \u0442\u0443\u043A
+MyTorrentsView.dialog.setNumber.download=\u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.label.startminimized=\u041F\u0443\u0441\u043A\u0430\u043D\u0435 \u043C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430\u043D
+TableColumn.header.upspeed=\u0421\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+iconBar.new.tooltip=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+cat.options=\u0422\u0435\u043A\u0443\u0449\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438/\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u2026
+ActivityView.legend.trimmed=\u0427\u0430\u0441\u0442\u0438\u0447\u043D\u043E (\u0441 \u043C\u043D\u043E\u0433\u043E\u0442\u043E\u0447\u0438\u0435)
+SpeedTestWizard.set.upload.label=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\:
+v3.MainWindow.text.my.profile=\u041F\u0440\u043E\u0444\u0438\u043B
+ConfigView.label.seeding.rankType.peerSeed.options=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435\u0442\u043E \u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\:\u041F\u043E\u0441\u044F\u0432\u043A\u0438
+TableColumn.header.date_added.info=\u0414\u0430\u0442\u0430 \u043D\u0430 \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+pairing.status.noservices=\u041D\u044F\u043C\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u0438 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u0438 \u0443\u0441\u043B\u0443\u0433\u0438
+ConfigView.section.ipfilter.enablebanning=\u0411\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u043A\u043E\u0438\u0442\u043E \u043D\u0435\u043F\u0440\u0435\u043A\u044A\u0441\u043D\u0430\u0442\u043E \u043F\u0440\u0430\u0449\u0430\u0442 \u043B\u043E\u0448\u0438 \u0434\u0430\u043D\u043D\u0438
+PiecesView.BlockView.Have=\u0418\u043C\u0430
+ConfigView.label.maxactivetorrents=\u041C\u0430\u043A\u0441. \u0431\u0440\u043E\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]\n\u041D\u043E\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043D\u044F\u043C\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u0442, \u0430\u043A\u043E \u0441\u0435 \u0441\u0432\u0430\u043B\u044F/\u0441\u0435\u0435 \u [...]
+MyTorrentsView.menu.edit_comment=\u0420\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+TableColumn.header.TorrentStream={iconBar.stream}
+PiecesView.availability=\u041D\u0430\u043B\u0438\u0447\u043D\u043E\u0441\u0442
+MySharesView.type.file=\u0424\u0430\u0439\u043B
+TableColumn.header.status.info=\u041A\u0430\u043A\u0432\u043E \u043F\u0440\u0430\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442
+v3.topbar.menu.show.search=\u0422\u044A\u0440\u0441\u0435\u043D\u0435
+pairing.group.explicit=\u0418\u0437\u0440\u0438\u0447\u043D\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438
+TableColumn.header.secondsdownloading.info=\u0412\u0440\u0435\u043C\u0435, \u043F\u0440\u0435\u0437 \u043A\u043E\u0435\u0442\u043E \u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u043E.
+MainWindow.upgrade.step2=\u0421\u0442\u044A\u043F\u043A\u0430 2\: \u0417\u0430\u0442\u0432\u0430\u0440\u044F \u0441\u0435 \u0442\u0435\u043A\u0443\u0449\u0430\u0442\u0430 \u0438 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u043D\u043E\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0430 Vuze
+label.original.file=\u041E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u0435\u043D \u0444\u0430\u0439\u043B
+MainWindow.upgrade.step1=\u0421\u0442\u044A\u043F\u043A\u0430 1\: \u0421\u0432\u0430\u043B\u044F \u0441\u0435 \u043D\u043E\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+ConfigView.section.tracker.natcheckenable=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0441\u043F\u043E\u0441\u043E\u0431\u043D\u043E\u0441\u0442\u0442\u0430 \u0437\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u043D\u0430 '\u0432\u0445\u043E\u0434\u044F\u0449 \u043F\u043E\u0440\u0442 \u0437\u0430 \u0434\u0430\u043D\u043D\u0438' \u0438 \u0441\u044A\u043E\u0431\u0449\u0430\u0432\u0430\u043D\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438\u0442\u0435 \u043A\u044A\u043C \u [...]
+GeneralView.label.maxuploadspeed=\u041E\u0433\u0440. \u041A\u0447.
+ConfigView.label.maxdownloadspeed=KB/s \u0433\u043B\u043E\u0431\u0430\u043B\u043D\u0430 \u043C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+rss.internal.test.url=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u043D\u0430\u0447\u0430\u043B\u043D\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430
+window.networkselection.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+PeersView.BlockView.Avail.Have=\u0418 \u0434\u0432\u0430\u043C\u0430\u0442\u0430 \u0438\u043C\u0430\u0442
+device.error.copytonowrite='\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F' "%1" \u043D\u044F\u043C\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D \u0437\u0430\u043F\u0438\u0441
+ConfigureWizard.language.choose=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0435\u0437\u0438\u043A \u043E\u0442 \u0441\u043B\u0435\u0434\u043D\u0438\u044F \u0441\u043F\u0438\u0441\u044A\u043A\:
+SpeedTestWizard.finish.panel.click.close=\u041F\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u044A\u0442 \u0437\u0430 \u043F\u0440\u043E\u0431\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0438. \u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 '\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435' \u0437\u0430 \u0438\u0437\u0445\u043E\u0434.
+MainWindow.menu.quick_view=\u0411\u044A\u0440\u0437 \u0438\u0437\u0433\u043B\u0435\u0434
+MagnetPlugin.contextmenu.exporturi=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u043A\u043B\u0438\u043F-\u0431\u043E\u0440\u0434\u0430 \u043D\u0430 magnet URI
+devices.choose.device.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0437\u0430 \u0442\u043E\u0432\u0430 \u0432\u0438\u0434\u0435\u043E\:
+MainWindow.menu.file.open.torrentnodefault=\u0422\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u2026\u0085 (\u0431\u0435\u0437 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435)
+MyTrackerView.seeds=\u041F\u043E\u0441\u044F\u0432\u043A\u0438
+ColumnSetup.filters=\u0424\u0438\u043B\u0442\u0440\u0438
+MainWindow.nat.status.ok=NAT \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+Security.keystore.empty=\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0442\u043E \u0437\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435 \u0435 \u043F\u0440\u0430\u0437\u043D\u043E. \u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435 \u0441\u0430\u043C\u043E\u043F\u043E\u0434\u043F\u0438\u0441\u0430\u043D \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442 (\u0434\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 '\u0418\ [...]
+CategoryAddWindow.message=\u0418\u043C\u0435 \u043D\u0430 \u043D\u043E\u0432\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+GeneralView.label.private=\u0427\u0430\u0441\u0442\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442\:
+ConfigView.unlimited=\u041D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E
+ConfigView.section.connection.advanced.SO_SNDBUF.tooltip=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0432\u0430 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0437\u0430 \u0446\u043E\u043A\u044A\u043B SO_SNDBUF (\u0432 \u0431\u0430\u0439\u0442\u043E\u0432\u0435), \u0442.\u0435. \u0440\u0430\u0437\u043C\u0435\u0440\u044A\u0442 \u043D\u0430 TCP \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446 \u0437\u0430 \u0438\u0437\u043F\u [...]
+iconBar.stop.tooltip=\u0421\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u044F(\u0438\u0442\u0435) \u0442\u043E\u0440\u0435\u043D\u0442(\u0438)
+dht.reseed=\u0421\u0435\u0435\u043D\u0435 \u043D\u0430\u043D\u043E\u0432\u043E
+restart.error.fnf='%1' \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D \u0432 '%2'
+v3.MainWindow.button.preview=\u041E\u043D\u0430\u0433\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435
+AutoMigration.useralert=\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043E\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430\u0442\u0430 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u044F \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435/\u0434\u0438\u0440\u0435\u043A\u0442\u043E\u04 [...]
+statusbar.feedback=\u041F\u0440\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0437\u0438\u0432
+v3.menu.device.exploreTranscodes._mac=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432\u044A\u0432 Finder
+LoggerView.includeOnly=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043D\u0430 \u0440\u0435\u0434\u043E\u0432\u0435 \u043E\u0442\u0433\u043E\u0432\u0430\u0440\u044F\u0449\u0438 \u043D\u0430 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u0438\u044F \u0438\u0437\u0440\u0430\u0437\:
+plus.notificaiton.ExpiringEntry.s=\u041C\u0435\u0441\u0442\u043D\u0438\u044F\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0437\u0430 Vuze \u041F\u043B\u044E\u0441 \u0438\u0437\u0442\u0438\u0447\u0430 \u0441\u043B\u0435\u0434 %1 \u0434\u0435\u043D\: <A %2>\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435</A>
+device.router.configure=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 UPnP
+plus.notificaiton.ExpiringEntry.p=\u041C\u0435\u0441\u0442\u043D\u0438\u044F\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0437\u0430 Vuze \u041F\u043B\u044E\u0441 \u0438\u0437\u0442\u0438\u0447\u0430 \u0441\u043B\u0435\u0434 %1 \u0434\u043D\u0438\: <A %2>\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435</A>
+ConfigView.label.popupfilefinished=\u0418\u0437\u0441\u043A\u0430\u0447\u0430\u0449\u043E \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0444\u0430\u0439\u043B
+ConfigView.section.tracker.server=\u0421\u044A\u0440\u0432\u044A\u0440
+v3.activity.header.vuze.news=Vuze \u043D\u043E\u0432\u0438\u043D\u0438
+metasearch.addtemplate.title=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435?
+plugin.aznetstatus.logfull=\u0417\u0430\u043F\u0438\u0441 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u043E
+dht.ipfilter.log=\u0414\u043D\u0435\u0432\u043D\u0438\u043A \u0437\u0430 \u043D\u0430\u0440\u0443\u0448\u0435\u043D\u0438\u044F\u0442\u0430 \u043D\u0430 IP \u0444\u0438\u043B\u0442\u044A\u0440\u0430
+stream.analysing.media.preview=\u0410\u043D\u0430\u043B\u0438\u0437 \u043D\u0430 \u043D\u043E\u0441\u0438\u0442\u0435\u043B (\u043E\u043D\u0430\u0433\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435)
+Scrape.status.nextScrapeAt=\u0421\u043B\u0435\u0434\u0432\u0430\u0449\u043E \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435 \u0432 %1
+Scrape.status.error=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435\:
+SystemTray.tooltip.seeding=%1 \u0441\u0435\u0435\u043D\u0435,
+TableColumn.TorrentStream.tooltip.disabled='\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u0441\u0435\u0433\u0430' \u043D\u0435 \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043E\u0442 \u0442\u043E\u0437\u0438 \u0442\u0438\u043F
+webui.passwordenable=\u0421 \u043F\u0430\u0440\u043E\u043B\u0430
+updater.progress.window.info=\u0414\u0430 \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043D\u0435 '\u0418\u0437\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435' \u0437\u0430 \u043F\u0440\u0435\u043A\u044A\u0441\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0441\u0442\u043E\u044F\u0449\u0438 \u0437\u0430\u0434\u0430\u0447\u0438
+pairing.enable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 Vuze \u0438 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F/\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0438
+fileDownloadWindow.title=Vuze - \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+MainWindow.upgrade.explanation=\u0422\u043E\u0437\u0438 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A \u0449\u0435 \u0441\u0432\u0430\u043B\u0438 \u043D\u043E\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043D\u0430 Vuze \u0438 \u0449\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 Vuze
+br.restore.folder.info=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0441 \u043F\u0440\u0435\u0434\u0438\u0448\u0435\u043D \u0437\u0430\u043F\u0430\u0300\u0441
+update.fail.app.changed=Vuze \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435, \u043D\u043E \u043F\u0440\u043E\u0446\u0435\u0441\u044A\u0442 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0432\u044A\u0440\u0448\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E, \u0437\u0430\u0449\u043E\u0442\u043E \u0438\u043C\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u0438\u043B\u043E\u04 [...]
+jvm.max.direct.mem=\u041C\u0430\u043A\u0441. \u0440\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043D\u0430 \u043F\u0430\u043C\u0435\u0442 [\u043F\u0440\u0430\u0437\u043D\u043E\=\u043F\u043E-\u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435, \u043C\u0438\u043D.\=%1]
+Scrape.status.error.invalid=\u0413\u0440\u0435\u0448\u0435\u043D \u043E\u0442\u0433\u043E\u0432\u043E\u0440.
+wizard.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+device.config.ms.maxlines=\u041C\u0430\u043A\u0441. \u0440\u0435\u0434\u043E\u0432\u0435 \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u043F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u043C\u0435\u0434\u0438\u0435\u043D \u0441\u044A\u0440\u0432\u044A\u0440
+ConfigView.label.ui_switcher_button=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435
+ConfigView.label.lh.prog=\u041F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435
+FilesView.title.short=\u0424\u0430\u0439\u043B\u043E\u0432\u0435
+jvm.options.summary=\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0442\u0435 \u0438\u0437\u0440\u0438\u0447\u043D\u0438 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\:
+restart.error.denied=\u0414\u043E\u0441\u0442\u044A\u043F \u043E\u0442\u043A\u0430\u0437\u0430\u043D \u043F\u0440\u0438 \u043E\u043F\u0438\u0442 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 '%1'. \u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u0434\u0430\u043B\u0438 \u0438\u043C\u0430 \u043F\u0440\u0430\u0432\u0430 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u043E\u043 [...]
+iconBar.open=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.label.minPeersToBoostNoSeeds.tooltip=\u0412\u0441\u0435\u043A\u0438 \u0442\u043E\u0440\u0435\u043D\u0442 \u0431\u0435\u0437 \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u0438\u043B\u0438 \u0441 \u043F\u043E-\u043C\u0430\u043B\u043A\u043E \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u043E\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043E\u0442\u043E\n\u0449\u0435 \u0431\u044A\u0434\u0435 \u043A\u044A\u043C \u043A\u0440\u0430\u044F \u043D\u [...]
+devices.od.view.heading=\u0421\u0432\u0430\u043B\u044F\u043D\u0438\u044F \u043F\u043E \u0433\u0440\u0430\u0444\u0438\u043A \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0431\u0435\u0437 \u0432\u0440\u044A\u0437\u043A\u0430
+ConfigView.section.transfer.autospeed.network.info=\u0413\u043E\u0440\u043D\u0438\u0442\u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0441\u0435 \u043F\u0440\u0435\u0441\u043C\u044F\u0442\u0430\u0442 \u043F\u043E \u0432\u0440\u0435\u043C\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0438\u043B\u0438 \u0441\u0430 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442 \u043E\u0442 \u [...]
+sharing.progress.cancel=\u041E\u0442\u043A\u0430\u0437
+label.indirect.connect=\u041D\u0435\u043F\u0440\u044F\u043A\u043E \u0441\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435
+MagnetURLHandler.report.no_sources=\u043D\u044F\u043C\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u0438\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+Button.done=\u0413\u043E\u0442\u043E\u0432\u043E
+dht.reseed.port=\u041F\u043E\u0440\u0442
+MyTorrentsView.menu.movetorrent=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u2026\u0085
+v3.MainWindow.menu.contentnetworks.about=\u0417\u0430 HD \u043C\u0440\u0435\u0436\u0438\u0442\u0435
+AdvRenameWindow.title=\u0421\u043C\u044F\u043D\u0430 \u0438\u043C\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+wizard.maketorrents.superseed=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0443\u043F\u0435\u0440-\u0441\u0435\u0435\u043D\u0435
+MainWindow.menu.view.stats.keybinding=Meta+5
+SystemTray.tooltip.downloading=%1 \u0441\u0432\u0430\u043B\u044F\u043D\u0435,
+importTorrentWizard.process.importfail.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0438\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+device.config.autohide.old.devices=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0441\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430, \u043A\u043E\u0438\u0442\u043E \u043D\u0435 \u0441\u0430 \u0437\u0430\u0431\u0435\u043B\u044F\u0437\u0430\u043D\u0438 \u0441\u043A\u043E\u0440\u043E [\u0434\u043D\u0438, 0\: \u0431\u0435\u0437]
+custom.settings.import.res.title=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0438\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
+ConfigView.label.userequestlimiting.tooltip=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0438\u0442\u0435 \u0435 \u043F\u043E-\u0433\u0440\u0443\u0431\u043E \u043E\u0442 \u0437\u0430\u0431\u0430\u0432\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0438\u0442\u0435, \u043D\u043E \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430 \u043F\u0440\u0438\u043E\u0440\u0438\u0 [...]
+CacheView.writes.toCache=\u0412 \u0431\u0443\u0444\u0435\u0440
+SpeedTestWizard.abort.message.download.added=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 %1 \u0435 \u0434\u043E\u0431\u0430\u0432\u0435\u043D\u043E \u043F\u043E \u0432\u0440\u0435\u043C\u0435 \u043D\u0430 \u043F\u0440\u043E\u0431\u0430
+OpenTorrentFile.column.download.info=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B \u043E\u0442 \u0442\u043E\u0440\u0435\u043D\u0442\n\u0421 \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0441\u0435 \u043F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0432\u0430 \u0442\u043E\u0432\u0430 \u0437\u0430 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D \u0438\u0437\u0431\u043E\u0440
+DownloadActivityView.legend.down_smooth=\u041D\u0430\u0434\u043E\u043B\u0443 (\u043F\u043B\u0430\u0432\u043D\u043E)
+proxy.info.title=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E\u0442 \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A
+MyTorrentsView.menu.recheck=\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440&\u043A\u0430
+UpdateProperty.title=\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+TableColumn.header.swarm_average_speed.info=\u0421\u0440\u0435\u0434\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u0442\u0435 \u0432 \u0440\u043E\u044F\u043A\u0430
+PeerSocket.unknown_shadow_style=\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D %1/%2
+Button.createNewSubscription=\u041D\u043E\u0432 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+MagnetPlugin.use.lookup.service=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0443\u0441\u043B\u0443\u0433\u0430\u0442\u0430 \u043D\u0430 Vuze \u0437\u0430 \u0432\u0442\u043E\u0440\u0438\u0447\u043D\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435, \u0430\u043A\u043E magnet \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E \u043F\u0440\u0435\u0437 DHT \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+mb.azmustclose.title=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.maxseedspertorrent=\u041C\u0430\u043A\u0441. \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+MyTorrentsView.menu.thisColumn.remove=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0430
+download.removerules.name=\u041F\u0440\u0430\u0432\u0438\u043B\u0430 \u0437\u0430 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+label.rss=RSS
+PeerManager.status.offline=\u0413\u0440\u0435\u0448\u043A\u0430 \u0432\u044A\u0432 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430
+br.backup.progress=\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043E\u0442 \u0437\u0430\u043F\u0430\u0300\u0441/\u0432\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+v3.MainWindow.search.tooltip=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0443\u0441\u043B\u043E\u0432\u0438\u044F \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435, magnet \u0432\u0440\u044A\u0437\u043A\u0430, \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435 \u0438\u043B\u0438 URL \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442. \u041D\u0430\u043A\u0440\u0430\u044F \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043A\u0430 'Enter'.
+menu.min.share.ratio2=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043C\u0438\u043D. \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u2026
+TagStatsView.title.full=\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442
+config.changes.title=\u041F\u0440\u043E\u043C\u0435\u043D\u0438 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430
+TableColumn.header.savepath=\u041F\u044A\u0442 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+GeneralView.label.uploadspeed=\u041A\u0430\u0447\u0432\u0430\u043D\u0435 \u043F\u0440\u0438\:
+MyTorrentsView.menu.networks=\u041C\u0440\u0435\u0436\u0438
+ConfigView.label.watchtorrentfolderinterval=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B
+Button.install={swt.install.window.ok}
+ConfigView.section.connection.group.http.info=\u041F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u043D\u0430 HTTP \u0441\u0435\u0435\u043D\u0435.
+ConfigView.label.opendialog=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435, \u043A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+device.lastseen=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0437\u0430\u0431\u0435\u043B\u044F\u0437\u0430\u043D\u043E
+TableColumn.header.networks=\u041C\u0440\u0435\u0436\u0438
+azbuddy.ui.add=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+GeneralView.label.hashfails=\u041F\u0440\u043E\u0432\u0430\u0301\u043B\u0438 \u0432 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435\u0442\u043E\:
+ConfigView.pluginlist.shared=\u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D
+ConfigView.section.security.restorekeys.button=\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+TableColumn.header.activityNew=\u041D\u043E\u0432\u043E
+ColumnSetup.proficiency=\u041F\u043E\u0434\u0433\u043E\u0442\u0432\u0435\u043D\u043E\u0441\u0442\:
+FilesView.skip.confirm.delete.text=\u041F\u0440\u0435\u043A\u044A\u0441\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B '%1' \u0437\u0430 \u0438\u043A\u043E\u043D\u043E\u043C\u0438\u044F \u043D\u0430 \u043C\u044F\u0441\u0442\u043E?
+ConfigView.section.style.separateProtDataStats=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430 \u0434\u0430\u043D\u043D\u0438 \u0438 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u043A\u0430\u0442\u043E '\u0434\u0430\u043D\u043D\u0438 (\u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B)'
+configureWizard.welcome.usermodes=\u041E\u043F\u0438\u0442\u044A\u0442 \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0442\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u0438 \u043E\u0442 \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u2192 \u0 [...]
+plugin.install.class_version_error=\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\u0442\u0430 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043F\u043E-\u043D\u043E\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0430 Java, \u0437\u0430 \u0434\u0430 \u0440\u0430\u0431\u043E\u0442\u0438.
+configureWizard.welcome.message=\u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u0437\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0442\u0435 \u043D\u0430 Vuze \u0437\u0430 \u043D\u0430\u0439-\u043E\u0431\u0449\u0430 \u0443\u043F\u043E\u0442\u0440\u0435\u0431\u0430. \u0412\u044A\u0437\u043C\u043E\u0436\u043D\u0430 \u0435 \u043F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0442\u0435 \u0432 \u0434\u0435\u0442\u [...]
+window.update.noupdates.beta.text=\u041D\u044F\u043C\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438.\n\n\u0418\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430 \u0441\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E\u0442\u043E \u0441\u0442\u0430\u0431\u0438\u043B\u043D\u043E \u0431\u0435\u0442\u0430 \u0438\u0437\u0434\u0430\u043D\u0438\u0435 (%1)\n\n\u0414\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0 [...]
+security.crypto.persist_for.week=1 \u0441\u0435\u0434\u043C\u0438\u0446\u0430
+MainWindow.nat.status.probok=NAT \u043F\u0440\u043E\u0431\u0430 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+ConfigView.section.connection.advanced.read_select_min=\u041C\u0438\u043D. \u0447\u0430\u043A\u0430\u043D\u0435 \u0437\u0430 read select (ms, \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 %1)
+SpeedTestWizard.abort.message.entered.error=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430 '%1' \u043F\u0440\u0438 \u043F\u0440\u043E\u0431\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+devices.state=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+speedtest.wizard.test.mode.up=\u043A\u0430\u0447\u0432\u0430\u043D\u0435
+Formats.units.alot=\u041C\u043D\u043E\u0433\u043E\!\!\!
+CacheView.reads.amount=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E
+ConfigTransferAutoSpeed.add.comment.to.log.group=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438
+OpenTorrentTorrent.column.\#=\u2116
+TableColumn.header.peers.info=\u0411\u0440. \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 (\u043E\u0431\u0449 \u0431\u0440. \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438)
+Button.next=\u0421\u043B\u0435\u0434\u0432\u0430\u0449\u043E
+ColumnProgressETA.showSpeed=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0441\u043A\u043E\u0440\u043E\u0441\u0442
+Torrent.create.progress.piecelength=\u0414\u044A\u043B\u0436\u0438\u043D\u0430 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430\u0442\u0430\:
+dialog.uiswitcher.restart.text=Vuze \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0438 \u0413\u041F\u0418.
+v3.iconBar.down.tooltip=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0434\u043E\u043B\u0443\n\u0417\u0430\u0434\u044A\u0440\u0436\u0430\u043D\u0435 \u043D\u0430 \u0431\u0443\u0442\u043E\u043D\u0430 \u043D\u0430 \u043C\u0438\u0448\u043A\u0430\u0442\u0430 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430 \u043D\u0430\u043A\u0440\u0430\u044F
+devices.xcode.autoCopy.device=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+beta.wizard.forum=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0442 \u0444\u043E\u0440\u0443\u043C\u0438\u0442\u0435 \u043D\u0430 Vuze \u0437\u0430 \u043E\u0442\u0437\u0438\u0432\u0438 \u0438 \u0434\u043E\u043A\u043B\u0430\u0434\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438.
+label.replace=\u0417\u0430\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435
+MainWindow.menu.help=\u041F&\u043E\u043C\u043E\u0449
+TableColumn.header.tag.downrate={TableColumn.header.downspeed}
+ConfigView.section.stats.xslfiledetails=\u0422\u043E\u0432\u0430 \u0449\u0435 \u0431\u044A\u0434\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0432 \u0437\u0430\u0433\u043B\u0430\u0432\u043A\u0430\u0442\u0430 \u043D\u0430 \u0444\u0430\u0439\u043B\u0430 \u0441\u044A\u0441 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0441 \u0435\u0442\u0438\u043A\u0435\u0442 <?xml-stylesheet>
+window.updateswt.status.downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0430\u0442\u0430 SWT \u0432\u0435\u0440\u0441\u0438\u044F
+remote.pairing.subtitle=Vuze Remote \u0434\u0430\u0432\u0430 \u043F\u0440\u0430\u0432\u043E \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B \u043D\u0430 Vuze \u043E\u0442 \u0432\u0441\u0435\u043A\u0438 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440, \u043C\u043E\u0431\u0438\u043B\u0435\u043D \u0431\u0440\u0430\u0443\u0437\u044A\u0440 \u0438\u043B\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0441 Android.
+ConfigView.label.importdirectory=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0438\u043C\u043F\u043E\u0440\u0442
+DownloadManager.error.fileempty=\u041F\u0440\u0430\u0437\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B
+MainWindow.menu.community.blog=Vuze &\u0420\u0443\u0431\u0440\u0438\u043A\u0430
+devices.xcode.setcopyto.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043C\u044F\u0441\u0442\u043E, \u0432 \u043A\u043E\u0435\u0442\u043E \u0434\u0430 \u0441\u0435 \u043A\u043E\u043F\u0438\u0440\u0430
+TableColumn.header.md5.info=MD5 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0444\u0430\u0439\u043B\u0430 (\u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0438\u0437\u0446\u044F\u043B\u043E \u0441\u0432\u0430\u043B\u0435\u043D, \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u0438\u0437\u0447\u0438\u0441\u043B\u044F\u0432\u0430\u043D\u0435)
+TableColumn.header.name=\u0418\u043C\u0435
+ConfigView.label.showpopuponclose=\u0414\u0438\u0430\u043B\u043E\u0433 \u0437\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0441\u043F\u0438\u0440\u0430\u043D\u0435 \u0441\u0435\u0435\u043D\u0435\u0442\u043E \u0441 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E <1
+PeerManager.status.ps_disabled=\u0418\u0437\u043A\u043B\u044E\u0447\u0435\u043D \u0442\u0440\u0430\u043A\u0435\u0440 \u043D\u0430 \u0438\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+MainWindow.menu.view.stats=&\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438
+wizard.multitracker.edit.text.msg=\u0412\u044A\u0432\u0435\u0436\u0434\u0430 \u0441\u0435 \u043F\u043E 1 \u0442\u0440\u0430\u043A\u0435\u0440 \u043D\u0430 \u0440\u0435\u0434. \u0420\u0430\u0437\u043B\u0438\u0447\u043D\u0438\u0442\u0435 \u0433\u0440\u0443\u043F\u0438 (\u0441\u0435\u0440\u0438\u0438) \u0441\u0435 \u043E\u0442\u0434\u0435\u043B\u044F\u0442 \u0441 \u043F\u0440\u0430\u0437\u0435\u043D \u0440\u0435\u0434.
+ConfigView.higher.mode.available=\u041F\u043E\u0432\u0435\u0447\u0435 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0438\u043C\u0430 \u0432 \u043F\u043E-\u0432\u0438\u0441\u043E\u043A\u0438\u0442\u0435 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u0440\u0435\u0436\u0438\u043C\u0438
+PeersView.download.info=\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F.
+seedmore.title=\u0422\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u043D\u0435 \u0435 \u0441\u044F\u0442 \u0434\u043E\u0441\u0442\u0430\u0442\u044A\u0447\u043D\u043E
+ConfigTransferAutoSpeed.algorithm.selector=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0430\u0432\u0442\u043E-\u0441\u043A\u043E\u0440\u043E\u0441\u0442
+MyTorrentsView.menu.thisColumn.sort=&\u041F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435
+window.uiswitcher.NewUI.title=Vuze
+ConfigView.section.mode.beginner.text1=\u0412\u0441\u0438\u0447\u043A\u043E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 - \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u043E \u0437\u0430 \u043D\u043E\u0432\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438 \u0437\u0430\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0449\u0438 \u0441\u0435 \ [...]
+Menu.show.torrent.menu=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0435\u043D\u044E '\u0422\u043E\u0440\u0435\u043D\u0442\u0438'
+xfs.allocation.xfs_io.not.found=\u0417\u0430\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 XFS \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438, /usr/sbin/xfs_io \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u0438. \u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u0437\u0430 \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u0430 \u0438\u043D\u0441\ [...]
+SpeedTestWizard.stage.message.starting=\u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u2026
+MyTorrentsView.dialog.setFilter.text=\u0420\u0430\u0437\u0434\u0435\u043B %1 \u0449\u0435 \u0431\u044A\u0434\u0435 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D \u0441\u043F\u043E\u0440\u0435\u0434 \u0432\u044A\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0441\u0442 \u043F\u043E-\u0434\u043E\u043B\u0443. \u0414\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 "|" (pipe) \u0437\u0430 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0435 [...]
+subscriptions.listwindow.name=\u0418\u043C\u0435
+SystemTray.menu.pausetransfers=\u041F\u0430\u0443\u0437\u0430 \u043D\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+openUrl.url=URL\:
+sr_prog.window.title=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043D\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E
+wizard.newtorrent.byo.info=\u0414\u0430 \u0441\u0435 \u043F\u0443\u0441\u043D\u0435 \u0438\u0437\u0431\u043E\u0440 \u043E\u0442 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0438/\u0438\u043B\u0438 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438 \u0432 \u043F\u043E\u043B\u0435\u0442\u043E \u043F\u043E-\u0434\u043E\u043B\u0443, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442. \u0421 \u043F\u043E\u0442\u0432 [...]
+label.rename=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 %1
+MainWindow.menu.view.configuration=\u041A&\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0085\u2026
+Button.bar.edit=\u0420\u0435\u0434\u0430\u043A\u0446\u0438\u044F
+MainWindow.dht.status.failed=DHT \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+ConfigView.label.defaultsavepath=\u0417\u0430\u043F\u0438\u0441 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0434\u0430\u043D\u043D\u0438
+OpenTorrentWindow.mb.notValid.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+label.script.to.run=\u0421\u043A\u0440\u0438\u043F\u0442 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435
+DiskManager.alert.movefilefails=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\n\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B %1 \u043D\u0435 \u0443\u0441\u043F\u044F, %2
+label.public={subs.prop.is_public}
+ConfigView.label.dm.dblclick=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0432 \u0438\u0437\u0433\u043B\u0435\u0434\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\:
+Utils.link.visit=\u0414\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0438
+device.od.space=\u041D\u0430\u043B\u0438\u0447\u043D\u043E \u043C\u044F\u0441\u0442\u043E
+FilesView.crc32.calculate=\u0418\u0437\u0447\u0438\u0441\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 CRC- 32 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043D\u0430(\u0438) \u0441\u0443\u043C\u0430(\u0438)
+ConfigView.label.stop.QuitVuze=\u0421\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 Vuze
+label.untagged=\u0411\u0435\u0437 \u0435\u0442\u0438\u043A\u0435\u0442\u0438
+installPluginsWizard.list.version=\u0412\u0435\u0440\u0441\u0438\u044F
+ConfigView.section.tracker.username=\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u043E \u0438\u043C\u0435
+ConfigView.section.ipfilter.autoload.info=\u041F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 DAT (eMule), P2P (PeerGuardian, splist) \u0438 P2B v1,2,3 (PeerGuardian 2) \u0444\u043E\u0440\u043C\u0430\u0442\u0438. \u0424\u0430\u0439\u043B\u044A\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0435 \u043B\u043E\u043A\u0430\u043B\u0435\u043D \u0438\u043B\u0438 URL, zip-\u043D\u0430\u0442, gzip-\u043D\u0430\u0442 \u0438\u043B\u0438 \u043F\u0440\u0430\u0432 \u0442\u0435\u043A\u0441\u0442. URL-\u04 [...]
+sidebar.header.discovery=\u041E\u0442\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+importTorrentWizard.torrentfile.message=\u0422\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B, \u0432 \u043A\u043E\u0439\u0442\u043E \u0434\u0430 \u0441\u0435 \u0438\u043C\u043F\u043E\u0440\u0442\u0438\u0440\u0430
+MainWindow.menu.speed_limits.view=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435\u2026
+ConfigView.section.mode.intermediate.wiki.host=\u041F\u043E\u0434\u0441\u043B\u043E\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+MainWindow.upgrade.error.downloading.hint=\u0413\u0440\u0435\u0448\u043A\u0430\:\t\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u0430\u043B\u0438 \u043D\u043E\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F, \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430 \u0440\u044A\u0447\u043D\u043E
+MyTorrentsView.filter.tooltip=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 "|" (pipe) \u0437\u0430 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0435 \u043F\u043E \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0444\u0440\u0430\u0437\u0438.\nCtrl+X \u043F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0432\u0430 \u043C\u0435\u0436\u0434\u0443 RegEx \u0438 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u0438 \u043D\u0430\u0447\u0438\u043D\u0438 \u0 [...]
+ConfigView.section.language=\u0415\u0437\u0438\u043A
+ConfigView.label.userSuperSeeding=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0443\u043F\u0435\u0440-\u0441\u0435\u0435\u043D\u0435
+TableColumn.header.smoothup.info=\u0417\u0430\u0433\u043B\u0430\u0434\u0435\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 {smooth.config}
+PeersView.connected_time=\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430
+fileDownloadWindow.retry=\u041E\u0442\u043D\u043E\u0432\u043E
+openUrl.referrer=URL \u043D\u0430 \u0440\u0435\u0444\u0435\u0440\u0435\u043D\u0442\u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\:
+DHTView.general.title=\u041E\u0431\u0449\u043E
+PiecesView.legend.incache=\u0414\u0430\u043D\u043D\u0438\u0442\u0435 \u0441\u0430 \u0432 \u043A\u0435\u0448\u0430
+SpeedView.stats.estdowncap=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\:
+TableColumn.header.comment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+PeersView.source=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u043A
+GeneralView.label.maxuploadspeed.tooltip=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+security.crypto.persist_for.forever=\u0417\u0430\u0432\u0438\u043D\u0430\u0433\u0438
+ConfigView.label.hap.tooltip=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u043F\u0430\u0440\u0447\u0435
+ConfigView.section.connection.group.networks=\u041C\u0440\u0435\u0436\u0438
+MainWindow.menu.file.exit.keybinding=Alt+F4
+devices.comp.missing=\u041D\u0435 \u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0430 Vuze \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430
+SpeedTestWizard.test.panel.abort=\u041E\u0442\u043A\u0430\u0437
+ManagerItem.queued=\u041D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430
+ConfigView.section.file.nativedelete._mac=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043A\u043E\u0448\u0447\u0435\u0442\u043E \u043F\u0440\u0438 \u0442\u0440\u0438\u0435\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+subscript.all.subscribed=\u0418\u043C\u0430 \u043C\u0435\u0441\u0442\u0435\u043D \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0437\u0430 \u0442\u043E\u0432\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+DHTView.transport.title=\u0422\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442\u043D\u0438 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+tag.type.ds.init={fileDownloadWindow.state_initializing}
+TableColumn.header.completed.info=\u0411\u0440\u043E\u0439 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0438\u043B\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430, \u0434\u043E\u043A\u043B\u0430\u0434\u0432\u0430\u043D\u043E \u043E\u0442 \u0442\u0440\u0430\u043A\u0435\u0440\u0430
+subscriptions.view.title=\u0410\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+CacheView.speeds.reads=\u041F\u0440\u043E\u0447\u0438\u0442\u0438
+ConfigView.label.queue.debuglog.info=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 \u043A\u044A\u043C \u043A\u043E\u043D\u0437\u043E\u043B\u0430/\u0434\u043D\u0435\u0432\u043D\u0438\u043A.\n\u041C\u0430\u043A\u0430\u0440 \u0438 \u0442\u0440\u0443\u0434\u043D\u0 [...]
+PiecesView.legend.written=\u0417\u0430\u043F\u0438\u0441\u0430\u043D\u043E
+PiecesView.BlockView.Header=%1 \u043A\u043E\u043B\u043E\u043D\u0430/\u0438, %2 \u0440\u0435\u0434/\u0430, %3 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+PiecesView.writers=\u0414\u043E\u043F\u0440\u0438\u043D\u0435\u0441\u043B\u0438 \u0437\u0430 \u0431\u043B\u043E\u043A
+ConfigView.section.transfer.autospeed.maxinc=%1 \u043C\u0430\u043A\u0441. \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u0446\u0438\u043A\u044A\u043B
+TableColumn.header.tag.color={label.color}
+ConfigView.label.minannounce=\u041C\u0438\u043D. \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043C\u0435\u0436\u0434\u0443 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438\u0442\u0435 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0438\u044F [s].
+authenticator.details=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+ConfigView.section.connection.group.peersources.info=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438 \u0438\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0432\u0440\u044A\u0437\u043A\u0438 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+configureWizard.file.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434
+OpenTorrentOptions.header.peeroptions=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0438, \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0438 \u0432\u0440\u044A\u0437\u043A\u0438
+MyTorrentsView.menu.moveEnd=\u041D\u0430\u0439-\u0434\u043E\u043B&\u0443
+ConfigView.pluginlist.unloadSelected=\u041D\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E
+device.error.mountrequired="%1" \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043C\u043E\u043D\u0442\u0438\u0440\u0430\u043D\u0435 \u0432\u044A\u0440\u0445\u0443 \u043C\u0435\u0441\u0442\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+dht.reseed.label=\u041D\u043E\u0440\u043C\u0430\u043B\u043D\u043E, \u0441\u0435\u0435\u043D\u0435 \u043D\u0430\u043D\u043E\u0432\u043E \u043D\u0430 \u0420\u0411\u0414 \u043D\u0435 \u0435 \u043D\u0443\u0436\u043D\u043E. \u0410\u043A\u043E, \u043E\u0431\u0430\u0447\u0435 \u0431\u0440\u043E\u044F\u0442 \u043A\u043E\u043D\u0442\u0430\u043A\u0442\u0438 \u0435 \u043C\u0430\u043B\u044A\u043A, \u0442\u043E\u0432\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u0 [...]
+MainWindow.menu.file.import.keybinding.mac=Meta+Shift+I
+tag.show.overview=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438\u2026
+wizard.next=\u041D\u0430\u043F\u0440\u0435\u0434 \u2192
+MainWindow.status.tooOld=\u0435 \u0441\u0442\u0430\u0440\u043E, \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430.
+TableColumn.header.SpeedGraphic=\u0421\u043A\u043E\u0440\u043E\u0441\u0442
+ConfigView.section.interface.clearsavepaths=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u043F\u043E\u043C\u043D\u0435\u043D\u0438\u0442\u0435 \u043F\u044A\u0442\u0438\u0449\u0430 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+TableColumn.header.filecount=\u0424\u0430\u0439\u043B\u043E\u0432\u0435
+SpeedView.stats.now=\u0412 \u043C\u043E\u043C\u0435\u043D\u0442\u0430
+ConfigView.section.file.bgdefaultdir.ask=\u041D\u0430\u0439-\u0434\u043E\u0431\u0440\u043E\u0442\u043E \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.mode.advanced.text=\u0414\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u043C\u0440\u0435\u0436\u043E\u0432\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438.\n\u0414\u0430 \u0441\u0435 \u043F\u043E\u043B\u0437\u0432\u0430 \u043F\u0440\u0438 \u043F\u043E\u0437\u043D\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 MTU \u0438\u043B\u0438 \u043D\u0435-\u0431\u043B\u043E\u043A\u0438\u0440\u0430\u0449 \u0412/\u0418\u0085\u2026
+MyTrackerView.name=\u0418\u043C\u0435
+props.window.title=\u0425\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438 \u043D\u0430 '%1'
+AlertMessageBox.information=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+pairing.nets.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 \u0430\u0434\u0440\u0435\u0441\u0438 \u043E\u0442 \u043D\u0435\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u0438 \u043C\u0440\u0435\u0436\u043E\u0432\u0438 \u0443\u0441\u043B\u0443\u0433\u0438
+device.is.disabled=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u0442\u043E \u043D\u0435 \u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E
+TableColumn.header.crc32.info=CRC-32 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043D\u0430 \u0441\u0443\u043C\u0430 \u0437\u0430 \u0444\u0430\u0439\u043B\u0430 (\u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0438\u0437\u0446\u044F\u043B\u043E \u0441\u0432\u0430\u043B\u0435\u043D; \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u0438\u0437\u0447\u0438\u0441\u043B\u044F\u0432\u0430\u043D\u0435)
+ConfigView.section.connection.advanced.IPDiffServ.tooltip=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430 DiffServ \u0447\u0430\u0441\u0442\u0442\u0430 \u043E\u0442 TOS \u043F\u043E\u043B\u0435\u0442\u043E \u0432 IP \u0437\u0430\u0433\u043B\u0430\u0432\u043A\u0430\u0442\u0430 \u043D\u0430 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438\u0442\u0435 \u043F\u0430\u043A\u0435\u0442\u0438.\n\u0428\u0435\u0441\u0442\u043D\u0430\u0434\u0435\u0441\u0435\u0442\u0438\u0447\u043D\u043 [...]
+v3.MainWindow.menu.view.pluginbar=\u041B\u0435\u043D\u0442\u0430 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+ConfigView.label.noportannounce=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u043E\u0431\u044F\u0432\u044F\u0432\u0430 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430 \u043F\u043E\u0440\u0442\u0430 \u0437\u0430 \u0441\u043B\u0443\u0448\u0430\u043D\u0435 (\u043D\u0435 \u0432\u043B\u0438\u044F\u0435 \u043D\u0430 PEX, DHT)
+OpenTorrentWindow.mb.invaliddefsave.title=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u043C\u044F\u0441\u0442\u043E \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+azbuddy.protocolspeed=KB/s \u043C\u0430\u043A\u0441. \u0431\u0430\u043B\u0430\u0441\u0442 \u043F\u043E \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u0437\u0430 \u0434\u0440\u0443\u0436\u043A\u0430
+view.waiting.core=\u0418\u0437\u0433\u043B\u0435\u0434\u044A\u0442 \u0449\u0435 \u0435 \u043D\u0430\u043B\u0438\u0447\u0435\u043D \u0441\u043B\u0435\u0434 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u044F\u0434\u0440\u043E\u0442\u043E \u043D\u0430 Vuze\u2026
+ConfigView.section.transfer.autospeed.resetnetwork=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043C\u0440\u0435\u0436\u043E\u0432\u0438\u0442\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+ConfigView.label.lazybitfield=\u0421 \u043C\u044A\u0440\u0437\u0435\u043B\u0438\u0432\u043E \u0431\u0438\u0442-\u043F\u043E\u043B\u0435 (\u043F\u043E\u043C\u0430\u0433\u0430 \u0441\u0435\u0435\u043D\u0435\u0442\u043E \u0432 \u043C\u0440\u0435\u0436\u0438, \u0432 \u043A\u043E\u0438\u0442\u043E \u0438\u043C\u0430 \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0435 \u043F\u043E \u0431\u0438\u0442-\u043F\u043E\u043B\u0435)
+ConfigView.section.file.perf.cache.enable.write=\u0414\u0430\u043D\u043D\u0438\u0442\u0435 \u043E\u0442 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u0437\u0430 \u0434\u0430 \u0432 \u043A\u0435\u0448, \u0437\u0430 \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0438\u0442\u0435 \u0432\u044A\u0440\u0445\u0443 \u0434\u0438\u0441\u043A\u0430 \u0438 \u0447\u0435\u0442\u0435\u043D\u0438\u044F\u0442\u0430 \u043D\u0435\u043E\u0431\u0 [...]
+OpenTorrentWindow.mb.askCreateDir.text=\u0426\u0435\u043B\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F '%1' \u043D\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430.\n\n\u0414\u0430 \u0441\u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435 \u043B\u0438?
+MagnetPlugin.report.error=\u0433\u0440\u0435\u0448\u043A\u0430 %1
+ConfigView.label.ui_switcher=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u043E\u0440 \u043D\u0430 \u0413\u041F\u0418 \u0437\u0430 Vuze
+MainWindow.nat.status.bad=\u0417\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435\u043D\u0430
+Scrape.status.scraping=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435\u0085\u2026
+SpeedTestWizard.stage.message.connect.stats=\u0421\u0442\u0430\u0442. \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\: \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\=%1, \u0434\u043E\u0431\u0440\u0435 \u0441\u0432.\=%2, \u0434\u043E\u0431\u0440\u0435 \u043A\u0447.\=%3
+azbuddy.ui.menu.cat.set_msg=\u0415\u0442\u0438\u043A\u0435\u0442\u0438/\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438 \u0441 ',' \u0438\u043B\u0438 'All'
+MagnetPlugin.report.ddb_disabled=\u0420\u0411\u0414 \u043D\u0435 \u0435 \u043F\u0443\u0441\u043D\u0430\u0442\u0430
+SpeedTestWizard.abort.message.execution.failed=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u0442\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+TableColumn.header.DateFileCompleted.info=\u041D\u0430\u0439-\u0441\u043A\u043E\u0440\u043E\u0448\u043D\u0430 \u0434\u0430\u0442\u0430 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B \u0432 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+Wizard.Subscription.title=\u0410\u0431\u043E\u043D\u0438\u0440\u0430\u043D\u0435
+Tracker.tooltip.MultiSupport=\u0422\u043E\u0437\u0438 \u0442\u0440\u0430\u043A\u0435\u0440 \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0438\u044F \u043D\u0430 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435\u0442\u043E \u0437\u0430 \u0437\u0430\u044F\u0432\u043A\u0430.
+unix.script.new.title=\u0418\u043C\u0430 \u043D\u043E\u0432 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u0441\u043A\u0440\u0438\u043F\u0442 \u0437\u0430 Vuze
+upnp.mapping.dhtudp=\u0420\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u0438
+azbuddy.os_away=\u041E\u0442\u0441\u044A\u0441\u0442\u0432\u0430\u0449
+ConfigView.section.file.rename.incomplete=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043D\u0430\u0441\u0442\u0430\u0432\u043A\u0430 \u0437\u0430 \u043D\u0435\u043F\u044A\u043B\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+MainWindow.menu.community=&\u041E\u0431\u0449\u043D\u043E\u0441\u0442
+TableColumn.header.Thumbnail=\u0418\u043A\u043E\u043D\u0430
+TableColumn.header.azsubs.ui.column.subs_link.info=\u0410\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u0441 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+ConfigView.section.interface.display.suppress.file.download.dialog.tooltip=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u043E\u0442\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E \u0432\u043C\u0435\u0441\u0442\u043E \u0432 \u0434\u0438\u04 [...]
+dlg.auth.install.progress=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 %1 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430\u2026
+wizard.multitracker.template.title=\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0438
+menu.max.share.ratio2=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0446\u0435\u043B\u0435\u0432\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u2026
+ConfigTransferAutoSpeed.auto.speed.neural=\u041D\u0435\u0432\u0440\u0430\u043B\u0435\u043D \u043C\u0435\u0442\u043E\u0434 (Gudy \u0430\u043B\u0444\u0430)
+TableColumn.header.trackername.info=\u0418\u043C\u0435\u0442\u043E \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430 \u0441\u043F\u043E\u0440\u0435\u0434 URL \u043D\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E
+jvm.info=Vuze \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430, \u0430\u043A\u043E \u0441\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u044F\u0442 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435. *** \u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435 - \u043F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u [...]
+SpeedTestWizard.abort.message.unsupported.type=\u041D\u0435\u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430\u043D \u0442\u0438\u043F \u043F\u0440\u043E\u0431\u0430\!
+tag.type.ds.down={ManagerItem.downloading}
+plugins.basicview.config=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
+SpeedView.stats.asn=\u041C\u0440\u0435\u0436\u0430\:
+StartStopRules.ratioMet=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\:\u0441\u0435\u0435\u043D\u0435 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+ConfigView.section.tracker.pollintervalmin=\u041C\u0438\u043D.
+PeersView.title.full=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+wizard.multitracker.edit.name=\u0418\u043C\u0435
+ConfigView.section.plugins.dhttracker=\u0420\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u0442\u0440\u0430\u043A\u0435\u0440
+TableColumn.header.networks.info=\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438 \u043C\u0440\u0435\u0436\u0438 \u0437\u0430 \u043E\u0431\u043C\u0435\u043D \u043D\u0430 \u0434\u0430\u043D\u043D\u0438 \u043C\u0435\u0436\u0434\u0443 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+TableColumn.header.trackernextaccess=\u0421\u043B\u0435\u0434\u0432\u0430\u0449 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u0434\u043E\u0441\u0442\u044A\u043F
+subscriptions.column.nb-results=\u041E\u0431\u0449\u043E \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438
+TableColumn.header.CountryCode.info=\u041A\u043E\u0434\u044A\u0442 \u043D\u0430 \u0434\u044A\u0440\u0436\u0430\u0432\u0430\u0442\u0430 (ISO 3166), \u043A\u044A\u0434\u0435\u0442\u043E \u0441\u0435 \u043D\u0430\u043C\u0438\u0440\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442
+installPluginsWizard.installMode.shared=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\u0442\u0430(\u0438\u0442\u0435) \u0437\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438
+wizard.previous=\u2190 \u041D\u0430\u0437\u0430\u0434
+subs.prop.template=\u0428\u0430\u0431\u043B\u043E\u043D
+Button.unmark=\u0411\u0435\u0437 \u043E\u0442\u0431\u0435\u043B\u044F\u0437\u0432\u0430\u043D\u0435
+ConfigView.label.maxuploadspeedseeding=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435\u0442\u043E \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0430\u043C\u043E \u0441\u0435 \u0441\u0435\u0435
+update.instance.install=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F\u0442\u0430
+OpenTorrentWindow.mb.existingFiles.title=\u0418\u043C\u0430 \u0432\u0435\u0447\u0435 \u0442\u0430\u043A\u044A\u0432(\u0438\u0432\u0430) \u0444\u0430\u0439\u043B(\u043E\u0432\u0435)\!
+natpmp.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 (\u0449\u0435 \u0440\u0430\u0431\u043E\u0442\u0438, \u0430\u043A\u043E \u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043E \u0438 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 Airport)
+ConfigView.section.file.defaultdir.bestguess=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0430\u0439-\u0434\u043E\u0431\u0440\u043E \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0438\u0437\u0431\u043E\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0 [...]
+cat.autoxcode=\u0410\u0432\u0442\u043E-\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+MyTorrentsView.menu.advancedmenu=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438
+stats.long.weekstart=\u0421\u0447\u0435\u0442\u043E\u0432\u043E\u0434\u043D\u0430\u0442\u0430 \u0441\u0435\u0434\u043C\u0438\u0446\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u043D\u0430\:
+label.content=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+v3.MainWindow.tab.events=\u0418\u0437\u0432\u0435\u0441\u0442\u0438\u044F
+CacheView.speeds.fromFile=\u041E\u0442/\u0432\u044A\u0432 \u0444\u0430\u0439\u043B
+v3.iconBar.up.tooltip=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0433\u043E\u0440\u0435\n\u0417\u0430\u0434\u044A\u0440\u0436\u0430\u043D\u0435 \u043D\u0430 \u0431\u0443\u0442\u043E\u043D\u0430 \u043D\u0430 \u043C\u0438\u0448\u043A\u0430\u0442\u0430 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430 \u0432 \u043D\u0430\u0447\u0430\u043B\u043E\u0442\u043E
+ConfigView.section.tracker.publishenabledetails=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+openUrl.url.info=\u041F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 HTTP, HTTPS, magnet \u0438 raw hex infohash \u043D\u0438\u0437\u043E\u0432\u0435
+FileProgress.deleted=\u0418\u0437\u0442\u0440\u0438\u0442\u043E
+TrackerView.title.short=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438
+ConfigView.section.tracker.sslport=\u0422\u0440\u0430\u043A\u0435\u0440\u044A\u0442 \u0434\u0430 \u0435 \u043F\u0440\u0435\u0437 HTTPS \u043F\u043E\u0440\u0442
+ConfigView.section.transfer.autospeed.maxupload.tooltip=\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043D\u044F\u043C\u0430 \u0434\u0430 \u0441\u0435 \u0443\u0432\u0435\u043B\u0438\u0447\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043D\u0430\u0434 \u0442\u0430\u0437\u0438 \u0433\u0440\u0430\u043D\u0438\u0446\u0430
+ColumnProgressETA.showETA=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u041E\u0412\u0417
+label.aggregate.info=\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+ConfigView.section.stats.savefreq=\u0427\u0435\u0441\u0442\u043E\u0442\u0430 \u043D\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+devices.info.copypending3=%1 \u0444\u0430\u0439\u043B(\u0430) \u0447\u0430\u043A\u0430\u0442 \u0437\u0430 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 - \u0434\u0430 \u0441\u0435 \u0432\u043A\u043B\u044E\u0447\u0438 \u0430\u0432\u0442\u043E-\u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0438\u043B\u0438 \u0438\u0437\u0431\u0435\u0440\u0435 \u0440\u044A\u0447\u043D\u043E \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435
+tag.type.ds.pau={ManagerItem.paused}
+devices.info.copypending2=%1 \u0444\u0430\u0439\u043B\u0430 \u0447\u0430\u043A\u0430\u0442 \u0437\u0430 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435, \u0434\u0430 \u0441\u0435 \u0441\u0432\u044A\u0440\u0436\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+wizard.title=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+Plugin.pluginupdate.enablecheck=\u0421 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438\u0442\u0435
+installPluginsWizard.installMode.info.title=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+dht.execute.info=\u0421 \u043D\u0430\u0442\u0438\u0441\u043A\u0430\u043D\u0435 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0442\u0430
+PiecesView.DistributionView.weDownload=\u041F\u0430\u0440\u0447\u0435\u0442\u0430, \u043A\u043E\u0438\u0442\u043E \u0441\u0435 \u0441\u0432\u0430\u043B\u044F\u0442
+ConfigView.label.seeding.firstPriority.seedingMinutes=\u0418\u0437\u043C\u0438\u043D\u0430\u043B\u043E \u0432\u0440\u0435\u043C\u0435 \u043E\u0442\u043A\u0430\u043A\u0442\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u0441\u0435 \u0435 \u0441\u043C\u0435\u043D\u0438\u043B\u043E \u0441\u044A\u0441 \u0441\u0435\u0435\u043D\u0435
+ConfigView.label.stop.downcomp=\u041F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+OpenTorrentWindow.addPosition.last=\u041F\u043E\u0441\u043B\u0435\u0434\u0435\u043D
+PiecesView.legend.downloaded=\u0421\u0432\u0430\u043B\u0435\u043D\u043E, \u0438\u0437\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 \u0437\u0430\u043F\u0438\u0441
+ConfigView.label.maxuploadsseeding=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u043E\u0442\u043E \u0441\u0435 \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435
+ConfigView.section.tracker.tcpnonblocking=\u0414\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043D\u0435\u0431\u043B\u043E\u043A\u0438\u0440\u0430\u0449 \u0412/\u0418 \u0437\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043D\u0430 TCP \u043E\u0442 \u0442\u0440\u0430\u043A\u0435\u0440. \u0418\u0437\u0431\u043E\u0440\u044A\u0442 \u043D\u0430 \u0442\u043E\u0432\u0430 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u04 [...]
+azbuddy.ui.table.rem_cat=\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438 \u0435\u0442\u0438\u043A\u0435\u0442\u0438/\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438
+ConfigView.section.file.torrent.ignorefiles=\u0424\u0430\u0439\u043B\u043E\u0432\u0435 \u0437\u0430 \u043F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\n\u043D\u0430\u043F\u0440. .DS_Store;Thumbs.db;Desktop.ini
+sidebar.header.vuze=Vuze
+tps.lan.details=%1 \u043C\u0435\u0441\u0442\u043D\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0438 \u0441\u0430 \u043E\u0442\u043A\u0440\u0438\u0442\u0438
+wizard.announceUrl=URL \u0437\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435\:
+device.quit.transcoding.text='%1' \u0432 \u043C\u043E\u043C\u0435\u043D\u0442\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430 \u0437\u0430 '%2' \u0438 \u0435 %3% \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D.\n\u041F\u0440\u0438 \u0438\u0437\u0445\u043E\u0434 \u0432 \u0442\u043E\u0437\u0438 \u043C\u043E\u043C\u0435\u043D\u0442, \u0449\u0435 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043F\u043E\u0447\u043D\u0435 \u043E\u0442\u043D\u0430\u0 [...]
+platform.win32.baddll.winsflt=PureSight Internet Content Filter
+TagRenameWindow.message=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u043E \u0438\u043C\u0435 \u0437\u0430 \u0435\u0442\u0438\u043A\u0435\u0442
+TableColumn.header.torrentname={authenticator.torrent}
+Button.reset=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+ConfigView.upload.abbreviated=\u041A\u0447\:
+metasearch.addtemplate.dup.desc=\u0428\u0430\u0431\u043B\u043E\u043D \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435 %1 \u0432\u0435\u0447\u0435 \u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D
+MagnetPlugin.report.md.starts=\u0421\u044A\u0437\u0434\u0430\u0434\u0435\u043D\u043E \u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u0438
+CacheView.title.full=\u0411\u0443\u0444\u0435\u0440
+ConfigView.label.serverport.tooltip=\u041F\u043E\u0440\u0442\u044A\u0442 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0430 1-65535, \u043D\u043E \u043D\u0435 \u0438 6880, \u0437\u0430\u043F\u0430\u0437\u0435\u043D \u0437\u0430 \u0432\u044A\u0442\u0440\u0435\u0448\u043D\u0438 \u043D\u0443\u0436\u0434\u0438 \u043D\u0430 Vuze.
+azbuddy.tracker.bbb.status.nli=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+device.error.copytonotset='\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F' \u043D\u0435 \u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043E
+devices.restrict_access=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u043E\u0441\u0442\u044A\u043F\u2026
+configureWizard.nat.testing=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 \u043F\u043E\u0440\u0442
+device.import.dup.desc=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E '%1' \u0432\u0435\u0447\u0435 \u043F\u0440\u0438\u0441\u044A\u0441\u0442\u0432\u0430.
+SpeedTestWizard.test.panel.testfailed=\u041F\u043E\u0440\u043E\u0432\u0430\u043B \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u0442\u0430
+ConfigView.section.server.enablednsrecords=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043C\u0430\u043D\u0438\u043F\u0443\u043B\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043D\u0430 DNS \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u0437\u0430\u043F\u0438\u0441\u0438, \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0437\u0430 \u043F\u043E\u0434\u043E\u0431\u0440\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043B\u0443\u0447\u0430\u0 [...]
+webui.user=\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u043E \u0438\u043C\u0435
+device.itunes.status.notrunning=iTunes \u043D\u0435 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D
+sidebar.LibraryDL=\u0421\u0432\u0430\u043B\u044F\u0449\u0438 \u0441\u0435\u2026
+PeersView.BlockView.title=\u041A\u0430\u0440\u0442\u0430 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430\u0442\u0430
+MyTorrentsView.menu.host.error.title=\u041F\u043E\u0434\u0441\u043B\u043E\u043D\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+TableColumn.header.tag.moveoncomp={label.move.on.comp}
+iconBar.run=\u041F\u0443\u0441\u043A\u0430\u043D\u0435
+IPChecker.external.service.dyndns.description=Dynamic DNS Network Services, LLC
+TrackerAvail.column.peers.info={Trackers.column.peers.info}
+UpdateWindow.status.failed=\u041F\u0440\u043E\u0432\u0430\u043B
+ConfigTransferAutoSpeed.skip.after.adjust=\u041F\u0440\u0435\u0441\u043A\u0430\u0447\u0430\u043D\u0435 \u0441\u043B\u0435\u0434 \u043F\u0440\u043E\u043C\u044F\u043D\u0430\:
+MyTorrentsView.menu.setCategory=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u0432 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+dlg.auth.enter.denied=\u0422\u0435\u043A\u0443\u0449\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u0435 \u043E\u0442\u043A\u0430\u0437\u0430\u043D.
+ConfigView.section.ipfilter.autoload.loadnow=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u0441\u0435\u0433\u0430
+br.backup=\u0417\u0430\u043F\u0430\u0300\u0441
+ConfigView.pluginlist.column.unloadable=\u041F\u043E\u0437\u0432\u043E\u043B\u0430\u0432\u0430 \u043D\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435
+PeersView.ip=IP
+ConfigView.section.security.resetcerts.error.title={ConfigView.section.security.resetkey.error.title}
+ConfigView.label.set_ui_transfer_speeds=\u041F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0438\u0440\u0430\u0435\u043C\u0438 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u043D\u0438 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438
+ManagerItem.superseeding=\u0421\u0443\u043F\u0435\u0440-\u0441\u0435\u0435\u043D\u0435
+MainWindow.menu.file.create.keybinding=Meta+N
+azbuddy.ui.menu.chat=\u041B\u0430\u0444\u0447\u0435
+Scrape.status.cached=\u0411\u0443\u0444\u0435\u0440\u0438\u0440\u0430\u043D\u043E \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435
+UpdateWindow.header=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0438 \u0438\u0437\u0438\u0441\u043A\u0432\u0430\u0442 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\:
+MyTorrentsView.menu.rename.displayed_and_save_path=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u043E\u0442\u043E \u0438\u043C\u0435 \u0438 \u043F\u044A\u0442\u044F \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+ConfigView.label.bStartNoMoreSeedsWhenUpLimitMetPercent=\u0413\u043E\u0440\u043D\u043E\u0442\u043E \u043F\u0440\u0438\u0431\u043B\u0438\u0436\u0435\u043D\u0438\u0435 \u0435 \u043F\u0440\u043E\u0446\u0435\u043D\u0442\u043D\u043E (\u0431\u0435\u0437 \u0438\u0437\u0431\u043E\u0440 \u0435 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E)
+sidebar.LibraryCD=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438
+TagAddWindow.title=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432 \u0435\u0442\u0438\u043A\u0435\u0442
+ConfigView.pluginlist.loadSelected=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E
+AdvRenameWindow.rename.torrent=\u0421\u043C\u044F\u043D\u0430 \u0438\u043C\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+subscript.add.dup.title=\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+ConfigTransferAutoSpeed.ping.time.bad=\u041B\u043E\u0448\:
+IrcClient.connecting=\u0421\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435 \u043A\u044A\u043C
+dlg.stream.plus.renew.subtext={dlg.stream.plus.subtext}
+ConfigView.label.overrideip.tooltip=\u0418\u043D\u0444\u043E\u0440\u043C\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430 \u043F\u0440\u0438 IP \u0430\u0434\u0440\u0435\u0441(\u0438) \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u0438 \u043E\u0442 \u0442\u043E\u0437\u0438(\u0442\u0435\u0437\u0438), \u043E\u0442 \u043A\u043E\u0438\u0442\u043E \u043F\u0440\u0438\u0441\u0442\u0438\u0433\u0430\u0442 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438\u0442\u043 [...]
+tps.type.dht=DHT
+ConfigView.section.tracker.sendpeerids=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u0441\u0430\u043C\u043E\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u043A\u044A\u043C \u0441\u0432\u0430\u043B\u044F\u0449\u0438\u0442\u0435
+FileItem.storage.compact=\u0421\u0431\u0438\u0442\u043E
+tag.property.tracker_templates={label.tracker.templates}
+security.crypto.password2=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430
+TableColumn.header.comment.info=\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E
+ConfigView.boolean.ircsendinfo=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043C\u0435\u0441\u0442\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 (\u0430\u043D\u043E\u043D\u0438\u043C\u043D\u043E) \u0434\u043E\n \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u0430 \u043A\u0430\u043D\u0430\u043B, \u0437\u0430 \u0434\u0430 \u0438\u043C \u0441\u043 [...]
+MainWindow.menu.file=&\u0424\u0430\u0439\u043B
+FilesView.rename.confirm.delete.text=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0430\u0432\u0430\u043D\u0435 \u0442\u0440\u0438\u0435\u043D\u0435\u0442\u043E \u043D\u0430 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u043D\u0438\u044F \u0444\u0430\u0439\u043B '%1'
+SpeedView.stats.autospeed=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 (\u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435\u0442\u043E \u0435 \u043F\u0440\u0438 %1 ms)
+MainWindow.menu.speed_limits.schedule.title=\u0413\u0440\u0430\u0444\u0438\u043A \u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0442\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430
+ConfigView.section.style.library={library.name}
+devices.cancel_xcode=\u041F\u0440\u0435\u043A\u044A\u0441\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043D\u0435\u0442\u043E
+ColumnSetup.availcolumns.filteredby=\u041D\u0430\u043B\u0438\u0447\u043D\u0438 %1 \u043A\u043E\u043B\u043E\u043D\u0438 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0438 \u043F\u043E %2
+IrcClient.nowknown=\u0432\u0435\u0447\u0435 \u0435 \u043F\u043E\u0437\u043D\u0430\u0442 \u043A\u0430\u0442\u043E
+ConfigView.section.logging.enable=\u0417\u0430\u043F\u0438\u0441 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A
+device.od.group={device.offlinedownloader.view.title}
+PiecesView.title.short=\u041F\u0430\u0440\u0447\u0435\u0442\u0430
+ClientStats.column.name={TableColumn.header.name}
+ConfigView.section.interface.alerts=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F
+TableColumn.header.totalspeed=\u041E\u0431\u0449\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442
+MainWindow.menu.file.share.file=&\u0424\u0430\u0439\u043B\u0085\u2026
+device.playnow.min_buffer=\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0431\u0443\u0444\u0435\u0440\u0430, \u043F\u0440\u0438 \u043A\u043E\u0439\u0442\u043E \u0432\u044A\u0437\u043D\u0438\u043A\u0432\u0430 \u043F\u0440\u0435\u0431\u0443\u0444\u0435\u0440\u0438\u0440\u0430\u043D\u0435 [s]
+MyTorrentsView.menu.edit_comment.enter.title=\u0420\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+iconBar.share.tooltip=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+UpdateWindow.restart=\u0420\u0435\u0441\u0442\u0430\u0440\u0442 \u043D\u0430 Vuze
+pairing.srp.info=\u041D\u044F\u043A\u043E\u0438 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430\u0442 \u0435\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043F\u043E\u0432\u0438\u0448\u0435\u043D\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442 \u0438 \u0441\u0438\u0433\u0443\u0440\u043D\u043E\u0441\u0442 \u0447\u0440\u0435\u04 [...]
+OpenTorrentWindow.addPosition.first=\u041F\u044A\u0440\u0432\u0438
+MainWindow.dialog.share.sharedir=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+security.certtruster.no=\u041D\u0435
+ConfigView.section.tracker.pollintervalmax=\u041C\u0430\u043A\u0441.
+delete.partial.files=\u041F\u0440\u0438 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043E\u0442 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430, \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u044F\u0442 \u0432\u0441\u0438\u0447\u043A\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0437\u0430 \u0442\u0435\u0437\u0438, \u043E\u043 [...]
+PeersView.statup.info=\u0418\u0437\u0447\u0438\u0441\u043B\u0435\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+MainWindow.menu.beta.on=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u0432 \u0431\u0435\u0442\u0430 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430\u2026
+SpeedTestWizard.name.conf.level.med=\u0421\u0440\u0435\u0434\u043D\u043E
+MagnetPlugin.report.secondarylookup=\u041E\u043F\u0438\u0442 \u0441 \u0443\u0441\u043B\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0432\u0442\u043E\u0440\u0438\u0447\u043D\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435
+upnp.refresh.button=\u041E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0435
+LoggerView.clear=\u0418\u0437&\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435
+ConfigView.section.stats.exportfiles=\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0444\u0430\u0439\u043B
+label.inbound=\u0412\u0445\u043E\u0434\u044F\u0449\u043E
+window.uiswitcher.ClassicUI.text=* \u0417\u0430\u043F\u0430\u0437\u0432\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 2.x \u043A\u043B\u0438\u0435\u043D\u0442\n\n* \u041A\u043B\u0430\u0441\u0438\u0447\u0435\u0441\u043A\u0438 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\n* \u0421\u0442\u0430\u0440 \u0432\u044A\u043D\u0448\u0435\u043D \u0432\u0438\u0434, \u043D\ [...]
+tps.type.incoming=\u0412\u0445\u043E\u0434\u044F\u0449\u0438
+ConfigView.section.UPnP=UPnP \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+PiecesView.legend.requested=\u0417\u0430\u044F\u0432\u0435\u043D\u043E
+ConfigView.section.tracker.sslport.info=\u0427\u0417\u0412 \u0437\u0430 \u0434\u043E\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+ConfigView.section.tracker.client.readtimeout=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0447\u0435\u0442\u0435\u043D\u0435 (s)
+ConfigView.section.file.showopentorrentoptions=\u041F\u0440\u0438 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0434\u0430 \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\:
+ConfigView.section.file.perf.cache.notsmallerthan=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u043F\u043E\u043B\u0437\u0432\u0430 \u043A\u0435\u0448 \u0437\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043F\u043E-\u043C\u0430\u043B\u043A\u0438 \u043E\u0442 \u0442\u043E\u0432\u0430 (\u0432 %1)
+TrackerAvail.column.leechers={Trackers.column.leechers}
+torrent.fix.corrupt.result.title=\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442 \u043E\u0442 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F
+FilesView.remaining=\u041E\u0441\u0442\u0430\u0432\u0430\u0449\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+devices.on.demand=\u041F\u0440\u0438 \u043F\u043E\u0438\u0441\u043A\u0432\u0430\u043D\u0435
+ConfigView.section.ipfilter.list.title=\u0411\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0438 IP-\u0442\u0430
+v3.MainWindow.tab.minilibrary=\u0421\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+mdi.entry.about.plugins=\u0417\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438\u0442\u0435
+upnp.alert.multipledevice.warning=\u041C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E UPnP \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0441\u0430 \u043E\u0442\u043A\u0440\u0438\u0442\u0438 - \u0434\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u0434\u0430\u043B\u0438 \u0432\u0441\u0438\u0447\u043A\u0438 \u0438\u0441\u043A\u0430\u0442 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\ [...]
+jvm.error=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u044A\u043F\u0430 \u0434\u043E \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u043D\u0430 JVM\: %1
+TableColumn.header.fileext=\u0422\u0438\u043F \u043D\u0430 \u0444\u0430\u0439\u043B
+xcode.deletedata.message=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u043A\u043E\u043F\u0438\u0435\u0442\u043E \u043D\u0430 '%1' \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u043E \u0437\u0430 '%2'%3?
+ConfigView.label.max_peers_per_torrent=\u041C\u0430\u043A\u0441. \u0432\u0440\u044A\u0437\u043A\u0438 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+pairing.srp.setpw=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430\u0442\u0430 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043D\u043E \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435
+ConfigView.section.tracker.web=\u0423\u0435\u0431
+MyTrackerView.bytesout=\u0418\u0437\u0445. \u0431\u0430\u0439\u0442\u043E\u0432\u0435
+PeersView.pieces=\u041F\u0430\u0440\u0447\u0435\u0442\u0430
+plugin.sharing.torrent.remove.veto=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 \u0442\u043E\u0437\u0438 \u0442\u0440\u0430\u043A\u0435\u0440 \u0435 \u0432 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0440\u0435\u0441\u0443\u0440\u0441.\n\u0417\u0430 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u0 [...]
+mdi.entry.plus.full=Vuze \u041F\u043B\u044E\u0441
+CacheView.general.title=\u0411\u0443\u0444\u0435\u0440 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+beta.wizard.intro.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+#
+# 2.0.7.x
+#
+Categories.all=\u0412\u0441\u0438\u0447\u043A\u043E
+security.certcreate.country=\u0414\u0432\u0443\u0431\u0443\u043A\u0432\u0435\u043D \u043A\u043E\u0434 \u043D\u0430 \u0434\u044A\u0440\u0436\u0430\u0432\u0430
+MainWindow.menu.window.zoom=&\u0423\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u0435
+ConfigView.download.abbreviated=\u0421\u0432\:
+MainWindow.menu.plugins.uninstallPlugins=\u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u0437\u0430 \u0434\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F\u0085\u2026
+subscriptions.column.SubWizName={FilesView.name}
+ConfigView.section.ipfilter.totalIPs=%1 IP-\u0442\u0430 \u043E\u0431\u0449\u043E \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0438, \u043A\u043E\u0435\u0442\u043E \u0435 %2 \u043E\u0442 \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442.
+TableColumn.header.Speed=\u0421\u043A\u043E\u0440\u043E\u0441\u0442
+ConfigView.section.tracker.client=\u041A\u043B\u0438\u0435\u043D\u0442
+label.nat.proxies=NAT/\u041F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u0446\u0438
+ConfigView.section.file.perf.cache.flushpieces=\u041C\u043E\u043C\u0435\u043D\u0442\u0430\u043B\u0435\u043D \u0437\u0430\u043F\u0438\u0441 \u043D\u0430 \u0446\u0435\u043B\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A\u0430. \u0423\u043B\u0435\u0441\u043D\u044F\u0432\u0430 \u0434\u043E\u0441\u0442\u044A\u043F\u0430 \u0434\u043E \u0434\u0438\u0441\u043A\u0430, \u043D\u043E \u043C\u043E\u0436\u0435 \u0434\u0430 \u0443\u0432\u0435\u043B\u0438\u0447\u0 [...]
+MagnetPlugin.report.md.progress=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043D\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u0438\: %1
+UIDebugGenerator.complete.title=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0434\u043E\u043A\u043B\u0430\u0434 \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u0438\u043A\u043B\u044E\u0447\u0438
+network.ipv4.prefer.stack=\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0435 \u043D\u0430 IPv4 \u0441\u0442\u0435\u043A - \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0434\u0435\u043B\u043D\u0438 IPv4 \u0438 IPv6 \u0441\u0442\u0435\u043A\u043E\u0432\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u0434\u0432\u0443\u0441\u0442\u0435\u043A\u043E\u0432\u0430\u0442\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+ConfigView.label.set_ui_transfer_speeds.description=\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0440\u044A\u0447\u043D\u043E \u0434\u0435\u0444\u0438\u043D\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u0438\u0442\u0435 \u0441\u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \ [...]
+SpeedTestWizard.test.panel.aborted=\u0420\u044A\u0447\u043D\u043E \u043E\u0442\u043A\u0430\u0437\u0430\u043D\u0430 \u043F\u0440\u043E\u0431\u0430.
+ConfigView.label.stop.Shutdown=\u0418\u0437\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u0430
+FilesView.menu.setpriority=&\u0417\u0430\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+MyTorrentsView.dialog.setPosition.text=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u044F \u0437\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\:
+device.import.dup.title=\u0414\u0443\u0431\u043B\u0438\u0440\u0430\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+Formats.units.kbit=kbit
+metasearch.addtemplate.done.desc=\u0428\u0430\u0431\u043B\u043E\u043D '%1' \u0435 \u0434\u043E\u0431\u0430\u0432\u0435\u043D \u0443\u0441\u043F\u0435\u0448\u043D\u043E.\n\u0429\u0435 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435.
+ConfigView.section.color=\u0426\u0432\u0435\u0442\u043E\u0432\u0430 \u0441\u0445\u0435\u043C\u0430
+devices.choose.profile.info.title.selected=%1 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438\:
+SpeedTestWizard.test.panel.encrypted=\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u043E
+Peers.column.client_identification=\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u043D\u0430 \u043A\u043B\u0438\u0435\u043D\u0442
+MainWindow.menu.view.clientstats={ClientStats.title.full}
+PiecesView.speed.info=\u041F\u043E-\u0431\u0430\u0432\u043D\u0438\u0442\u0435 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u043D\u0435 \u043C\u043E\u0433\u0430\u0442 \u043C\u043D\u043E\u0433\u043E \u0434\u0430 \u0441\u0435 \u0431\u044A\u0440\u043A\u0430\u0442 \u0432 \u043F\u043E-\u0431\u044A\u0440\u0437\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+FilesView.name=\u0418\u043C\u0435
+MyTorrentsView.menu.checkfilesexist=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+ConfigView.pluginlist.column.name=\u0418\u043C\u0435
+v3.MainWindow.button.run=\u0421\u0442\u0430\u0440\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B
+configureWizard.transfer.message=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u043F\u043E-\u0434\u043E\u043B\u0443. \u0410\u043A\u043E \u043D\u0435 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0434\u043E\u0441\u0442\u0430\u0442\u044A\u0447\u043D\u043E \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435, \u0449\u0435 \u0441\u0435 \u043D\u0430\u043C\u0430\u043B\u0438 \u0441\u043A\u043E\u0440\u0 [...]
+beta.wizard.link.url=http\://dev.vuze.com
+devices.od.turnon.learn=\u041F\u043E\u0432\u0435\u0447\u0435 \u2192
+MainWindow.menu.help.debug=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438 (\u0434\u043D\u0435\u0432\u043D\u0438\u043A \u043D\u0430 \u0441\u0440\u0438\u0432\u043E\u0432\u0435)
+LocaleUtil.section.chooseencoding=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430 \u0437\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u043E\u0442\u043E \u0438\u043C\u0435
+ConfigView.section.transfer.autospeed.reset=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438
+MainWindow.menu.speed_limits.reset=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0442\u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F
+v3.mb.delPublished.text=\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415\! \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043E \u041D\u0415 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430 \u043C\u0435\u0441\u0442\u043D\u043E \u043F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u043E\u0442\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 '%1' \u043E\u0442 <A HREF\="%2">%3</A>.\n\n\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 "\u04 [...]
+Button.continue=\u041D\u0430\u043F\u0440\u0435\u0434
+ConfigView.label.ircchannel=\u041A\u0430\u043D\u0430\u043B
+Torrent.create.progress.hashing=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u043E \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435
+ConfigView.section.mode.beginner.text=\u0412\u0441\u0438\u0447\u043A\u043E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438.\n\u0410\u043A\u043E \u0441\u0430\u043C\u043E \u0449\u0435 \u0441\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u0442 \u0442\u043E\u0440\u0435\u043D\u0442\u0438, \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u04 [...]
+externalLogin.explanation=\u0428\u0430\u0431\u043B\u043E\u043D "%1" \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435. \u0421\u043B\u0435\u0434 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446\u044A\u0442 \u0449\u0435 \u0441\u0435 \u0437\u0430\u0442\u0432\u043E\u0440\u0438. \u0410\u043A\u043E \u043D\u0435 \u0441\u0435 \u0437\u0430\u0442\u0432\u043E\u0440\u0438, \u0434\u0430 \u0441\u0435 \u0438\u043 [...]
+Menu.show.torrent.menu.tooltip=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0435\u043D\u044E '\u0422\u043E\u0440\u0435\u043D\u0442\u0438' \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u043E\u0442\u043E \u043C\u0435\u043D\u044E
+PeerManager.status.finishedin=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0437\u0430
+security.certtruster.issuedto=\u0418\u0437\u0434\u0430\u0434\u0435\u043D \u043D\u0430\:
+Torrent.create.progress.parsingfiles=\u0420\u0430\u0437\u0431\u043E\u0440 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+Progress.reporting.window.remove.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0438\u0442\u0435
+SpeedView.stats.upload=\u0414\u0430\u043D\u043D\u0438 \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\:
+stats.display.group={ConfigView.section.display}
+ConfigView.section.style.osx_small_fonts=\u0414\u0440\u0435\u0431\u043D\u0438 \u0448\u0440\u0438\u0444\u0442\u043E\u0432\u0435 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+UpdateWindow.status.done=\u0413\u043E\u0442\u043E\u0432\u043E
+platform.win32.baddll.netdog=Armor2net Personal Firewall
+custom.settings.import=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u0438 \u0438\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 '%1'?
+ConfigView.section.connection.pairing.srp.url=http\://wiki.vuze.com/w/Secure_Remote_Password
+devices.sidebar.oxc.nothing={ConfigView.label.stop.Nothing}
+GeneralView.menu.selectTracker=\u0418\u0437\u0431\u043E\u0440
+devices.associate.already=\u0418\u043C\u0430 \u0430\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F
+DHTTransport.report.complete=\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+popup.download.finished=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 "%1".
+device.upnp.desc_url=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+security.certcreate.alias=\u041F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C
+FilesView.menu.rename=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u0438\u043B\u0438 \u0434\u0440\u0443\u0433\u0430 \u0446\u0435\u043B
+# This is the end of the word "View". It's left aligned under the icon bar item
+v3.iconBar.view.small=\u043B\u0435\u0434
+Tracker.announce.ignorePeerSeed=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u0431\u0440\u043E\u044F \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438/\u043F\u043E\u0441\u044F\u0432\u043A\u0438. %1
+ConfigView.section.tracker.publicenable.info=\u041F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430 \u043D\u0430 \u0434\u0440\u0443\u0433\u0438 \u0434\u0430 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u0442 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0449\u0438 \u043C\u0435\u0441\u0442\u043D\u0438\u044F \u0442\u0440\u0430\u043A\u0435\u0440\n\u0431\u0435\u0437 \u0434\u0430 \u0441\u0435 \u0441\u044A\u0445\u0440\u0430\u043D\u044F\u0432\u0430\u [...]
+MyTrackerView.category=\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+ConfigView.label.moveonlyusingdefaultsave=\u0441\u0430\u043C\u043E \u0430\u043A\u043E \u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u0437\u0430 \u0434\u0430\u043D\u043D\u0438 \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+label.merge=\u0421\u043B\u0438\u0432\u0430\u043D\u0435
+MainWindow.menu.file.closewindow.keybinding=Meta+Shift+W
+Progress.reporting.window.remove.now=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0438\u0442\u0435
+SpeedTestWizard.finish.panel.auto.speed=\u0410\u0432\u0442\u043E-\u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u0435\:
+pairing.srp.registering=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043D\u0435\u2026
+subs.prop.high_version=\u041D\u0430\u043B\u0438\u0447\u043D\u0430 \u0435 \u043D\u0430\u0439-\u0432\u0438\u0441\u043E\u043A\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+ConfigView.section.tracker.logenable=\u0417\u0430\u043F\u0438\u0441 \u043D\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A 'tracker.log'
+beta.wizard.title=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0431\u0435\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+menu.open.torrent={torrent.fix.corrupt.browse}\u2026
+dlg.install.azemp.subtitle={dlg.player.install.subtitle}
+OpenTorrentWindow.mb.noGlobalDestDir.text=\u0426\u0435\u043B\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F '%1' \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430.
+ConfigView.label.zeronewfiles.tooltip=\u041D\u0430\u043C\u0430\u043B\u044F\u0432\u0430 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E
+MainWindow.dialog.choose.file=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B
+TableColumn.header.name.ext=\u0422\u0438\u043F \u043D\u0430 \u0444\u0430\u0439\u043B\: %1
+window.updateswt.status.downloading.updater=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u043C\u043E\u0434\u0443\u043B\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+DevicesOD.column.od_name={TableColumn.header.name}
+v3.mb.PlayFileNotFound.title=\u041D\u0435\u043D\u0430\u043C\u0435\u0440\u0435\u043D \u0444\u0430\u0439\u043B
+ConfigView.section.language.info=\u041F\u0440\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u0449\u0435 \u0441\u0435 \u043F\u0440\u0430\u0432\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0432\u0438\u043D\u0430\u0433\u0438, \u043A\u043E\u0433\u0430\u0442\u043E Vuze \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430.
+ConfigView.section.stats.xslfile=\u0418\u043C\u0435 \u043D\u0430 XSL \u0444\u0430\u0439\u043B
+core.shutdown.xcode=\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+TableColumn.header.smootheta=\u0417\u0430\u0433\u043B\u0430\u0434\u0435\u043D\u043E \u041E\u0412\u0417
+VivaldiView.title.full_v6=\u0412\u0438\u0432\u0430\u043B\u0434\u0438 IPv6
+label.date.format=\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u0430 \u0434\u0430\u0442\u0430
+ConfigTransferAutoSpeed.auto.speed.beta=\u0410\u0432\u0442\u043E-\u0441\u043A\u043E\u0440\u043E\u0441\u0442 (\u0431\u0435\u0442\u0430)
+TableColumn.header.health.info=\u041A\u043E\u043B\u043A\u043E \u0437\u0434\u0440\u0430\u0432\u0430 \u0435 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0434\u043E \u0440\u043E\u044F\u043A\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+ConfigView.text.ignore=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435
+configureWizard.transfer.maxUpSpeed=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 (KB/s)
+IrcView.clientsconnected=\u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438
+dialog.associations.askagain=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+tag.property.untagged={label.untagged}
+ConfigView.section.security.resetcerts.error.msg=\u041F\u0440\u043E\u0432\u0430\u043B \u0432 \u043F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0442\u0430 \u043D\u0430 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0442\u043E \u0437\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0438 \u043F\u043E \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430 \u043F\u0440\u0438\u0447\u0438\u043D\u0430. \u0414\u0430 \u0441\u0435 \u043F\u04 [...]
+GeneralView.label.peers=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\:
+ConfigView.label.playfilespeech=\u0413\u043B\u0430\u0441\u043E\u0432\u043E \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0444\u0430\u0439\u043B
+ConfigView.section.connection.networks.Tor=\u041C\u0440\u0435\u0436\u0430 The Onion Router (Tor)
+library.tag.header=\u0415\u0442\u0438\u043A\u0435\u0442 '%1'
+jvm.max.mem=\u041C\u0430\u043A\u0441. \u0440\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0430\u0442\u0430 \u043F\u0430\u043C\u0435\u0442 [\u043F\u0440\u0430\u0437\u043D\u043E\=\u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435, \u043C\u0438\u043D.\=%1]
+ConfigView.section.ipfilter.autoload.group=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435
+ConfigView.section.tracker.passwordenableweb=\u0421 \u043F\u0430\u0440\u043E\u043B\u0430 \u0437\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0430\u0442\u0430 \u043C\u0440\u0435\u0436\u0430
+Button.ok=&\u0414\u0430
+ConfigView.pluginlist.column.type.perUser=\u0417\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B
+MyTorrentsView.menu.setUpSpeed=\u0417\u0430\u0434\u0430\u0432\u0430\u043D\u0435 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+OpenTorrentWindow.dataLocation=\u041C\u044F\u0441\u0442\u043E \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438\:
+MyTorrentsView.menu.trackername.editprefs=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0442\u0435 \u043D\u0430 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u043E \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0438\u2026
+PiecesView.typeItem.1=\u0411\u044A\u0440\u0437\u043E
+AlertMessageBox.error=\u0413\u0440\u0435\u0448\u043A\u0430
+PiecesView.typeItem.0=\u0411\u0430\u0432\u043D\u043E
+ConfigView.section.connection.port.rand.range=\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 [\u043C\u0438\u043D.-\u043C\u0430\u043A\u0441.]
+window.update.noupdates.title=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438\u0442\u0435 \u043E\u0442 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438
+ConfigView.section.style.useFancyTabs=\u0421 \u0443\u043A\u0440\u0430\u0441\u0435\u043D\u0438 \u0440\u0430\u0437\u0434\u0435\u043B\u0438
+ConfigView.label.seeding.autoReposition=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u043F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441\u043F\u043E\u0440\u0435\u0434 \u043F\u043E\u0441\u044F\u0432\u043A\u043E\u0432\u0438\u044F \u0440\u0430\u043D\u0433
+beta.wizard.on=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0441 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0430\u0442\u0430 \u0441\u0442\u0430\u0431\u0438\u043B\u043D\u0430 \u0431\u0435\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F.
+Peers.column.timetocomplete=\u041E\u0441\u0442\u0430\u0432\u0430\u0449\u043E \u0432\u0440\u0435\u043C\u0435
+ConfigView.section.proxy.testsocks.title=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 SOCKS \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430
+ConfigView.section.downloadManagement=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430
+config.external.browser.info2=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0441\u0435 \u0431\u0440\u0430\u0443\u0437\u044A\u0440\u044A\u0442 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435, \u043D\u043E \u0442\u043E\u0432\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u0438, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043F\u0440\u0435\u0434\u043F\u043E\ [...]
+config.external.browser.info1=\u0417\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0435\u0431-\u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u0438\u0437\u0432\u044A\u043D Vuze \u0441\u0435 \u043E\u0442\u0432\u0430\u0440\u044F \u043E\u0442\u0434\u0435\u043B\u0435\u043D \u0431\u0440\u0430\u0443\u0437\u044A\u0440, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u0437\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0438 \u0441 \u043F\u04 [...]
+tag.type.man.vhdn={sidebar.VuzeHDNetwork}
+MainWindow.menu.file.open.uri.keybinding=Meta+U
+ActivityView.legend.achieved=\u0414\u043E\u0441\u0442\u0438\u0433\u043D\u0430\u0442\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435
+dialog.add.peers.title=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D(\u0438)
+devices.choose.device.info.title=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0437\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+installPluginsWizard.list.title=\u0421\u043F\u0438\u0441\u044A\u043A \u0441 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0443\u0435\u043C\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+TorrentInfoView.title.full={GeneralView.section.info}
+TableColumn.header.health=\u0417\u0434\u0440\u0430\u0432\u0438\u043D\u0430
+ConfigView.label.sleep.download=\u0421\u0432\u0430\u043B\u044F\u043D\u0435
+Button.no=&\u041D\u0435
+Scrape.status.ok=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+pairing.status.info=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+DownloadActivityView.legend.down={iconBar.down}
+fileplugininstall.install.desc=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 '%1', \u0432\u0435\u0440\u0441\u0438\u044F %2?
+MainWindow.menu.speed_limits.view_current=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0442\u0435\u2026
+IrcClient.noNick=\u041D\u044F\u043C\u0430 \u043F\u0440\u044F\u043A\u043E\u0440. \u0414\u0430 \u0441\u0435 \u043E\u0442\u0432\u043E\u0440\u0438 \u0438\u0437\u0433\u043B\u0435\u0434 '\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F'
+Peers.column.client_identification.info=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438\u0442\u0435 \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438 \u043E\u0442 Vuze - \u043F\u043E\u043B\u0435\u0437\u043D\u043E \u0437\u0430 \u043E\u0442\u0441\u0442\u0440\u0430\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438
+MainWindow.menu.transfers.pausetransfers.keybinding=Meta+P
+Categories.uncategorized=\u0411\u0435\u0437 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+MySharesView.title.full=\u041C\u0435\u0441\u0442\u043D\u043E \u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D\u0438
+DiskManager.alert.movefileexists=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\n\u0424\u0430\u0439\u043B %1 \u0432\u0435\u0447\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0432 \u043A\u0440\u0430\u0439\u043D\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E [...]
+MyTorrentsView.menu.start=&\u0421\u0442\u0430\u0440\u0442
+dht.enabled=\u0421 \u0440\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u0438
+v3.mb.PlayFileNotFound.button.remove=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043E\u0442 Vuze
+window.updateswt.status.done=\u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+TableColumn.header.transcode_name={TableColumn.header.name}
+MainWindow.updateavail=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438
+TableColumn.header.secondsdownloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u0437\u0430
+Button.bar.share=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+ConfigView.section.transfer.speeds.wiki=\u0414\u043E\u0431\u0440\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u0432\u0440\u044A\u0437\u043A\u0430
+Views.plugins.UPnP.title=UPnP
+ConfigView.section.ipfilter.discardminkb=\u041C\u0438\u043D\u0438\u043C\u0443\u043C %1 \u043E\u0442\u0445\u0432\u044A\u0440\u043B\u0435\u043D\u043E \u043F\u0440\u0435\u0434\u0438 \u043F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435
+MainWindow.menu.view.open_global_transfer_bar=\u041B\u0435\u043D\u0442\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+devices.copy.fail=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+IrcClient.channel=\u041A\u0430\u043D\u0430\u043B
+SpeedTestWizard.abort.message.insufficient.slots=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043A\u0430\u0447\u0432\u0430 \u0434\u043E \u043D\u0438\u043A\u043E\u0439 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D - \u043D\u0435\u0434\u043E\u0441\u0442\u0438\u0433 \u043D\u0430 \u0433\u043D\u0435\u0437\u0434\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435?
+FilesView.rename.choose.path.dir=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043D\u043E\u0432\u0430 \u0438\u043B\u0438 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+Main.parameter.usage=\u0423\u043F\u043E\u0442\u0440\u0435\u0431\u0430\: java org.gudy.azureus2.cl.Main [\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0438] "file.torrent" "\u043F\u044A\u0442 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435"
+ConfigView.section.mode.intermediate=\u041D\u0430\u043F\u0440\u0435\u0434\u043D\u0430\u043B
+FilesView.header={FilesView.title.full}
+ConfigView.section.file.decoder.prompt=\u041F\u043E\u0434\u0441\u0435\u0449\u0430\u043D\u0435 \u0437\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430 \u0432\u0438\u043D\u0430\u0433\u0438, \u043A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0430 \u0438\u0437\u0431\u043E\u0440
+label.edit.trackers=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0438
+v3.MainWindow.menu.view.asSimpleList=\u041E\u043F\u0440\u043E\u0441\u0442\u0435\u043D \u0441\u043F\u0438\u0441\u044A\u043A
+ManagerItem.waiting=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435
+config.external.browser.select=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0431\u0440\u0430\u0443\u0437\u044A\u0440
+ConfigView.text.peers=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+wizard.maketorrent.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E
+ConfigView.section.tracker.publicenable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u044A\u043D\u0448\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+v3.mb.PlayFileNotFound.button.find=\u0420\u044A\u0447\u043D\u043E \u043D\u0430\u043C\u0438\u0440\u0430\u043D\u0435\u2026
+MyTrackerView.left=\u041B\u044F\u0432\u043E
+GeneralView.section.transfer=\u0422\u0440\u0430\u043D\u0441\u0444\u0435\u0440
+PluginDeprecation.alert=\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 \u0441\u0435 \u0435 \u043E\u043F\u0438\u0442\u0430\u043B\u0430 \u0434\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u043E\u0441\u0442, \u043A\u043E\u044F\u0442\u043E \u0449\u0435 \u043E\u0442\u043F\u0430\u0434\u043D\u0435 \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u0438 \u0432\u0435\u0440\u0441\u0438\u0438. \u0414\u0 [...]
+GeneralView.label.trackerurl.tooltip=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u043A\u043E\u043F\u0438\u0440\u0430 URL \u043D\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430
+UIDebugGenerator.messageask.title=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u0434\u043E\u043A\u043B\u0430\u0434 \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438
+Views.plugins.azbuddy.title=\u0414\u0440\u0443\u0436\u043A\u0438
+ConfigView.section.global=\u041E\u0431\u0449\u043E
+ConfigView.section.style.useUnitsRateBits=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0431\u0438\u0442\u043E\u0432\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u0431\u0430\u0439\u0442\u043E\u0432\u0435 \u0437\u0430 \u0431\u0430\u0439\u0442\u043E\u0432\u043E-\u0431\u0430\u0437\u0438\u0440\u0430\u043D\u0438 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438 (KiB/s \u2192 Kibit/s \u0438 \u0434\u0440.)
+ConfigView.label.StartUIBeforeCore=\u041F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0413\u041F\u0418 \u043F\u0440\u0435\u0434\u0438 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u044F\u0434\u0440\u043E\u0442\u043E
+device.rss.group=\u041C\u0435\u0441\u0442\u043D\u0430 \u0435\u043C\u0438\u0441\u0438\u044F
+MainWindow.menu.speed_limits.wiki=\u0423\u0438\u043A\u0438 \u043F\u043E\u043C\u043E\u0449\u2026
+ConfigView.label.please.visit.here=\u0414\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0438 \u0442\u0443\u043A \u0437\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+MainWindow.menu.file.exit=\u0418\u0437&\u0445\u043E\u0434
+device.import.desc=\u0414\u0430 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u0438 \u043B\u0438 \u0438\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E '%1'?
+GeneralView.no=\u043D\u0435
+Tracker.tooltip.NoMultiSupport=\u0422\u043E\u0437\u0438 \u0442\u0440\u0430\u043A\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0438\u044F \u043D\u0430 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435\u0442\u043E \u0437\u0430 \u0437\u0430\u044F\u0432\u043A\u0430.
+MainWindow.dialog.choose.folder=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F, \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u0449\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435
+azbuddy.os_online=\u0421\u0432\u044A\u0440\u0437\u0430\u043D
+MainWindow.menu.file.configure=\u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u0437\u0430 &\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0085\u2026
+MainWindow.about.internet.contributors=\u0414\u043E\u043F\u0440\u0438\u043D\u0435\u0441\u043B\u0438
+ConfigView.label.set_ui_transfer_speeds.description.download=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 (KB/s)
+ConfigView.label.resume.downloads.on.start=\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u0432 \u043F\u0430\u0443\u0437\u0430 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u0441\u043B\u0435\u0434 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0430 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+ConfigView.section.connection.http.port=\u0412\u0445\u043E\u0434\u044F\u0449 \u043F\u043E\u0440\u0442
+ConfigView.section.stats.exportpeers=\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+ConfigView.section.file.subfolder.dnd=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435, \u043A\u043E\u0438\u0442\u043E \u043D\u0435 \u0441\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0432 \u043F\u043E\u0434\u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+FilesView.firstpiece=\u041F\u044A\u0440\u0432\u043E \u043F\u0430\u0440\u0447\u0435 \u2116
+pairing.explicit.info=\u041D\u043E\u0440\u043C\u0430\u043B\u043D\u043E \u043D\u0435 \u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0437\u0430\u0434\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0438\u0437\u0440\u0438\u0447\u043D\u0438 IP \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438, \u0437\u0430\u0449\u043E\u0442\u043E \u043C\u043E\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0432\u043B\u0435\u043A\u0430\u0442 \u0430\u0432\u0442\u043E\u0 [...]
+Views.plugins.Plugin.Update.title=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+ConfigView.section.logging.showLogsFor=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 %1 \u0434\u043D\u0435\u0432\u043D\u0438\u0446\u0438 \u0437\u0430 \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438\:
+ConfigView.section.connection.http.portoverride=\u0422\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 HTTP \u043F\u043E\u0440\u0442 \u0437\u0430 \u043F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435 [0\: \u0431\u0435\u0437]
+SystemTray.menu.show=&\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 Vuze
+TransferStatsView.legend.pingaverage=\u0421\u0440\u0435\u0434\u043D\u043E
+subscriptions.listwindow.failed=\u041D\u0435 \u0441\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+iconBar.publish.tooltip=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435
+torrent.view.info.title=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+device.xcode.whenreq=\u041A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430
+TableColumn.TorrentStream.tooltip.expand=\u0414\u0430 \u0441\u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0438 \u0440\u0435\u0434\u044A\u0442, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043F\u043E\u043A\u0430\u0436\u0435 '\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u0441\u0435\u0433\u0430' \u0437\u0430 \u043E\u0442\u0434\u0435\u043B\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+UpdateWindow.columns.name=\u0418\u043C\u0435
+dlg.auth.enter.subtitle.try.2=\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0432\u0430\u043B\u0438\u0434\u043D\u043E\u0441\u0442 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438.
+dlg.auth.enter.subtitle.try.1=\u041F\u043E\u0447\u0442\u0438 \u0433\u043E\u0442\u043E\u0432\u043E.
+azbuddy.ui.menu.disconnect=\u041F\u0440\u0435\u043A\u044A\u0441\u0432\u0430\u043D\u0435
+option.askeverytime=\u041F\u0438\u0442\u0430\u043D\u0435 \u0432\u0441\u0435\u043A\u0438 \u043F\u044A\u0442
+ConfigView.section.language.UpdateNow=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0432\u0435\u0434\u043D\u0430\u0433\u0430\!
+ConfigView.section.file.config.currentdir=\u0422\u0435\u043A\u0443\u0449\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0441 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\:
+TrayWindow.menu.show=&\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 Vuze
+Pieces.column.Requested.info=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u043C\u043E\u0436\u0435 \u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0437\u0430\u044F\u0432\u043A\u0438 \u0434\u0430 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u044F\u0442 \u0437\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u043E \u0438\u043B\u0438 \u043D\u0435 (*)
+ConfigView.label.seeding.ignoreRatioPeers=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 \u043D\u0430\u0439-\u043C\u0430\u043B\u043A\u043E 1 \u043F\u043E\u0441\u044F\u0432\u043A\u0430 \u0437\u0430 \u0432\u0441\u0435\u043A\u0438
+PeersView.menu.blockupload=\u0411\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\u0442\u043E
+dlg.auth.install.failed.text=\u041A\u043E\u0434 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F '%1' \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 \u0433\u0440\u0435\u0448\u043A\u0430 \u0432 \u0441\u044A\u0440\u0432\u044A\u0440\u0430.\n\n\u0414\u0430 \u0441\u0435 \u043E\u043F\u0438\u0442\u0430 \u043E\u0442\u043D\u043E\u0432\u043E \u0441 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F\u0442\u0430 \u043F\u043E-\u043A [...]
+Trackers.column.interval.info=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435, s\: \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B (\u043C\u0438\u043D. \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B)
+MagnetPlugin.report.searching=\u0442\u044A\u0440\u0441\u0435\u043D\u0435\u2026
+dht.reseed.info=\u0421\u0435\u0435\u043D\u0435 \u043D\u0430\u043D\u043E\u0432\u043E \u043D\u0430 \u0431\u0430\u0437\u0430\u0442\u0430 \u0434\u0430\u043D\u043D\u0438
+TableColumn.header.tag.public={ConfigView.pluginlist.column.type.shared}
+config.internal.browser.info3=\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A, \u043A\u043E\u0433\u0430\u0442\u043E \u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D (\u043D\u0430\u043F\u0440. \u0434\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u043E\u0442 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 Tor Helper), \u0437\u0430 \u0438\u043D\u0434\ [...]
+config.internal.browser.info2=\u041F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 Internet Explorer \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0432 Windows, Safari Mac. \u0418\u043B\u0438 Firefox \u0441 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 - \u0434\u0430 \u0441\u0435 \u0432\u0438\u0434\u044F\u0442 \u0441\u [...]
+Subscription.menu.clearall=\u041E\u0442\u043C\u044F\u0442\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043A\u0430\u0442\u043E \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438
+subscript.add.upgradeto.desc=\u0412\u0435\u0440\u0441\u0438\u044F %1 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 '%2' \u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u0430.\n\u0414\u0430 \u0441\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430 \u043B\u0438?
+Wizard.Subscription.subscribe.title=\u041D\u0430\u043B\u0438\u0447\u043D\u0438 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+config.internal.browser.info1=\u0412\u0433\u0440\u0430\u0434\u0435\u043D\u0438\u044F\u0442 \u0431\u0440\u0430\u0443\u0437\u044A\u0440 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0435\u0431-\u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u0432\u0433\u0440\u0430\u0434\u0435\u043D\u043E \u0432\u044A\u0432 Vuze, \u043D\u0430\u043F\u0440. \u0441\u0442\u0440\u0430\u043D\u043 [...]
+ConfigView.section.interface.display.suppress.file.download.dialog=\u041F\u043E\u0442\u0438\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+PeersView.piece.info=\u2116 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u043F\u0430\u0440\u0447\u0435 \u043F\u043E\u0438\u0441\u043A\u0430\u043D\u043E \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+DownloadActivityView.legend.up={iconBar.up}
+ConfigView.section.tracker.forceport=\u041D\u0430\u0441\u0438\u043B\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0441\u043B\u043E\u043D\u0435\u043D\u0438\u0442\u0435 \u0432\u044A\u043D\u0448\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043A\u044A\u043C \u043F\u043E\u0440\u0442 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+v3.topbar.menu.show.frog=\u0421\u0438\u043D\u044F\u0442\u0430 \u0436\u0430\u0431\u0430
+ConfigView.label.announceport=\u041F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0431\u044F\u0432\u0435\u043D\u0438\u044F TCP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0438\u044F, PEX \u0438 DHT\n[\u043F\u0440\u0430\u0437\u043D\u043E\: \u0431\u0435\u0437 \u043F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435, 0\: \u0 [...]
+ConfigView.section.stats=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430
+Column.seedspeers.started=%1 \u043E\u0442 %2
+ConfigView.section.invalid.value.title=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442
+DHTView.transport.in=\u0412\u0445\u043E\u0434\u044F\u0449\u043E\:
+ConfigView.label.seeding.rankType.seed.tooltip=\u041F\u043E-\u043C\u0430\u043B\u043A\u043E \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \= \u043F\u043E-\u0432\u0438\u0441\u043E\u043A \u0440\u0430\u043D\u0433
+azbuddy.enabled=\u0410\u043A\u0442\u0438\u0432\u043D\u043E
+ConfigView.section.connection.networks.I2P=\u041C\u0440\u0435\u0436\u0430 I2P
+plugin.init.load.failed=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 '%1' \u043E\u0442 %2
+message.confirm.delete.title=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+dht.reseed.group=\u0421\u0435\u0435\u043D\u0435 \u043D\u0430\u043D\u043E\u0432\u043E
+ConfigView.label.quickviewexts=\u0411\u044A\u0440\u0437 \u0438\u0437\u0433\u043B\u0435\u0434 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0438 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438\u044F
+sidebar.Library={library.name}
+ConfigView.label.switchpriority=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043A\u044A\u043C \u043D\u0438\u0441\u044A\u043A \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435
+PeersView.menu.kickandban=\u0418\u0437\u0445\u0432\u044A\u0440\u043B\u044F\u043D\u0435 \u0438 \u0437\u0430\u0431\u0440\u0430\u043D\u0430
+subs.prop.last_scan=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+IPChecker.external.service.no-ip.description=\u0414\u043E\u0441\u0442\u0430\u0432\u0447\u0438\u043A \u043D\u0430 \u0443\u0441\u043B\u0443\u0433\u0430 \u0437\u0430 \u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u043D \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u043D DNS\n(\u0443\u0441\u043B\u0443\u0433\u0430\u0442\u0430 'check address' \u043D\u0435 \u0435 \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E \u0434\u043E\u0441\u0442\u044A\u043F\u043D\u0430)
+devices.ready=\u0413\u043E\u0442\u043E\u0432\u043E
+device.od.error.opfailexcep=\u041F\u0440\u043E\u0432\u0430\u043B \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u0442\u043E \u043F\u0440\u0438 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430 %1\: \u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 %2
+TableColumn.header.OnlyCDing4=\u0421\u0430\u043C\u043E \u0441\u0435\u0435\u043D\u0435 \u0437\u0430
+IPChecker.external.service.dyndns.url=http\://www.dyndns.org/
+label.learnmore=\u041E\u0449\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+dlg.install.vuzexcode.subtitle=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0437\u0430 \u043C\u0435\u0434\u0438\u0435\u043D \u0430\u043D\u0430\u043B\u0438\u0437
+TableColumn.header.TableColumnChosenColumn=\u0418\u0437\u0431\u0440\u0430\u043D\u0438 \u043A\u043E\u043B\u043E\u043D\u0438
+Subscription.menu.setcookies=\u041D\u0430\u0441\u0442\u043E\u0439\u043A\u0430 \u043D\u0430 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438
+iconBar.run.tooltip=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u0441 \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u043E\u0442\u043E \u0441\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435
+ConfigView.label.stop.RunScript=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043A\u0440\u0438\u043F\u0442
+ConfigView.section.tracker.maxposttimemultiplier.info=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0441\u0435 \u0437\u0430 \u043F\u043E\u0434\u0430\u0432\u0430\u043D\u0438\u044F \u043D\u0430 \u0444\u043E\u0440\u043C\u0443\u043B\u044F\u0440\u0438 \u0438 \u043A\u0430\u0447\u0432\u0430\u043D\u0438\u044F
+azbuddy.tracker.bbb.status.title=\u041B\u0430\u043D\u0441\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0434\u0440\u0443\u0436\u043A\u0430
+Button.swarmit=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u0432 \u0440\u043E\u044F\u043A\u0430\!
+GeneralView.label.status.file=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+GeneralView.label.creationdate=\u0421\u044A\u0437\u0434\u0430\u0434\u0435\u043D \u043D\u0430\:
+ipCheckerWizard.service.description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\:
+subscription.version.bad=\u0410\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 '%1' \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430 \u0434\u043E\u043A\u0430\u0442\u043E \u043D\u0435 \u0441\u0435 \u043D\u0430\u0434\u0433\u0440\u0430\u0434\u0438 Vuze
+ConfigView.section.tracker.enablekey=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043F\u0440\u0435\u0434\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043A\u043B\u044E\u0447 \u043A\u044A\u043C \u0442\u0440\u0430\u043A\u0435\u0440\u0430 \u0437\u0430 \u043F\u043E\u0434\u043E\u0431\u0440\u044F\u0432\u0430\u043D\u0435 \u0441\u0438\u0433\u0443\u0440\u043D\u043E\u0441\u0442\u0442\u0430
+platform.jvmopt.nolinkfile=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u0442 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u043D\u0430 JVM \u0437\u0430\u0440\u0430\u0434\u0438 \u043D\u0435\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0430 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u044F
+ColumnRenameWindow.message=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043D\u043E\u0432\u043E \u0438\u043C\u0435 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0430\u0442\u0430 \u0438\u043B\u0438 \u043D\u0438\u0449\u043E \u0437\u0430 \u043F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+upnp.grabports=\u041D\u0430\u0437\u043D\u0430\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 \u0434\u043E\u0440\u0438, \u043A\u043E\u0433\u0430\u0442\u043E \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u0430\u0442 \u043D\u0430 \u0434\u0440\u0443\u0433 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440
+ConfigView.section.security.clearpasswords.button=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+ConfigView.label.seeding.ignore.header.evenFirstPriority=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442, \u0434\u043E\u0440\u0438 \u043A\u043E\u0433\u0430\u0442\u043E\n\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0442\u0430 \u0437\u0430 \u043D\u0430\u0439-\u0432\u0438\u0441\u043E\u043A \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+Button.revert=\u041F\u0440\u0435\u0434\u0438\u0448\u043D\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+uninstallPluginsWizard.list.title=\u0421\u043F\u0438\u0441\u044A\u043A \u0441 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+UpdateConstraint.message=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u0437\u0430 \u043F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435 \u0432\u044A\u0440\u0445\u0443 \u0435\u0442\u0438\u043A\u0435\u0442 - \u0434\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 \u0423\u0438\u043A\u0438 \u0437\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438.
+azbuddy.online_status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442
+ConfigView.section.logging.log1type=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435
+OpenTorrentOptions.header.filesInfo.all=%1 \u0444\u0430\u0439\u043B\u0430\:%3
+ConfigView.section.start=\u0421\u0442\u0430\u0440\u0442
+MyTrackerView.title.full=\u041C\u0435\u0441\u0442\u0435\u043D \u0422\u0440\u0430\u043A\u0435\u0440
+devices.copy.device.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+PeersView.discarded=\u0418\u0437\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u043E
+metasearch.import.select.template.file=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D
+download.removerules.unauthorised.data=\t\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438
+device.onlyShowTagged=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0441 \u0435\u0442\u0438\u043A\u0435\u0442\u0438
+MainWindow.sr.status.tooltip.poor=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 %1 \u043D\u0435\u0434\u043E\u0441\u0442\u0430\u0442\u044A\u0447\u043D\u043E\: <0,9
+wizard.webseed.title=HTTP \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+ConfigView.label.queue.debuglog=\u0417\u0430\u043F\u0438\u0441 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043E\u0442\u0441\u0442\u0440\u0430\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438
+ConfigView.section.ipfilter.add=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+Button.swarmit.tooltip=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0441\u044A\u0441 \u0441\u044A\u0449\u0438\u044F \u0440\u0430\u0437\u043C\u0435\u0440 \u0447\u0440\u0435\u0437 \u041D\u0430\u0445\u043E\u0434\u043A\u0438 \u0432 \u0440\u043E\u044F\u043A\u0430
+ConfigView.label.playfilefinished=\u0417\u0432\u0443\u043A\u043E\u0432 \u0441\u0438\u0433\u043D\u0430\u043B \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0444\u0430\u0439\u043B
+MySharesView.type.dircontents=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+importTorrentWizard.importfile.invalidPath=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0444\u0430\u0439\u043B \u0437\u0430 \u0438\u043C\u043F\u043E\u0440\u0442
+TableColumn.header.trackername=\u0418\u043C\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440
+br.backup.setup.info=\u0414\u0430 \u0441\u0435 \u0438\u043C\u0430 \u043F\u0440\u0435\u0434\u0432\u0438\u0434 \u043D\u0430\u0441\u0442\u043E\u0439\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u043D \u0437\u0430\u043F\u0430\u0300\u0441 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430.\n\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u2192 \u041A\u043E\u043D\ [...]
+device.itunes.start=\u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 iTunes \u0438\u043B\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0430\u0432\u0442\u043E-\u0441\u0442\u0430\u0440\u0442
+ConfigView.section.style.DNDalwaysInIncomplete=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0432\u0438\u043D\u0430\u0433\u0438 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 '\u041D\u0435 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435' \u0432 \u0440\u0430\u0437\u0434\u0435\u043B \u041D\u0435\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u043D\u0430 {library.name}
+IPChecker.external.httploadfail=\u041F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u043E \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430
+ConfigView.section.rss=\u041C\u0435\u0441\u0442\u043D\u0438 \u0435\u043C\u0438\u0441\u0438\u0438 \u0438 \u0434\u0440.
+FileView.BlockView.title=\u0424\u0430\u0439\u043B\u043E\u0432\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+MainWindow.menu.view.detailedlist=&\u041F\u043E\u0434\u0440\u043E\u0431\u0435\u043D \u0441\u043F\u0438\u0441\u044A\u043A
+FilesView.rename.failed.title=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435\u0442\u043E/\u0441\u043C\u044F\u043D\u0430\u0442\u0430 \u043D\u0430 \u0446\u0435\u043B\u0442\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+PeersView.menu.close=&\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+ConfigView.section.proxy.group.peer=\u041A\u043E\u043C\u0443\u043D\u0438\u043A\u0430\u0446\u0438\u0438 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+Files.column.fileext=\u0422\u0438\u043F
+Subscription.menu.dirtyall=\u041E\u0442\u043C\u044F\u0442\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043A\u0430\u0442\u043E \u043D\u0435\u043F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438
+dlg.auth.cancelled.line2=\u041F\u0440\u0438 \u0441\u044A\u043C\u043D\u0435\u043D\u0438\u044F \u0437\u0430 \u0433\u0440\u0435\u0448\u043A\u0430 \u0434\u0430 \u0441\u0435 \u043F\u043E\u0442\u044A\u0440\u0441\u0438 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u0447\u0440\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u044F\u0442\u0430 \u0432 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435\u0442\u043E \u0441 \u0431\u0435\u043B\u0435\u0436\u043A\u0430\u0442\u0430 \u0 [...]
+label.dblclick.to.min=\u0421 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u0441\u0435 \u043C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430
+ConfigView.option.dm.dblclick.launch={iconBar.run}
+dlg.auth.cancelled.line1=\u0410\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 Vuze \u041F\u043B\u044E\u0441 \u0435 \u043E\u0442\u043A\u0430\u0437\u0430\u043D\u0430.
+PeersView.state.established=\u041D\u0430\u043F\u044A\u043B\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u043E
+Progress.reporting.action.label.remove.tooltip=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0447\u0435\u0442\u0430 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043E\u0442 \u0445\u0440\u043E\u043D\u043E\u043B\u043E\u0433\u0438\u044F\u0442\u0430
+ConfigView.section.style.CatInSidebar=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0432 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430
+ConfigView.section.style.showdownloadbasket=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043A\u043E\u0448\u043D\u0438\u0446\u0430 \u0441\u044A\u0441 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F (\u0432\u043B\u0430\u0447\u0435\u043D\u0435-\u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438)
+configureWizard.transfer2.rate.changed=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \= %1\n\u041F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u043E\u0442\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0449\u0435 \u0435 %2 (\u043C\u0430\u043A\u0441. \u0430\u043A\u0442\u0438\u0432\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \= %3, \u043C\u0430\u043A\u0441. \u0437\u0430 \ [...]
+azbuddy.ui.menu.cat_subs=\u0410\u0431\u043E\u043D\u0438\u0440\u0430\u043D\u0435
+v3.menu.device.defaultprofile.never=\u041D\u0438\u043A\u043E\u0433\u0430 \u0434\u0430 \u043D\u0435 \u0441\u0435 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430
+columnChooser.move=\u041F\u0440\u0435\u043F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0440\u0435\u0434\u043E\u0432\u0435 \u0441\u0442\u0430\u0432\u0430 \u0441 \u0432\u043B\u0430\u0447\u0435\u043D\u0435
+ConsoleView.title.full=\u041A\u043E\u043D\u0437\u043E\u043B\u0430
+Plugin.extseed.name=\u0412\u044A\u043D\u0448\u043D\u0438 \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+subscriptions.column.auto-download=\u0410\u0432\u0442\u043E-\u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.file.save.peers.pertorrent=\u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigTransferAutoSpeed.capacity.used=% \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D \u043A\u0430\u043F\u0430\u0446\u0438\u0442\u0435\u0442
+ConfigView.label.seeding.rankType=\u0414\u0430 \u0441\u0435 \u0434\u0430\u0432\u0430 \u0440\u0430\u043D\u0433 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0437\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0430\u0442\u0430 \u043D\u0430\:
+ConfigView.section.mode.intermediate.text=\u0414\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430.\n\u0410\u043A\u043E \u0449\u0435 \u0441\u0435 \u0441\u044A\u0437\u0434\u0430\u0432\u0430 \u043C\u0435\u0441\u0442\u0435\u043D \u0442\u0440\u0430\u043A\u0435\u0440 \u0438 \u0449\u0435 \u0441\u0435 \u043F\u043E\u0434\u0441\u043B\u043E\u043D\u044F\u0432\u0430\u0442/\u043F\u0443\u0431\u043B\u0438\u043A\ [...]
+PiecesView.DistributionView.PeerAvl=\u041F\u0440\u0438\u043D\u043E\u0441 \u043D\u0430\u043B\u0438\u0447\u0435\u043D \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+configureWizard.transfer2.hint=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043C\u043D\u043E\u0433\u043E \u0433\u043E\u043B\u044F\u043C\u043E \u0438\u043B\u0438 \u043C\u0430\u043B\u043A\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0449\u0435 \u043F\u043E\u0432\u043B\u0438\u044F\u0435 \u043D\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044F\u043D\u0435\u0442\u043E \u04 [...]
+subs.prop.next_scan=\u0421\u043B\u0435\u0434\u0432\u0430\u0449\u043E \u043F\u0440\u043E\u0443\u0447\u0432\u0430\u043D\u0435
+SpeedView.stats.uploaded=\u041A\u0430\u0447\u0435\u043D\u043E (\u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B)
+ConfigView.section.queue.main=\u0413\u043B\u0430\u0432\u043D\u043E
+config.external.browser.test=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 \u0432\u044A\u043D\u0448\u043D\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u044A\u0440
+ConfigView.label.copyanddeleteratherthanmove=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0441 \u043F\u043E\u0441\u043B\u0435\u0434\u0432\u0430\u0449\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u043D\u0438\u0442\u0435 \u0434\u0430\u043D\u043D\u0438, \u0432\u043C\u0435\u0441\u0442\u043E \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u0441 \u0435\u0434\u043D\u0430 \u043E\u043F\u0435\u0 [...]
+OpenTorrentWindow.message=\u0415\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u043D\u043E
+ConfigView.section.logging.level=\u041D\u0438\u0432\u043E \u043D\u0430 \u0437\u0430\u043F\u0438\u0441 \u0437\u0430 \u0434\u043D\u0435\u0432\u043D\u0438\u043A\u0430
+ConfigView.section.file.config.section=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
+ConfigView.section.transfer.lan=\u041B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+SpeedTestWizard.test.panel.standard=\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E
+ConfigView.section.ipfilter.discardbanning=\u0411\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0441 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043E\u0442\u0445\u0432\u044A\u0440\u043B\u0435\u043D\u0438/\u0434\u043E\u0431\u0440\u0438 \u0434\u0430\u043D\u043D\u0438 \u043D\u0430\u0434 [0\: \u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E]
+ConfigView.section.style.colorOverride.altRow=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u0440\u0435\u0434\u043E\u0432\u0435\u0442\u0435
+SpeedTestWizard.set.upload.hint=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0442\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u043E\u0442 Vuze AutoSpeed \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u044A\u043C\u0430.
+PeerFilesView.title.full={FilesView.title.full}
+DHTTransport.report.resending=\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438
+Torrent.create.progress.totalfilesize=\u041E\u0431\u0449 \u0440\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435\:
+GeneralView.label.seeds=\u041F\u043E\u0441\u044F\u0432\u043A\u0438\:
+SpeedTestWizard.test.panel.explain=\u0418\u0437\u043C\u0435\u0440\u0432\u0430\u043D\u0435 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 Vuze \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B. \u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0438\u043F\u0430 \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u0442\u0430 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u0438 \u0440\u0435\u0436\u0438\u043C\u0430 \u043D\u0430 \u0448\u0438\u0444\u04 [...]
+TableColumn.header.md5=MD5
+PeerSocket.mismatch_id=\u041D\u0435\u0441\u044A\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0430\u0449
+MagnetPlugin.report.secondarylookup.fail=\u0412\u0442\u043E\u0440\u0438\u0447\u043D\u043E\u0442\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438\: \u043D\u044F\u043C\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u0438\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438
+iconBar.startstop.tooltip=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u0438\u043B\u0438 \u0441\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435
+ConfigView.section.tracker.nonblocking=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043D\u0435\u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0435
+devices.xcode.show.cat=\u041E\u0442\u0434\u0435\u043B\u044F\u043D\u0435 \u0441\u043F\u043E\u0440\u0435\u0434 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0442\u0430
+Button.reload=\u041F\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435
+wizard.multitracker.edit.deletetracker=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+MainWindow.status.unknown=\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E
+TableColumn.header.tag.rssfeed={label.rss}
+devices.copy_url=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 URL \u043F\u043E\u0442\u043E\u043A \u0432 \u043A\u043B\u0438\u043F-\u0431\u043E\u0440\u0434\u0430
+sharing.progress.hide=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435
+ConfigView.section.stats.minutes=\u043C\u0438\u043D
+devices.router=\u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043E\u0440
+MainWindow.menu.file.import.keybinding=Meta+I
+Formats.units.Mibit=Mibit
+GeneralView.label.hash.tooltip=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u043A\u043E\u043F\u0438\u0440\u0430 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435\u0442\u043E \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430
+br.backup.notify=\u0421 \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0437\u0430\u043F\u0430\u0300\u0441
+Content.alert.notuploaded.button.abort=&\u0414\u0430 \u043D\u0435 \u0441\u0435 \u043E\u0442\u043A\u0430\u0437\u0432\u0430
+MyTorrents.column.ColumnProgressETA.StreamReady=\u0413\u043E\u0442\u043E\u0432 \u0437\u0430 \u043F\u043E\u0442\u043E\u043A
+OpenTorrentWindow.mb.noDestDir.text=\u0426\u0435\u043B\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F '%1' \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 '%2' \u043D\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0438\u043B\u0438 \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430.
+show.config.changes=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u043C\u0435\u043D\u0438\u0442\u0435 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430\u2026
+label.toggle.new.marker=\u041F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432 \u043C\u0430\u0440\u043A\u0435\u0440
+Wizard.Subscription.create.search=\u0422\u044A\u0440\u0441\u0435\u043D\u0435
+MainWindow.nat.status.tooltip.unknown=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0434\u043E\u0301\u0441\u0435\u0433\u0430 \u043F\u0440\u0438 \u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435\u043D\u0430/NAT \u0435 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D \u043F\u0440\u0435\u0437 TCP
+security.cert.auto.install=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u043F\u043E\u0437\u043D\u0430\u0442\u0438 SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0438 \u0431\u0435\u0437 \u043F\u043E\u0434\u0441\u0435\u0449\u0430\u043D\u0435
+ConfigView.section.file.friendly.hashchecking.tooltip=\u041C\u0430\u043B\u043A\u043E \u043F\u043E-\u0431\u0430\u0432\u0435\u043D, \u043D\u043E \u0434\u043E\u0441\u0442\u0430 \u043F\u043E-\u043D\u0435\u043D\u0430\u0442\u043E\u0432\u0430\u0440\u0432\u0430\u0449 \u043F\u0440\u043E\u0446\u0435\u0441\u043E\u0440\u0430/\u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0430 \u0440\u0435\u0436\u0438\u043C \u0437\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0440\u0430\u04 [...]
+ConfigView.section.logging.filter=\u0424\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0435 \u043F\u0440\u0438 \u0437\u0430\u043F\u0438\u0441 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A
+MainWindow.menu.view.irc.moved=IRC \u0435 \u043D\u0430 \u0440\u0430\u0437\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043A\u0430\u0442\u043E \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430, \u0432\u0436. http\://azureus.sourceforge.net/plugin_list.php. \u0421\u043B\u0435\u0434 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043C\u0435\u043D\u044E '\u0418\u043D\u0441\u0442\u0 [...]
+SpeedView.stats.uptime=\u0412\u0440\u0435\u043C\u0435 \u043D\u0430 \u0440\u0430\u0431\u043E\u0442\u0430
+ConfigView.section.connection.encryption.encrypt.fallback_incoming=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438
+TableColumn.header.trancode_qpos=\u2116
+Progress.reporting.statusbar.button.tooltip=\u041F\u043E\u043A\u0437\u0430\u0432\u0430\u043D\u0435 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446\u0430 \u0437\u0430 \u043E\u0442\u0447\u0435\u0442\u0438 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E
+dlg.try.trial.text=Vuze \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430 \u0434\u043E\u0431\u0430\u0432\u043A\u0430 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0437\u0430 \u0437\u0430\u043F\u0438\u0441 \u043D\u0430 \u0432\u0438\u0434\u0435\u043E-\u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043A\u0430\u0442\u043E \u0438\u0437\u043F\u044A\u043B\u043D\u0438\u043C\u0438 DVD-\u0442\u0430. \u0414\u0430 \u0441\u0435 \u04 [...]
+ConfigView.section.logging.logdir=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043D\u0430 \u0434\u043D\u0435\u0432\u043D\u0438\u043A\u0430
+MainWindow.menu.quick_view.msg=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B '%1' \u043E\u0442 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 '%2'
+PeersView.client=\u041A\u043B\u0438\u0435\u043D\u0442
+TableColumn.header.secondsseeding.info=\u041E\u0431\u0449\u043E \u0432\u0440\u0435\u043C\u0435, \u043F\u0440\u0435\u0437 \u043A\u043E\u0435\u0442\u043E \u0435 \u0441\u044F\u0442\u043E.
+SpeedTestWizard.name.conf.level.low=\u041D\u0438\u0441\u043A\u043E
+remote.pairing.learnmore=<A HREF\="/pairing_learnmore.start">\u0427\u0417\u0412 \u0437\u0430 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435</A>
+ConfigView.label.ignoreCase=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u044A\u0440\u0430
+device.error.copytomissing='\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F' "%1" \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u043E
+devices.xcode.profs=\u041D\u0430\u043B\u0438\u0447\u043D\u0438 \u043F\u0440\u043E\u0444\u0438\u043B\u0438 \u0437\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.transfer.ignorepeerports=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0441\u044A\u0441 \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 \u0437\u0430 \u0434\u0430\u043D\u043D\u0438 (\u0441 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ';', \u043F\u0440. 0;25;100-200)
+exportTorrentWizard.process.torrentfail.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0447\u0435\u0442\u0435\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+MagnetPlugin.report.tunnel=\u043F\u043E \u0442\u0443\u043D\u0435\u043B \u0434\u043E %1
+ConfigView.section.ipfilter.enable.descriptionCache=\u0421\u044A\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 IP \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F\u0442\u0430 \u0432\u044A\u0432 \u0444\u0430\u0439\u043B
+MainWindow.menu.help.donate=&\u0414\u0430\u0440\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430
+device.xcode.always=\u0412\u0438\u043D\u0430\u0433\u0438
+unix.script.new.button.asknomore=\u0411\u0435\u0437 \u043F\u043E\u0432\u0442\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435\u0442\u043E
+MyTorrentsView.menu.setSpeed.disabled=\u0418\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E
+Button.moveUp=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430&\u0433\u043E\u0440\u0435
+MainWindow.menu.file.open.url.keybinding=Meta+L
+DownloadManager.error.sha1=\u0413\u0440\u0435\u0448\u043A\u0430 (SHA1), \u043D\u044F\u043C\u0430 \u0442\u0430\u043A\u044A\u0432 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u044A\u043C
+ConfigView.pluginlist.column.directory=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+security.certtruster.issuedby=\u0418\u0437\u0434\u0430\u0434\u0435\u043D \u043E\u0442\:
+ConfigView.section.seeding=\u0421\u0435\u0435\u043D\u0435
+ConfigView.tb.delete.torrent=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043E\u0442 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430
+ConfigView.section.sharing.protocol=\u041F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u0437\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0438
+ConfigView.section.logging.statsinfo=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430
+ConfigView.section.transfer.autospeedbeta=\u0410\u0432\u0442\u043E-\u0421\u043A\u043E\u0440\u043E\u0441\u0442-\u0411\u0435\u0442\u0430
+wizard.finish=\u0413\u043E\u0442\u043E\u0432\u043E
+ConfigView.section.connection.udp.enable=\u0421 UDP
+subs.prop.is_auto_ok=\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043E \u0435 \u0430\u0432\u0442\u043E-\u0441\u0432\u0430\u043B\u044F\u043D\u0435
+network.ipv6.enable.support=\u0421 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u043D\u0430 IPv6 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 Java 7 \u0432 Windows)
+DHTView.general.rendezvous=\u0420\u0430\u043D\u0434\u0435\u0432\u0443\:
+upnp.alert.differenthost=UPnP\: \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 '%1' \u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0430\u043D\u043E \u043E\u0442 '%2' - \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0434\u0440\u0443\u0433 \u043F\u043E\u0440\u0442
+ConfigTransferAutoSpeed.while.downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435\:
+DHTOpsView.title.full=\u0413\u0440\u0430\u0444\u0438\u043A\u0430 \u043D\u0430 \u0420\u0411\u0414
+ClientStats.column.sent={DHTView.transport.sent}
+swt.updater.downloader.downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 SWT \u043E\u0442
+TableColumn.header.MediaThumb=\u041D\u043E\u0441\u0438\u0442\u0435\u043B
+platform.win32.baddll.info=Vuze \u043E\u0442\u043A\u0440\u0438 \u043F\u0440\u0438\u0441\u044A\u0441\u0442\u0432\u0438\u0435\u0442\u043E \u043D\u0430 '%1'. \u0422\u043E\u0432\u0430 \u0435 \u0447\u0430\u0441\u0442 \u043E\u0442 '%2' \u0438 \u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E, \u0447\u0435 \u043F\u0440\u0438\u0447\u0438\u043D\u044F\u0432\u0430 \u0442\u0435\u0436\u043A\u0438 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 \u043A\u0430\u0442\u043E \u0441\u0440\u0438\u0432\ [...]
+IrcClient.error=\u0413\u0440\u0435\u0448\u043A\u0430
+MyTorrentsView.menu.reposition.manual=\u041F\u0440\u0435\u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u0430\u043D\u0435\u0085\u2026
+priority.high=\u0412\u0438\u0441\u043E\u043A \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+tag.share=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438 \u0441 \u043E\u0431\u0449\u043D\u043E\u0441\u0442\u0442\u0430
+MyTorrents.items.DownSpeedLimit.disabled=\u041D\u044F\u043C\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.label.version.info.link=\u0414\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0438 \u0442\u0443\u043A \u0437\u0430 \u0442\u043E\u0432\u0430 \u043A\u0430\u043A\u0432\u0438 \u0434\u0430\u043D\u043D\u0438 \u0441\u0435 \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u0442 \u0434\u043E \u0441\u044A\u0440\u0432\u044A\u0440\u0430 \u0437\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+br.backup.folder.info=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F, \u0432 \u043A\u043E\u044F\u0442\u043E \u0449\u0435 \u0441\u0435 \u043F\u0430\u0437\u0438 \u0437\u0430\u043F\u0430\u0300\u0441\u044A\u0442
+devices.profile.direct=\u0414\u0438\u0440\u0435\u043A\u0442\u043D\u043E
+ConfigView.label.start=\u041F\u0443\u0441\u043A\u0430\u043D\u0435
+IrcClient.joined=\u043F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u0435\u043D
+label.properties=\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430
+device.renderer.remove_all.desc=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0430\u0442 \u0432\u0441\u0438\u0447\u043A\u0438 \u043E\u043D\u0430\u0433\u043B\u0435\u0434\u0438\u0442\u0435\u043B\u0438 \u0438 \u0442\u0435\u0445\u043D\u0438\u0442\u0435 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0438\u044F?
+#Used by the webui plugin
+MyTorrentsView.menu.removeand.deletedata=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 &\u0434\u0430\u043D\u043D\u0438
+ConfigView.section.transfer.autospeed.downadjratio=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\:\u043A\u0430\u0447\u0432\u0430\u043D\u0435\n(\u043F\u0440. 2.0 \u2192 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435\u0442\u043E \u043F\u0440\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0435 \u0443\u0434\u0432\u043E\u0435\u043D\u043E\u0442\u043E \ [...]
+label.lang.upper.case=\u0421 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0438 \u0431\u0443\u043A\u0432\u0438 (\u043F\u043E\u043C\u0430\u0433\u0430 \u0432 \u0438\u0437\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438\u044F \u043E\u043F\u0438\u0442 \u043F\u0440\u0438 \u0442\u0435\u0437\u0438, \u043F\u0440\u0438 \u043A\u043E\u0438\u04 [...]
+subscriptions.config.maxresults=\u041C\u0430\u043A\u0441. \u0431\u0440\u043E\u0439 \u0437\u0430\u043F\u043E\u043C\u043D\u0435\u043D\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u0437\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+label.access.denied=\u041E\u0442\u043A\u0430\u0437\u0430\u043D \u0434\u043E\u0441\u0442\u044A\u043F
+wizard.multitracker.edit.title=\u041C\u0443\u043B\u0442\u0438-\u0442\u0440\u0430\u043A\u0435\u0440 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440
+Scrape.status.networkdisabled=\u0418\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+wizard.choosetorrent=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B \u0437\u0430 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435
+ConfigView.label.info.in.window.title=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0442\u0435 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u044F \u0438 \u0442.\u043D. \u0432 \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430
+health.explain.green=\u041E\u0437\u043D\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0432\u0441\u0438\u0447\u043A\u043E \u0432\u044A\u0440\u0432\u0438 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+MainWindow.menu.speed_limits.info.prof=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043F\u0440\u043E\u0444\u0438\u043B '%1'
+Peers.column.UpDownRatio=\u041A\u0430\u0447\u0432\u0430\u043D\u0435\:\u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.tracker.checkip=\u0410\u0432\u0442\u043E-\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u044A\u043D\u0448\u043D\u0438\u044F IP \u0430\u0434\u0440\u0435\u0441\u0085\u2026
+Formats.units.Gibit=Gibit
+ConfigView.pluginlist.uninstallSelected=\u0414\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E
+dlg.auth.validating.subtitle=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0432\u0430\u043B\u0438\u0434\u043D\u043E\u0441\u0442\u2026
+FilesView.name.fastRename=\u0411\u044A\u0440\u0437\u043E \u043F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435
+security.crypto.reason=\u041F\u0440\u0438\u0447\u0438\u043D\u0430 \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
+GeneralView.label.totalsize=\u041E\u0431\u0449 \u0440\u0430\u0437\u043C\u0435\u0440\:
+ConfigView.section.language.UpdateURL=URL \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+OpenTorrentWindow.mb.notTorrent.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+GeneralView.label.totalspeed=\u0421\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0440\u043E\u044F\u043A\u0430\:
+ConfigView.label.overrideip=\u041F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 IP(-\u0442\u0430\u0442\u0430) \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430 \u0437\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435 - ';' \u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B \u0430\u043A\u043E \u0441\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u043E\u0442 1 \u0437\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u043 [...]
+seedmore.shareratio=\u041C\u0435\u0441\u0442\u043D\u043E\u0442\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E \u0437\u0430 \u0442\u043E\u0437\u0438 \u0442\u043E\u0440\u0435\u043D\u0442 \u0435
+ConfigView.section.connection.encryption.encrypt.fallback_outgoing=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438, \u0430\u043A\u043E \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438 \u043E\u043F\u0438\u0442 \u0437\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0430 \u0432\u0440\u044A\u043 [...]
+GeneralView.torrent_created_on_and_by=%1 \u043E\u0442 %2
+MyTorrentsView.menu.manual.shared_torrents=\u0420\u044A\u0447\u043D\u043E (\u0441\u0440\u0435\u0434 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u0442\u0435)
+ConfigView.section.style.useCustomTabs=\u0420\u0430\u0437\u0434\u0435\u043B\u0438, \u043A\u043E\u0438\u0442\u043E \u043C\u043E\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0437\u0430\u0442\u0432\u0430\u0440\u044F\u0442 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+device.mediaserver.configure=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 \u043C\u0435\u0441\u0442\u043D\u0438\u044F \u043C\u0435\u0434\u0438\u0435\u043D \u0441\u044A\u0440\u0432\u044A\u0440
+filter.header.matches2=(\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043E\u0442 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E\: %1,%2 \u0430\u043A\u0442\u0438\u0432\u043D\u0438)
+webui.upnpenable=\u0421 UPnP \u0437\u0430 \u0442\u043E\u0437\u0438 \u043F\u043E\u0440\u0442
+filter.header.matches1=(\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043E\u0442 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E\: %1)
+ConfigView.section.mode.intermediate.text1=\u041F\u043E\u0432\u0435\u0447\u0435 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B, \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u0438 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F.
+ConfigView.label.open_transfer_bar_on_start=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0437\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+label.no.download.selected=\u041D\u044F\u043C\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+MainWindow.menu.speed_limits.schedule=\u0413\u0440\u0430\u0444\u0438\u043A \u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u2026
+friend.mod.subs=\u0421 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u0441\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u044F\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+MainWindow.menu.window.zoom.maximize=\u041C\u0430\u043A\u0441\u0438\u043C\u0438\u0437\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.file.save.peers.enable=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0437\u0430 \u0431\u044A\u0440\u0437\u043E \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0441\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435
+DHTView.transport.received=\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u043E
+TableColumn.header.peakdown.info=\u0412\u044A\u0440\u0445\u043E\u0432\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+azbuddy.tracker.enabled=\u0421 '\u041B\u0430\u043D\u0441\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0434\u0440\u0443\u0436\u043A\u0430' \u0441\u0435 \u0434\u0430\u0432\u0430 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u0441 \u0434\u0440\u0443\u0436\u043A\u0438
+OpenTorrentWindow.startMode.queued=\u041D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430
+ConfigView.section.mode.beginner.wiki.definitions=\u0420\u0435\u0447\u043D\u0438\u043A \u043D\u0430 BitTorrent
+Wizard.Subscription.optin.description=\u0410\u043A\u043E \u0441\u0435 \u0432\u043A\u043B\u044E\u0447\u0430\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438\u0442\u0435, Vuze \u0449\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u0441\u044A\u0441 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E \u0432 \u043C\u0435\u0441\u0442\u043D\u043 [...]
+ConfigView.section.tracker.enablecategories=\u041E\u0442\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043F\u043E \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+IPChecker.external.ipnotfound=IP \u0430\u0434\u0440\u0435\u0441\u044A\u0442 \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D
+tps.type.pex=PEX
+remote.pairing.test.running=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442\u2026
+search.export.all=\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D\u0438\u0442\u0435 \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u2026
+OpenTorrentWindow.simple.open=\u041C\u044F\u0441\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 (\u0444\u0430\u0439\u043B, URL, \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435)
+ClientStats.column.discarded={PeersView.discarded}
+GeneralView.label.updatein.stopped=\u0421\u043F\u0440\u044F\u043D\u043E
+OpenTorrentWindow.mb.askCreateDir.title=\u0426\u0435\u043B\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430
+PeersView.downloadspeed=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u0441
+security.certtruster.yes=\u0414\u0430
+ConfigView.label.opendetails=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0437\u0434\u0435\u043B '\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438'
+beta.wizard.version=\u0422\u0435\u043A\u0443\u0449\u043E \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F %1
+ipCheckerWizard.title=\u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u0437\u0430 IP \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430
+LoggerView.excludeAll=\u0411\u0435\u0437 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0435\u0434\u043E\u0432\u0435 \u043E\u0442\u0433\u043E\u0432\u0430\u0440\u044F\u0449\u0438 \u043D\u0430 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u0438\u044F \u0438\u0437\u0440\u0430\u0437\:
+dlg.auth.revoked.line1=\u0422\u043E\u0437\u0438 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u043E\u043D\u0435\u043D \u043A\u043E\u0434 \u0437\u0430 Vuze \u041F\u043B\u044E\u0441 \u0435 \u0430\u043D\u0443\u043B\u0438\u0440\u0430\u043D. \u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u043F\u043E-\u0434\u043E\u043B\u0443 \u0437\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F.
+tag.type.ds.incomp={label.incomplete}
+TableColumn.header.tracker=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440
+ConfigView.section.file.perf.cache.size.explain=\u041A\u0435\u0448\u044A\u0442 \u0441\u0435 \u043F\u043E\u043B\u0437\u0432\u0430 \u0437\u0430 \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435 \u0447\u0435\u0442\u0435\u043D\u0438\u044F\u0442\u0430/\u0437\u0430\u043F\u0438\u0441\u0438\u0442\u0435 \u043E\u0442/\u0434\u043E \u0434\u0438\u0441\u043A\u0430. \u041E\u0441\u0432\u0435\u043D, \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0 [...]
+ConfigView.section.proxy.peer.same=\u0415\u0434\u043D\u0438 \u0438 \u0441\u044A\u0449\u0438 \u043F\u0440\u043E\u043A\u0441\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043A\u043E\u043C\u0443\u043D\u0438\u043A\u0430\u0446\u0438\u0438 \u0438 \u0442\u0435\u0437\u0438 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+download.removerules.unauthorised=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435\u043E\u0442\u043E\u0440\u0438\u0437\u0438\u0440\u0430\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+device.rss.view=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u0433\u043B\u0435\u0434\u0430\u043D\u0435 \u043D\u0430 \u0435\u043C\u0438\u0441\u0438\u044F
+wizard.addingmt=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043C\u0443\u043B\u0442\u0438-\u0442\u0440\u0430\u043A\u0435\u0440 \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+TableColumn.header.trancode_qpos.info=\u041C\u044F\u0441\u0442\u043E \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 \u0437\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+Progress.reporting.action.label.detail=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+importTorrentWizard.importfile.title=\u0418\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+SpeedView.stats.total=\u041E\u0431\u0449\u043E
+PiecesView.numberofblocks=\u0431\u0440. \u0431\u043B\u043E\u043A\u043E\u0432\u0435
+MainWindow.menu.view.plugins=&\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+health.explain.share=\u041E\u0437\u043D\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u0435 \u0438\u043B\u0438 \u043F\u043E\u0434\u0441\u043B\u043E\u043D\u0435\u043D, \u0438\u043B\u0438 \u043F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D
+torrent.fix.corrupt.result.fixed=\u041D\u043E\u0432\u043E \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 %1 \u0435 \u0438\u0437\u0447\u0438\u0441\u043B\u0435\u043D\u043E.\n\u0414\u0430 \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043D\u0435 '\u0414\u0430' \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442.
+Files.column.storagetype=\u0422\u0438\u043F \u0441\u044A\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435
+MainWindow.menu.speed_limits.profiles=\u041F\u0440\u043E\u0444\u0438\u043B\u0438
+ConfigView.section.security.unlockkey.button=\u041E\u0442\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+LoggerView.autoscroll=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u0432\u044A\u0440\u0442\u0430\u043D\u0435
+installPluginsWizard.installMode.info.text=\u041D\u0435 \u0441\u0430 \u043D\u0443\u0436\u043D\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438, \u0437\u0430 \u0434\u0430 \u0440\u0430\u0431\u043E\u0442\u0438 \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u043E Vuze, \u043D\u043E \u0442\u0435 \u043F\u0440\u0438\u0431\u0430\u0432\u044F\u0442 \u0434\u043E\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0438 \u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u04 [...]
+dht.port=UDP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0431\u0430\u0437\u0430\u0442\u0430 \u0434\u0430\u043D\u043D\u0438
+plugins.basicview.log=\u0414\u043D\u0435\u0432\u043D\u0438\u043A\:
+ConfigView.section.file.max_open_files.explain=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u0435\u043A\u0430\u043B\u0435\u043D\u043E \u043C\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u043F\u0440\u0435\u0434\u0438\u0437\u0432\u0438\u043A\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 \u0441 \u041E\u0421 \u043F\u043E\u0440\u0430\u0434\u0438 \u043E\u0433\u0440\u0430\u043D\u0438\ [...]
+security.certcreate.ok=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435
+webui.password=\u041F\u0430\u0440\u043E\u043B\u0430
+memmon.low.warning=\u0421\u0432\u044A\u0440\u0448\u0432\u0430 \u043F\u0430\u043C\u0435\u0442\u0442\u0430, \u043E\u0441\u0442\u0430\u0432\u0430\u0442 %1 \u043E\u0442 %2.\n\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044F\u043D\u0435\u0442\u043E \u0449\u0435 \u0441\u0435 \u0432\u043B\u043E\u0448\u0438 \u0438 \u043D\u0430\u043A\u0440\u0430\u044F Vuze \u0449\u0435 \u0441\u043F\u0440\u0435 \u0434\u0430 \u0440\u0430\u0431\u043E\u0442\u0438\n\u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u04 [...]
+installPluginsWizard.installMode.user=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430(\u0438) \u0437\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u044F \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B
+TableColumn.header.readrate.info=\u041E\u0446\u0435\u043D\u044F\u0432\u0430\u043D\u0435 \u0447\u0435\u0442\u0435\u043D\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B
+MySharesView.name=\u0418\u043C\u0435
+ConfigView.label.passwordconfirm=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430
+PiecesView.priority=\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+OpenTorrentWindow.xOfTotal=(%1 \u043E\u0442 %2)
+br.test=\u041F\u0440\u043E\u0431\u0430
+window.updateswt.cancel=\u041E\u0442\u043A\u0430\u0437
+ConfigView.label.disconnetseed.tooltip=\u041F\u0440\u0438 \u043F\u043E\u0441\u044F\u0432\u043A\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043A\u044A\u0441\u043D\u0430\u0442 \u0432\u0441\u0438\u0447\u043A\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0438, \u043A\u043E\u0438\u0442\u043E \u0441\u0435\u044F\u0442.\n\u041D\u044F\u043C\u0430 \u043D\u0443\u0436\u0434\u0430 \u043E\u0442 \u043A\u043E\u043C\u0443\u043D\u0438\u043A\u0430\u04 [...]
+configureWizard.file.invalidPath=\u0413\u0440\u0435\u0448\u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+ConfigView.section.tracker.password=\u041F\u0430\u0440\u043E\u043B\u0430
+v3.deleteContent.applyToAll=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435 \u043D\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043E \u0437\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 %1 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u043D\u0435\u0449\u0430
+MagnetPlugin.report.secondarylookup.ok=\u0412\u0442\u043E\u0440\u0438\u0447\u043D\u043E\u0442\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435 \u0443\u0441\u043F\u044F
+alert.copy.on.comp.fail=\u0418\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0435 %1\n\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 '%2'\: %3
+GeneralView.label.maxuploads.tooltip=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u0435\u043D \u0431\u0440\u043E\u0439 \u043D\u0435\u0437\u0430\u043F\u0443\u0448\u0435\u043D\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u043F\u043E \u0432\u0441\u044F\u043A\u043E \u0432\u0440\u0435\u043C\u0435.
+Scrape.status.error.badURL=URL \u043D\u0430 \u043E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0435 \u0441\u043B\u0435\u0434\u0432\u0430 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438\u0442\u0435 \u043D\u0430 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435\u0442\u043E.
+exportTorrentWizard.process.outputfileexists.message=\u0414\u0430 \u0441\u0435 \u043F\u0440\u0435\u0437\u0430\u043F\u0438\u0448\u0435 \u043B\u0438 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438\u044F\u0442 \u0444\u0430\u0439\u043B?
+cat.share=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044F\u0442\u0430 \u0441 \u043E\u0431\u0449\u043D\u043E\u0441\u0442\u0430
+ConfigView.section.transfer.lan.downloadrate=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0437\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430 KB/s [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+Button.remove=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+MyTorrents.bigView.header={sidebar.LibraryDL}
+ConfigView.section.connection.advanced.IPDiffServ=\u0421\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0437\u0430 DiffServ \u043D\u0430 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438 \u043F\u0430\u043A\u0435\u0442\u0438 (TOS \u043F\u043E\u043B\u0435)
+SpeedView.stats.now.tooltip=\u041E\u0431\u0449\u043E (\u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B)
+ConfigView.label.pause.downloads.on.exit=\u041F\u0430\u0443\u0437\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u043F\u0440\u0438 \u0438\u0437\u0445\u043E\u0434
+device.export.select.template.file=\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+ConfigView.section.security.resetkey.warning=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u044F\u0442 \u043C\u0435\u0441\u0442\u043D\u0438\u0442\u0435 \u043A\u043B\u044E\u0447\u043E\u0432\u0435 \u0437\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435? \u0426\u044F\u043B\u0430\u0442\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0448\u0438\u0444\u0440\u043E\u0 [...]
+ConfigView.section.connection.nondata.udp.same=\u0415\u0434\u0438\u043D \u0438 \u0441\u044A\u0449 UDP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0420\u0411\u0414 \u0438 UDP \u0442\u0440\u0430\u043A\u0435\u0440
+iconBar.up=\u041D\u0430\u0433\u043E\u0440\u0435
+ConfigView.label.seeding.fakeFullCopySeedStart.tooltip=\u0427\u0435\u0441\u0442\u043E \u0442\u043E\u0440\u0435\u043D\u0442\u0438, \u0438\u043C\u0430\u0449\u0438 \u043D\u0438\u0441\u044A\u043A \u043F\u043E\u0441\u044F\u0432\u043A\u043E\u0432 \u0431\u0440\u043E\u0439 \u0438 \u0433\u043E\u043B\u044F\u043C \u0431\u0440\u043E\u0439 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0437\u043D\u0430\u0447\u0438, \u0447\u0435 \u043D\u044F\u043C\u0430 \u043F\u [...]
+ConfigView.section.file.writemblimit.explain=\u041A\u043E\u0433\u0430\u0442\u043E \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441 \u0432\u044A\u0440\u0445\u0443 \u0434\u0438\u0441\u043A\u0430 \u0435 \u043F\u043E-\u043D\u0438\u0441\u043A\u0430 \u043E\u0442 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435, \u0442\u043E\u0437\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u044A [...]
+iconBar.transcode.tooltip=\u041C\u0435\u0434\u0438\u044F\u0442\u0430 \u0434\u0430 \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u043D\u0430 \u0437\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+SpeedTestWizard.set.download.label=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\:
+#
+#2.0.7.0
+#
+security.certtruster.title=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043D\u043E\u0441\u0442\u0442\u0430 \u0437\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
+ConfigView.label.downloading.reTest=\u041F\u0440\u0435\u043E\u0446\u0435\u043D\u043A\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u0432\u0441\u0435\u043A\u0438 [min; 0 \= \u043D\u0438\u043A\u043E\u0433\u0430]
+general.dont.ask.again=\u0411\u0435\u0437 \u043D\u043E\u0432\u043E \u043F\u0438\u0442\u0430\u043D\u0435
+ConfigView.section.style.dataStatsOnly=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430 \u0434\u0430\u043D\u043D\u0438 (\u0441\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u0437\u0438 \u0437\u0430 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B)
+SpeedView.title.full=\u0414\u0435\u0439\u043D\u043E\u0441\u0442
+PeersView.download=\u0421\u0432\u0430\u043B\u044F\u043D\u0435
+tps.status.unavailable=\u041D\u0435 \u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u043E
+subscriptions.column.category={TableColumn.header.category}
+resetconfig.warn.title=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
+ConfigView.pluginlist.column.type.shared=\u0421\u043F\u043E\u0434\u0435\u043B\u0435\u043D
+Button.upgrade=\u041D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435
+TorrentOptionsView.param.max.uploads.when.busy=KB/s \u043C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0438\u0433\u0430\u043D\u0435 \u043D\u0430 \u0433\u043B\u043E\u0431\u0430\u043B\u043D\u043E\u0442\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 [0\: \u0438\u0437\u043A\u043B\u044E\u0447\u0 [...]
+authenticator.password=\u041F\u0430\u0440\u043E\u043B\u0430
+v3.deviceview.infobar.line2=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0432\u0438\u0434\u0435\u043E \u043D\u0430 \u043A\u043E\u0439 \u0434\u0430 \u0435 \u0435\u043A\u0440\u0430\u043D - iPhone, iPod, TV
+v3.deviceview.infobar.line1=\u0412\u043B\u0430\u0447\u0435\u043D\u0435/\u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0432\u0438\u0434\u0435\u043E \u043E\u0442 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430 \u0432 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u043F\u043E \u0438\u0437\u0431\u043E\u0440.
+LocaleUtil.label.hint.doubleclick=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\: \u0441 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0432\u044A\u0440\u0445\u0443 \u0434\u0430\u0434\u0435\u043D \u0440\u0435\u0434 \u0441\u0435 \u0438\u0437\u0431\u0438\u0440\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430 \u0438 \u0441\u0435 \u0437\u0430\u0442\u0432\u0430\u0440\u044F \u0434\u0438\u0430\u043B\u043E\u0433\u0430
+fileDownloadWindow.state_downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435
+v3.MainWindow.tab.advanced=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438
+openUrl.referrer.info=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0435 \u0441\u0430\u043C\u043E \u0437\u0430 \u0443\u0435\u0431-\u043C\u0435\u0441\u0442\u0430, \u043A\u043E\u0438\u0442\u043E \u0433\u043E \u0438\u0437\u0438\u0441\u043A\u0432\u0430\u0442
+Wizard.Subscription.subscribe.subscriptions=\u041F\u043E\u0434\u043E\u0431\u043D\u0438 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+ConfigView.option.dm.dblclick.show._windows=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B(\u043E\u0432\u0435) \u0432 Explorer
+MyTorrentsView.menu.manual.per_peer=\u0420\u044A\u0447\u043D\u043E (\u043F\u043E \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D)
+ConfigView.section.style.colorOverrides=\u041F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0446\u0432\u0435\u0442\u043E\u0432\u0435
+device.itunes.install=\u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D iTunes
+ConfigView.pluginlist.column.type=\u0422\u0438\u043F
+ConfigView.section.files=\u0424\u0430\u0439\u043B\u043E\u0432\u0435
+AdvRenameWindow.message=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043D\u043E\u0432\u043E \u0438\u043C\u0435 \u0437\u0430 \u0442\u043E\u0432\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435.
+popup.file.finished=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 "%1".
+UpdateWindow.columns.version=\u0412\u0435\u0440\u0441\u0438\u044F
+ManagerItem.moving=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435
+wizard.filesaved=\u0424\u0430\u0439\u043B\u044A\u0442 \u0435 \u0437\u0430\u043F\u0430\u0437\u0435\u043D.
+exportTorrentWizard.exportfile.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0444\u0430\u0439\u043B \u0437\u0430 \u0435\u043A\u0441\u043F\u043E\u0440\u0442
+TableColumn.header.seed_to_peer_ratio.info=\u041E\u0431\u0449\u043E \u0437\u0430 \u0440\u043E\u044F\u043A\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0441\u0435\u0435\u043D\u0435/\u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+ManagerItem.stopping=\u0421\u043F\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.proxy.peer.informtracker=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043A\u044A\u043C \u0442\u0440\u0430\u043A\u0435\u0440\u0430 \u0437\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435
+MainWindow.menu.transfers.pausetransfersfor.keybinding=Meta+Shift+P
+ConfigView.label.tcplistenport=\u0412\u0445\u043E\u0434\u044F\u0449 TCP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0441\u043B\u0443\u0448\u0430\u043D\u0435
+TableColumn.header.unopened=\u041D\u043E\u0432\u043E
+wizard.newtorrent.byo.help=\u0421\u0433\u043B\u043E\u0431\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442 \u043E\u0442 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0438 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438
+dlg.player.install.subtitle=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435
+SpeedView.stats.autospeed.disabled=\u0422\u0430\u0437\u0438 \u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0430 \u0435 \u0438\u043B\u0438 \u0441\u043F\u0440\u044F\u043D\u0430 (\u0442\u0440\u044F\u0431\u0432\u0430 \u0420\u0411\u0414), \u0438\u043B\u0438 \u043D\u0435 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 (\u0440\u044A\u0447\u043D\u043E \u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\ [...]
+metasearch.addtemplate.failed.title=\u041F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F
+wizard.multitracker.edit.edit=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.hap=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E
+DHTView.general.unknown=\u041D\u0435\u043F\u043E\u0437\u043D\u0430\u0442\u0438\:
+ConfigView.label.ignoreSeeds=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 \u043D\u0430\u0439-\u043C\u0430\u043B\u043A\u043E
+PeersView.I2=\u0418 (\u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u043E \u0437\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F)
+PeersView.I1=\u0418 (\u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u043E \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F)
+azbuddy.ui.table.msg_out=\u0418\u0437\u0445\u043E\u0434\u044F\u0449\u0438
+label.connections=\u0412\u0440\u044A\u0437\u043A\u0438
+torrent.fix.corrupt=\u041F\u043E\u043F\u0440\u0430\u0432\u043A\u0430 \u043D\u0430 \u043F\u043E\u0432\u0440\u0435\u0434\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442\u2026
+PasswordWindow.title=Vuze \u0435 \u0437\u0430\u043A\u043B\u044E\u0447\u0435\u043D
+MainWindow.menu.file.create=&\u041D\u043E\u0432 \u0442\u043E\u0440\u0435\u043D\u0442\u0085\u2026
+TrackerAvail.column.peers={Trackers.column.peers}
+ConfigView.section.proxy.host=\u041F\u043E\u0434\u0441\u043B\u043E\u043D
+plugins.basicview.clear=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435
+ConfigView.label.passwordmatchnone=\u041D\u0435
+ConfigView.section.connection.networks.prompt=\u041F\u043E\u0434\u0441\u0435\u0449\u0430\u043D\u0435 \u0437\u0430 \u0438\u0437\u0431\u043E\u0440, \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u0434\u043E\u0431\u0430\u0432\u044F \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0441 \u0430\u043D\u043E\u043D\u0438\u043C\u0435\u043D \u0442\u0440\u0430\u043A\u0435\u0440
+plugin.download.remove.veto.notstopped=\u0421\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0435, \u0437\u0430\u0449\u043E\u0442\u043E \u043D\u0435 \u0435 \u0441\u043F\u0440\u044F\u043D\u043E
+br.backup.auto.retain=\u0411\u0440\u043E\u0439 \u0437\u0430\u043F\u0430\u0300\u0441\u0438 \u0437\u0430 \u0441\u044A\u0445\u0440\u0430\u043D\u044F\u0432\u0430\u043D\u0435
+authenticator.torrent=\u0422\u043E\u0440\u0435\u043D\u0442
+MainWindow.menu.transfers=\u0422&\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+OpenTorrentWindow.mb.notTorrent.retry=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 magnet
+DHTView.general.replacements=\u0417\u0430\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0438\u044F\:
+exportTorrentWizard.torrentfile.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+window.networkselection.info=\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u0438\u044F\u0442 \u043F\u043E-\u0434\u043E\u043B\u0443 \u0442\u043E\u0440\u0435\u043D\u0442 \u0438\u043C\u0430 \u0442\u0440\u0430\u043A\u0435\u0440(\u0438), \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430\u0449(\u0438) \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043C\u0440\u0435\u0436\u0438.\n\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0430\u0442 \u0442\u0435\u0437\u0438 \u0437\u0430 \u0442\u04 [...]
+OpenTorrentWindow.torrentTable.saveLocation=\u041C\u044F\u0441\u0442\u043E \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+dlg.stream.plus.subtitle={Button.upgrade}
+Alert.failed.update.url=http\://wiki.vuze.com/w/Failed_Update
+ConfigView.section.style.enableXPStyle=\u041A\u0430\u043A\u0442\u043E \u0435 \u0432 XP (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+MainWindow.dialog.choose.savepath=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043F\u044A\u0442 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+dlg.auth.tos=\u041F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438 \u0438 \u043F\u0440\u0438\u0435\u0442\u0438 \u0441\u0430 <A HREF\="tos">\u0443\u0441\u043B\u043E\u0432\u0438\u044F\u0442\u0430 \u043D\u0430 \u0443\u0441\u043B\u0443\u0433\u0430\u0442\u0430.</A>
+label.fails=\u041F\u0440\u043E\u0432\u0430\u0300\u043B\u0438
+wizard.torrentFile=\u0422\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B
+webui.connectiontest=\t\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u0440\u043E\u0431\u0430 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430
+ConfigView.section.style.colorOverride.error=\u0413\u0440\u0435\u0448\u043A\u0430
+speedtest.wizard.select.bt=\u041F\u0440\u043E\u0431\u0430 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u043D \u0437\u0430 Bittorrent
+label.move.on.comp=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435
+ConfigView.section.style.usePathFinder=\u0421 'Path Finder' \u0432\u043C\u0435\u0441\u0442\u043E 'Finder'
+ConfigView.tb.delete.ask=\u041F\u0438\u0442\u0430\u043D\u0435
+v3.MainWindow.button.start=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435
+FilesView.rename.filename.title=\u0421\u043C\u044F\u043D\u0430 \u0438\u043C\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+Button.agree=\u0421\u044A\u0433\u043B\u0430\u0441\u0438\u0435
+ConfigView.label.defaultstarttorrentsstopped=\u041F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043E\u0431\u0430\u0432\u044F\u0442 \u043D\u043E\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0432 \u0441\u043F\u0440\u044F\u043D\u043E \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+MyTorrentsView.dialog.setFilter.title=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u0444\u0438\u043B\u0442\u044A\u0440\u0430
+security.certtruster.resource=\u0420\u0435\u0441\u0443\u0440\u0441\:
+ConfigView.section.connection.encryption=\u0422\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442\u043D\u043E \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435
+TableColumn.header.pieces=\u041F\u0430\u0440\u0447\u0435\u0442\u0430
+Views.plugins.Distributed.DB.title=\u0420\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0430 \u0411\u0414
+upnp.wiki_link=\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0430 Vuze \u0423\u0438\u043A\u0438 \u0437\u0430 UPnP
+ConfigView.label.queue.minQueueingShareRatio=\u0422\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u0434\u0430 \u043D\u0435 \u0435 \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430 \u0438\u043B\u0438 \u0441\u043F\u0440\u044F\u043D \u0434\u043E \u0434\u043E\u0441\u0442\u0438\u0433\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+ConfigView.section.server.enableudpprobe=\u0421 UDP \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0430 \u043F\u0440\u043E\u0431\u0430 \u0437\u0430 HTTP \u0442\u0440\u0430\u043A\u0435\u0440\u0438
+TableColumn.header.OnlyCDing4.info=\u0412\u0440\u0435\u043C\u0435\u0442\u043E \u043F\u0440\u0435\u0437 \u043A\u043E\u0435\u0442\u043E \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u0441\u0430\u043C\u043E \u0435 \u0441\u044F\u0442. \u041D\u0435 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 \u0432\u0440\u0435\u043C\u0435\u0442\u043E \u043F\u0440\u0435\u0437 \u043A\u043E\u0435\u0442\u043E \u0435 \u0441\u0432\u0430\u043B\u044F\u043D \u0438 \u0441\u044F\u0442.
+label.incomplete=\u041D\u0435\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+torrent.avail.title=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438 \u0437\u0430 '%1'
+DHTView.db.title=\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u0438
+UpdateWindow.status.downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.logging.loggerenable=\u0412\u043E\u0434\u0435\u043D\u0435 \u043D\u0430 \u0434\u043D\u0435\u0432\u043D\u0438\u043A
+azbuddy.ui.table.con=Con
+Peers.column.Encryption=\u0428\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435
+sidebar.header.plugins=\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0438 \u0434\u043E\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u044F
+ConfigView.section.br.overview=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0438\u0437\u0438\u0441\u043A\u0432\u0430\u043D\u0438\u044F\u0442\u0430 \u0437\u0430 \u0437\u0430\u043F\u0430\u0300\u0441 \u0437\u0430 Vuze. \u0414\u0430\u0432\u0430 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442 \u0437\u0430 \u0432\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430 [...]
+device.showGeneric=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+subscriptions.column.nb-subscribers=\u0410\u0431\u043E\u043D\u0430\u0442\u0438
+ConfigView.section.style.use_show_parent_folder.tooltip=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u0430\u0437\u0438 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u0449\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0441 \u043F\u0440\u0430 [...]
+PiecesView.DistributionView.title=\u0420\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+MainWindow.menu.view.mytorrents.keybinding=Meta+1
+window.update.noupdates.text=\u041D\u044F\u043C\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u043D\u043E\u0432\u0438 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F.\n\n\u041F\u043E\u0437\u0434\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\!
+ConfigView.pluginlist.noplugins=\u041D\u044F\u043C\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438.
+Views.plugins.aznetstatus.title=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+GeneralView.label.status.pieces_available=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+ConfigView.section.file.defaultdir.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 (\u0431\u0435\u0437 \u043F\u043E\u0434\u0441\u0435\u0449\u0430\u043D\u0435)
+dlg.auth.enter.cancelled=\u0422\u0435\u043A\u0443\u0449\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u0435 \u043E\u0442\u043C\u0435\u043D\u0435\u043D.
+ConfigView.section.mode.intermediate.wiki.publish=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+SpeedTestWizard.abort.message.failed.peers=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u0441\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435\u0442\u043E \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+ConfigView.section.interface.password={ConfigView.section.tracker.password}
+TableColumn.header.down=\u0421\u0432\u0430\u043B\u0435\u043D\u043E
+tag.type.ipset=\u041D\u0430\u0431\u043E\u0440 \u043E\u0442 IP
+ConfigView.section.queue.seeding.firstPriority=\u041D\u0430\u0439-\u0432\u0438\u0441\u043E\u043A \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+SpeedView.stats.title=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438
+ConfigView.section.transfer.autospeed.minupload.tooltip=\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E \u043D\u044F\u043C\u0430 \u0434\u0430 \u0441\u0435 \u043D\u0430\u043C\u0430\u043B\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u043E\u0434 \u0442\u0430\u0437\u0438 \u0433\u0440\u0430\u043D\u0438\u0446\u0430
+ConfigView.section.ipfilter.list.banned=\u0435 \u0437\u0430\u0431\u0440\u0430\u043D\u0435\u043D
+max.sr.window.message=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u0446\u0435\u043B\u0435\u0432\u0438\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 [0\:\u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E]
+ConfigView.section.proxy.username=\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u043E \u0438\u043C\u0435
+IPChecker.external.service.dyndns.name=DynDNS
+ConfigView.section.connection.advanced.info.link=\u0417\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0434\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0438
+dht.advanced.label=\u041F\u0440\u043E\u043C\u044F\u043D\u0430\u0442\u0430 \u043D\u0430 \u0442\u0435\u0437\u0438 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430 \u0434\u043E\u0431\u0440\u043E \u043F\u043E\u0437\u043D\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u0441\u0442\u0432\u0438\u044F\u0442\u0430
+UpdateWindow.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+wizard.file=\u0424\u0430\u0439\u043B\:
+SpeedTestWizard.test.panel.label=\u041F\u0440\u043E\u0431\u0430 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 Vuze\:
+UpdateMonitor.messagebox.restart.text=Vuze \u0442\u043E\u043A\u0443-\u0449\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0432\u0430\u0436\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0438 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u04 [...]
+DHTView.db.direct=\u0414\u0438\u0440\u0435\u043A\u0442\u043D\u043E
+ConfigView.section.file.readmblimit=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u043E \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0447\u0435\u0442\u0435\u043D\u0435 \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 (\u0432 %1)
+webui.enable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+beta.wizard.disable.title=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0435 \u043F\u0440\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435
+wizard.multitracker.edit.text=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435 \u043A\u0430\u0442\u043E \u0442\u0435\u043A\u0441\u0442
+trackername.prefs.title=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0437\u0430 \u043C\u043D\u043E\u0433\u043E\u0442\u0440\u0430\u043A\u0435\u0440\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+label.reapply=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435 \u043E\u0442\u043D\u043E\u0432\u043E
+Security.jar.signfail=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u043F\u043E\u0434\u043F\u0438\u0441\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 JAR - %1
+TagAddWindow.message=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u043E \u0438\u043C\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442
+v3.activity.remove.text=\u0414\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0435 \u043B\u0438 \u043D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435 '%1'?
+azbuddy.ui.table.online=\u0421\u0432\u044A\u0440\u0437\u0430\u043D
+TableColumn.header.sessionup=\u0421\u0435\u0441\u0438\u044F \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+upnp.portchange.alert=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 \u0441\u0430 \u043F\u0440\u043E\u043C\u0435\u043D\u0435\u043D\u0438 \u0437\u0430 \u0438\u0437\u0431\u044F\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 \u0441 UPnP \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\: %1 [\u0441\u0442\u0430\u0440 \u043F\u043E\u0440\u0442\=%2] %3 [\u0441\u0442\u0430\u0440 \u043F\u043E\u044 [...]
+ConfigView.section.transfer=\u0422\u0440\u0430\u043D\u0441\u0444\u0435\u0440
+ConfigView.label.incrementalfile=\u0418\u043D\u043A\u0440\u0435\u043C\u0435\u043D\u0442\u0430\u043B\u043D\u043E \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u043F\u0440\u0438 FAT32 \u043F\u043E\u0434 \u041B\u0438\u043D\u0443\u043A\u0441)
+menu.delete.options={iconBar.remove}\u2026
+swt.install.window.ok=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435
+fileDownloadWindow.downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043E\u0442\:
+TableColumn.header.AvgAvail.info=\u0421\u0443\u043C\u0430 \u043E\u0442 \u043D\u0430\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438 \u043D\u0430 \u0431\u0440. \u043F\u0430\u0440\u0447\u0435\u0442\u0430 \u0438 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438 \u043D\u0430 \u0431\u0440. \u0432\u0440\u044A\u0437\u043A\u0438
+wizard.hint.directory=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\:\t\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0441 \u0432\u043B\u0430\u0447\u0435\u043D\u0435-\u043F\u0443\u0441\u043A\u0430\u043D\u0435
+PeersView.state.pending=\u0427\u0430\u043A\u0430\u0449\u043E
+device.view.heading=\u041C\u0435\u0434\u0438\u044F \u0437\u0430 %1
+PeersView.incomingreqcount.info=\u0411\u0440\u043E\u0439 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u043D\u0430\u043F\u0440\u0430\u0432\u0435\u043D\u0438 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+v3.MainWindow.menu.advanced=\u0420&\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438
+ConfigView.label.minimizetotray=\u041C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043F\u043E\u0441\u0442\u0430\u0432\u044F \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0438\u044F \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440
+TableColumn.header.ipfilter=\u0410\u043A\u0442\u0438\u0432\u0435\u043D IP \u0444\u0438\u043B\u0442\u044A\u0440
+device.tag=\u0415\u0442\u0438\u043A\u0435\u0442 \u0437\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+TableColumn.header.path={FilesView.path}
+device.upnp.present_url=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+PeersView.C2=C (\u0440\u0430\u0437\u043E\u0447\u0430\u0440\u043E\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F)
+wizard.maketorrent.piecesize=\u041F\u0430\u0440\u0447\u0435\u0442\u0430 \u0440\u0430\u0437\u043C\u0435\u0440
+PeersView.C1=C (\u0437\u0430\u043F\u0443\u0448\u0435\u043D \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F)
+ConfigView.section.security.resetcerts.warning.msg=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0438 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0442\u043E \u0437\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0438? \u0410\u043A\u043E \u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D \u0441\u0430\u043C\u043E\u043F\u043E\u0434\u043F\u0438\u0441\u0430\u0 [...]
+popup.error.hide=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435
+authenticator.savepassword=\u0417\u0430\u043F\u043E\u043C\u043D\u044F\u043D\u0435 \u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430\u0442\u0430
+TableColumn.header.profile.info=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D \u043F\u0440\u043E\u0444\u0438\u043B \u0437\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.stop.Hibernate=\u0425\u0438\u0431\u0435\u0440\u043D\u0430\u0446\u0438\u044F \u043D\u0430 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u0430
+v3.MainWindow.button.pause=\u041F\u0430\u0443\u0437\u0430
+ConfigView.label.closetotray._mac=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430 \u0432 \u0438\u043A\u043E\u043D\u0430 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E
+SpeedView.stats.idlePing=\u041D\u0435\u043D\u0430\u0442\u043E\u0432\u0430\u0440\u0435\u043D \u043F\u0438\u043D\u0433\:
+ConfigView.label.showsplash=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u0433\u043B\u0430\u0432\u0435\u043D \u0435\u043A\u0440\u0430\u043D
+subscriptions.info.avail=\u041D\u0435 \u0441\u0430 \u0434\u043E\u0431\u0430\u0432\u0435\u043D\u0438 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u0432\u0441\u0435 \u043E\u0449\u0435. \u041D\u0430\u043B\u0438\u0447\u043D\u0438 \u0441\u0430 %1 \u0437\u0430 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430.
+webui.protocol=\u041F\u0440\u043E\u0442\u043E\u043A\u043E\u043B
+label.initial_tags=\u041D\u0430\u0447\u0430\u043B\u043D\u0438 \u0435\u0442\u0438\u043A\u0435\u0442\u0438
+config.external.browser.switch.implic=\u041D\u0430\u043C\u0435\u0441\u0438
+DHTTransport.report.timeout_some=\u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0432\u0430\u043D\u0435, %1 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442\u0438 \u043E\u0442 %2, \u043D\u043E \u043D\u0435\u043F\u044A\u043B\u043D\u0438
+ConfigView.section.tracker=\u0422\u0440\u0430\u043A\u0435\u0440
+exportTorrentWizard.process.exportfail.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0435\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.interface.start.advanced=\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u0432 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D \u0438\u0437\u0433\u043B\u0435\u0434 (2.x)
+ConfigView.section.style.TagInSidebar=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438 \u0432 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430
+ConfigView.section.style.status=\u0417\u043E\u043D\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E\:
+GeneralView.label.timeelapsed=\u0418\u0437\u043C\u0438\u043D\u0430\u043B\u043E \u0432\u0440\u0435\u043C\u0435\:
+ConfigView.label.passwordmatchyes=\u0414\u0430
+installPluginsWizard.installMode.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0432\u0438\u0434\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F
+ConfigView.section.connection.group.peersources=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0438\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438
+TableColumn.header.tag.properties={label.properties}
+ConfigView.section.interface.wavlocation.info=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 .wav \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u043F\u0440\u0430\u0437\u043D\u043E \u0437\u0430 \u0437\u0432\u0443\u043A \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+DHTView.db.keys=\u041A\u043B\u044E\u0447\u043E\u0432\u0435
+ConfigView.section.file.max_open_files.tooltip=\u041F\u043E\u043B\u0435\u0437\u043D\u043E, \u0430\u043A\u043E \u0441\u0435 \u0441\u0432\u0430\u043B\u044F\u0442 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441\u044A\u0441 \u0441\u0442\u043E\u0442\u0438\u0446\u0438/\u0445\u0438\u043B\u044F\u0434\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0442\u044F\u0445 \u0438, \u0430\u043A\u043E \u0435 \u0434\u043E\u0441\u0442\u0438\u0433\u043D\u0430\u0442\u0430 \u0433\u0440\u0430\u043D\u [...]
+devices.sidebar.mainheader.tooltip=%1 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0441\u0430 \u0441\u043A\u0440\u0438\u0442\u0438 \u043A\u0430\u0442\u043E \u0431\u0430\u0437\u043E\u0432\u0438 \u0438\u043B\u0438 \u0431\u0435\u0437 \u0435\u0442\u0438\u043A\u0435\u0442.\n\u0421 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u0441\u0435 \u0440\u0430\u0437\u043A\u0440\u0438\u0432\u0430\u0442 \u043E\u0442 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u043D\u0438\u0442\ [...]
+ConfigView.label.startNumSeeds=\n\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0435\u0435\u043D\u0435 \u043F\u0440\u0438 \u043F\u043E-\u043C\u0430\u043B\u043A\u043E \u043E\u0442\n - \u043F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043E\u0441\u0442\u0430\u043D\u0430\u043B\u0438 \u043F\u0440\u0430\u0432\u0438\u043B\u0430
+ConfigView.section.file.decoder.showall=\u0412\u0437\u0435\u043C\u0430\u043D\u0435 \u043F\u0440\u0435\u0434\u0432\u0438\u0434 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u0438 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0438
+CacheView.writes.hits=\u0417\u0430\u043F\u0438\u0441\u0430\u043D\u043E
+TableColumn.header.sha1.info=SHA1 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0444\u0430\u0439\u043B\u0430 (\u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0438\u0437\u0446\u044F\u043B\u043E \u0441\u0432\u0430\u043B\u0435\u043D, \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u0438\u0437\u0447\u0438\u0441\u043B\u044F\u0432\u0430\u043D\u0435)
+installPluginsWizard.file.no_such_file=\u041D\u044F\u043C\u0430 \u0444\u0430\u0439\u043B \u0441 \u0442\u0430\u043A\u043E\u0432\u0430 \u0438\u043C\u0435.
+installPluginsWizard.finish.explanation=\u0418\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0449\u0435 \u0441\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u0442 \u0441 \u041F\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438.\n\n\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0442\u044A\u0440\u043F\u0435\u043D\u0438\u043 [...]
+label.current.equals={label.current} %1
+configureWizard.nat.test=\u041F\u0440\u043E\u0431\u0430
+PeersView.uniquepiece.none=\u041D\u044F\u043C\u0430
+TableColumn.header.uploadspeed.info=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435, \u0441 \u043A\u043E\u0435\u0442\u043E \u0441\u0435 \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u0442 \u0434\u0430\u043D\u043D\u0438 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+dlg.auth.install.pct=%1% \u0433\u043E\u0442\u043E\u0432\u043E
+TableColumn.header.name.info=\u0418\u043C\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+DHTView.title.full=\u0420\u0411\u0414
+unix.script.new.button.continue=\u041F\u043E-\u043A\u044A\u0441\u043D\u043E
+ConfigView.section.connection.advanced.read_select=\u0417\u0430\u043A\u044A\u0441\u043D\u0435\u043D\u0438\u0435 \u0437\u0430 read select (ms, \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 %1)
+devices.restrict_access.prompt=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u043E\u0441\u0442\u044A\u043F\u0430 \u0434\u043E '%1'
+StartStopRules.firstPriority=\u041D\u0412\u041F
+ConfigView.label.stop.Nothing=\u0411\u0435\u0437 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
+tps.incoming.details=\u0422\u0435\u043A\u0443\u0449\u043E\: TCP\=%1, UDP\=%2; \u041E\u0431\u0449\u043E \u043E\u0442\u043D\u0430\u0447\u0430\u043B\u043E\=%3
+MyTorrentsView.menu.movedata.dialog=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043D\u043E\u0432\u043E \u043C\u044F\u0441\u0442\u043E
+Peers.column.handshake_reserved=\u0417\u0430\u043F\u0430\u0437\u0435\u043D\u0438 \u0431\u0430\u0439\u0442\u043E\u0432\u0435 \u0437\u0430 \u0440\u044A\u043A\u043E\u0441\u0442\u0438\u0441\u043A\u0430\u043D\u0435
+TableColumn.header.shareRatio.info=\u041A\u043E\u043B\u043A\u043E \u0435 \u043A\u0430\u0447\u0435\u043D\u043E (\u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D\u043E) \u0441\u043F\u0440\u044F\u043C\u043E \u0441\u0432\u0430\u043B\u0435\u043D\u043E\u0442\u043E.
+dht.override.ip=\u041F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u044A\u043D\u0448\u0435\u043D IP \u0430\u0434\u0440\u0435\u0441
+MyTorrentsView.menu.open_parent_folder=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u0449\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+MyTrackerView.downloaded=\u0421\u0432\u0430\u043B\u0435\u043D\u043E
+TransferStatsView.title.full=\u0422\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+wizard.tracker=\u0422\u0440\u0430\u043A\u0435\u0440\:
+ConfigView.section.tracker.passwordwebhttpsonly=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u0441\u0430\u043C\u043E \u0447\u0440\u0435\u0437 HTTPS
+ConfigView.section.style.colorOverride.warning=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435
+v3.MainWindow.text.get.started=\u0417\u0430\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+azbuddy.name=\u0414\u0440\u0443\u0436\u043A\u0438
+TableColumn.header.tracker.info=\u041A\u0430\u043A\u0432\u043E \u0435 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430
+config.external.browser.switch.search.inf=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 'Vuze Web Remote; \u043D\u044F\u043C\u0430 \u0443\u0435\u0431-\u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438; \u043D\u044F\u043C\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0437\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D; \u043D\u044F\u043C\u04 [...]
+GeneralView.section.availability=\u041D\u0430\u043B\u0438\u0447\u043D\u043E\u0441\u0442
+Progress.reporting.detail.history.limit=\u041D\u0430\u0434\u0432\u0438\u0448\u0435\u043D\u043E \u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435\u0442\u043E (%1) \u0437\u0430 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u0438 \u0442\u043E\u0437\u0438 \u043E\u0442\u0447\u0435\u0442 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0438 \u043F\u043E\u0441\u [...]
+Subscription.menu.deleteall=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438
+Trackers.column.leechers=\u041F\u0438\u044F\u0432\u0438\u0446\u0438
+device.configure=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043D\u0435\u2026
+MainWindow.status.warning.tooltip=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+azbuddy.ui.menu.sign=\u041F\u043E\u0434\u043F\u0438\u0441\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043B\u0438\u043F-\u0431\u043E\u0440\u0434
+AllPeersView.title.full=\u0412\u0441\u0438\u0447\u043A\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+platform.win32.baddll.nvLsp=NVIDIA nTune/ForceWare
+torrent.decode.info.order.bad=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435\: \u0422\u043E\u0440\u0435\u043D\u0442 '%1' \u0435 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u043D\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u0430\u043D \u0438 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u044A\u0437\u0434\u0430\u0434\u0435 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u043D\u043E \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\ [...]
+DHTOpsView.idle=\u041D\u0435\u043D\u0430\u0442\u043E\u0432\u0430\u0440\u0435\u043D - \u0432 \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0435\u0439\u043D\u043E\u0441\u0442\u2026
+ConfigView.label.passwordmatch=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430\:
+ConfigView.label.ircserver=\u0421\u044A\u0440\u0432\u044A\u0440
+LocaleUtil.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
+Plugin.localtracker.wellknownlocals=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 loopback/link/site \u043B\u043E\u043A\u0430\u043B\u043D\u0438 \u043C\u0440\u0435\u0436\u0438 (192.168 \u0438 \u0442.\u043D.)
+ConfigView.label.minimizetotray._mac=\u041C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430 \u0432 \u0438\u043A\u043E\u043D\u0430 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E
+ConfigView.section.sharing=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+config.external.browser.switch.search=\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043E\u0442 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E
+ConfigView.dialog.choosemovepath=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0432 \u043A\u043E\u044F\u0442\u043E \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0438
+MainWindow.menu.transfers.stopalltransfers=&\u0421\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438
+GeneralView.label.averagespeed=\u0441\u0440\u0435\u0434\u043D\u043E
+pairing.group.optional=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u0438 a\u0442\u0440\u0438\u0431\u0443\u0442\u0438
+PiecesView.speed=\u0421\u043A\u043E\u0440\u043E\u0441\u0442
+Trackers.column.interval=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B
+ConfigView.label.movepartialdownloads=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u0434\u043E\u0440\u0438, \u043A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0441 \u0444\u043B\u0430\u0433 "\u041D\u0435 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435"
+ConfigView.section.stats.seconds=\u0441\u0435\u043A
+devices.profile=\u041F\u0440\u043E\u0444\u0438\u043B
+Peers.column.pieces.info=\u0413\u0440\u0430\u0444\u0438\u0447\u043D\u0430 \u043B\u0435\u043D\u0442\u0430, \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u0449\u0430 \u043A\u043E\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430 \u0435 \u0441\u0432\u0430\u043B\u0438\u043B \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442
+Trackers.column.leechers.info=\u041F\u0438\u044F\u0432\u0438\u0446\u0438 \u0432 \u0440\u043E\u044F\u043A\u0430
+subscript.add.upgrade.desc=\u0414\u0430 \u0441\u0435 \u043D\u0430\u0434\u0433\u0440\u0430\u0434\u0438 \u043B\u0438 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 '%1'?
+MainWindow.menu.speed_limits.info.title=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0442\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430
+ConfigTransferAutoSpeed.auto.speed.classic=\u0410\u0432\u0442\u043E-\u0441\u043A\u043E\u0440\u043E\u0441\u0442 (\u043A\u043B\u0430\u0441\u0438\u043A)
+MainWindow.dht.status.unreachabletooltip=\u0418\u043C\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C \u0441 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 UDP \u043F\u043E\u0440\u0442 \u043D\u0430 \u0420\u0411\u0414 (NAT/\u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435\u043D\u0430)
+TableColumn.header.size.info=\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0432\u044A\u0440\u0445\u0443 \u0434\u0438\u0441\u043A\u0430
+configureWizard.transfer.hint=\u041F\u0440\u0435\u043F\u043E\u0440\u044A\u043A\u0430\: \u043D\u0430\u0439-\u0434\u043E\u0431\u0440\u0435 \u0435 \u0434\u0430 \u0441\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0438 \u043C\u0430\u043B\u043A\u043E \u043F\u043E-\u043D\u0438\u0441\u043A\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043E\u0442 \u0442\u0430\u0437\u0438 \u043D\u0430 \u043B\u0438\u043D\u0438\u044F\u0442\u0430.
+ConfigView.section.tracker.server.group.networks=\u041C\u0440\u0435\u0436\u0438
+subscriptions.config.autostartdls=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435 (\u0432\u043C\u0435\u0441\u0442\u043E \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u0432 \u0441\u043F\u0440\u044F\u043D\u043E \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435)
+LoggerView.filter.checkAll=\u0412\u0441\u0438\u0447\u043A\u0438 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043E\u0442\u043C\u0435\u0442\u043D\u0430\u0442\u0438
+v3.MainWindow.search.go.tooltip=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E
+ConfigView.label.popup.autohide=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0441\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0441\u043A\u0430\u0447\u0430\u0449\u0438 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F, \u043A\u043E\u0438\u0442\u043E \u043D\u0435 \u0441\u0430 \u0433\u0440\u0435\u0448\u043A\u0438 \u0441\u043B\u0435\u0434 \u0441\u0435\u043A. [0\: \u0438\u0437\u043A\u043B\u044E\u0447\u0435\u04 [...]
+pairing.srp.state=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\: %1
+ConfigView.section.file.deletion.section=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+DownloadManager.error.ioerror=\u0412/\u0418 \u0433\u0440\u0435\u0448\u043A\u0430
+dialog.pause.for.period.text=\u041F\u0430\u0443\u0437\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u0441\u043B\u0435\u0434 [min]
+TrackerAvail.column.seeds={Trackers.column.seeds}
+TableColumn.header.CountryFlag=\u0417\u043D\u0430\u043C\u0435
+wizard.close.message=\u0422\u043E\u0437\u0438 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A \u0434\u0430 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438 \u043B\u0438\n \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u0438\u044F \u043F\u044A\u0442, \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 Vuze?
+devices.od.xfering={PeersView.BlockView.Transfer}
+ConfigView.section.style.ShowCatButtons=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0431\u0443\u0442\u043E\u043D\u0438 \u0437\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F \u0432 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430
+popup.more.waiting=\u041E\u0449\u0435 %1 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435(\u044F)\u0085\u2026
+ConfigView.section.tracker.pollintervalincby=\u0423\u0432\u0435\u043B\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u0441
+ConfigView.section.file.delete.confirm=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u0447\u0440\u0435\u0437 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u0438 \u0431\u0443\u0442\u043E\u043D\u0430 \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0 [...]
+MainWindow.status.latestversionunchecked=\u0411\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+ClientStats.column.count=\u0411\u0440\u043E\u044F\u0447
+TableColumn.header.done=\u0413\u043E\u0442\u043E\u0432\u043E
+v3.MainWindow.button.play=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435
+mdi.entry.about.dvdburn=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435
+device.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434
+ConfigView.section.file.delete.torrent=\u041F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0434\u0430 \u0441\u0435 \u0442\u0440\u0438\u0435 .torrent \u0444\u0430\u0439\u043B\u044A\u0442 \u043F\u0440\u0438 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+wizard.maketorrents.force=\u041D\u0430\u0441\u0438\u043B\u0435\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.section.tracker.main=\u0413\u043B\u0430\u0432\u043D\u043E
+Formats.units.B=B
+MyTorrentsView.menu.setpriority.low=&\u041D\u0438\u0441\u044A\u043A
+ConfigView.section.style.status.show_ddb=\u0420\u0411\u0414 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+wizard.singlefile=\u0415\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D \u0444\u0430\u0439\u043B
+ConfigView.label.minSpeedForActiveSeeding=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430, \u0447\u0435 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0433\u043D\u0435\u0437\u0434\u043E, \u0430\u043A\u043E \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u0435 \u043F\u043E\u0434
+SpeedTestWizard.name.conf.level.absolute=\u0410\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E
+MainWindow.about.title=\u041E\u0442\u043D\u043E\u0441\u043D\u043E
+LoggerView.realtime=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0432 \u0440\u0435\u0430\u043B\u043D\u043E \u0432\u0440\u0435\u043C\u0435
+Formats.units.kB=kB
+menu.add.peers={dialog.add.peers.title}\u2026
+ConfigView.section.security.clearpasswords=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0437\u0430\u043F\u043E\u043C\u043D\u0435\u043D\u0438\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u0438
+device.rss.port=\u041F\u043E\u0440\u0442 \u0437\u0430 \u0435\u043C\u0438\u0441\u0438\u044F
+remote.pairing.accesscode=\u041A\u043E\u0434 \u0437\u0430 \u0434\u043E\u0441\u0442\u044A\u043F\:
+devices.converting=\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043D\u0435
+device.error.copyfail2=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 1 \u0438\u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+authenticator.title=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u0432\u0430\u043D\u0435
+Formats.units.bit=bit
+label.add.tag=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u2026
+tag.type.ds.qfors=\u041D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430 \u0437\u0430 \u0441\u0435\u0435\u043D\u0435
+plugins.init.force_enabled=Vuze \u043E\u0442\u043A\u0440\u0438, \u0447\u0435 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\u0442\u0430 "%1" \u0435 \u0441\u043F\u0440\u044F\u043D\u0430, \u043D\u043E \u0437\u0430 \u0434\u0430 \u0440\u0430\u0431\u043E\u0442\u0438 Vuze \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E, \u0442\u044F \u0435 \u043F\u0443\u0441\u043D\u0430\u0442\u0430 \u043E\u0442\u043D\u043E\u0432\u043E.
+ActivityView.legend.overhead=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0431\u0430\u043B\u0430\u0441\u0442\u0430
+TableColumn.header.trackernextaccess.info=\u041A\u043E\u0433\u0430 \u0449\u0435 \u0441\u0435 \u0441\u043B\u0443\u0447\u0438 \u0441\u043B\u0435\u0434\u0432\u0430\u0449 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u0434\u043E\u0441\u0442\u044A\u043F
+ColumnSetup.explain=\u041E\u0442 \u043D\u0430\u043B\u0438\u0447\u043D\u0438\u0442\u0435 \u043A\u043E\u043B\u043E\u043D\u0438 \u0432\u043B\u044F\u0432\u043E \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043E\u0431\u0430\u0432\u044F\u0442 \u0432\u0438\u0434\u0438\u043C\u0438 \u043A\u043E\u043B\u043E\u043D\u0438 \u0432\u0434\u044F\u0441\u043D\u043E. \u0420\u0430\u0437\u0433\u0440\u044A\u0449\u0430\u043D\u0435 \u0438\u043B\u0438 \u0441\u044A\u043A\u0440\u0430\u0449\u0430\u0432\u [...]
+platform.win32.baddll.imon=NOD32
+MainWindow.upgrade.section.manual=\u0420\u044A\u0447\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+MyTorrentsView.menu.editTableColumns=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 &\u043A\u043E\u043B\u043E\u043D\u0438
+window.updateswt.status.finding=\u041D\u0430\u043C\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 SWT \u0432\u0435\u0440\u0441\u0438\u044F
+MagnetPlugin.current.port=\u041F\u043E\u0440\u0442 \u043D\u0430 URI \u043C\u0430\u043D\u0438\u043F\u0443\u043B\u0430\u0442\u043E\u0440
+PeersView.state.connecting=\u0421\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435
+v3.filter-bar=\u0424\u0438\u043B\u0442\u044A\u0440 \u043F\u043E \u0437\u0430\u0433\u043B\u0430\u0432\u0438\u0435\:
+tag.type.ds.qford=\u041D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+MainWindow.menu.file.share.dir=&\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0085\u2026
+ConfigView.section.invalid.value=\u0412\u044A\u0432\u0435\u0434\u0435\u043D\u0430 \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 '%1' \u0437\u0430 '%2'\: %3
+br.backup.manual.info=\u0420\u044A\u0447\u0435\u043D \u0437\u0430\u043F\u0430\u0300\u0441 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
+MyTorrentsView.menu.manual=&\u0420\u044A\u0447\u043D\u043E\u2026\u0085
+TorrentOptionsView.title.full=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438
+SpeedTestWizard.stage.message.preparing=\u043F\u043E\u0434\u0433\u043E\u0442\u0432\u044F\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u2026
+FilesView.numberofpieces=\u0411\u0440. \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+upnp.alertsuccess=\u0414\u043E\u043A\u043B\u0430\u0434\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u0438 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
+fileplugininstall.duplicate.desc=\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 '%1', \u0432\u0435\u0440\u0441\u0438\u044F %2 \u0432\u0435\u0447\u0435 \u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0430
+DHTView.activity.status.false=\u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435
+pairing.group.srp=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043D\u043E \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435
+ConfigView.section.security.resetcerts=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0442\u043E \u0437\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0438 (Vuze \u0449\u0435 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430)
+plugin.init.load.failed.classmissing=\u0414\u0430 \u0441\u0435 \u0434\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\u0442\u0430 \u0447\u0440\u0435\u0437 "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u2192 \u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u2192 \u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u0437\u0430 \u0434\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044 [...]
+platform.win32.baddll.nl_lsp=NetLimiter
+ConfigView.label.directory=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+MyTorrentsView.menu.queue=\u041D\u0430 &\u043E\u043F\u0430\u0448\u043A\u0430
+MainWindow.about.internet.wiki=\u0427\u0417\u0412 Vuze \u0423\u0438\u043A\u0438
+MainWindow.dialog.choose.savepath_forallfiles=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043F\u044A\u0442 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0412\u0421\u0418\u0427\u041A\u0418 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+platform.jvmopt.accesserror=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u0444\u0430\u0439\u043B\u0430 \u0441 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 JVM\: %1
+VivaldiView.title.full=\u0412\u0438\u0432\u0430\u043B\u0434\u0438
+devices.sidebar.show.only.tagged=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0441 \u0435\u0442\u0438\u043A\u0435\u0442\u0438
+ConfigView.section.proxy.show_icon.flag.incoming=\u041D\u0435-\u043C\u0435\u0441\u0442\u043D\u0438 \u0438 \u043D\u0435-SOCKS \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438 \u0434\u0430 \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u0442 \u0441\u044A\u0441 \u0441\u0442\u0430\u0442\u0443\u0442 \u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430
+ConfigView.label.movecompleted=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 (\u0441\u043B\u0435\u0434 \u0441\u0432\u0430\u043B\u044F\u043D\u0435)
+PiecesView.reservedby=\u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0430\u043D\u043E
+dialog.pause.for.period.text2=\u0410\u043A\u0442\u0438\u0432\u043D\u043E \u0441\u0430\u043C\u043E\u043F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435\: %1 \u043E\u0441\u0442\u0430\u0432\u0430\u2026
+splash.unloadingTorrents=\u041D\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+Peers.column.DLedFromOthers.info=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0430\u043D\u043D\u0438 \u0441\u0432\u0430\u043B\u0435\u043D\u0438 \u043E\u0442 \u0434\u0440\u0443\u0433\u0438, \u0434\u043E\u043A\u0430\u0442\u043E \u0441\u0430 \u0431\u0438\u043B\u0438 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u043C\u0435\u0441\u0442\u043D\u043E
+ConfigView.section.security.nopw_v=\u041D\u044F\u043C\u0430 \u043F\u0430\u0440\u043E\u043B\u0430, \u0442\u0440\u044F\u0431\u0432\u0430 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435 \u0432\u044A\u0432 Vuze
+devices.always.cache=\u0411\u0443\u0444\u0435\u0440\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435-\u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+configureWizard.nat.unable=\u041D\u0435\u0432\u044A\u0437\u043C\u043E\u0436\u043D\u0430 \u043F\u0440\u043E\u0431\u0430\: \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043F\u043E\u0440\u0442 \u0438\u043B\u0438 \u0443\u0441\u043B\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u043F\u0440\u043E\u0431\u0430 \u043D\u0435 \u0443\u0441\u043F\u044F.\n\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E \u0435 \u0434\u0440\u0443\u0433\u043E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u04 [...]
+ConfigView.section.ipfilter.autoload.file=IP \u0444\u0438\u043B\u0442\u044A\u0440 \u043E\u0442 \u0444\u0430\u0439\u043B \u0437\u0430 \u0430\u0432\u0442\u043E-\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435
+ConfigView.label.popupdownloadadded=\u0418\u0437\u0441\u043A\u0430\u0447\u0430\u0449\u043E \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+DonationWindow.noload.title=\u0414\u0430\u0440\u0435\u043D\u0438\u044F
+azbuddy.ui.table.msg_in=\u0412\u0445\u043E\u0434\u044F\u0449\u0438
+TableColumn.header.ProgressETA=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435
+MyTorrentsView.menu.export=&XML \u0442\u043E\u0440\u0435\u043D\u0442\u0085
+platform.jvmopt.sunonly=\u041F\u043E\u0434\u0434\u044A\u0440\u0436\u0430\u0442 \u0441\u0435 \u0441\u0430\u043C\u043E JVM \u043D\u0430 Sun/Oracle (\u0442\u0435\u043A\u0443\u0449 \u0434\u043E\u0441\u0442\u0430\u0432\u0447\u0438\u043A\=%1)
+window.updateswt.ok=\u0414\u0430
+Subscription.menu.properties=\u0425\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438\u2026
+v3.MainWindow.menu.browse=&\u041F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+security.certcreate.org=\u041E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F
+ConfigView.section.transfer.select=\u0410\u0432\u0442\u043E-\u0441\u043A\u043E\u0440\u043E\u0441\u0442
+Views.plugins.Distributed.Tracker.title=\u0420\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u0442\u0440\u0430\u043A\u0435\u0440
+ClientStats.column.received={DHTView.transport.received}
+beta.wizard.info=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435\u0442\u043E \u0432 \u0431\u0435\u0442\u0430 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430 \u043D\u0430 Vuze \u0434\u0430\u0432\u0430 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u0435\u043D \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u043E\u044F\u0449\u0438 \u0432\u044A\u [...]
+security.crypto.password=\u041F\u0430\u0440\u043E\u043B\u0430
+popup.download.added="%1" \u0432\u0435\u0447\u0435 \u0435 \u0434\u043E\u0431\u0430\u0432\u0435\u043D \u043A\u044A\u043C \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441\u044A\u0441 \u0441\u0432\u0430\u043B\u0430\u043D\u0438\u044F.
+TableColumn.header.tag.name=\u0418\u043C\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442
+iconBar.remove.tooltip=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E(\u0438\u0442\u0435)
+dlg.stream.plus.text=\u0421\u043B\u0435\u0434 \u043D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435 \u0434\u043E Vuze \u041F\u043B\u044E\u0441 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430 \u0432\u0438\u0434\u0435\u043E \u0434\u043E\u043A\u0430\u0442\u043E \u0441\u0435 \u0441\u0432\u0430\u043B\u044F.
+Peers.column.UpRatio=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+DHTView.operations.received=\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438
+LocaleUtil.label.checkbox.rememberdecision=\u0417\u0430\u043F\u043E\u043C\u043D\u044F\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u043E\u0440\u0430 \u0437\u0430 \u043E\u0441\u0442\u0430\u043D\u0430\u043B\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0438 \u0438\u043C\u0435\u043D\u0430
+download.removerules.removed.ok=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E\u0442\u043E \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 '%1' \u0443\u0441\u043F\u044F. \u041F\u0440\u0438\u0447\u0438\u043D\u0430\u0442\u0430 \u0435 \u0432 \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0442\u0430 \u0437\u0430 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u04 [...]
+ConfigTransferAutoSpeed.data.update.frequency=\u0427\u0435\u0441\u0442\u043E\u0442\u0430 \u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+TableColumn.header.torrentpath=\u041C\u044F\u0441\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+TableColumn.header.tag.initsaveloc={label.init.save.loc}
+MyTorrents.column.ColumnProgressETA.PlayableIn=\u0418\u0437\u043F\u044A\u043B\u043D\u0438\u043C\u043E \u0441\u043B\u0435\u0434 %1
+iconBar.showDownloadBar.tooltip=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+dht.execute.command=\u041A\u043E\u043C\u0430\u043D\u0434\u0430 \u0437\u0430 \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430
+TableColumn.header.pieces.info=\u0413\u0440\u0430\u0444\u0438\u0447\u043D\u0430 \u043B\u0435\u043D\u0442\u0430, \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u0449\u0430 \u043A\u043E\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430 \u0441\u0430 \u0441\u0432\u0430\u043B\u0435\u043D\u0438
+Progress.reporting.default.error=\u041F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u043E
+SpeedTestWizard.abort.message.manual.abort=\u041F\u0440\u0435\u043A\u044A\u0441\u043D\u0430\u0442\u043E \u0440\u044A\u0447\u043D\u043E
+DHTView.activity.target=\u0426\u0435\u043B
+v3.deviceview.infobar.line2.psp=\u0412\u0438\u0434\u0435\u043E-\u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0449\u0435 \u0441\u0435 \u043A\u043E\u043F\u0438\u0440\u0430\u0442, \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u0441\u0432\u044A\u0440\u0436\u0435 PSP.
+platform.win32.baddll.nvappfilter=NVidia Firewall
+ConfigView.label.maxuploadspeed=KB/s \u0433\u043B\u043E\u0431\u0430\u043B\u043D\u0430 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+ConfigView.label.passwordmatchno=\u041D\u0435/\u041F\u0430\u0440\u043E\u043B\u0438\u0442\u0435 \u043D\u0435 \u0441\u044A\u0432\u043F\u0430\u0434\u0430\u0442
+IrcClient.defaultChannel=\#Azureus-Users
+devices.cat.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438
+MyLibrary.bigView.header={sidebar.Library}
+configureWizard.finish.title=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+ConfigTransferAutoSpeed.adjustment.interval=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043D\u0430 \u043F\u0440\u043E\u043C\u044F\u043D\u0430\:
+ConfigView.label.peers=\u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+jvm.show.file=\u041C\u0435\u0441\u0442\u043D\u0438\u044F\u0442 \u0444\u0430\u0439\u043B \u0441 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 JVM \u0435 '%1' - \u0434\u0430 \u0441\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043D\u043E \u0441\u0430\u043C\u043E \u043F\u0440\u0438 \u0432\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+TableColumn.header.downspeed.info=\u0422\u0435\u043A\u0443\u0449\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+MyTorrentsView.menu.setSpeed.unlimited=\u041D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E
+security.certcreate.strength=\u0421\u043B\u043E\u0436\u043D\u043E\u0441\u0442
+ConfigView.text.neverStop=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u0441\u043F\u0438\u0440\u0430
+ConfigView.label.startwatchedtorrentsstopped=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043F\u0440\u0435\u043D\u0438\u0442\u0435
+UpdateWindow.title=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0442\u043E\u0440 \u043D\u0430 Vuze
+MyTorrentsView.\#={TableColumn.header.\#}
+TableColumn.header.RateIt=\u041E\u0446\u0435\u043D\u043A\u0430
+ConfigView.label.seeding.rankType.peer.tooltip=\u043F\u043E\u0432\u0435\u0447\u0435 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0438 \u043F\u043E-\u043C\u0430\u043B\u043A\u043E \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \= \u043F\u043E-\u0432\u0438\u0441\u043E\u043A \u0440\u0430\u043D\u0433\n\u0422\u043E\u0432\u0430 \u043C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430 \u0431\u0440\u043E\u044F \u0442\u043E\u0440\u0435\u043D\u0442\u0438, \ [...]
+subs.prop.enabled={azbuddy.enabled}
+Main.parameter.maxUploads=\u041C\u0430\u043A\u0441. \u0431\u0440. \u0435\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0438 \u043A\u0430\u0447\u0432\u0430\u043D\u0438\u044F
+ConfigView.label.downloading.info=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430\u0442\u0430 \u043F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0442\u0430 \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u0440\u0430\u0431\u043E\u0442\u0438 \u043D\u0430\u0439-\u0434\u043E\u0431\u0440\u0435, \u0430\u043A\u043E \u0435 \u0437\u0430\u0434\u0430 [...]
+ConfigView.label.bStartNoMoreSeedsWhenUpLimitMetSlack=\u041F\u0440\u0438\u0431\u043B\u0438\u0436\u0435\u043D\u0438\u0435 \u043D\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435\u0442\u043E \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 (\u043F\u0440\u043E\u0446\u0435\u043D\u0442\u043D\u043E \u0438\u043B\u0438 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435 \u0432 KB/s)
+general.enter.cookies=\u0411\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438 \u0437\u0430 \u0432\u043B\u0438\u0437\u0430\u043D\u0435
+TableColumn.header.maxuploads=\u041C\u0430\u043A\u0441. \u0431\u0440. \u043A\u0430\u0447\u0432\u0430\u043D\u0438\u044F
+wizard.invalidurl=\u0422\u043E\u0437\u0438 URL \u043D\u0435 \u0435 \u0432\u0430\u043B\u0438\u0434\u0435\u043D
+ConfigView.section.tracker.client.scrapestoppedenable=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438, \u043A\u043E\u0438\u0442\u043E \u043D\u0435 \u0441\u0430 \u043F\u0443\u0441\u043D\u0430\u0442\u0438
+SpeedView.stats.con_details=\u043E\u0431\u0449\u043E\=%1, \u043E\u0442\u043F\u0443\u0448\u0435\u043D\u0438\=%2, \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430\=%3, \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0438\=%4
+speedtest.wizard.select.group=\u0422\u0438\u043F \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u0442\u0430
+PeersView.T.R.tooltip=\u0412\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u0430 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+config.external.browser=\u0412\u044A\u043D\u0448\u0435\u043D \u0431\u0440\u0430\u0443\u0437\u044A\u0440
+v3.deviceview.infobar.line2.ps3=\u0417\u0430 \u043F\u0440\u0430\u0432\u0435\u043D\u0435 \u043D\u0430 \u0432\u0438\u0434\u0435\u043E \u043F\u043E\u0442\u043E\u043A \u043F\u0440\u0435\u0437 PS3 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 Videos \u2192 Vuze.
+ConfigView.section.transfer.lan.uploadrate=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0437\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430 KB/s [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+TableColumn.header.Country=\u0414\u044A\u0440\u0436\u0430\u0432\u0430
+upnp.selectedaddresses=\u0410\u0434\u0440\u0435\u0441\u0438 (\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ';', '-' \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043A\u0430\=\u043E\u0442\u043A\u0430\u0437, '+' \=\u043F\u0440\u0438\u0435\u043C\u0430\u043D\u0435) [\u043F\u0440\u0430\u0437\u043D\u043E\: \u0432\u0441\u0438\u0447\u043A\u043E]
+fileDownloadWindow.saveTorrentIn=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B \u0432
+wizard.newtorrent.byo.editname.text=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u0438\u043C\u0435 \u0437\u0430 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430, \u043A\u0430\u043A\u0442\u043E \u0449\u0435 \u0441\u0435 \u0432\u0438\u0436\u0434\u0430 \u0432 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+devices.choose.profile.title={devices.choose.device.title}
+StartStopRules.waiting=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435
+ConfigView.label.seeding.rankType.peerSeed.tooltip=\u041F\u043E-\u0432\u0438\u0441\u043E\u043A\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \= \u043F\u043E-\u0432\u0438\u0441\u043E\u043A \u0440\u0430\u043D\u0433
+ConfigView.section.transfer.autospeed.enableauto=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u043F\u0440\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0438 \u0441\u0435\u0435\u043D\u0435
+cat.upload.priority=\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+PeersView.menu.kickandban.reason=\u0420\u044A\u0447\u043D\u043E \u0437\u0430\u0431\u0440\u0430\u043D\u0435\u043D \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+label.uptime_coarse=\u041D\u0430\u0440\u0430\u0431\u043E\u0442\u043A\u0430 %1%2
+ConfigView.label.userequestlimiting=\u0421 \u0434\u0440\u043E\u0441\u0435\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0438\u0442\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u0437\u0430\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0438\u0442\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0441\u0 [...]
+ConfigView.section.transfer.lan.downloadrate.tooltip=\u0412\u0440\u044A\u0437\u043A\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0432 \u0441\u044A\u0449\u0430\u0442\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430 \u0438\u043C\u0430\u0442 \u043E\u0442\u0434\u0435\u043B\u043D\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u043E\u0442\u043D\u043E\u0448\u [...]
+MyTorrentsView.dialog.NumberError.text=\u0412\u044A\u0432\u0435\u0434\u0435\u043D\u0430\u0442\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0438\u043B\u0438 \u043D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0435\u043C\u0430.
+security.crypto.encrypt=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043F\u0430\u0440\u043E\u043B\u0430 \u0437\u0430 \u0437\u0430\u0449\u0438\u0442\u0430 \u043D\u0430 \u043D\u043E\u0432\u043E\u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D\u0438\u044F \u043A\u043B\u044E\u0447 \u0437\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435. \u0414\u0430 \u043D\u0435 \u0441\u0435 \u0437\u0430\u0431\u0440\u0430\u0432\u044F \u043F\u0430\u0440\u043E\u043B\u0430\u0442\u [...]
+button.nothanks=\u041E\u0442\u043A\u0430\u0437 \u0441 \u0431\u043B\u0430\u0433\u043E\u0434\u0430\u0440\u043D\u043E\u0441\u0442
+webui.pairingtest=\t\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u0440\u043E\u0431\u0430 \u043D\u0430 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435\u0442\u043E
+Peers.column.handshake_reserved.info=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u043A\u0430\u043A\u0432\u0438 \u0437\u0430\u043F\u0430\u0437\u0435\u043D\u0438 \u0431\u0438\u0442\u043E\u0432\u0435 \u0441\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u0438 \u0432 \u0440\u044A\u043A\u043E\u0441\u0442\u0438\u0441\u043A\u0430\u043D\u0435\u0442\u043E \u043D\u0430 BitTorrent
+exportTorrentWizard.torrentfile.path=\u041F\u044A\u0442
+UpdateWindow.restartLater=\u041F\u043E-\u043A\u044A\u0441\u0435\u043D \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u043D\u0430 Vuze
+ConfigView.label.queue.retainforce=\u041F\u0440\u0435\u0445\u0432\u044A\u0440\u043B\u044F\u043D\u0435 \u043D\u0430 '\u043D\u0430\u0441\u0438\u043B\u0435\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435' \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430 \u043A\u0430\u0442\u043E '\u043D\u0430\u0441\u0438\u043B\u0435\u043D\u043E \u0441\u0435\u0435\u043D\u0435' \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435
+min.sr.window.title=\u041C\u0438\u043D. \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+devices.turnon.prepageload=\u0417\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0430\u0437\u0438 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442 \u0441\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0434\u043E\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0438 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0438.
+ConfigView.section.file.max_open_files=\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u043E\u0442\u0432\u043E\u0440\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0437\u0430 \u0447\u0435\u0442\u0435\u043D\u0435/\u0437\u0430\u043F\u0438\u0441\n[0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+device.manu.desc=\u041F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B
+SubscriptionWizard.column.SubWizName={FilesView.name}
+TableColumn.header.eta=\u041E\u0412\u0417
+devices.choose.device.info.text=\u0421\u043B\u0435\u0434\u0432\u0430\u0449\u0438\u044F\u0442 \u043F\u044A\u0442 \u043F\u0440\u043E\u0441\u0442\u043E \u0434\u0430 \u0441\u0435 \u0432\u043B\u0430\u0447\u0430\u0442 \u0438 \u043F\u0443\u0441\u043A\u0430\u0442 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0438\u0437\u0431\u0440\u0430\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u [...]
+ConfigView.section.tracker.announcecacheminpeers=\u041E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435 \u043F\u0440\u0435\u0434\u0435\u043B\u0430 \u0437\u0430 \u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0431\u0443\u0444\u0435\u0440 \u0437\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+ConfigView.label.openconfig=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 '\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F' \u043F\u0440\u0438 \u043D\u0430\u0447\u0430\u043B\u043D\u043E \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.style.defaultSortOrder.asc=\u0412\u044A\u0437\u0445\u043E\u0434\u044F\u0449\u043E
+OpenTorrentOptions.header.torrentinfo=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+GeneralView.section.downloaded=\u0421\u0432\u0430\u043B\u0435\u043D\u043E
+wizard.multitracker.title=\u041C\u0443\u043B\u0442\u0438-\u0442\u0440\u0430\u043A\u0435\u0440
+FileItem.donotdownload=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F
+swt.uninstall.window.header=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0438 \u0441\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u0437\u0430 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435\:
+FilesView.menu.setpriority.skipped=&\u0414\u0430 \u043D\u0435 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F
+ipCheckerWizard.explanations=\u0422\u043E\u0437\u0438 \u0441\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u043C\u043E\u0436\u0435 \u0434\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0435 \u043A\u0430\u043A\u044A\u0432 \u0435 \u043C\u0435\u0441\u0442\u043D\u0438\u044F\u0442 \u0432\u044A\u043D\u0448\u0435\u043D IP \u0430\u0434\u0440\u0435\u0441. \u0410\u043A\u043E IP \u0430\u0434\u0440\u0435\u0441\u044A\u0442 \u0435 \u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u043D, \u043F\u0440\u0435\u0 [...]
+ConfigView.section.queue=\u041E\u043F\u0430\u0448\u043A\u0430
+IrcClient.hasjoined=\u0441\u0435 \u043F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u0438
+MainWindow.menu.speed_limits=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430
+PeersView.discarded.info=\u0414\u0430\u043D\u043D\u0438, \u043A\u043E\u0438\u0442\u043E \u043D\u044F\u043A\u0430\u043A \u0441\u0438 \u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438, \u043D\u043E \u043D\u0435 \u0441\u0430 \u0431\u0438\u043B\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0438 \u0438 \u0441\u0430 \u043C\u0430\u0445\u043D\u0430\u0442\u0438.
+group.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E
+ConfigView.section.connection.group.networks.info=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438 \u043C\u0440\u0435\u0436\u0438 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u043F\u0440\u0435\u043D\u043E\u0441 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D-\u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u044 [...]
+label.con_prob=\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 \u0441 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430
+MyTrackerView.status.started=\u0420\u0430\u0431\u043E\u0442\u0435\u0449\u043E
+device.config.xcode.disable_sleep=\u041F\u0440\u0438 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435 \u0434\u0430 \u043D\u0435 \u0441\u0435 \u0434\u043E\u043F\u0443\u0441\u043A\u0430 \u0437\u0430\u0441\u043F\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u0430
+ConfigView.label.minSpeedForActiveDL.tooltip=\u0413\u043D\u0435\u0437\u0434\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0432\u0438\u043D\u0430\u0433\u0438 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0437\u0430 \u043D\u0430\u0447\u0430\u043B\u043D\u0438\u0442\u0435 30 \u0441\u0435\u043A\u0443\u043D\u0434\u0438\n\u0441\u043B\u0435\u0434 \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043D\u0435\u043F\u044A\u043B\u043 [...]
+TableColumn.header.eta.info=\u041E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0432\u0440\u0435\u043C\u0435 \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+MainWindow.menu.transfers.pausetransfersfor=\u041F\u0430\u0443\u0437\u0430 \u0437\u0430\u2026
+MainWindow.menu.torrent=&\u0422\u043E\u0440\u0435\u043D\u0442
+exportTorrentWizard.finish.message=\u0415\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E
+label.show.all=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u043E
+TableColumn.header.torrentrelpath.info=\u041E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u043D\u043E \u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+TableColumn.header.tag.uplimit={TableColumn.header.maxupspeed}
+authenticator.realm=\u041E\u0431\u043B\u0430\u0441\u0442
+MySharesView.type=\u0422\u0438\u043F
+dlg.stream.plus.renew.subtitle=Vuze \u041F\u043B\u044E\u0441 \u043F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+PeerSocket.unknown_az_style=\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D %1/%2
+ConfigView.section.connection.advanced.write_select=\u0417\u0430\u043A\u044A\u0441\u043D\u0435\u043D\u0438\u0435 \u0437\u0430 write select (ms, \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 %1)
+splash.initializeGui=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0438\u044F \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446
+upnp.ignorebaddevices.info=\u0422\u0435\u043A\u0443\u0449\u043E \u043F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u043D\u0430\u0442\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430\: %1
+ConfigView.label.showuptime=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0430\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0442\u0430
+ConfigView.label.seeding.ignore0Peers=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+devices.cancel_xcode_del=\u041E\u0442\u043A\u0430\u0437 \u043E\u0442 \u043F\u0440\u0435\u0432\u0440\u044A\u0449\u0430\u043D\u0435/\u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+manual.mode=\u0420\u044A\u0447\u043D\u043E
+ipCheckerWizard.service.url=\u0412\u0440\u044A\u0437\u043A\u0430\:
+ConfigView.section.proxy.show_icon=SOCKS \u0438\u043A\u043E\u043D\u0430 \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E, \u043A\u043E\u0433\u0430\u0442\u043E \u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E
+azbuddy.ui.table.loc_cat=\u0418\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u0438 \u0435\u0442\u0438\u043A\u0435\u0442\u0438/\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438
+splash.of=\u043E\u0442
+OpenTorrentOptions.show.always=\u0432\u0441\u0435\u043A\u0438 \u043F\u044A\u0442
+plugins.basicview.progress=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435\:
+resetconfig.warn=\u0422\u043E\u0432\u0430 \u0449\u0435 \u043F\u0440\u0435\u0434\u0438\u0437\u0432\u0438\u043A\u0430 \u0437\u0430\u0433\u0443\u0431\u0430 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043D\u0430\u043F\u0440\u0430\u0432\u0435\u043D\u0438 \u043F\u0440\u043E\u043C\u0435\u043D\u0438 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 Vuze.\n\u0414\u0430 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u0438 \u043B\u04 [...]
+ConfigView.section.connection.encryption.encrypt.fallback_info=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0432\u0441\u044F\u043A\u0430 \u043E\u043F\u0446\u0438\u044F \u0437\u0430 \u043E\u0442\u0441\u0442\u044A\u043F\u043B\u0435\u043D\u0438\u0435 \u0449\u0435 \u043F\u043E\u0437\u0432\u043E\u043B\u0438 \u0432\u0440\u044A\u0437\u043A\u0438 \u0434\u043E \u043D\u0435\u0441\u044A\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u0438 \u043A\u043B\u04 [...]
+dlg.auth.install.subtitle.plus=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 Vuze \u041F\u043B\u044E\u0441\u2026
+OpenTorrentOptions.show.many=\u0441\u0430\u043C\u043E, \u043A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u043E\u0442 1 \u0444\u0430\u0439\u043B
+ConfigView.pluginlist.column.version=\u0412\u0435\u0440\u0441\u0438\u044F
+MyTorrentsView.menu.exportmenu=\u0415\u043A\u0441\u043F\u043E\u0440\u0442
+MyTorrentsView.menu.moveUp=\u041D\u0430&\u0433\u043E\u0440\u0435
+ConfigView.section.connection.encryption.encrypt.info.link=\u0417\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0434\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0438
+MyTorrents.column.ColumnProgressETA.2ndLine=\u041E\u0412\u0417\: %1
+MainWindow.status.updowndetails.tooltip=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435/\u043A\u0430\u0447\u0432\u0430\u043D\u0435\n\u0421 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u0441\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u044F, \u0441 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0441\u0435 \u043E\u0442\u0432\u043 [...]
+v3.MainWindow.button.delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+Column.seedspeers.started.over=%1
+exportTorrentWizard.torrentfile.invalidPath=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B
+MyTorrentsView.menu.rename.save_path=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u044A\u0442\u044F \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+Subscription.menu.upgrade=\u0421 \u043D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435 \u0434\u043E \u043F\u043E-\u0432\u0438\u0441\u043E\u043A\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+installPluginsWizard.file.title=\u041F\u0440\u0435\u0433\u043B\u0435\u0434 \u0437\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430, \u043A\u043E\u044F\u0442\u043E \u0434\u0430 \u0441\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430
+ConfigView.section.security.publickey.undef=\u0411\u0435\u0437 \u0434\u0435\u0444\u0438\u043D\u0438\u0446\u0438\u044F \u0432\u0441\u0435 \u043E\u0449\u0435
+MainWindow.statusText.checking=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438
+MyTorrentsView.menu.tracker=\u0422\u0440\u0430\u043A\u0435\u0440/\u0442\u043E\u0440\u0435\u043D\u0442
+upnp.refresh.label=\u041E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0442\u0430
+swt.install.window.header=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0438 \u0441\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435\:
+ManagerItem.stopped=\u0421\u043F\u0440\u044F\u043D
+platform.win32.baddll.InjHook12=Torrent Ratio Keeper
+Button.dismiss=\u0418\u0437\u0445\u043E\u0434
+UpdateWindow.ok=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+ConfigView.pluginlist.info=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0441\u0430 \u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442\u0438. \u041D\u044F\u043A\u043E\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u043C\u043E\u0436\u0435 \u0434\u0430 \u043D\u044F\u043C\u0430\u0442 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0438 \u0440\u0430\u0437\u0434\u0435\u043B\u0438.
+security.crypto.title=\u0414\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u043A\u043B\u044E\u0447 \u0437\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435
+MainWindow.about.internet.homepage=\u041D\u0430\u0447\u0430\u043B\u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0430 Vuze
+network.enforce.ipbinding=\u041D\u0430\u043B\u0430\u0433\u0430\u043D\u0435 \u043D\u0430 IP \u043F\u0440\u0438\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442\u0438 \u0434\u043E\u0440\u0438 \u0431\u0435\u0437 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0438 - \u043D\u0435 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430 \u043D\u0438\u043A\u0430\u043A\u0432\u0438 \u0432\u0440\u044A\u0437\u043A\u0438 \u0430\u043A\u043E \u043 [...]
+dlg.corewait.text=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435\u2026\n\n\u0417\u0430\u044F\u0432\u043A\u0430\u0442\u0430 \u0449\u0435 \u0441\u0435 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0438 \u0441\u043B\u0435\u0434 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0430 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 Vuze.
+label.num.torrents=%1 {ConfigView.section.torrents}
+StartStopRules.menu.viewDebug=\u041F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438
+ConfigView.section.transfer.autospeed.enableautoseeding=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435
+FilesView.path=\u041F\u044A\u0442
+br.restore.warning.title=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430 \u0437\u0430\u0433\u0443\u0431\u0430 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\!
+subscriptions.search.enable=\u0421 \u0442\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043E\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+ConfigView.label.prioritizefirstpiece.tooltip=\u041E\u043F\u0438\u0442\u0432\u0430 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043F\u044A\u0440\u0432\u043E \u043D\u0430 \u0441\u0430\u043C\u0438\u0442\u0435 \u043D\u0430\u0447\u0430\u043B\u043E \u0438 \u043A\u0440\u0430\u0439 \u043D\u0430 \u0444\u0430\u0439\u043B.\n\u0417\u0430 \u0432\u044A\u0437\u043C\u043E\u0436\u0435\u043D \u043F\u0440\u0435\u0433\u043B\u0435\u0434 \u0432 \u0440\u0430\u043D\u0435\u043D \u0441\u0442\u0430\u [...]
+update.now.desc=Vuze \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0430\u0442 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u044F\u0442\u0430.\n\n\u0421\u043B\u0435\u0434 \u0437\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0437\u0438 \u0434\u04 [...]
+iconBar.openURL.tooltip=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 URL
+ConfigView.label.xfer.bias_no_limit=\u0414\u0430 \u0441\u0435 \u043E\u043F\u0438\u0442\u0430 \u043F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u043B\u0435\u0440\u0430\u043D\u0441, \u043A\u043E\u0433\u0430\u0442\u043E \u043D\u0435 \u0435 \u0432 \u0441\u0438\u043B\u0430 \u0433\u043B\u043E\u0431\u0430\u043B\u043D\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\u0442\u043E
+CacheView.general.inUse=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0441\u0435
+ConfigView.label.startRatioPeers=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0435\u0435\u043D\u0435 \u043F\u0440\u0438 <1 \u043F\u043E\u0441\u044F\u0432\u043A\u0430 \u0437\u0430
+TableColumn.header.CountryCode=\u041A\u0414
+Main.parameter.maxSpeed=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 B/s
+#file can be a URL or a path in the jar
+MainWindow.menu.help.releasenotes=\u0411\u0435\u043B\u0435\u0436\u043A\u0438 \u0437\u0430 \u0438\u0437\u0434\u0430\u043D\u0438\u0435\u0442\u043E
+option.rememberthis=\u0417\u0430\u043F\u043E\u043C\u043D\u044F\u043D\u0435 \u043D\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0442\u0430
+ConfigView.title.short=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
+FileItem.storage.reorder=\u041F\u0440\u0435\u043F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435
+TableColumn.header.completion=\u0417\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435
+TableColumn.header.commenticon=\u0418\u043A\u043E\u043D\u0430 \u043D\u0430 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+v3.menu.device.exploreTranscodes=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+pairing.view.registered=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F\u0442\u0430
+ConfigView.dialog.choosewatchtorrentfolderpath=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0438\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.label.seeding.preferLargerSwarms.tooltip=\u0410\u043A\u043E \u0441\u0435 \u0441\u0435\u044F\u0442 \u043E\u0441\u043D\u043E\u0432\u043D\u043E \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043F\u0440\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u043A\u043E\u0438\u0442\u043E \u0441\u0430 "\u0437\u0430\u0431\u0438\u043B\u0438", \u0438\u043C\u0430 \u0441\u043C\u0438\u0441\u044A\u043B \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u0434\u [...]
+ConfigView.section.interface.cleartrackers=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u043F\u043E\u043C\u043D\u0435\u043D\u0438\u0442\u0435 \u0442\u0440\u0430\u043A\u0435\u0440\u0438
+label.bar.trans=\u041F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 [0\=\u043D\u0435\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E; 100\=\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E]
+device.playnow.buffer=\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0431\u0443\u0444\u0435\u0440 \u043F\u0440\u0435\u0434\u0438 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 [s]
+MainWindow.menu.help.plugins=\u041F\u043E\u043B\u0443\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+proxy.socks.bad.incoming=\u041E\u0442\u043A\u0440\u0438\u0442\u0438 \u0441\u0430 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438, \u043A\u043E\u0438\u0442\u043E \u043D\u0435 \u0441\u0430 \u043F\u0440\u0435\u0437 \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A\!
+TrackerAvail.column.status={Trackers.column.status}
+v3.activity.remove.title=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435
+sidebar.LibraryDL.tooltip=\u0418\u043C\u0430 %1 \u043D\u0435\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D(\u0438) \u0442\u043E\u0440\u0435\u043D\u0442(\u0430), %2 \u043E\u0442 \u043A\u043E\u0438\u0442\u043E \u0441\u0435 \u0441\u0432\u0430\u043B\u044F(\u0442) \u0432 \u043C\u043E\u043C\u0435\u043D\u0442\u0430
+menu.selectfilesinfolder=\u0418\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 %1
+devices.activation=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+OpenTorrentFile.column.size={TableColumn.header.size}
+MyTrackerView.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+sidebar.top.level.gap=\u0420\u0430\u0437\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043C\u0435\u0436\u0434\u0443 \u0440\u0435\u0434\u043E\u0432\u0435\u0442\u0435 \u043D\u0430 \u0437\u0430\u0433\u043B\u0430\u0432\u043A\u0438\u0442\u0435 ({ConfigView.section.security.restart.title})
+TableColumn.header.filesdone.info=\u0413\u043E\u0442\u043E\u0432\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435/\u043E\u0431\u0449\u043E \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0418\u041B\u0418 \u043D\u0435-\u043F\u0440\u043E\u043F\u0443\u0441\u043D\u0430\u0442\u0438 \u0433\u043E\u0442\u043E\u0432\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 (\u0433\u043E\u0442\u043E\u0432\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435)/\u043E\u0431\u0449\u043E \u043D\u0435-\u043F\u0440\u043 [...]
+ConfigView.section.transfer.lan.enable=\u0421 \u043E\u0442\u0434\u0435\u043B\u043D\u0438 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u0437\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u0438\u0442\u0435 \u043C\u0440\u0435\u0436\u043E\u0432\u0438 \u0432\u0440\u044A\u0437\u043A\u0438
+ConfigView.section.connection.advanced.SO_RCVBUF=\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0446\u043E\u043A\u044A\u043B SO_RCVBUF [0\: \u043F\u043E \u043F\u043E\u0434\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u043D\u0435 \u043E\u0442 \u041E\u0421-\u0430]
+ConfigView.section.connection.advanced=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043C\u0440\u0435\u0436\u0430
+MainWindow.upgrade.section.automatic=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+TrackerView.title.full=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438
+FileItem.delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+ConfigView.section.connection.pairing.url=http\://wiki.vuze.com/w/UG_Options\#Pairing
+ConfigView.label.bindip=\u041F\u0440\u0438\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435 \u043A\u044A\u043C \u043B\u043E\u043A\u0430\u043B\u0435\u043D IP \u0430\u0434\u0440\u0435\u0441 \u0438\u043B\u0438 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441
+MyTorrentsView.menu.exporttorrent=\u0422\u043E\u0440\u0435\u043D\u0442\u2026\u0085
+core.shutdown.se=\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+wizard.hint.file=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\:\t\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0444\u0430\u0439\u043B \u0441 \u0432\u043B\u0430\u0447\u0435\u043D\u0435-\u043F\u0443\u0441\u043A\u0430\u043D\u0435
+subs.prop.auth=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u0432\u0430\u043D\u0435
+Button.sendNow=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u0441\u0435\u0433\u0430
+upnp.mapping.udptrackerport=UDP \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043F\u043E\u0440\u0442
+label.click.to.change=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u044F
+security.certcreate.cancel=\u041E\u0442\u043A\u0430\u0437
+wizard.tracker.ssl=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 SSL
+window.updateswt.text=\u0412\u0435\u0440\u0441\u0438\u044F\u0442\u0430 \u043D\u0430 SWT \u0435 \u043C\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0440\u0430\!\nSWT \u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u043D\u0430\u0442\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430 \u043D\u0430 Vuze \u0438 \u043D\u0430\u043B\u0438\u0447\u043D\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u0435 \u043C\u043D\u043E\u0433\u043E \u0441\u0442\u0430\u0440\u0430, \u0437\u0430 [...]
+ConfigView.section.tracker.publishenable=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0432 "<tracker_url>"
+MyTorrents.column.ColumnSpeed=\u0421\u043A\u043E\u0440\u043E\u0441\u0442
+deletecontent.also.deletetorrent=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u0438 \u043D\u0430 .torrent \u0444\u0430\u0439\u043B
+externalLogin.title=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+ConfigView.section.tracker.client.showwarnings=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F \u0434\u0430\u0432\u0430\u043D\u0438 \u043E\u0442 \u0442\u0440\u0430\u043A\u0435\u0440\u0438\u0442\u0435
+label.DNS=DNS
+TorrentOptionsView.param.upload.priority=\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 [0\=\u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435; 1\=\u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u043D\u043E]
+dlg.auth.enter.link.try.2=<A HREF\="link">\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A</A>, \u0430\u043A\u043E \u043D\u0435 \u0435 \u0437\u0430\u043A\u0443\u043F\u0435\u043D\u043E \u0432\u0441\u0435 \u043E\u0449\u0435 \u043A\u043E\u043F\u0438\u0435 \u043D\u0430 Vuze \u041F\u043B\u044E\u0441.
+dlg.auth.enter.link.try.1=\u041D\u044F\u043C\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u043E\u043D\u0435\u043D \u043A\u043E\u0434? <A HREF\="upgrade">\u041D\u0430\u0434\u0433\u0440\u0430\u0436\u0434\u0430\u043D\u0435 \u0441\u0435\u0433\u0430</A>.
+Button.clear=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435
+Peers.column.UpDownRatio.info=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 "\u041A\u0430\u0447\u0435\u043D\u043E\:\u0441\u0432\u0430\u043B\u0435\u043D\u043E" \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+ConfigView.label.seeding.firstPriority.FP=\u041D\u0430\u0439-\u0432\u0438\u0441\u043E\u043A \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+subs.prop.update_period=\u041F\u0435\u0440\u0438\u043E\u0434 \u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+tray.options=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0438\u044F \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440
+GeneralView.label.swarm_average_completion=\u0421\u0440\u0435\u0434\u043D\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\:
+TableColumn.header.azsubs.ui.column.subs_link=\u0410\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F
+ConfigView.section.ipfilter.edit=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.bStartNoMoreSeedsWhenUpLimitMet=\u0414\u0430 \u043D\u0435 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441\u0435\u0435\u043D\u0435 \u043D\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438, \u043A\u043E\u0433\u0430\u0442\u043E \u0435 \u0434\u043E\u0441\u0442\u0438\u0433\u043D\u0430\u0442\u043E \u0433\u043B\u043E\u0431\u0430\u043B\u043D\u043E\u0442\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u0 [...]
+device.od.error.opfailstatus=\u041F\u0440\u043E\u0432\u0430\u043B \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u0442\u043E \u043F\u0440\u0438 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430 %1\: \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 %2
+OpenTorrentWindow.fileTable.fileName=\u0418\u043C\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+ConfigView.section.language.enableUpdate=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043F\u0440\u0435\u0437 \u0443\u0435\u0431
+dht.info=\u0422\u0430\u0437\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430, \u043C\u0435\u0436\u0434\u0443 \u0434\u0440\u0443\u0433\u043E\u0442\u043E, \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 \u0434\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u043E \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435 - \u0438\u0437\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435\u0442\u043E \u043C\u0443 \u0449\u0435 \u043D\ [...]
+library.unopened.header.p=%1 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430
+DevicesOD.column.od_remaining={TableColumn.header.remaining}
+FileView.BlockView.Outstanding=\u0421\u0442\u043E\u044F\u0449\u0438
+label.num_queued=%1 \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430
+ConfigView.section.file.delete.include_files_outside_save_dir=\u041F\u0440\u0438 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438 \u0434\u0430 \u0441\u0435 \u0442\u0440\u0438\u044F\u0442 \u0438 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0438\u0437\u0432\u044A\u043D \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u0437\u0430 \u0437\u0430\u043F\u0438\u0 [...]
+ConfigView.button.browse=&\u041F\u0440\u0435\u0433\u043B\u0435\u0434\u0085\u2026
+device.error.copyfail=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 1 \u0438\u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+br.restore.warning.info=\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430\u043F\u044A\u043B\u043D\u043E \u0449\u0435 \u0437\u0430\u043C\u0435\u043D\u0438 \u0442\u0435\u043A\u0443\u0449\u0430\u0442\u0430.\n\u041F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430 \u0441\u0435 \u0437\u0430\u043F\u0430\u0300\u0441 \u043D\u0430 \u044 [...]
+dlg.auth.revoked=\u041A\u043E\u0434\u044A\u0442 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u0435 \u0430\u043D\u0443\u043B\u0438\u0440\u0430\u043D
+download.removerules.unauthorised.seedingonly=\t\u0421\u0430\u043C\u043E \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435
+PeersView.piece=\u041F\u0430\u0440\u0447\u0435
+security.crypto.decrypt=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043F\u0430\u0440\u043E\u043B\u0430 \u0437\u0430 \u043E\u0442\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0435\u0441\u0442\u043D\u0438\u044F \u043A\u043B\u044E\u0447 \u0437\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435.
+custom.settings.import.res=\u0418\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 %1 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438. %2
+label.missing=\u041B\u0438\u043F\u0441\u0432\u0430
+ConfigView.section.server=\u0412\u0440\u044A\u0437\u043A\u0430
+config.external.browser.switch.info=\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0438 \u043E\u0442 \u0432\u0433\u0440\u0430\u0434\u0435\u043D \u043A\u044A\u043C \u0432\u044A\u043D\u0448\u0435\u043D \u0431\u0440\u0430\u0443\u0437\u044A\u0440 \u0437\u0430 \u043D\u044F\u043A\u043E\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u0438, \u043D\u043E \u0447\u0430\u0441\u0442 \u043E\u0442 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u [...]
+TrackerChangerWindow.newtracker=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432(\u0438) \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 URL - \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ",", \u0430\u043A\u043E \u0441\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u043E\u0442 \u0435\u0434\u0438\u043D
+tag.type.ds=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+TableColumn.header.transcode_status={TableColumn.header.status}
+security.crypto.persist_for.dont_save=\u0411\u0435\u0437 \u0437\u0430\u043F\u0438\u0441
+general.add.friends=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0434\u0440\u0443\u0436\u043A\u0438
+FilePriority.invalid.title=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+tag.type.ds.act={FileView.BlockView.Active}
+ConfigView.label.seeding.firstPriority.ignoreIdleHours=\u0422\u043E\u0440\u0435\u043D\u0442\u0438, \u043A\u043E\u0438\u0442\u043E \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u0442 \u043D\u0438\u0449\u043E \u0437\u0430
+ConfigView.section.mode.advanced.wiki.main=\u0413\u043B\u0430\u0432\u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0430 \u0423\u0438\u043A\u0438
+remote.pairing.tip.text=Vuze Remote \u043B\u0435\u043D\u0442\u0430 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438\: \u0414\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0438 <A HREF\="http\://remote.vuze.com/download/">remote.vuze.com/download</A>\nVuze Remote \u043C\u043E\u0431\u0438\u043B\u0435\u043D\: \u0414\u0430 \u0441\u0435 \u043F\u043E\u0441\u0435\u0442\u0438 <A HREF\="http\://remote.vuze.com/">remote.vuze.com</A> \u0447\u0440\u0435\u0437 \u043C\u04 [...]
+devices.contextmenu.od=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u0431\u0435\u0437 \u0432\u0440\u044A\u0437\u043A\u0430
+tps.status.available=\u041D\u0430\u043B\u0438\u0447\u043D\u043E
+PasswordWindow.passwordprotected=Vuze \u0435 \u0437\u0430\u0449\u0438\u0442\u0435\u043D \u0441 \u043F\u0430\u0440\u043E\u043B\u0430.\n\u0417\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446\u0430 \u043D\u0430 Vuze \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043F\u0430\u0440\u043E\u043B\u0430\:
+GeneralView.label.downloaded=\u0421\u0432\u0430\u043B\u0435\u043D\u043E\:
+configureWizard.nat.message=\u0417\u0430 \u043D\u0430\u0439-\u0434\u043E\u0431\u0440\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u0441 Vuze \u0441\u0435 \u043F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430 \u043F\u044A\u043B\u0435\u043D \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430 \u043E\u0442 \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442. \u0422\u043E\u0437\u0438 \u0438\u043D\u0441\u0442\u0440 [...]
+dht.advanced.group=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+MainWindow.menu.view.allpeers=\u0412\u0441\u0438\u0447\u043A\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+ConfigView.complete.abbreviated=\u0417\u0432\:
+TableColumn.header.AzProduct=\u041E\u0442
+ConfigView.section.sharing.rescanenable=\u041F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E \u0434\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0432\u0430\u0442 \u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D\u0438\u0442\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0437\u0430 \u043F\u0440\u043E\u043C\u0435\u043D\u0438
+iconBar.details=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+Button.save=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+ConfigView.label.seeds=\u043F\u043E\u0441\u044F\u0432\u043A\u0438
+DHTView.transport.sent=\u0418\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u043E
+TableColumn.header.torrentpath.info=\u041C\u044F\u0441\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0432\u044A\u0440\u0445\u0443 \u0434\u0438\u0441\u043A\u0430
+SpeedView.uploadSpeed.title=\u041A\u0430\u0447\u0432\u0430\u043D\u0435 \u0441
+fileDownloadWindow.state_error=\u0413\u0440\u0435\u0448\u043A\u0430\:
+importTorrentWizard.process.outputfileexists.message=\u0426\u0435\u043B\u0435\u0432\u0438\u044F\u0442 \u0444\u0430\u0439\u043B \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 - \u043F\u0440\u0435\u0437\u0430\u043F\u0438\u0441?
+devices.sidebar.hide.rend.generic=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0431\u0430\u0437\u043E\u0432\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+MyTorrentsView.menu.remove=\u041F&\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+v3.MainWindow.search.defaultText=\u041D\u0430\u043C\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u2026
+v3.mb.delPublished.delete=&\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+dlg.player.install.description=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0434\u043E\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043D \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435\u2026
+wizard.newtorrent.byo.editname.title=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435 \u0438\u043C\u0435\u0442\u043E \u043D\u0430 \u0435\u043B\u0435\u043C\u0435\u043D\u0442
+library.all.header=%1 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430\: %2 \u0430\u043A\u0442\u0438\u0432\u043D\u043E
+ConfigView.section.connection.group.webseed=\u0423\u0435\u0431/HTTP \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+devices.turnon.qos=\u0410\u043D\u0438\u043D\u0438\u043C\u043D\u043E \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u0441 Vuze \u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438 \u0437\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+ConfigView.section.security.resetkey=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435
+ConfigView.section.file.writemblimit=\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0437\u0430\u043F\u0438\u0441 \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 (\u0432 %1)
+speedtest.wizard.test.mode.updown=\u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0438 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+stream.analysing.media=\u0410\u043D\u0430\u043B\u0438\u0437 \u043D\u0430 \u043D\u043E\u0441\u0438\u0442\u0435\u043B
+Button.finish=\u041A\u0440\u0430\u0439
+v3.share.private.text=\u0418\u0437\u0431\u0440\u0430\u043D\u0438\u044F\u0442 \u0442\u043E\u0440\u0435\u043D\u0442 \u0435 \u043C\u0430\u0440\u043A\u0438\u0440\u0430\u043D \u043A\u0430\u0442\u043E \u0447\u0430\u0441\u0442\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442.\n\n\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u0442 \u0447\u0430\u0441\u0442\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438.
+iconBar.down=\u041D\u0430\u0434\u043E\u043B\u0443
+ConfigView.section.ipfilter.description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435
+v3.mb.PlayFileNotFound.button.redownload=\u041D\u0430\u043D\u043E\u0432\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438
+ConfigView.section.file.perf.cache.size=\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u043A\u0435\u0448\u0430 \u0432 %1
+label.route=\u041C\u0430\u0440\u0448\u0440\u0443\u0442
+devices.xcode.remove.vetoed=\u041F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043D\u0430 '%1' \u0435 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435. \u0421\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0430\u0442\u043E \u0434\u043E\u043A\u0430\u0442\u043E \u043F\u0440\u043E\u0446\u0435\u0441\u044A\u0442 \u043D\u0435 \u0437\u0430 [...]
+TableColumn.menu.date_added.reset=\u041D\u0430\u0447\u0430\u043B\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u0442\u0430
+ConfigView.section.file.perf.explain=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 - \u043D\u0435\u0432\u043D\u0438\u043C\u0430\u0442\u0435\u043B\u043D\u0438 \u043F\u0440\u043E\u043C\u0435\u043D\u0438 \u043D\u0430 \u0442\u0435\u0437\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0438 \u0449\u0435 \u0441\u0435 \u043E\u0442\u0440\u0430\u0437\u0438 \u0431\u0435\u0434\u0441\u0442\u0432\u0435\u043D\u043E \u043D\u0430 \u043F\u0440\u0435\u0434\u04 [...]
+MainWindow.menu.window.minimize.keybinding=Meta+M
+label.showhide.tag=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435/\u0441\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442(\u0438)
+configureWizard.finish.message=Vuze \u0432\u0435\u0447\u0435 \u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043D, \u043F\u0440\u0438\u044F\u0442\u043D\u043E \u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435\!
+importTorrentWizard.torrentfile.invalidPath=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B
+PeersView.C2.info=\u041C\u0435\u0441\u0442\u043D\u043E \u0435 \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442 \u0434\u0430 \u043D\u0435 \u0441\u0432\u0430\u043B\u044F
+ConfigView.section.tracker.scrapecacheperiod=\u0411\u0443\u0444\u0435\u0440 \u043D\u0430 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435\u0442\u043E [ms]
+security.crypto.persist_for.day=1 \u0434\u0435\u043D
+v3.share.private.title=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+MainWindow.menu.view.tagsoverview={tags.view.heading}
+device.itunes.status.running=iTunes \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D
+mdi.entry.games=\u0418\u0433\u0440\u0438
+importTorrentWizard.finish.message=\u0423\u0441\u043F\u0435\u0448\u043D\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u043C\u043F\u043E\u0440\u0442
+ConfigView.section.stats.defaultsavepath=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0437\u0430\u043F\u0438\u0441 \u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438\u0442\u0435
+externalLogin.explanation.capture=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0435 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435 \u0437\u0430 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0437\u0438 \u0448\u0430\u0431\u043B\u043E\u043D. \u0421\u043B\u0435\u0434 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 "\u0413\u043E\u0442\u043E\u0432\u043E".
+ConfigView.section.dns.allow_socks=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435, \u043A\u043E\u0433\u0430\u0442\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E \u043D\u0430 SOCKS \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+FilesView.done=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+security.certcreate.state=\u0421\u0442\u0440\u0430\u043D\u0430 \u0438\u043B\u0438 \u043F\u0440\u043E\u0432\u0438\u043D\u0446\u0438\u044F
+platform.win32.baddll.vlsp=Venturi Firewall
+ConfigView.section.logging.choosedefaultsavepath=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+PluginDeprecation.log.start=\u0422\u0443\u043A \u0438\u043C\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0449\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u043E\u0441\u0442, \u043A\u043E\u044F\u0442\u043E \u0449\u0435 \u043E\u0442\u043F\u0430\u0434\u043D\u0435 \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u [...]
+TableColumn.header.peakdown=\u0412\u0440\u044A\u0445 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+Column.seedspeers.notstarted=%2
+Plugin.localtracker.autoadd=\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+TableColumn.header.Quality=\u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E
+ConfigView.label.use_old_speed_menus=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u043C\u0435\u043D\u044E\u0442\u0430 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+ConfigView.label.seeding.rankType.seed.fallback=\u041E\u0442\u0441\u0442\u044A\u043F\u043B\u0435\u043D\u0438\u0435 \u043A\u044A\u043C \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\:\u041F\u043E\u0441\u044F\u0432\u043A\u0438 \u0441\u043B\u0435\u0434\n[0\: \u0431\u0435\u0437 \u043E\u0442\u0441\u0442\u044A\u043F\u043B\u0435\u043D\u0438\u0435]
+devices.contextmenu.od.enabled=\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u043E
+TableColumn.header.totalspeed.info=\u041E\u0431\u0449\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u0437\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u0441 \u043A\u043E\u0438\u0442\u043E \u0438\u043C\u0430 \u0432\u0440\u044A\u0437\u043A\u0438
+OpenTorrentFile.column.\#=\u2116
+ConfigView.section.connection.encryption.require_encrypted_transport.tooltip=\u041D\u0430\u0441\u0438\u043B\u0435\u043D\u0430 \u0443\u043F\u043E\u0442\u0440\u0435\u0431\u0430 \u043D\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438 \u0432\u0440\u044A\u0437\u043A\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438.
+message.confirm.delete.text=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u043B\u0438 \u043D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 '%1'?
+Progress.reporting.status.canceled=\u041E\u0442\u043C\u0435\u043D\u0435\u043D\u043E
+iconBar.play.tooltip=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+dlg.install.vuzexcode.description=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0437\u0430 \u043C\u0435\u0434\u0438\u0435\u043D \u0430\u043D\u0430\u043B\u0438\u0437
+Wizard.Subscription.rss.subtitle3=\u0421\u043B\u0435\u0434 \u0437\u0430\u043F\u0438\u0441, \u0449\u0435 \u0441\u0435 \u043F\u043E\u043B\u0443\u0447\u0430\u0432\u0430\u0442 \u0436\u0438\u0432\u0438 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430, \u0430\u043A\u043E \u0438\u043C\u0430 \u043D\u043E\u0432\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u043 [...]
+fileplugininstall.install.title=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430?
+Wizard.Subscription.rss.subtitle2=\u041C\u043D\u043E\u0433\u043E \u0438\u0437\u0434\u0430\u0442\u0435\u043B\u0438 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u044F\u0442 RSS \u0435\u043C\u0438\u0441\u0438\u0438 \u043A\u044A\u043C \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E \u0441\u0438. \u0414\u0430 \u0441\u0435 \u043D\u0430\u043C\u0435\u0440\u0438 \u0432 \u0438\u0437\u0434\u0430\u0442\u0435\u043B\u0441\u043A\u0430\u0442\u0430 \u0441\u0442\u0440\u0 [...]
+SpeedTestWizard.set.limit.conf.level=\u041D\u0438\u0432\u043E \u043D\u0430 \u0434\u043E\u0432\u0435\u0440\u0438\u0435
+Wizard.Subscription.rss.subtitle1=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u0438\u043B\u0438 \u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 URL\:
+ManagerItem.error=\u0413\u0440\u0435\u0448\u043A\u0430
+ConfigView.section.connection.port.rand.together=\u0415\u0434\u0438\u043D \u0438 \u0441\u044A\u0449 \u043F\u043E\u0440\u0442 \u0437\u0430 TCP \u0438 UDP
+azbuddy.ui.menu.verify=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u043A\u043B\u0438\u043F-\u0431\u043E\u0440\u0434\u0430
+OpenTorrentOptions.header.filesInfo.some=%1 \u043E\u0442 %2 \u0444\u0430\u0439\u043B\u0430\: %3
+v3.splash.initSkin=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u0413\u041F\u0418 \u043C\u0430\u0441\u043A\u0430
+ConfigView.section.style.colorOverrides.reset=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0446\u0432\u044F\u0442
+TableColumn.header.bad_avail_time=\u0412\u0438\u0434\u044F\u043D\u043E \u043F\u044A\u043B\u043D\u043E \u043A\u043E\u043F\u0438\u0435
+restart.error.pnf=\u041D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D \u043F\u044A\u0442 '%1'
+ConfigView.section.security.group.crypto=\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u0438/\u043B\u0438\u0447\u043D\u0438 \u043A\u043B\u044E\u0447\u043E\u0432\u0435
+PeersView.I1.info=\u0414\u0430\u043B\u0438 \u0435 \u043E\u0442 \u043C\u0435\u0441\u0442\u0435\u043D \u0438\u043D\u0442\u0435\u0440\u0435\u0441 \u0442\u043E\u0432\u0430, \u043A\u043E\u0435\u0442\u043E \u0438\u043C\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F?
+ConfigView.section.files.move=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435\u0442\u043E
+ConfigView.section.style.alwaysRefreshMyTorrents.tooltip=\u0422\u043E\u0432\u0430 \u0449\u0435 \u043E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430 \u0438\u0437\u0433\u043B\u0435\u0434\u0430 \u0441 {library.name} \u0434\u043E\u0440\u0438 \u0434\u0430 \u043D\u0435 \u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u043D (\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u0437\u0430 \u043D\u044F\u043A\u043E\u0438 mIRC \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438)
+FileView.BlockView.Skipped=\u041F\u0440\u043E\u043F\u0443\u0441\u043D\u0430\u0442\u0438
+TableColumn.header.SeedingRank.info=\u0420\u0430\u043D\u0433, \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u0449 \u043A\u043E\u043B\u043A\u043E \u043C\u043D\u043E\u0433\u043E \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435\u0435\u043D\u0435. \u041F\u043E-\u0432\u0438\u0441\u043E\u043A\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0437\u043D\u0430\u0447\u0438 \u043F\u043E-\u0433\u043E\u043B\u044F\u043C\u0430 \u043D\u0443\u0 [...]
+MyTorrentsView.menu.setpriority=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 &\u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+device.model.desc=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u043C\u043E\u0434\u0435\u043B
+ConfigView.label.openstatsonstart=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0434\u0430 \u0441\u0435 \u043E\u0442\u0432\u0430\u0440\u044F \u043F\u0440\u0438 \u043D\u0430\u0447\u0430\u043B\u043D\u043E \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.proxy.enable_proxy=\u0422\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438\u0442\u0435 \u043A\u043E\u043C\u0443\u043D\u0438\u043A\u0430\u0446\u0438\u0438 \u0434\u0430 \u0441\u0430 \u043F\u0440\u0435\u0437 \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+ConfigView.section.ipfilter.blockbanning=\u0417\u0430\u0431\u0440\u0430\u043D\u0430 \u043D\u0430 \u0431\u043B\u043E\u043A \u043E\u0442 256 \u0430\u0434\u0440\u0435\u0441\u0430, \u043A\u043E\u0433\u0430\u0442\u043E \u043E\u0442 \u0442\u043E\u0437\u0438 \u0431\u043B\u043E\u043A \u0441\u0430 \u0437\u0430\u0431\u0440\u0430\u043D\u0435\u043D\u0438 \u0432\u0435\u0447\u0435 \u043D\u0430\u0439-\u043C\u0430\u043B\u043A\u043E \u0442\u043E\u043B\u043A\u043E\u0432\u0430
+MainWindow.menu.file.restart=\u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 Vuze
+azbuddy.os_busy=\u0417\u0430\u0435\u0442
+TorrentOptionsView.title.short=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438
+ConfigView.section.style.forceSIValues=\u041D\u0430\u0441\u0438\u043B\u0435\u043D\u043E \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043A\u0430\u0442\u043E IEC \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438 \u0431\u0435\u0437 \u043E\u0433\u043B\u0435\u0434 \u043D\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0437\u0435\u043D\u0438\u0442\u0435 \u0435\u0434\u0438\u043D\u0438\u0446\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 \u0441\u044A\u0432\u043C\u0435\u0441\u0442\u0438\ [...]
+OpenTorrentWindow.startMode=\u0420\u0435\u0436\u0438\u043C \u043D\u0430 \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+Button.selectAll=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u043E
+ManagerItem.checking=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430
+v3.deleteContent.message=\n\u0414\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u043B\u0438 '%1' \u043E\u0442 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u0430 \u0438\u043B\u0438 \u0441\u0430\u043C\u043E \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0435 \u043E\u0442 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 Vuze \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430?
+ConfigView.group.scrape=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435
+TableColumn.header.AvgAvail=\u0421\u0440. \u043D\u0430\u043B./\u043F\u0430\u0440\u0447\u0435
+# > 2402
+popup.next=\u2192
+wizard.mode=\u0422\u0440\u0430\u043A\u0435\u0440/\u041D\u0430\u0447\u0438\u043D
+ConfigView.section.transfer.lan.uploadrate.tooltip=\u0412\u0440\u044A\u0437\u043A\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0432 \u0441\u044A\u0449\u0430\u0442\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430 \u0438\u043C\u0430\u0442 \u043E\u0442\u0434\u0435\u043B\u043D\u043E \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u043E\u0442\u043D\u043E\u0448\u04 [...]
+azbuddy.ui.menu.ygm=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0430 \u043F\u043E\u0449\u0430
+ConfigView.label.seeding.firstPriority=\u041D\u0430\u0439-\u0432\u0438\u0441\u043E\u043A \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u0441\u0435 \u0434\u0430\u0432\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441
+SystemTray.menu.stopalltransfers=\u0421\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0442\u0440&\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+OpenTorrentOptions.show.never=\u043D\u0438\u043A\u043E\u0433\u0430 \u043E\u0442\u043D\u043E\u0432\u043E
+ConfigView.section.style.graphicsUpdate=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u043D\u0438\u0442\u0435 \u043B\u0435\u043D\u0442\u0438 \u0432\u0441\u0435\u043A\u0438 N \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F/\u0438 \u043D\u0430 \u0413\u041F\u0418
+ConfigView.pluginlist.whereToPutOr=\u0417\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\:
+SpeedTestWizard.test.panel.not.accepted=\u041D\u0435\u043F\u0440\u0438\u0435\u0442\u0430 \u0437\u0430\u044F\u0432\u043A\u0430 \u0437\u0430 \u043F\u0440\u043E\u0431\u0430\:
+ConfigView.section.security=\u0421\u0438\u0433\u0443\u0440\u043D\u043E\u0441\u0442
+ConfigView.label.autoopen=\u0410\u0432\u0442\u043E-\u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+ConfigView.label.seeding.addForSeedingDLCopyCount=\u0421\u0447\u0438\u0442\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F \u0442\u0438\u043F '\u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u0437\u0430 \u0441\u0435\u0435\u043D\u0435' \u0434\u0430 \u0441\u0430 \u0441\u0432\u0430\u043B\u0438\u043B\u0438 \u0441\u043B\u0435\u0434\u043D\u0438\u044F \u0431\u0440\u043E\u0439 \u043A\u043E\u043F\u0438\u044F
+CategoryAddWindow.title=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+FileProgress.stopped={ManagerItem.stopped}
+ConfigView.section.transfer.autospeed.chokeping=Ping \u0432\u0440\u0435\u043C\u0435 \u0441\u0447\u0438\u0442\u0430\u043D\u043E \u0437\u0430 \u0437\u0430\u043F\u0443\u0448\u0432\u043D\u0435 [ms]
+wizard.multitracker.edit.text.title=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0442\u0440\u0430\u043A\u0435\u0440
+FilePriority.invalid.text=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442, \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0446\u044F\u043B\u043E \u0447\u0438\u0441\u043B\u043E\: %1
+installPluginsWizard.mode.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043C\u0435\u0442\u043E\u0434 \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435
+FilesView.rename.confirm.delete.title=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0438\u0435\u043D\u0435\u0442\u043E
+MyTrackerView.webui.contextmenu.copyurl=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 URL \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430
+ConfigView.section.logging.timestamp=\u0424\u043E\u0440\u043C\u0430\u0442 \u043D\u0430 \u0432\u0440\u0435\u043C\u0435\u043E\u0442\u043F\u0435\u0447\u0430\u0442\u044A\u043A\u0430 \u0437\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0434\u043D\u0435\u0432\u043D\u0438\u0446\u0438
+TableColumn.header.up=\u041A\u0430\u0447\u0435\u043D\u043E
+configureWizard.transfer2.group=\u0420\u0435\u0436\u0438\u043C
+ConfigView.label.seeding.ignore.header.rule=\u041F\u0440\u0430\u0432\u0438\u043B\u043E
+PeersView.T=\u0422
+TableColumn.header.TableColumnNameInfo=\u0418\u043C\u0435 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0430 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435
+PeersView.S=\u0421
+OpenTorrentWindow.startMode.stopped=\u0421\u043F\u0440\u044F\u043D
+UpdateConstraint.title=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0442\u0430
+ConfigView.label.seeding.ignore.header.value=\u0421\u0442\u043E\u0439\u043D\u043E\u0441\u0442
+v3.deviceview.infobar.line2.xbox=\u0417\u0430 \u043F\u0440\u0430\u0432\u0435\u043D\u0435 \u043D\u0430 \u0432\u0438\u0434\u0435\u043E \u043F\u043E\u0442\u043E\u043A \u043F\u0440\u0435\u0437 Xbox 360 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 My XBox \u2192 Video Library \u2192 Vuze.
+Formats.units.TB=TB
+beta.wizard.off=\u041E\u0442\u043A\u0430\u0437 \u043E\u0442 \u0431\u0435\u0442\u0430, \u0449\u0435 \u0441\u0435 \u043F\u043E\u043B\u0437\u0432\u0430\u0442 \u0441\u0430\u043C\u043E \u0440\u0435\u0434\u043E\u0432\u043D\u0438 \u0438\u0437\u0434\u0430\u043D\u0438\u044F.
+SpeedTestWizard.finish.panel.title=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0430 \u043F\u0440\u043E\u0431\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430\!
+MyTorrentsView.menu.rename.displayed.enter.message=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u043E \u0438\u043C\u0435 \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0437\u0430 \u0442\u043E\u0432\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435.
+DHTView.db.values=\u0421\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438
+ConfigView.section.stats.savefile=\u0418\u043C\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B \u0441\u044A\u0441 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438
+MyTorrentsView.menu.showdownloadbar=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043B\u0435\u043D\u0442\u0430 \u0437\u0430 \u0441&\u0432\u0430\u043B\u044F\u043D\u0435
+br.backup.folder.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0437\u0430\u043F\u0430\u0300\u0441
+PiecesView.blocks=\u0411\u043B\u043E\u043A\u043E\u0432\u0435
+apply.selected.template=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u044F \u0448\u0430\u0431\u043B\u043E\u043D
+IrcClient.disconnected=\u041F\u0440\u0435\u043A\u044A\u0441\u043D\u0430\u0442 \u043E\u0442
+PeersView.optunchoke=\u041E\u043F\u0442\u0438\u043C. \u043D\u0435\u0437\u0430\u043F\u0443\u0448\u0432\u0430\u043D\u0435
+Scrape.status.initializing=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435\u2026
+ManagerItem.low=\u043D\u0438\u0441\u044A\u043A
+GeneralView.label.hash=\u0420\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435\:
+ConfigView.section.style.dropdiraction=\u0412\u043B\u0430\u0447\u0435\u043D\u0435-\u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u0437\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438
+pairing.ac.getnew.create=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435
+ConfigView.section.file.defaultdir.lastused=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0434\u0430 \u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E\u0442\u043E \u043C\u044F\u0441\u0442\u043E, \u0432 \u043A\u043E\u0435\u0442\u043E \u0435 \u0437\u0430\u043F\u0430\u0437\u0432\u0 [...]
+PeersView.%=\u0412 % \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+MyTorrentsView.menu.eta.abs=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u041E\u0412\u0417 \u043A\u0430\u0442\u043E \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E \u0432\u0440\u0435\u043C\u0435
+Progress.reporting.action.label.cancel.tooltip=\u041E\u0442\u043C\u044F\u043D\u0430 \u043D\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430
+ConfigView.label.udplistenport=UDP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0441\u043B\u0443\u0448\u0430\u043D\u0435
+jvm.max.mem.current=\u0422\u0435\u043A\u0443\u0449\u0430\u0442\u0430 \u043C\u0430\u043A\u0441. \u0438\u0437\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0430 \u043F\u0430\u043C\u0435\u0442 \u0435 %1
+ConfigView.label.seeding.rankType.timedRotation=\u0420\u043E\u0442\u0430\u0446\u0438\u044F \u043F\u043E \u0433\u0440\u0430\u0444\u0438\u043A
+fileplugininstall.duplicate.title=\u0414\u0443\u0431\u043B\u0438\u0440\u0430\u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430
+ConfigView.section.connection.encryption.use_crypto_port=\u0414\u0430 \u0441\u0435 \u043F\u043E\u043B\u0437\u0432\u0430 'cryptoport' \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u043E\u0442\u043E \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438\u0435, \u0437\u0430 \u0434\u0430 \u043D\u044F\u043C\u0430 \u043E\u043F\u0438\u0442\u0438 \u0437\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043D\u0438 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438. \u041 [...]
+v3.MainWindow.menu.games={mdi.entry.games}
+ConfigView.section.display=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435
+ConfigView.section.style.status.show_sr=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+label.checking.sources=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u043E\u0441\u0442 \u043D\u0430 \u0438\u0437\u0442\u043E\u0447\u043D\u0438\u043A\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+FilesView.rename.filename.text=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043D\u043E\u0432\u043E \u0438\u043C\u0435 \u0437\u0430 \u0444\u0430\u0439\u043B
+exportTorrentWizard.exportfile.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434
+unix.script.new.button.quit=\u0418\u0437\u043B\u0438\u0437\u0430\u043D\u0435 \u0441\u0435\u0433\u0430
+TableColumn.header.sessiondown=\u0421\u0435\u0441\u0438\u044F \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+label.proxy=\u041F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A
+exportTorrentWizard.exportfile.invalidPath=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0444\u0430\u0439\u043B \u0437\u0430 \u0435\u043A\u0441\u043F\u043E\u0440\u0442
+MainWindow.menu.view.plugins.logViews=\u041F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u0434\u043D\u0435\u0432\u043D\u0438\u0446\u0438
+v3.MainWindow.tab.publish=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435
+label.show.tag=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442
+LocaleUtil.column.text=\u041D\u0435\u043F\u043E\u0437\u043D\u0430\u0442 \u0442\u0435\u043A\u0441\u0442
+v3.MainWindow.button.stop=\u0421\u043F\u0438\u0440\u0430\u043D\u0435
+wizard.webseed.adding=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 HTTP \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+dht.warn.user=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 \u0441 NAT/\u043F\u043E\u0440\u0442 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0432\u0430\u043D\u0435
+v3.MainWindow.menu.view.asAdvancedList=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D \u0441\u043F\u0438\u0441\u044A\u043A
+ConfigView.section.tracker.client.scrapeinfo=\u0417\u0430\u0431\u0440\u0430\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435\u0442\u043E \u0449\u0435 \u0441\u043F\u0440\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u0430 \u043D\u0430 \u043C\u043D\u043E\u0433\u043E \u043E\u0442 \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0442\u0430 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043D\u0430 \u043E\u043F\u0430\u0448\u [...]
+ConfigView.section.logging.generatediagnostics.info=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430 \u0438 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430 \u0438 \u0434\u043D\u0435\u0432\u043D\u0438\u043A\u0430, \u0430\u043A\u043E \u0435 \u043A\u043E\u043D\u0444\u0438 [...]
+device.router.view.title=\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043E\u0440\u0438
+ConfigView.label.sleep=\u0417\u0430\u0441\u043F\u0438\u0432\u0430\u043D\u0435
+TableColumn.header.unopened.info=\u0424\u043B\u0430\u0433 \u0437\u0430 \u0438\u043D\u0434\u0438\u043A\u0430\u0446\u0438\u044F \u0434\u0430\u043B\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430\u043D (\u043E\u0442\u0432\u0430\u0440\u044F\u043D)
+ConfigView.section.tracker.passwordenabletorrent=\u0421 \u043F\u0430\u0440\u043E\u043B\u0430 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+Pieces.column.\#.info=\u041F\u0430\u0440\u0447\u0435 \u2116
+menu.sortByColumn=\u041F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043F\u043E %1
+ConfigView.section.tracker.createbutton=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435
+devices.button.installitunes=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F \u043D\u0430 iTunes
+device.autohide.alert=%1 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E(\u0430) \u0441\u0430 \u0441\u043A\u0440\u0438\u0442\u0438, \u0437\u0430\u0449\u043E\u0442\u043E \u043D\u0435 \u0441\u0430 \u0431\u0438\u043B\u0438 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 %2 \u0434\u043D\u0438.\n\u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u2192 \u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446 [...]
+ConfigView.section.style=\u0418\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441
+TableColumn.header.size=\u0420\u0430\u0437\u043C\u0435\u0440
+unix.script.new.manual.url=http\://wiki.vuze.com/w/Unix_Startup_Script
+dlg.corewait.title=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u044F\u0434\u0440\u043E\u0442\u043E
+ConfigView.section.transfer.select.v2=\u0410\u0432\u0442\u043E-\u0441\u043A\u043E\u0440\u043E\u0441\u0442 (\u0431\u0435\u0442\u0430)
+ConfigView.section.tracker.pollinterval=\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430 \u0431\u0440\u043E\u0435\u043D\u0435 \u043D\u0430 \u043A\u043B\u0438\u0435\u043D\u0442\u0438 \u043E\u0442 \u0442\u0440\u0430\u043A\u0435\u0440\u0430 [s]
+ConfigView.section.tables=\u0422\u0430\u0431\u043B\u0438\u0446\u0438
+br.backup.auto.dir.select=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0437\u0430\u043F\u0430\u0300\u0441
+CacheView.reads.hits=\u041F\u043E\u043F\u0430\u0434\u0435\u043D\u0438\u044F
+natpmp.info=NAT-PMP \u0435 \u0430\u043B\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430\u0442\u0430 \u043D\u0430 Apple \u0437\u0430 UPnP \u0438 \u0441\u0435 \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 \u043E\u0442 \u043F\u043E-\u043D\u043E\u0432\u0438\u0442\u0435 Airport \u0441\u0442\u0430\u043D\u0446\u0438\u0438\n\nUPnP \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0443\u0441\u043D\u0430\u0442\u043E, \u0437\u0430 \u0434\u0430 \u0441\u0435 [...]
+UIDebugGenerator.message.cancel.title=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442 \u0435 \u043E\u0442\u043C\u0435\u043C\u0435\u043D\u043E
+MyTrackerView.date_added=\u0414\u043E\u0431\u0430\u0432\u0435\u043D\u043E
+webui.i2p_dest=I2P \u0430\u0434\u0440\u0435\u0441
+Wizard.Subscription.subscribe.library.empty=\u041D\u044F\u043C\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438?\n \n\u0414\u0430 \u0441\u0435 \u0442\u044A\u0440\u0441\u0438 \u044F\u0440\u043A\u043E \u043E\u0440\u0430\u043D\u0436\u0435\u0432\u0438\u044F \u0431\u0443\u0442\u043E\u043D \u0437\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0432\u044A\u0432 Vuze HD \u043C\u0440\u0435\u0436\u0430\u0442\u0430.\n \n<A HREF\="http\://wiki.vuze.com/w/FAQ_Subscrip [...]
+MyTorrentsView.menu.setSpeed.disable=\u0418\u0437\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\u0442\u043E
+ConfigView.label.priorityExtensions=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u043E\u0432\u0438\u0448\u0430\u0432\u0430\u043D\u0435 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0441 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438\u0435\n - \u043F\u0440.\: .txt;.nfo;.jpg
+wizard.webseed=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 HTTP \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u043A\u044A\u043C \u0442\u043E\u0440\u0435\u043D\u0442
+iconBar.openNoDefault.tooltip=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B (\u0431\u0435\u0437 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435)
+IrcClient.copyright=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0441\u0435 PircBot Java IRC API - http\://www.jibble.org/pircbot.php
+ConfigView.section.connection.advanced.url=http\://wiki.vuze.com/w/UG_Options\#Advanced_Network_Settings
+OpenTorrentWindow.mb.badSize.title=\u041D\u0435\u0441\u044A\u0432\u043C\u0435\u0441\u0442\u0438\u043C \u0444\u0430\u0439\u043B
+custom.settings.import.title=\u0414\u0430 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u0438 \u043B\u0438 \u0438\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438?
+dlg.auth.enter.expiry=\u0422\u0435\u043A\u0443\u0449\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u0438\u0437\u0442\u0438\u0447\u0430 \u043D\u0430 %1.
+MyTorrentsView.menu.host.error.message=\u0412\u044A\u0437\u043D\u0438\u043A\u043D\u0430 \u0441\u043B\u0435\u0434\u043D\u0430\u0442\u0430 \u0433\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0434\u0441\u043B\u043E\u043D\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+azbuddy.ui.menu.remove=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+DHTView.db.divfreq=\u0427\u0435\u0441\u0442. Div.
+ConfigView.section.proxy.dns.info=\u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 '\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u2192 \u0412\u0440\u044A\u0437\u043A\u0430 \u2192 DNS' \u0437\u0430 \u0443\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u043E\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0438 DNS \u0441\u044A\u0440\u0432\u044A\u0440\u0438 \u0437\u0430 \u043F\u0440\u0435\u0432\u0440\u044A\u0449\u0430\u043D\u0435 \u043D\u [...]
+Peers.column.timetocomplete.info=\u041E\u0441\u0442\u0430\u0432\u0430\u0449\u043E \u0432\u0440\u0435\u043C\u0435 \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+MainWindow.nat.status.unknown=NAT
+ConfigView.label.seeding.rankType.timedRotation.tooltip=\u0412\u0441\u0438\u0447\u043A\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 \u0449\u0435 \u0441\u0435 \u0432\u044A\u0440\u0442\u044F\u0442 \u0432 \u0440\u0435\u0436\u0438\u043C \u043D\u0430 \u0441\u0435\u0435\u043D\u0435.\n\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442\u0442\u [...]
+OpenTorrentWindow.addFiles.URL=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 &URL
+azbuddy.addtorrent.msg=\u0414\u0440\u0443\u0436\u043A\u0430 '%1' \u0438\u0437\u043F\u0440\u0430\u0449\u0430 '%2'.\n\u0414\u0430 \u0441\u0435 \u0434\u043E\u0431\u0430\u0432\u0438 \u043B\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E?
+MyTorrentsView.menu.thisColumn.toClipboard=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442 \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430
+TorrentDetailsView.filter=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u2026
+v3.activity.header.downloads=\u0421\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+ConfigView.section.ipfilter.editFilter=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0444\u0438\u043B\u0442\u044A\u0440
+v3.splash.hookPluginUI=\u0417\u0430\u043A\u0430\u0447\u0430\u043D\u0435 \u0437\u0430 \u0413\u041F\u0418 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430
+MyTorrentsView.menu.movemenu=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+mb.azmustclose.text=Vuze \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0437\u0430\u0442\u0432\u043E\u0440\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 \u043F\u0440\u043E\u0431\u043B\u0435\u043C \u0441 (\u0440\u0435-)\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430, \u043D\u0430\u0439-\u0432\u0435\u0440\u043E\u044F\u0442\u043D\u043E \u043F\u043E\u0440\u0430\u0434\u0438 \u0441\u0442\u0430 [...]
+ConfigView.section.security.unlockkey=\u0418\u0437\u0440\u0438\u0447\u043D\u043E \u043E\u0442\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435
+v3.MainWindow.tab.home=\u0422\u0430\u0431\u043B\u043E
+PeersView.connected_time.info=\u041E\u0431\u0449\u043E\u0442\u043E \u0432\u0440\u0435\u043C\u0435 \u043D\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+MyTrackerView.bytesin=\u0412\u0445. \u0431\u0430\u0439\u0442\u043E\u0432\u0435
+ConfigView.section.file.perf=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044F\u043D\u0435
+security.crypto.persist_for.30days=30 \u0434\u043D\u0438
+installPluginsWizard.list.description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430
+MainWindow.dialog.select.vuze.file=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 Vuze \u0444\u0430\u0439\u043B
+label.out=\u0418\u0437\u0445.
+ConfigView.section.transfer.autospeed.latencyfactor=\u0424\u0430\u043A\u0442\u043E\u0440 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D \u0437\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u043C\u0435\u0436\u0434\u0443 \u043F\u0440\u043E\u043C\u044F\u043D\u0430\u0442\u0430 \u043D\u0430 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0442\u0430 \u0438 \u043F\u0440\u043E\u043C\u044F\u043D\u0430\u0442\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0 [...]
+br.restore.folder.title=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0432\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+ConfigView.section.mode.beginner=\u041D\u0430\u0447\u0438\u043D\u0430\u0435\u0449
+Progress.reporting.window.remove.now.tooltip=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438, \u043F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u0438 \u0438\u043B\u0438 \u043E\u0442\u043A\u0430\u0437\u0430\u043D\u0438 \u043F\u0440\u043E\u0446\u0435\u0441\u0438 \u043E\u0442 \u0438\u0437\u0433\u043B\u0435\u0434\u0430
+platform.jvmopt.nolink=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u0442 \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u043D\u0430 JVM \u0437\u0430\u0440\u0430\u0434\u0438 \u0437\u0430\u0431\u0440\u0430\u043D\u0430 \u043E\u0442 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430
+ConfigView.section.plugins.dht=\u0420\u0430\u0437\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0430 \u0411\u0430\u0437\u0430 \u0414\u0430\u043D\u043D\u0438
+ConfigView.section.connection.encryption.min_encryption_level=\u041D\u0430\u0439-\u043D\u0438\u0441\u043A\u043E \u043D\u0438\u0432\u043E \u043D\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435
+ConfigView.section.transfer.autospeed.minupload=%1 \u043C\u0438\u043D. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+ConfigView.label.seeding.firstPriority.ignoreSPRatio=\u0422\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u043E\u0441\u044F\u0432\u043A\u0438\u0442\u0435 \u043A\u044A\u043C \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u0442\u0435 \u043D\u0430\u0434
+label.click.to.restore=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u0432\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430
+core.shutdown.dl=\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+ConfigView.section.tracker.scrapeandcache=\u041E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435 \u0438 \u0431\u0443\u0444\u0435\u0440\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.proxy.port=\u041F\u043E\u0440\u0442
+ConfigView.label.seeding.firstPriority.ignore0Peer=\u0422\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 0 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+Button.cancel=\u041E\u0442\u043A\u0430\u0437
+TableColumn.header.sr_prog=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043D\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+Peers.column.maxupspeed=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+label.init.save.loc=\u041D\u0430\u0447\u0430\u043B\u043D\u043E\u0442\u043E \u043C\u044F\u0441\u0442\u043E \u0437\u0430 \u0437\u0430\u043F\u0438\u0441
+CacheView.reads.\#=\u0431\u0440.
+MainWindow.menu.window.alltofront=&\u0412\u0441\u0438\u0447\u043A\u043E \u043D\u0430 \u043F\u0440\u0435\u0434\u0435\u043D \u043F\u043B\u0430\u043D
+MainWindow.menu.tools.speedtest=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u2026
+subs.ext.view.info=Vuze \u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043D \u0434\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 \u043E\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u0447\u0440\u0435\u0437 \u0432\u044A\u043D\u0448\u0435\u043D \u0431\u0440\u0430\u0443\u0437\u044A\u0440
+azbuddy.ui.menu.cat.set=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0430\u0442 \u0435\u0442\u0438\u043A\u0435\u0442\u0438/\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438
+OpenTorrentWindow.addFiles.Clipboard=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043E\u0442 \u043A\u043B\u0438\u043F&\u0431\u043E\u0440\u0434\u0430
+ConfigView.label.seeding.rankType.peer=\u041F\u0440\u0435\u0442\u0435\u0433\u043B\u0435\u043D \u0431\u0440\u043E\u0439 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+ConfigView.group.irctitle=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 IRC
+plugin.sharing.remove.veto=\u0422\u043E\u0432\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u0435 \u043F\u043E\u0434-\u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 '\u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F' \u0438 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u04 [...]
+download.removerules.updatetorrents=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u0442\u0435 \u0441 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043D\u0430 Vuze \u043F\u043E \u0438\u0437\u0438\u0441\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u043E\u044F\u043A\u0430
+Torrent.create.progress.totalfilecount=\u041E\u0431\u0449 \u0431\u0440\u043E\u0439 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435\:
+TableColumn.header.tag.type={MySharesView.type}
+plugin.aznetstatus.pingtarget=Ping/trace route \u043D\u0430 \u0446\u0435\u043B
+Trackers.column.peers=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+LoggerView.pause=\u041F\u0430\u0443\u0437\u0430 \u043D\u0430 \u0434\u043D\u0435\u0432\u043D\u0438\u043A\u0430
+ConfigView.label.usefastresume=\u0420\u0435\u0436\u0438\u043C \u0437\u0430 \u0431\u044A\u0440\u0437\u043E \u0432\u044A\u0437\u043E\u0431\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+MainWindow.menu.window.minimize=&\u041C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430\u043D\u0435
+speedtest.wizard.test.mode.down=\u0441\u0432\u0430\u043B\u044F\u043D\u0435
+devices.xcode.only.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043D\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+ConfigView.label.savetorrents=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 .torrent \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+ConfigView.pluginlist.column.isOperational=\u0420\u0430\u0431\u043E\u0442\u0438?
+external.browser.failed=\u041F\u0440\u043E\u0432\u0430\u043B \u043D\u0430 \u0432\u044A\u043D\u0448\u043D\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u044A\u0440
+GeneralView.yes=\u0434\u0430
+TableColumn.header.tag_colors=\u0426\u0432\u0435\u0442\u043E\u0432\u0435 \u0437\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438
+Wizard.Subscription.optin.title=\u0414\u0430 \u0438\u043C\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+Formats.units.MB=MB
+ConfigView.section.style.status.show_rategraphs=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0438\u0441\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u043D\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u044F\u0442\u0430 \u043A\u0430\u0442\u043E \u0433\u0440\u0430\u0444\u0438\u043A\u0438 \u043F\u043E\u0434 \u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435/\u043A\u0430\u0447\u0432\u0430\u043D\u0435
+configureWizard.file.title=\u0422\u043E\u0440\u0435\u043D\u0442\u0438/\u0444\u0430\u0439\u043B\u043E\u0432\u0435
+health.explain.grey=\u041E\u0437\u043D\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u043D\u0435 \u0435 \u0430\u043A\u0442\u0438\u0432\u0435\u043D (\u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0438\u043B\u0438 \u043A\u0430\u0447\u0432\u0430\u043D\u0435)
+library.incomplete.header.p=%1 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F\u0442, %2 \u0447\u0430\u043A\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+PeersView.client.info=\u0422\u0438\u043F \u043D\u0430 BT \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+DownloadManager.error.unabletostartserver=\u041D\u0435\u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0441\u044A\u0440\u0432\u044A\u0440\u0430 - \u0434\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u0437\u0430 \u0432\u0445\u043E\u0434\u044F\u0449 \u043F\u043E\u0440\u0442/\u0440\u0430\u0437\u0440\u043 [...]
+exportTorrentWizard.process.inputfilebad.message=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u0432\u0445\u043E\u0434\u044F\u0449\u0438\u044F \u0444\u0430\u0439\u043B\:
+ConfigView.label.seeding.firstPriority.DLMinutes=\u0418\u0437\u043C\u0438\u043D\u0430\u043B\u043E \u0432\u0440\u0435\u043C\u0435 \u043E\u0442 \u043D\u0430\u0447\u0430\u043B\u043E\u0442\u043E \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+Button.bar.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435
+GeneralView.label.maxuploads=\u0413\u043D\u0435\u0437\u0434\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\:
+DHTView.activity.title=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435
+importTorrentWizard.importfile.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434
+ConfigView.label.popupdownloadfinished=\u0418\u0437\u0441\u043A\u0430\u0447\u0430\u0449\u043E \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.style.status.show_ipf=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 IPFilter
+TrayWindow.menu.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u043A\u043E\u0448\u043D\u0438\u0446\u0430\u0442\u0430 \u0441\u044A\u0441 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+devices.sidebar.oxc.pm.4={ConfigView.label.stop.Sleep}
+devices.sidebar.oxc.pm.2={ConfigView.label.stop.Hibernate}
+devices.sidebar.oxc.pm.1={ConfigView.label.stop.Shutdown}
+ConfigView.label.quickviewmaxkb=\u041C\u0430\u043A\u0441. \u0440\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0444\u0430\u0439\u043B\r\n [KB]
+MainWindow.dht.status.initializing=DHT \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435
+security.crypto.pw.title=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430
+importTorrentWizard.process.torrentfail.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0437\u0430\u043F\u0438\u0441 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.section.style.units=\u0421 \u043C\u0435\u0440\u043D\u0438 \u0435\u0434\u0438\u043D\u0438\u0446\u0438
+ConfigView.section.style.dropdiraction.sharefoldercontentsrecursive=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E (\u0440\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E)
+TableColumn.header.TableColumnInfo=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0430
+TrackerClient.announce.warningmessage=\u0422\u0440\u0430\u043A\u0435\u0440\u044A\u0442 \u0437\u0430 '%1' \u0432\u044A\u0440\u043D\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 '%2'
+ConfigView.pluginlist.whereToPut=\u0421\u043B\u0430\u0433\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u0438 \u0437\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B \u0432 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043F\u043E\u0434\:
+message.status.success=\u0423\u0441\u043F\u0435\u0448\u043D\u043E
+ConfigView.section.proxy.password=\u041F\u0430\u0440\u043E\u043B\u0430
+MainWindow.menu.window.zoom.restore=\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+ConfigView.section.file.save.peers.max=\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+ConfigView.section.file.defaultdir.autorename=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438\u0442\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442, \u0430\u043A\u043E \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0432 \u043F\u044A\u0442\u044F \u0438\u0437\u0433\u043B\u0435\u0436\u0434\u0430\u0442 \u0440\u0430\u0437\u043B\u0438\u0447\u [...]
+PiecesView.DistributionView.weHave=\u0412\u0435\u0447\u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+PeersView.downloadspeedoverall=\u041E\u0431\u0449\u043E \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+device.mediaserver.remove_all.title=\u041F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+Formats.units.KB=KB
+device.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u0440\u0438\u0442\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+OpenTorrentWindow.filesInfo=\u0429\u0435 \u0441\u0435 \u0441\u0432\u0430\u043B\u0438 %1 \u043E\u0442 %2.
+#There is a plugin to help with internationalizing these bundles at http://plugins.vuze.com/plugin_list.php
+MainWindow.menu.file.open.torrent=\u0422\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u0085\u2026
+uninstallPluginsWizard.finish.title=\u0412 \u043F\u0440\u043E\u0446\u0435\u0441 \u043D\u0430 \u0434\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F
+ConfigView.section.style.forceMozilla=Vuze \u0434\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 Mozilla \u0437\u0430 \u0431\u0440\u0430\u0443\u0437\u044A\u0440\u0441\u043A\u0438 \u043F\u0440\u0438\u0441\u043F\u043E\u0441\u043E\u0431\u043B\u0435\u043D\u0438\u044F [\u0438\u0437\u0438\u0441\u043A\u0432\u0430 XULRunner \u0438\u043B\u0438 Firefox 3; \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442]
+sidebar.header.transfers=\u041C\u0435\u0441\u0442\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+update.instance.update=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438
+ConfigView.label.seeding.fakeFullCopySeedStart=\u043D\u043E \u0441\u0430\u043C\u043E \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0441 \u043D\u0430\u0439-\u043C\u0430\u043B\u043A\u043E
+label.plugin.options=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\u2026
+UpdateMonitor.messagebox.verification.failed.title=\u041F\u0440\u043E\u0432\u0430\u043B \u0432 \u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F\u0442\u0430
+FileItem.normal=\u043D\u043E\u0440\u043C\u0430\u043B\u0435\u043D
+MyTorrentsView.menu.move=\u041F\u0440\u0435&\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435
+FilesView.priority=\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+upnp.mapping.dataportudp=\u041A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438 UDP \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043F\u043E\u0440\u0442
+DownloadActivityView.legend.peeraverage={PeersGraphicView.title.full}
+SpeedTestWizard.set.upload.result=\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442 \u043E\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043Data \u043F\u0440\u043E\u0431\u0430
+ConfigView.section.style.showProgramIcon.tooltip=\u0418\u0437\u0433\u043B\u0435\u0434\u044A\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043E\u0442\u043D\u043E\u0432\u043E, \u0437\u0430 \u0434\u0430 \u0432\u043B\u044F\u0437\u0430\u0442 \u0432 \u0441\u0438\u043B\u0430 \u043F\u0440\u043E\u043C\u0435\u043D\u0438\u0442\u0435
+IrcClient.topicforchannel=\u0422\u0435\u043C\u0430 \u043D\u0430 \u043A\u0430\u043D\u0430\u043B\u0430
+ConfigView.section.logging.maxsize=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u0430 \u0433\u043E\u043B\u0435\u043C\u0438\u043D\u0430 \u043D\u0430 \u0434\u043D\u0435\u0432\u043D\u0438\u043A\u0430
+authenticator.tracker=\u0422\u0440\u0430\u043A\u0435\u0440
+devices.view.title=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+ConfigView.label.seeding.firstPriority.ignore.info=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u0435\u0437\u0438 \u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u043F\u0440\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\n\u0432 \u043C\u043E\u043C\u0435\u043D\u0442\u0430 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E.
+azbuddy.ui.mykey=\u041C\u0435\u0441\u0442\u0435\u043D \u043A\u043B\u044E\u0447\:
+wizard.maketorrents.init.tags=\u041D\u0430\u0447\u0430\u043B\u043D\u0438 \u0435\u0442\u0438\u043A\u0435\u0442\u0438 (\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ",")
+OpenTorrentWindow.fileList=\u0424\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\:
+iconBar.queue.tooltip=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 (\u0438\u043B\u0438 \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430) \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+ConfigView.dialog.choosedefaulttorrentpath=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+installPluginsWizard.file.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434\u0085\u2026
+subs.prop.last_error=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430
+label.complete=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+tag.type.ds.inact={label.inactive}
+v3.MainWindow.tab.library=\u0411\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430
+MainWindow.status.latestversion=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+health.explain.red=\u041E\u0437\u043D\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u043D\u044F\u043C\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u043F\u0440\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+configureWizard.nat.server.udp_listen_port=\u0412\u0445\u043E\u0434\u044F\u0449 UDP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0441\u043B\u0443\u0448\u0430\u043D\u0435
+installPluginsWizard.title=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+webui.port.override=\u041F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\: \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0441\u0430\u043C\u043E, \u0430\u043A\u043E \u0432\u044A\u043D\u0448\u043D\u0438\u044F\u0442 \u043F\u043E\u0440\u0442 \u0435 \u0440\u0430\u0437\u043B\u0438\u0447\u0435\u043D \u043E\u0442 \u0432\u044A\u0442\u0440\u0435\u0448\u043D\u0438\u044F \u0437\u0430\u0440\u0430\u0434\u0438 NAT \u043A\u043E\ [...]
+security.certcreate.title=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0430\u043C\u043E\u043F\u043E\u0434\u043F\u0438\u0441\u0430\u043D \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
+TrackerAvail.column.leechers.info={Trackers.column.leechers.info}
+DetailedListView.title=\u041F\u043E\u0434\u0440\u043E\u0431\u0435\u043D \u0441\u043F\u0438\u0441\u044A\u043A
+OpenTorrentWindow.fileTable.destinationName=\u0418\u043C\u0435 \u043D\u0430 \u043C\u0435\u0441\u0442\u043E\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435
+ConfigView.label.strictfilelocking=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u043E \u0437\u0430\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u0437\u0430 \u0438\u0437\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u0435\u043D \u0434\u043E\u0441\u0442\u044A\u043F \u0437\u0430 \u0437\u0430\u043F\u0438\u0441 \u0441\u0440\u0435\u0434 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u0442\u0435
+FilesView.menu.setpriority.numeric.auto=\u0427\u0438\u0441\u043B\u043E\u0432 - \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u0449
+TransferStatsView.legend.ping3=\u0426\u0435\u043B 3
+TransferStatsView.legend.ping2=\u0426\u0435\u043B 2
+TransferStatsView.legend.ping1=\u0426\u0435\u043B 1
+PeersView.port.info=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442
+ConfigView.section.connection.network.max.simultaneous.connect.attempts=\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0435\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0438 \u043E\u043F\u0438\u0442\u0438 \u0437\u0430 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438
+DHTView.general.nodes=\u0412\u044A\u0437\u043B\u0438\:
+ConfigView.label.openconsole=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 '\u041A\u043E\u043D\u0437\u043E\u043B\u0430' \u043F\u0440\u0438 \u043D\u0430\u0447\u0430\u043B\u043D\u043E \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+MainWindow.menu.file.create.fromfile=\u041E\u0442 &\u0444\u0430\u0439\u043B
+TableColumn.header.SeedingRank=\u041F\u043E\u0441\u044F\u0432\u043A\u043E\u0432 \u0440\u0430\u043D\u0433
+VivaldiView.title.fullcvs=\u0412\u0438\u0432\u0430\u043B\u0434\u0438 CVS
+ConfigView.section.file.perf.cache.enable=\u041F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0438\u0441\u043A\u043E\u0432 \u043A\u0435\u0448
+ConfigView.section.connection.encryption.encrypt.group=\u0422\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442\u043D\u043E \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435/\u043F\u0440\u0438\u043A\u0440\u0438\u0432\u0430\u043D\u0435
+SpeedTestWizard.test.panel.enc.label=\u0414\u0430 \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043D\u0435 \u0437\u0430 \u043F\u0440\u043E\u0431\u0430 \u0441 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435\:
+Button.sendManual=\u0420\u044A\u0447\u043D\u043E \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 (\u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 .zip)
+MyTorrentsView.menu.create_personal_share=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043B\u0438\u0447\u043D\u043E \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+dlg.auth.title=\u0410\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F
+MainWindow.status.latestversion.clickupdate=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430
+TableColumn.header.availability=\u041D\u0430\u043B\u0438\u0447\u043D\u043E\u0441\u0442
+IPChecker.external.service.discoveryvip.description=Discoveryvip - \u0441\u0430\u043C\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 IP \u0430\u0434\u0440\u0435\u0441
+MainWindow.upgrade.section.info=\u041D\u043E\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0430 \u0440\u0430\u0437\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435
+PeersView.incomingreqcount=\u0412\u0445. \u0437\u0430\u044F\u0432\u043A\u0438
+upnp.alertdeviceproblems=\u0414\u043E\u043A\u043B\u0430\u0434\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 \u0441 UPnP \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u0442\u043E
+v3.MainWindow.button.comment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+configureWizard.transfer2.mselect=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u0437\u0430 \u041A\u0410\u0427\u0412\u0410\u041D\u0415 \u043F\u0440\u0438 \u0442\u0435\u043A\u0443\u0449\u0430\u0442\u0430 \u0432\u0440\u044A\u0437\u043A\u0430
+IrcClient.haskicked=\u0438\u0437\u0433\u043E\u043D\u0438
+MainWindow.menu.file.share.dircontents=\u0421&\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0085\u2026
+ConfigView.label.pauseresume=\u0410\u0432\u0442\u043E-\u043F\u0430\u0443\u0437\u0430/\u043F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+swt.uninstall.window.title=\u0427\u0438\u0441\u0442\u0430\u0447 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0437\u0430 Vuze
+UpdateMonitor.messagebox.accept.unverified.text=\u041D\u0435 \u043C\u043E\u0436\u0430 \u0434\u0430 \u0441\u0435 \u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u0438, \u0447\u0435 '%1' \u0435 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 \u0437\u0430 Vuze.\n\u0410\u043A\u043E \u043D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u0435 \u0442\u0430\u043A\u0430, \u043F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430 \ [...]
+MainWindow.status.update.tooltip=\u0421 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0430\u0432\u0430\u043D\u0435 \u0442\u0443\u043A \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E
+MainWindow.menu.closealldetails=\u0417&\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u0432\u0441\u0438\u0447\u043A\u0438 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+Progress.reporting.action.label.retry.tooltip=\u041D\u043E\u0432 \u043E\u043F\u0438\u0442 \u0437\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F
+Subscription.menu.reset=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u043D\u043E \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+MyTorrentsView.mytorrents={library.name}
+br.restore=\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+pairing.status.pending=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0449\u0435 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u0438 \u0432 %1
+devices.sidebar.oxc.closevuze={ConfigView.label.stop.QuitVuze}
+ConfigView.option.dm.dblclick.play=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+ConfigView.section.ipfilter.end=\u041A\u0440\u0430\u0435\u043D IP
+CacheView.reads.fromCache=\u041E\u0442 \u0431\u0443\u0444\u0435\u0440
+dlg.auth.trial.title=\u041F\u0440\u043E\u0431\u043D\u043E DVD \u0437\u0430\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+PeersView.T.info=\u041B (\u043B\u043E\u043A\u0430\u043B\u043D\u043E)\: \u043C\u0435\u0441\u0442\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430, \u041E (\u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u043E)\: \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u0430 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u043 [...]
+tag.sharing.enable.text=\u0414\u0430 \u0441\u0435 \u0441\u043F\u043E\u0434\u0435\u043B\u0438\u044F\u0442 \u043B\u0438 \u043F\u0440\u0438\u0441\u0432\u043E\u0435\u043D\u0438\u0442\u0435 \u0435\u0442\u0438\u043A\u0435\u0442\u0438/\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0430\u043D\u043E\u043D\u0438\u043C\u043D\u043E \u0441 \u043E\u0431\u0449\u043D\u043E\u0441\u0442\u0442\u0430?\n\n\u0422\u043E\u0432\u0430 \u0449\u0435 \u043F\u043E\u043C\u043E\u0433\u043D\u0435 \u043D\u0430 [...]
+MyTrackerView.status.published=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u043E
+Formats.units.GB=GB
+PeersView.BlockView.NextRequest=\u0421\u043B\u0435\u0434\u0432\u0430\u0449\u0430 \u0437\u0430\u044F\u0432\u043A\u0430
+v3.MainWindow.Loading=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435\u2026
+azbuddy.ui.menu.send_msg=\u0422\u0435\u043A\u0441\u0442 \u0437\u0430 \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043A\u044A\u043C \u0434\u0440\u0443\u0436\u043A\u0430(\u0438)
+v3.MainWindow.menu.view.toolbartext=\u0422\u0435\u043A\u0441\u0442 \u043D\u0430 \u043B\u0435\u043D\u0442\u0438\u0442\u0435 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438
+ConfigView.pluginlist.broken=\u0421\u0447\u0443\u043F\u0435\u043D
+GeneralView.label.filename=\u0418\u043C\u0435\:
+DownloadManager.error.filetoobig=\u0424\u0430\u0439\u043B\u044A\u0442 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0435 \u0442\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C
+TableColumn.header.maxuploads.info=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u0435\u043D \u0431\u0440\u043E\u0439 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u043A\u044A\u043C \u043A\u043E\u0438\u0442\u043E \u0435\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u0441\u0435 \u043A\u0430\u0447\u0432\u0430
+webui.mode=\u0420\u0435\u0436\u0438\u043C
+security.crypto.persist_for=\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442 \u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430\u0442\u0430
+iconBar.open.tooltip=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442(\u0438)
+MainWindow.menu.view.myshares=\u041C\u0435\u0441\u0442\u043D\u043E \u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D\u0438
+dlg.install.mlab.subtitle=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435
+devices.info.copypending=%1 \u0444\u0430\u0439\u043B\u0430 \u0447\u0430\u043A\u0430\u0442 \u0437\u0430 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435
+device.search.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0442\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+ipCheckerWizard.progresstitle=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 IP
+TableColumn.header.peersources.info=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438 \u0437\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0438 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+ConfigView.option.dm.dblclick.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+splash.openViews=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0438\u0437\u0433\u043B\u0435\u0434\u0438
+MainWindow.dialog.exitconfirmation.text=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043B\u0435\u0437\u0435 \u043E\u0442 Vuze?
+exportTorrentWizard.finish.title=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+iconBar.down.tooltip=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0434\u043E\u043B\u0443
+DHTTransport.report.received_bit=\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E %1 \u0434\u043E %2 \u043E\u0442 %3
+library.core.wait=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435\u2026\n\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 Vuze \u043A\u043B\u0438\u0435\u043D\u0442\u0430.
+label.options.and.info=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438/\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u2026
+ConfigView.section.file.defaultdir.autorename.tooltip=\u0422\u043E\u0432\u0430 \u043D\u0435 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0434\u0430 \u043F\u0440\u0435\u0437\u0430\u043F\u0438\u0448\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u043D\u0430 \u0434\u0440\u0443\u0433 \u0442\u043E\u0440\u0435\u043D\u0442, \u043A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0435\u043D\u0430\u0442\u0430 \u043D\u0430 \u0 [...]
+ConfigView.label.periodiccheck=\u041F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+Progress.reporting.status.finished=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+TableColumn.header.maxupspeed=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+plus.notificaiton.ExpiredEntry.s=\u041C\u0435\u0441\u0442\u043D\u0438\u044F\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442 \u0437\u0430 Vuze \u041F\u043B\u044E\u0441 \u0435 \u0438\u0437\u0442\u0435\u043A\u044A\u043B\: <A %2>\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435</A>
+MainWindow.menu.language.refresh=\u041E\u043F&\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0435
+MessageBoxWindow.rememberdecision=\u0417\u0430\u043F\u043E\u043C\u043D\u044F\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u043E\u0440\u0430
+plus.notificaiton.ExpiredEntry.p={plus.notificaiton.ExpiredEntry.s}
+configureWizard.nat.title=\u041F\u0440\u043E\u0431\u0430 \u043D\u0430 NAT/\u0441\u044A\u0440\u0432\u044A\u0440\u0435\u043D \u043F\u043E\u0440\u0442
+ConfigView.section.logging.log0type=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+label.current_ip=\u0422\u0435\u043A\u0443\u0449 IP \u0430\u0434\u0440\u0435\u0441\:
+upnp.refresh_mappings_on_bad_nat=\u0410\u0432\u0442\u043E-\u043E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0442\u0430 \u043F\u0440\u0438 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 NAT "\u0437\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435\u043D\u0430"
+DHTView.general.skew=\u041D\u0430\u043A\u043B\u043E\u043D\:
+splash.plugin.UIinit=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u0413\u041F\u0418 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\: %1
+DHTView.general.users=\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438\:
+SpeedTestWizard.test.panel.test.countdown=\u043F\u0440\u043E\u0431\u0430\u0442\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0430 \u0437\u0430\:
+#Used by the webui plugin
+MyTorrentsView.menu.removeand.deletetorrent=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 &\u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.label.watchtorrentfolder=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u043D \u0438\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u043D\u043E\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+torrent.view.info=\u041F\u0440\u0435\u0433\u043B\u0435\u0434 \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u2026
+ConfigView.section.tracker.server.group.networks.info=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043C\u0440\u0435\u0436\u0438, \u0437\u0430 \u043A\u043E\u0438\u0442\u043E \u0442\u0440\u0430\u043A\u0435\u0440\u044A\u0442 \u0449\u0435 \u043F\u0440\u0438\u0435\u043C\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+IrcView.actionnotsupported=\u0422\u043E\u0432\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435 \u0441\u0435 \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430
+ConfigView.section.tracker.announcecacheperiod=\u041E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0431\u0443\u0444\u0435\u0440 (ms)
+DHTView.operations.findNode=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0432\u044A\u0437\u0435\u043B
+iconBar.up.tooltip=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0433\u043E\u0440\u0435
+label.bt.connect=\u0411\u0422 \u0441\u0432\u044A\u0440\u044A\u0440\u0437\u0432\u0430\u043D\u0435
+ConfigView.section.proxy.group.tracker=\u0422\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043A\u043E\u043C\u0443\u043D\u0438\u043A\u0430\u0446\u0438\u0438
+ConfigView.label.queue.newseedsmovetop=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u043E\u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0432 \u043D\u0430\u0447\u0430\u043B\u043E\u0442\u043E \u043D\u0430 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+DHTView.operations.ping=\u041F\u0438\u043D\u0433
+ConfigView.label.disconnetseed=\u041F\u0440\u0435\u043A\u044A\u0441\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0441\u044F\u0432\u043A\u0438\u0442\u0435 \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435
+MainWindow.menu.transfers.resumetransfers.keybinding.mac=Meta+Shift+.
+device.retry.copy=\u041D\u043E\u0432 \u043E\u043F\u0438\u0442 \u0437\u0430 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.connection.group.http=\u041F\u043E HTTP
+ConfigView.label.enableSystrayToolTip=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u0430\u043D\u0435\u0442\u043E \u043F\u0440\u0438 \u043F\u043E\u0441\u043E\u0447\u0432\u0430\u043D\u0435 \u0441 \u043C\u0438\u0448\u043A\u0430\u0442\u0430
+ConfigView.section.tracker.maxthreads=\u041C\u0430\u043A\u0441. \u043A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u0438 \u0437\u0430\u044F\u0432\u043A\u0438
+MainWindow.menu.file.create.fromdir=\u041E\u0442 &\u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+ConfigView.section.security.system.managed=\u041F\u0440\u0435\u0434\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u043D\u043E \u043E\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0430
+Button.mark=\u041E\u0442\u0431\u0435\u043B\u044F\u0437\u0432\u0430\u043D\u0435
+MyTorrentsView.menu.sl_remove_from_prof=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043E\u0442 \u043F\u0440\u043E\u0444\u0438\u043B
+ConfigView.section.connection.advanced.SO_SNDBUF=\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0446\u043E\u043A\u044A\u043B SO_SNDBUF [0\: \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u043E\u0442 \u041E\u0421-\u0430]
+torrent.fix.corrupt.browse=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+azbuddy.ui.menu.cat.share=\u0421 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u0441 \u0434\u0440\u0443\u0436\u043A\u0430(\u0438)
+memmon.heap.auto.increase.warning=\u0418\u0437\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u0430\u0442\u0430 \u043F\u0430\u043C\u0435\u0442 \u0435 \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0430 \u043D\u0430 %1. \u0429\u0435 \u0432\u043B\u0435\u0437\u0435 \u0432 \u0441\u0438\u043B\u0430 \u0441\u043B\u0435\u0434 \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u043D\u0430 Vuze.
+Formats.units.TiB=TiB
+ConfigView.label.seeding.rankType.peerSeed=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\:\u041F\u043E\u0441\u044F\u0432\u043A\u0438
+label.more.dot=\u041F\u043E\u0432\u0435\u0447\u0435\u2026
+PeersView.outgoingreqcount=\u0418\u0437\u0445. \u0437\u0430\u044F\u0432\u043A\u0438
+DHTView.db.indirect=\u0418\u043D\u0434\u0438\u0440\u0435\u043A\u0442\u043D\u043E
+platform.win32.baddll.MxAVLsp=VCom Fix-It Utilities
+DownloadManager.error.unsupportedencoding=\u041D\u0435\u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430\u043D\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
+exportTorrentWizard.exportfile.message=XML \u0444\u0430\u0439\u043B, \u0432 \u043A\u043E\u0439\u0442\u043E \u0434\u0430 \u0441\u0435 \u0435\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u0430
+MyTorrentsView.menu.clear_alloc_data=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0437\u0430\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E
+ConfigView.section.file.decoder.nodecoder=\u041D\u044F\u043C\u0430
+TorrentOptionsView.multi.title.full=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442(\u0438)/\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442(\u0438)
+device.router.is_mapping=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\u0435
+MyTorrentsView.filter=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u0432 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430\u2026
+configureWizard.transfer2.message=Bittorrent \u0435 \u043E\u0441\u043D\u043E\u0432\u0430\u043D \u043D\u0430 "\u0442\u0430\u043D\u0442\u043E \u0437\u0430 \u0442\u0430\u043D\u0442\u043E" \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B. \u041D\u0430\u0439-\u043E\u0431\u0449\u043E, \u043A\u043E\u043B\u043A\u043E\u0442\u043E \u043F\u043E-\u0431\u044A\u0440\u0437\u043E \u0441\u0435 \u043A\u0430\u0447\u0432\u0430, \u0442\u043E\u043B\u043A\u043E\u0432\u0430 \u043F\u043E-\u0431\u044A\u0440\u0437 [...]
+ConfigView.section.tracker.client.connecttimeout=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 (s)
+GeneralView.label.maxdownloadspeed.tooltip=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+azbuddy.ui.menu.enc=\u0428\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430
+ConfigView.label.piecereorder=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438 \u043A\u044A\u043C \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043F\u0440\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0438 \u043F\u0440\u0435\u043D\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430 \u0434\u043E\u043A\u0430\u0442\u043E \u0442\u0435\u0447\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u04 [...]
+dial.up=\u041D\u0430\u0431\u0438\u0440\u0430\u043D\u0435
+device.itunes.status.notinstalled=iTunes \u043D\u0435 \u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D
+MainWindow.menu.transfers.pausetransfers=&\u041F\u0430\u0443\u0437\u0430
+MainWindow.dialog.share.sharefile=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0444\u0430\u0439\u043B \u0437\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+stats.general.smooth_secs=\u0413\u043E\u043B\u0435\u043C\u0438\u043D\u0430 \u043D\u0430 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0437\u0430 \u0443\u0441\u0440\u0435\u0434\u043D\u0435\u043D\u043E \u0438\u0437\u0433\u043B\u0430\u0436\u0434\u0430\u043D\u0435 [s]
+upnp.ignorebaddevices.reset.action=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+DHTView.general.contacts=\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u0438\:
+ConfigView.section.security.nopw=\u041D\u0435 \u0435 \u043F\u043E\u0434\u0430\u0434\u0435\u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430
+MainWindow.menu.file.share.dircontentsrecursive=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u2026 (&\u0440\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E)
+OpenTorrentWindow.mb.existingFiles.text=\u041D\u044F\u043A\u043E\u0438 \u043E\u0442 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0432\u0435\u0447\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0442 \u0432 \u0443\u043A\u0430\u0437\u0430\u043D\u0430\u0442\u0430(\u0438\u0442\u0435) \u043A\u0440\u0430\u0439\u043D\u0430(\u0438) \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F(\u0438)\n\n%1\n\u041F\u0440\u0438 \u043F\u0440\u043E\u0434\u044A\u043B\u0 [...]
+TableColumn.header.min_sr={min.sr.window.title}
+GeneralView.label.downloadspeed=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043F\u0440\u0438\:
+v3.MainWindow.menu.view.sidebar=\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430 \u043B\u0435\u043D\u0442\u0430
+AlertMessageBox.unread=\u0418\u043C\u0430 \u043D\u0435\u043F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F - \u0434\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u0440\u0435\u0433\u043B\u0435\u0434.
+Trackers.column.seeds=\u041F\u043E\u0441\u044F\u0432\u043A\u0438
+MainWindow.menu.speed_limits.profile=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u0438\u043C\u0435 \u043D\u0430 \u043F\u0440\u043E\u0444\u0438\u043B
+ConfigView.section.sharing.permitdht=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u043E \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435, \u043A\u043E\u0433\u0430\u0442\u043E \u043D\u044F\u043C\u0430 \u0442\u0440\u0430\u043A\u0435\u0440
+MySeeders.bigView.header={sidebar.LibraryCD}
+beta.wizard.link=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\u0442\u0430 \u0441 \u0431\u0435\u0442\u0430 \u0438\u0437\u0434\u0430\u043D\u0438\u044F\u0442\u0430
+MainWindow.menu.view=\u0418&\u0437\u0433\u043B\u0435\u0434
+ConfigView.section.ipfilter.list.inrange=\u0435 \u0432 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D
+ConfigView.section.style.addurlsilently=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0430\u0434\u0435\u043D\u0438\u0442\u0435 URL \u0442\u0438\u0445\u043E\u043C\u044A\u043B\u043A\u043E\u043C
+PeersView.host=\u0418\u043C\u0435 \u043D\u0430 \u043F\u043E\u0434\u0441\u043B\u043E\u043D
+TorrentInfoView.columns=\u041A\u043E\u043B\u043E\u043D\u0438 \u043E\u0442 \u0438\u0437\u0433\u043B\u0435\u0434 '{library.name}'
+ColumnSetup.categories=\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438\:
+MyTrackerView.uploaded=\u041A\u0430\u0447\u0435\u043D\u043E
+network.ipv6.prefer.addresses=\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0438\u044F \u0437\u0430 IPv6 \u0430\u0434\u0440\u0435\u0441\u0438 \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 IPv6 \u0438 IPv4
+metasearch.addtemplate.done.title=\u0414\u043E\u0431\u0430\u0432\u0435\u043D \u0448\u0430\u0431\u043B\u043E\u043D
+importTorrentWizard.finish.title=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+uninstallPluginsWizard.list.loaded=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0436\u0435\u043B\u0430\u043D\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435.
+subscriptions.add.tooltip=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+devices.sidebar.onxcodecomplete=\u041F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+label.in=\u0412\u0445.
+ConfigView.label.autoSeedingIgnoreInfo=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u043D\u0430\u0442\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u043E\u0442\u0438\u0432\u0430\u0442 \u0432 \u043A\u0440\u0430\u044F \u043D\u0430 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430 \u043E\u0442 \u043F\u043E\u0441\u044F\u0432\u043A\u0438. \u0422\u0435 \u043D\u0435 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\ [...]
+TableColumn.header.\#.info=\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442/\u043F\u043E\u0437\u0438\u0446\u0438\u044F/\u2116 \u043F\u043E \u0440\u0435\u0434
+search.dialog.text=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u0442\u0435\u043A\u0441\u0442 \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\:
+ConfigView.section.tracker.port=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u0442\u0440\u0430\u043A\u0435\u0440 \u043D\u0430 HTTP \u043F\u043E\u0440\u0442
+UpdateWindow.status.restartMaybeNeeded=\u041C\u043E\u0436\u0435 \u0434\u0430 \u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0440\u0435\u0441\u0442\u0430\u0440\u0442
+ConfigView.group.override=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043F\u0440\u0435\u0432\u044A\u0437\u043C\u043E\u0433\u0432\u0430\u043D\u0435
+TableColumn.header.activityType=\u0422\u0438\u043F
+fileDownloadWindow.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\:
+TableColumn.header.activityActions=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F
+ConfigView.label.xfer.bias_slack=KB/s \u0437\u0430\u043F\u0430\u0437\u0435\u043D \u043C\u0438\u043D\u0438\u043C\u0443\u043C \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+MinimizedWindow.name=\u0418\u043C\u0435\:
+Trackers.column.updatein.info=\u0412\u0440\u0435\u043C\u0435 \u0434\u043E \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+PeerColumn.activationCount=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u043E\u043F\u0438\u0442\u0432\u0430\u0449\u0438 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044A\u0440\u0436\u0430\u0442\: %1
+ConfigView.section.interface.legacy=\u041F\u0440\u0435\u0434\u0438\u0448\u0435\u043D
+TableColumn.header.Rating=\u041E\u0446\u0435\u043D\u044F\u0432\u0430\u043D\u0435
+ConfigView.section.sharing.usessl=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 SSL \u0437\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u0435\u043D\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430)
+IrcView.title.short=IRC
+ConfigView.label.startwatchedtorrentsstopped.tooltip=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0432 \u0421\u041F\u0420\u042F\u041D\u041E \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+GeneralView.label.swarm_average_completion.tooltip=\u0421\u0440\u0435\u0434\u043D\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u0432 % \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u0442\u0435 \u0432 \u0440\u043E\u044F\u043A\u0430
+FileItem.low={SpeedTestWizard.name.conf.level.low}
+device.odpt.enable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0447\u0430\u0441\u0442\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+SWT.alert.erroringuithread=\u0412\u044A\u0437\u043D\u0438\u043A\u043D\u0430 \u043D\u0435\u043F\u043E\u0437\u043D\u0430\u0442\u0430 \u0433\u0440\u0435\u0448\u043A\u0430 \u0432 \u0413\u041F\u0418. \u041C\u043E\u0436\u0435 \u0434\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u0432\u0430\u0442 \u043E\u0449\u0435 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0437\u0430 \u0433\u0440\u0435\u0448\u043A\u0438.
+ConfigView.section.style.useTree=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u0438\u0437\u0433\u043B\u0435\u0434\u0438\u0442\u0435 \u043D\u0430 {library.name} (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+TableColumn.header.trancode_completion=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043D\u0430 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043D\u0435\u0442\u043E
+metasearch.addtemplate.failed.desc=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\: %1
+message.taking.too.long=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u0441\u0435 \u0431\u0430\u0432\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u043E\u0442 \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E\u0442\u043E\n\u041F\u0440\u0438 \u0436\u0435\u043B\u0430\u0436\u0438\u0435 \u0434\u0430 \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043D\u0435 'ESC' \u0437\u0430 \u043F\u0440\u0435\u043A\u0440\u0430\u0442\u044F\u0432\u0430\u043D\u0435
+Button.open=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+ConfigView.section.tracker.client.enabletcp=\u0421 HTTP/HTTPS \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B
+v3.MainWindow.search.last.tooltip=\u041A\u044A\u043C \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438\u0442\u0435 \u043E\u0442 \u0442\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E
+exportTorrentWizard.process.inputfilebad.title=\u0422\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u044A\u0442 \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D
+ConfigView.label.closetotray=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043C\u0438\u043D\u0438\u043C\u0438\u0437\u0438\u0440\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0438\u044F \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440
+ConfigView.label.zeronewfiles=\u041D\u0430\u0437\u043D\u0430\u0447\u0430\u0432\u0430\u043D\u0435 \u0438 \u043D\u0443\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043F\u0440\u0438 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435
+ConfigView.filter=\u0442\u0435\u043A\u0441\u0442 \u0437\u0430 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0435
+tag.sharing.enable.title=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u0441 \u043E\u0431\u0449\u043D\u043E\u0441\u0442\u0442\u0430
+Scrape.status.disabled=\u0418\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435
+ConfigView.section.connection.peersource.Incoming=\u0412\u0445\u043E\u0434\u044F\u0449\u0430 \u0432\u0440\u044A\u0437\u043A\u0430
+MainWindow.dialog.share.sharedircontents=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+menu.delete.options.keybinding=DEL
+label.more=\u041F\u043E\u0432\u0435\u0447\u0435
+TagRenameWindow.title=\u0421\u043C\u044F\u043D\u0430 \u0438\u043C\u0435 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442
+devices.od=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0431\u0435\u0437 \u0432\u0440\u044A\u0437\u043A\u0430
+MainWindow.menu.view.configuration.keybinding=Meta+,
+ConfigView.section.transfer.autospeed.reset.button=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+pairing.explicit.enable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+DHTView.transport.bytes=B
+subscriptions.config.auto=\u0421\u0430\u043C\u043E-\u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.label.systray=\u0421\u0438\u0441\u0442\u0435\u043C\u0435\u043D \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440
+DHTView.general.dying=\u0423\u043C\u0438\u0440\u0430\u0449\u0438\:
+Pieces.column.\#=\u2116
+sidebar.header.dvd={mdi.entry.dvdburn}
+upnp.releasemappings=\u041E\u0441\u0432\u043E\u0431\u043E\u0436\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0442\u0430 \u043F\u0440\u0438 \u0437\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+DHTTransport.report.timeout=\u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0432\u0430\u043D\u0435, \u043D\u044F\u043C\u0430 \u043E\u0442\u0433\u043E\u0432\u043E\u0440\u0438 \u043E\u0442 %1
+wizard.hint.mode=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\:\t\u041C\u043E\u0436\u0435 \u0434\u0430 \u0432\u043B\u0430\u0447\u0438-\u043F\u0443\u0441\u043D\u0435 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0432 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0430\n\t\u0437\u0430 \u0438\u0437\u0431\u043E\u0440 \u043D\u0430 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u04 [...]
+v3.MainWindow.currentDL=\u0422\u0435\u043A\u0443\u0449\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.file.decoder.label=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442, \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0438\u0437\u0431\u043E\u0440
+v3.MainWindow.button.stream=\u041F\u043E\u0442\u043E\u043A
+ConfigView.section.tracker.publishenablepeerdetails=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+OpenTorrentWindow.fileList.changeDestination.all=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043C\u0435\u0441\u0442\u043E\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0430 %1 \u0444\u0430\u0439\u043B\u0430 \u043A\u044A\u043C \u0441\u044A\u0449\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+SpeedView.stats.total.since=\u041E\u0431\u0449\u043E (\u043E\u0442 %1)
+ConfigTransferAutoSpeed.set.point=\u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B (ms)
+subscriptions.listwindow.popularity=\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u043E\u0441\u0442
+label.more.info.here=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+TableColumn.header.completed=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+TableColumn.header.maxdownspeed.info=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+deletedata.title=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+iconBar.start.tooltip=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u044F(\u0438\u0442\u0435) \u0442\u043E\u0440\u0435\u043D\u0442(\u0438)
+FilesView.size=\u0420\u0430\u0437\u043C\u0435\u0440
+GeneralView.label.trackerurl=URL \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430\:
+ConfigView.section.torrents=\u0422\u043E\u0440\u0435\u043D\u0442\u0438
+MySharesView.type.dir=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+DHTView.activity.type.4=\u0412\u044A\u043D\u0448\u0435\u043D Put
+ConfigView.section.tracker.host.addurls=\u0423\u0442\u0432\u044A\u0440\u0436\u0434\u0430\u0432\u0430\u043D\u0435, \u0447\u0435 URL-\u0442\u0430\u0442\u0430 \u0437\u0430 \u0442\u043E\u0437\u0438 \u0442\u0440\u0430\u043A\u0435\u0440 \u043F\u0440\u0438\u0441\u044A\u0441\u0442\u0432\u0430\u0442 \u0432 \u043F\u043E\u0434\u0441\u043B\u043E\u043D\u0435\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+DHTView.activity.type.3=\u0412\u044A\u0442\u0440\u0435\u0448\u0435\u043D Put
+DHTView.activity.type.2=\u0412\u044A\u043D\u0448\u0435\u043D Get
+DHTView.activity.type.1=\u0412\u044A\u0442\u0440\u0435\u0448\u0435\u043D Get
+importTorrentWizard.torrentfile.path=\u041F\u044A\u0442
+SpeedView.stats.upbias=\u0422\u043E\u043B\u0435\u0440\u0430\u043D\u0441 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435\:
+exportTorrentWizard.title=\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 XML \u0442\u043E\u0440\u0435\u043D\u0442
+devices.copy.pending=\u041F\u0440\u0435\u0434\u0441\u0442\u043E\u044F\u0449\u043E \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+ConfigView.label.openbar.complete=\u0441\u0430\u043C\u043E\u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+dht.reseed.ip=IP \u0430\u0434\u0440\u0435\u0441
+label.trackers=\u0422\u0440\u0430\u043A\u0435\u0440\u0438
+dlg.stream.plus.renew.text=\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0430 \u0437\u0430 Vuze \u041F\u043B\u044E\u0441, \u0437\u0430 \u0434\u0430 \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430\u0442 \u0432\u0438\u0434\u0435\u043E-\u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0434\u043E\u043A\u0430\u0442\u043E \ [...]
+subs.prop.version=\u0412\u0435\u0440\u0441\u0438\u044F
+azbuddy.contextmenu=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043A\u044A\u043C \u0434\u0440\u0443\u0436\u043A\u0430
+ConfigView.label.prioritizemostcompletedfiles=\u041F\u043E\u0441\u043B\u0435\u0434\u0432\u0430\u0449\u043E \u043F\u043E\u0432\u0438\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0441 \u0432\u0438\u0441\u043E\u043A \u0442\u0430\u043A\u044A\u0432 \u0441\u043F\u043E\u0440\u0435\u0434 % \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\u0441\u0442 \u0438 \u0440\u0430\u0437 [...]
+webui.homepage=\u041D\u0430\u0447\u0430\u043B\u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430
+Plugin.trackerpeerauth.name=\u041E\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0432 \u0442\u0440\u0430\u043A\u0435\u0440
+MainWindow.upgrade.assistant=\u041F\u043E\u043C\u043E\u0449\u043D\u0438\u043A \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F
+updater.progress.window.title=\u0422\u0435\u043A\u0443\u0449\u0438 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u043E\u043D\u043D\u0438 \u0437\u0430\u0434\u0430\u0447\u0438
+devices.sidebar.simple=\u041E\u043F\u0440\u043E\u0441\u0442\u0435\u043D \u0438\u0437\u0433\u043B\u0435\u0434
+ConfigView.section.NATPMP=NAT-PMP
+subscriptions.column.nb-new-results=\u041D\u043E\u0432\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438
+MyTorrentsView.menu.rename.displayed=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u043E\u0442\u043E \u0438\u043C\u0435
+ConfigView.label.serverport=\u0412\u0445\u043E\u0434\u044F\u0449 TCP/UDP \u043F\u043E\u0440\u0442 \u0437\u0430 \u0441\u043B\u0443\u0448\u0430\u043D\u0435
+ConfigView.section.tracker.client.scrapeenable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0441\u0442\u044A\u0440\u0433\u0432\u0430\u043D\u0435
+Formats.units.GiB=GiB
+importTorrentWizard.process.outputfileexists.title=\u0424\u0430\u0439\u043B\u044A\u0442 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430
+GeneralView.label.connected=\u0441\u0432\u044A\u0440\u0437\u0430\u043D(\u0438)
+tps.pex.details=\u0421\u0432\u044A\u0440\u0437\u0430\u043D \u0441 %1 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 (\u0447\u0430\u043A\u0430\u0449\u0438\: pex\=%2, \u0434\u0440\u0443\u0433\u0438\=%3)
+configureWizard.transfer.maxActiveTorrents=\u041C\u0430\u043A\u0441. \u0430\u043A\u0442\u0438\u0432\u043D\u0438
+remote.pairing.title=\u041E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u043E \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435
+OpenTorrentWindow.mb.noDestDir.title=\u0426\u0435\u043B\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0430
+configureWizard.file.path=\u041F\u044A\u0442
+MagnetPlugin.report.waiting_ddb=\u0438\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u0420\u0411\u0414\u2026
+MyTrackerView.bytesoutave=\u0418\u0437\u0445. \u0441\u0440.
+ConfigView.label.stop.seedcomp=\u041F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0435\u0435\u043D\u0435
+webui.pairing.info.y=\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0435 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435\u0442\u043E. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 "\u0412\u0440\u044A\u0437\u043A\u0430" \u2192 "\u0421\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435" \u0437\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438.
+security.crypto.password.mismatch.title=\u0413\u0440\u0435\u0448\u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430
+wiki.fat32=http\://wiki.vuze.com/w/FAT32_file_size_limit
+ConfigView.label.seeding.rankType.none=\u041D\u044F\u043C\u0430
+webui.pairing.info.n=\u0418\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0435 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435\u0442\u043E. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 "\u0412\u0440\u044A\u0437\u043A\u0430" \u2192 "\u0421\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435" \u0437\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0442\u0430\u0437\u0438 \u0444\u0443\u043D\u043A\u0446\u0438\u044F.
+Button.validate=\u0412\u0430\u043B\u0438\u0434\u0438\u0440\u0430\u043D\u0435
+device.xcode.never=\u041D\u0438\u043A\u043E\u0433\u0430
+quick.view.scheduled.title=\u041F\u043B\u0430\u043D\u0438\u0440\u0430\u043D \u0431\u044A\u0440\u0437 \u0438\u0437\u0433\u043B\u0435\u0434
+MainWindow.menu.file.export.keybinding.mac=Meta+Shift+E
+sr_prog.window.message=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430 \u0437\u0430\u043F\u0438\u0441 \u043D\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E \u043D\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 (\u043D\u0430\u043F\u0440. 1.0 \= \u0432\u0441\u044F\u043A\u043E \u043F\u044A\u [...]
+TableColumn.header.completion.info=\u0413\u0440\u0430\u0444\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 % \u0441\u0432\u0430\u043B\u0435\u043D\u043E
+Button.add=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+subscript.import.fail.title=\u041F\u0440\u043E\u0432\u0430\u043B \u043D\u0430 \u0438\u043C\u043F\u043E\u0440\u0442
+StartStopRules.0Peers=0 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+MainWindow.menu.pairing=\u041E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u043E \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435
+wizard.webseedseditor.edit.title=\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0430 \u043F\u043E\u0441\u044F\u0432\u043A\u0438\u0442\u0435 \u043F\u0440\u0435\u0437 HTTP
+remote.pairing.instruction2={remote.pairing.instruction} \u0414\u0440\u0443\u0433 \u043D\u0430\u0447\u0438\u043D \u0435 \u0434\u0430 \u0441\u0435 \u0441\u043A\u0430\u043D\u0438\u0440\u0430 QR \u043A\u043E\u0434\u0430 \u0441 \u043C\u043E\u0431\u0438\u043B\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E; \u0442\u0430\u043A\u0430 \u0441\u0435 \u043F\u0440\u0435\u0441\u043A\u0430\u0447\u0430 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u04 [...]
+xmwebui.required=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0435 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\u0442\u0430 'Vuze Web Remote', \u0437\u0430 \u0434\u0430 \u0440\u0430\u0431\u043E\u0442\u0438 \u0442\u043E\u0432\u0430\n\n\u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 '\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438 \u2192 \u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u2192 \u0421\u044A\u0432\u0435\u0442\u043D\u0438 [...]
+IrcView.noticefrom=\u0411\u0435\u043B\u0435\u0436\u043A\u0430\:
+v3.iconBar.view.small.tooltip=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D \u0441\u043F\u0438\u0441\u044A\u043A
+OpenTorrentWindow.mb.noGlobalDestDir.title=\u0426\u0435\u043B\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043D\u0435 \u0435 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0430
+SpeedTestWizard.abort.message.scheduled.in=\u041F\u043B\u0430\u043D\u0438\u0440\u0430\u043D\u0430 \u043F\u0440\u043E\u0431\u0430 \u0441\u043B\u0435\u0434\u2026 %1 \u0441\u0435\u043A\u0443\u043D\u0434\u0438"
+MyTorrentsView.menu.showdetails=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E&\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+window.updateswt.ignore=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435
+devices.xcode.autoCopy=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+PeersView.BlockView.Avail.NoHave=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442 \u0438\u043C\u0430; \u043C\u0435\u0441\u0442\u043D\u043E \u043D\u044F\u043C\u0430
+pairing.ipv6=\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D IPv6 \u0430\u0434\u0440\u0435\u0441
+pairing.ipv4=\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D IPv4 \u0430\u0434\u0440\u0435\u0441
+Search.menu.engines=\u0428\u0430\u0431\u043B\u043E\u043D\u0438
+ConfigView.section.security.backupkeys=\u0417\u0430\u043F\u0430\u0300\u0441 \u043D\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435 \u0432\u044A\u0432 \u0444\u0430\u0439\u043B
+azbuddy.ui.new_buddy=\u041D\u043E\u0432 \u043A\u043B\u044E\u0447 \u043D\u0430 \u0434\u0440\u0443\u0436\u043A\u0430\:
+#
+# 2.0.4.4
+#
+ConfigView.section.style.guiUpdate=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u0413\u041F\u0418 \u043D\u0430 \u0432\u0441\u0435\u043A\u0438
+MainWindow.menu.file.export.keybinding=Meta+E
+DHTOpsView.notAvailable=\u041D\u044F\u043C\u0430 \u0433\u0440\u0430\u0444\u0438\u043A\u0430 \u043D\u0430 \u0420\u0411\u0414
+PiecesView.DistributionView.theyHave=\u041F\u0430\u0440\u0447\u0435\u0442\u0430 \u0443 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+DHTView.title.full_v6=\u0420\u0411\u0414 IPv6
+subscriptions.listwindow.popularity.reading=\u0427\u0435\u0442\u0435\u043D\u0435\u2026
+ConfigView.label.start.onlogin=\u041F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 Vuze \u043F\u0440\u0438 \u0432\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+configureWizard.transfer.connection.7=adsl/cable xxx/1024 kb/s
+configureWizard.transfer.connection.6=adsl/cable xxx/768 kb/s
+UpdateWindow.cancel=\u041E\u0442\u043A\u0430\u0437
+configureWizard.transfer.connection.5=adsl/cable xxx/512 kb/s
+progress.window.title=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
+configureWizard.transfer.connection.4=adsl/cable xxx/384 kb/s
+TableColumn.header.resolution=\u0420\u0430\u0441\u0442\u0435\u0440
+configureWizard.transfer.connection.3=adsl/cable xxx/256 kb/s
+configureWizard.transfer.connection.2=adsl/cable xxx/128 kb/s
+ConfigView.section.security.unlockkey.error=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430 - \u043F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u043E \u043E\u0442\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u043B\u044E\u0447
+configureWizard.transfer.connection.1=\u043C\u043E\u0434\u0435\u043C
+ConfigView.option.dm.dblclick.show._mac=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B(\u043E\u0432\u0435) \u0432\u044A\u0432 Finder
+configureWizard.transfer.connection.0=\u0414\u0440\u0443\u0433\u0430
+ConfigView.eta.abbreviated=\u041E\:
+ConfigView.section.DNS={label.DNS}
+tag.type.ds.stop={ManagerItem.stopped}
+device.odauto.enable=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F\u0442\u0430
+ConfigView.label.allowSendVersion=Vuze \u0434\u0430 \u0438\u0437\u043F\u0440\u0430\u0449\u0430 \u0430\u043D\u043E\u043D\u0438\u043C\u043D\u0438 \u0432\u0435\u0440\u0441\u0438\u044F \u0438 \u0441\u043B\u0443\u0447\u0430\u0435\u043D \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u043F\u0440\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u043D\u043E\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+OpenTorrentFile.column.priority={FilesView.priority}
+dlg.stream.plus.renew.title=Vuze \u041F\u043B\u044E\u0441 \u043F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+MainWindow.menu.view.beta=\u0411\u0435\u0442\u0430 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430
+iconBar.bottom.tooltip=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0439-\u0434\u043E\u043B\u0443
+tag.property.constraint=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435
+wizard.choosedirectory=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+MainWindow.menu.file.folder=&\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0085\u2026
+TableColumn.header.Country.info=\u0414\u044A\u0440\u0436\u0430\u0432\u0430\u0442\u0430, \u0432 \u043A\u043E\u044F\u0442\u043E \u0441\u0435 \u043D\u0430\u043C\u0438\u0440\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442
+wizard.multitracker.new=\u041D\u043E\u0432\u0085\u2026
+devices.restrict_access.msg=\u0421\u043F\u0438\u0441\u044A\u043A \u0441 IP-\u0442\u0430 \u0441 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B "," \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 (\u0438\u043B\u0438 \u0437\u0430\u0431\u0440\u0430\u043D\u044F\u0432\u0430\u043D\u0435\u200B\u200B, \u0430\u043A\u043E \u0441\u0430 \u0441 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043A\u0430 "-")
+MyTorrentsView.clearFilter.tooltip=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0438\u043B\u0442\u044A\u0440
+ConfigView.label.switchpriority.tooltip=\u041D\u0438\u0441\u043A\u0438\u044F\u0442 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043D\u0430\u043C\u0430\u043B\u044F\u0432\u0430 \u0448\u0438\u0440\u043E\u0447\u0438\u043D\u0430\u0442\u0430 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435, \u043F\u0430\u0434\u0430\u0449\u0430 \u0441\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430.
+Button.retarget=\u041F\u0440\u0435\u043D\u0430\u0446\u0435\u043B\u0432\u0430\u043D\u0435
+dialog.associations.prompt=Vuze \u043D\u0435 \u0435 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 BitTorrent \u0444\u0430\u0439\u043B\u043E\u0432\u0435.\n\u0414\u0430 \u0441\u0435 \u0430\u0441\u043E\u0446\u0438\u0438\u0440\u0430\u0442 \u043B\u0438 .torrent \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0441 Vuze?
+restart.error.oom=\u041D\u0435\u0434\u043E\u0441\u0442\u0438\u0433 \u043D\u0430 \u043F\u0430\u043C\u0435\u0442
+columnChooser.columndescription=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435
+TableColumn.header.tag.copyoncomp={label.copy.on.comp}
+configureWizard.title=\u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u0437\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+ConfigView.section.tracker.sendjavaversionandos=\u0418\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u0432\u0435\u0440\u0441\u0438\u044F\u0442\u0430 \u043D\u0430 Java \u0438 \u0438\u043C\u0435\u0442\u043E \u043D\u0430 \u041E\u0421
+PeersView.BlockView.NoAvail.NoHave=\u0418 \u0434\u0432\u0430\u043C\u0430\u0442\u0430 \u043D\u044F\u043C\u0430\u0442
+v3.topbar.menu.show.logo=\u041B\u043E\u0433\u043E\u0442\u043E
+ConfigView.section.connection.advanced.write_select_min=\u041C\u0438\u043D. \u0447\u0430\u043A\u0430\u043D\u0435 \u0437\u0430 write select (ms, \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 %1)
+ConfigView.text.neverStart=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u0437\u0430\u043F\u043E\u0447\u0432\u0430
+TableColumn.header.remaining=\u041E\u0441\u0442\u0430\u0432\u0430
+TableColumn.header.swarm_average_completion=\u0421\u0440\u0435\u0434\u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\u0441\u0442 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+config.external.browser.prog=\u0418\u0437\u043F\u044A\u043B\u043D\u0438\u043C \u0444\u0430\u0439\u043B \u043D\u0430 \u0431\u0440\u0430\u0443\u0437\u044A\u0440\u0430
+pairing.host=\u0410\u0434\u0440\u0435\u0441 \u043D\u0430 \u043F\u043E\u0434\u0441\u043B\u043E\u043D (DNS \u0438\u043C\u0435)
+swt.uninstall.window.ok=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+GeneralView.label.completed=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E\:
+MyTorrentsView.menu.explore._windows=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0432 Explorer
+MyTorrentsView.menu.ipf_enable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 IPFilter
+sidebar.sash.tooltip=F7 \u0431\u044A\u0440\u0437\u043E \u043F\u043E\u043A\u0430\u0437\u0432\u0430/\u0441\u043A\u0440\u0438\u0432\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430
+azbuddy.ui.table.last_msg=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435
+OpenTorrentWindow.changeDestination=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043C\u0435\u0441\u0442\u043E\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u043E
+popup.error.hideall=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u043E
+GeneralView.label.maxdownloadspeed=\u041E\u0433\u0440. \u0421\u0432.
+br.backup.last.time=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u044F\u0442 \u0437\u0430\u043F\u0430\u0300\u0441 \u0435 \u0431\u0438\u043B \u0432
+dialog.add.peers.msg=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0435\u043A\u0438 \u0430\u0434\u0440\u0435\u0441 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u043A\u0430\u0442\u043E <host>\:<port> - \u0441 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B "," \u043F\u0440\u0438 \u0441\u043F\u0438\u0441\u044A\u043A
+pairing.op.fail=\u0421\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+DHTView.db.local=\u041B\u043E\u043A\u0430\u043B\u043D\u043E
+MainWindow.about.section.system=\u0421\u0438\u0441\u0442\u0435\u043C\u0430
+SystemTray.menu.exit=\u0418\u0437&\u0445\u043E\u0434
+MyTorrentsView.menu.exporthttpseeds=\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u043D\u0430 HTTP \u043F\u043E\u0441\u044F\u0432\u043A\u043E\u0432\u0438 URL-\u0442\u0430 \u0432 \u043A\u043B\u0438\u043F\u0431\u043E\u0440\u0434\u0430
+PeersView.state=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+smooth.config=(\u0434\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u0437\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446)
+ConfigView.section.mode.advanced=\u0417\u0430\u043F\u043E\u0437\u043D\u0430\u0442
+health.explain.blue=\u041F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435 \u043E\u0437\u043D\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u043D\u044F\u043C\u0430 \u043E\u0449\u0435 \u0432\u0440\u044A\u0437\u043A\u0430 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\n\u041F\u0440\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043E\u0437\u043D\u0430\u0447\u0430\u0432\u0430, \u0447\u0435 \u0438\u043C\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u0441 \u0 [...]
+ConfigView.section.tracker.maxposttimemultiplier=\u041C\u043D\u043E\u0436\u0438\u0442\u0435\u043B \u0437\u0430 \u0432\u0440\u0435\u043C\u0435 \u043D\u0430 GET \u0437\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043D\u0430 POST [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+wizard.singlefile.help=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u043E\u0442 \u0435\u0434\u0438\u043D \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D \u0444\u0430\u0439\u043B
+webui.access=\u0414\u043E\u0441\u0442\u044A\u043F
+TableColumn.header.bad_avail_time.info=\u041A\u043E\u0433\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0435 \u0431\u0438\u043B\u043E \u043D\u0430\u043B\u0438\u0447\u043D\u043E \u043F\u044A\u043B\u043D\u043E \u043A\u043E\u043F\u0438\u0435 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+library.category.header=\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F '%1'
+v3.menu.device.defaultprofile=\u041F\u0440\u043E\u0444\u0438\u043B \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.style.addurlsilently.tooltip=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043F\u043E\u0434\u0430\u0434\u0435\u043D\u0438\u0442\u0435/\u043F\u0443\u0441\u043D\u0430\u0442\u0438\u0442\u0435 .torrent URL-\u0442\u0430 \u0431\u0435\u0437 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0441\u0435\u0449\u0430\u0449 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432 \u043F\u0440\ [...]
+SharedPortServer.alert.selectorfailed=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u043E\u0441\u043B\u0443\u0448\u0432\u0430\u043D\u0435 \u0437\u0430 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0434\u0430\u043D\u043D\u0438.\n\u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u0434\u0430\u043B\u0438 \u0437\u0430\u0449\u0438\u0442\u043D\u0430\u0442\u [...]
+ipCheckerWizard.checkFailed=\u041F\u0440\u043E\u0432\u0430\u043B, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\:
+TorrentOptionsView.param.max.peers=\u041C\u0430\u0441\u043A\u0438\u043C\u0443\u043C \u0431\u0440\u043E\u0439 \u0432\u0440\u044A\u0437\u043A\u0438 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+TrayWindow.menu.exit=\u0418\u0437&\u0445\u043E\u0434
+PiecesView.BlockView.NoHave=\u041D\u044F\u043C\u0430
+wizard.maketorrents.autoopen=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0437\u0430 \u0441\u0435\u0435\u043D\u0435 \u0441\u043B\u0435\u0434 \u043F\u0440\u0438\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435
+MainWindow.nat.status.tooltip.ok=\u0414\u043E\u0441\u0435\u0433 \u043D\u043E\u0440\u043C\u0430\u043B\u0435\u043D TCP
+ConfigView.section.logging.udptransport=\u0421 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 UDP \u0442\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442\u0430
+device.model.name=\u0418\u043C\u0435 \u043D\u0430 \u043C\u043E\u0434\u0435\u043B
+exportTorrentWizard.process.unknownfail.title=\u041D\u0435\u043E\u0447\u0430\u043A\u0432\u0430\u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430
+SpeedTestWizard.set.upload.button.apply=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435
+v3.iconBar.view.big.tooltip=\u041F\u0440\u043E\u0441\u0442 \u0441\u043F\u0438\u0441\u044A\u043A
+ConfigView.label.maxnumwant=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u0431\u0440\u043E\u044F \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u043A\u043E\u0438\u0442\u043E \u0442\u0440\u0430\u043A\u0435\u0440\u044A\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0432\u044A\u0440\u043D\u0435
+TableColumn.header.crc32=CRC-32
+OpenTorrentWindow.startMode.seeding=\u0421\u0435\u0435\u0449
+label.outbound=\u0418\u0437\u0445\u043E\u0434\u044F\u0449\u043E
+ConfigView.auto=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E
+PeerSocket.bad_peer_id=\u041B\u043E\u0448 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+TorrentInfoView.torrent.encoding=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.label.lh.ext=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438\u044F
+ConfigView.section.transfer.autospeed.enabledownadj=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u0440\u0435\u043A\u0446\u0438\u044F \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+subs.prop.last_result=\u041F\u043E\u0441\u043B\u0435\u0434\u0435\u043D \u043D\u0430\u043C\u0435\u0440\u0435\u043D \u043D\u043E\u0432 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442
+AlertMessageBox.comment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+webui.tor_dest=TOR \u0430\u0434\u0440\u0435\u0441
+GeneralView.label.trackerurlopen.tooltip=\u0421 \u0438\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u043E\u0442\u0432\u0430\u0440\u044F \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u0430\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430
+DHTTransport.report.sending=\u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438
+ConfigView.section.file.decoder.prompt.tooltip=\u0421 \u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446 \u0432\u0438\u043D\u0430\u0433\u0438, \u043A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0430 \u0438\u0437\u0431\u043E\u0440 \u043D\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
+dialog.pause.for.period.title=\u0417\u0430\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043E\u0442 \u0432\u0440\u0435\u043C\u0435
+MyTorrentsView.menu.health=\u0417\u0430 \u0437\u0434\u0440\u0430\u0432\u0438\u043D\u0430\u0442\u0430
+SpeedTestWizard.test.panel.currinfo=\u041F\u0440\u043E\u0431\u0430 \u0437\u0430 \u0448\u0438\u0440\u043E\u0447\u0438\u043D\u0430\u0442\u0430 \u043D\u0430 BitTorrent \u043B\u0435\u043D\u0442\u0430.
+ConfigView.section.connection.encryption.min_encryption_level.tooltip=\u041D\u0435\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u043E - \u0441\u0430\u043C\u043E \u0440\u044A\u043A\u043E\u0441\u0442\u0438\u0441\u043A\u0430\u043D\u0435\nRC4 - \u043F\u044A\u043B\u0435\u043D \u043F\u043E\u0442\u043E\u043A\n\u041F\u043E-\u0432\u0438\u0441\u043E\u043A\u043E \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 [...]
+label.protocol={Peers.column.Protocol}
+ConfigView.label.watchtorrentfolderinterval.tooltip=\u041F\u0430\u0443\u0437\u0430\u0442\u0430 \u0434\u043E \u043D\u043E\u0432\u043E \u0441\u043A\u0430\u043D\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430
+device.mediaserver.remove_all.desc=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0430\u0442 \u0432\u0441\u0438\u0447\u043A\u0438 \u043C\u0435\u0434\u0438\u0439\u043D\u0438 \u0421\u044A\u0440\u0432\u044A\u0440\u0438\u0442\u0435?
+FilesView.menu.open=&\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+MainWindow.menu.file.closewindow=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 &\u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446
+Subscription.menu.resetauth=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u0432\u0430\u043D\u0435
+installPluginsWizard.list.nullversion=\u041D\u044F\u043C\u0430 \u0432\u0435\u0440\u0441\u0438\u044F
+OpenTorrentOptions.title=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+v3.MainWindow.menu.contentnetworks.manage=&\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 HD \u043C\u0440\u0435\u0436\u0438
+DHTView.operations.sent=\u0418\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u0438
+CacheView.speeds.fromCache=\u041E\u0442/\u0432 \u0431\u0443\u0444\u0435\u0440
+SpeedView.stats.measured=\u0418\u0437\u043C\u0435\u0440\u0435\u043D\u043E
+ColumnRenameWindow.title=\u0421\u043C\u044F\u043D\u0430 \u0438\u043C\u0435 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0430
+configureWizard.transfer2.test=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u0442\u0430
+device.playnow.group=\u0418\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u0441\u0435\u0433\u0430
+Trackers.column.updatein=\u041D\u0430\u043F\u0440\u0435\u0434
+ipCheckerWizard.checkComplete=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D IP\:
+PiecesView.DistributionView.SeedAvl=\u041F\u0440\u0438\u043D\u043E\u0441 \u043D\u0430\u043B\u0438\u0447\u0435\u043D \u043E\u0442 \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+change.url.msg.title=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 URL \u0437\u0430 '%1'
+UpdateWindow.columns.size=\u0420\u0430\u0437\u043C\u0435\u0440
+ConfigView.label.openmytorrents=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 '{library.name}' \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+network.ipbinding.icon.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u043A\u043E\u043D\u0430 \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E \u043F\u0440\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u0438 \u043F\u0440\u0438\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442\u0438
+MainWindow.dht.status.users=%1 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438
+TableColumn.header.alerts={ConfigView.section.interface.alerts}
+FilesView.rename.choose.path=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u043D\u043E\u0432 \u0438\u043B\u0438 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449 \u0444\u0430\u0439\u043B
+device.import.title=\u0418\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E?
+ConfigView.section.irc=\u041C\u0440\u0435\u0436\u0430 IRC
+tag.type.man=\u0420\u044A\u0447\u043D\u043E
+Formats.units.Mbit=Mbit
+MainWindow.sr.status.tooltip.bad=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 %1 \u043B\u043E\u0448\u043E\: <0,5
+ConfigView.section.style.dropdiraction.opentorrents=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+xcode.deletedata.message.2=\n(\u043A\u043E\u043F\u0438\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0438\u043C\u0430 \u0432\u0441\u0435 \u043E\u0449\u0435 \u0432 '%1')
+ConfigView.section.file.readmblimit.explain=\u0422\u043E\u0437\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u044A\u0440 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0430\u0432\u0430 \u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u043F\u0430\u043C\u0435\u0442, \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0430 \u0437\u0430 \u0441\u044A\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0438, \u0447\u0430\u043A\u0430\u0449\u0438 \u0 [...]
+MainWindow.status.checking=\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430
+IrcView.help=\u0412\u0430\u043B\u0438\u0434\u043D\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u0438 \u0441\u0430\:\n . /help \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0442\u043E\u0432\u0430 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n . /nick | /name \u043F\u0440\u043E\u043C\u0435\u043D\u044F \u0438\u043C\u0435\u0442\u043E \n . /me action \u0438\u0437\u043F\u0440\u0430\u0449\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \n . /msg nick message \u0438\u0437\u043F\u04 [...]
+TableColumn.header.tag.downlimit={TableColumn.header.maxdownspeed}
+ClientStats.column.percent=%
+DHTView.general.leaves=\u041E\u0441\u0442\u0430\u0432\u043A\u0438\:
+ColumnSetup.availcolumns=\u041D\u0430\u043B\u0438\u0447\u043D\u0438 %1 \u043A\u043E\u043B\u043E\u043D\u0438
+subscript.add.title=\u0418\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442?
+MainWindow.menu.plugins.installPlugins=\u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F\u0085\u2026
+ConfigView.section.connection.prefer.udp=\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0435 \u043D\u0430 UDP \u0432\u0440\u044A\u0437\u043A\u0438
+ConfigView.label.seeding.numPeersAsFullCopy=\u0414\u043E\u043F\u0443\u0441\u043A\u0430\u043D\u0435, \u0447\u0435 \u0438\u043C\u0430 1 \u043F\u044A\u043B\u043D\u043E \u043A\u043E\u043F\u0438\u0435 \u0437\u0430 \u0432\u0441\u0435\u043A\u0438\n[0\: \u0431\u0435\u0437 \u0434\u043E\u043F\u0443\u0441\u043A\u0430\u043D\u0435]
+ConfigView.section.ipfilter.clear.on.reload=\u0411\u0435\u0437 \u0444\u0438\u043B\u0442\u0440\u0438 \u043F\u0440\u0438 \u043F\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435. \u0412 \u043F\u0440\u043E\u0446\u0435\u0441\u0430 \u043D\u0430 \u043F\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 IP-\u0442\u0430\u0442\u0430 \u043D\u044F\u043C\u0430 \u0434\u0430 \u0441\u0430 \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0438. \u0411\u0435\u0437 \u043E\u0 [...]
+columnChooser.columnname=\u0418\u043C\u0435 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0430
+OpenTorrentWindow.mb.openError.title=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+subs.prop.assoc=\u0410\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438
+OpenTorrentWindow.addFiles=\u0414\u043E\u0431&\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+dlg.auth.trial.success.info=\u041C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0432\u043B\u0430\u0447\u0430\u0442 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043E\u0442 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430 \u0434\u043E "\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 DVD." \u0410\u043A\u043E \u0432\u0435\u0447\u0435 \u0435 \u0434\u043E\u0431\u0430\u0432\u0435\u043D\u043E \u0432\u0438\u0434\u0435\u043E \u043F\u0440\u0435\u0434\u04 [...]
+device.mediaserver.view.title=\u041C\u0435\u0434\u0438\u0439\u043D\u0438 \u0441\u044A\u0440\u0432\u044A\u0440\u0438
+ConfigView.label.maxuploads=\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0433\u043D\u0435\u0437\u0434\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+statusbar.feedback.tooltip=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0437\u0438\u0432
+GeneralView.label.remaining=\u041E\u0441\u0442\u0430\u0432\u0430\:
+GeneralView.section.info=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
+swt.updater.urlsgetter.platform=SWT \u0437\u0430 \u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0430\:
+popup.error.details=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+Peers.column.lan=\u041B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+OpenTorrentWindow.mb.openError.text='%1' \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043E\u0442\u0432\u043E\u0440\u0438\:\r\n%2
+webui.pairing.autoauth=\u0421\u044A\u0441 \u0437\u0430\u0449\u0438\u0442\u0430 \u043D\u0430 \u043F\u0430\u0440\u043E\u043B\u0430\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435\: \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\=vuze, \u043F\u0430\u0440\u043E\u043B\u0430\=<\u043A\u043E\u0434 \u0437\u0430 \u0434\u043E\u0441\u0442\u044A\u043F \u043D\u0430 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435\u0442\u043E>
+MainWindow.upgrade.hint2=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\:\t\u0410\u043A\u043E Vuze \u0449\u0435 \u0431\u044A\u0434\u0435 \u0437\u0430\u0442\u0432\u043E\u0440\u0435\u043D \u043F\u043E-\u043A\u044A\u0441\u043D\u043E, \u0434\u0430 \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043D\u0435 '\u041E\u0442\u043A\u0430\u0437' \u0438\n\t \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430 Azureus-new.jar \u043D\u0430 Azureus2.jar \u0441\u043 [...]
+#
+# > 2.0.8.0
+#
+OpenTorrentWindow.title=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442(\u0438)
+MainWindow.upgrade.hint1=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\:\t\u0421 \u041D\u0430\u0442\u0438\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 '\u0413\u043E\u0442\u043E\u0432\u043E' \u0432\u0441\u0438\u0447\u043A\u043E \u0449\u0435 \u0441\u0442\u0430\u043D\u0435 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E
+TableColumn.header.peers=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+PiecesView.completed=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E
+Button.search=\u0422\u044A\u0440\u0441\u0435\u043D\u0435
+splash.plugin.init=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430\:
+platform.win32.baddll.sarah=FRITZ\! Application Layer Firewall
+MainWindow.menu.speed_limits.load=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435\u2026
+device.model.num=\u041D\u043E\u043C\u0435\u0440 \u043D\u0430 \u043C\u043E\u0434\u0435\u043B
+Peers.column.UpRatio.info=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 "\u041A\u0430\u0447\u0435\u043D\u043E \u043C\u0435\u0441\u0442\u043D\u043E\:\u043A\u0430\u0447\u0435\u043D\u043E \u043E\u0442 \u0434\u0440\u0443\u0433" \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+ConfigView.section.style.customDateFormat=\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u043D \u0444\u043E\u0440\u043C\u0430\u0442 \u0437\u0430 \u0434\u0430\u0442\u0430
+ConfigView.label.mindownloads=\u041C\u0438\u043D. \u0435\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+mdi.entry.plus.free=Vuze \u041F\u043B\u044E\u0441
+Browser.popup.error.no.access=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043E\u043F\u0438\u0442 \u0437\u0430 \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D \u0440\u0435\u0441\u0443\u0440\u0441.\n\u0414\u0430 \u0441\u0435 \u043E\u043F\u0438\u0442\u0430 \u043F\u043E-\u043A\u044A\u0441\u043D\u043E.\n
+ConfigView.label.lh.info=\u041F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0444\u0430\u0439\u043B \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043D\u043E \u0437\u0430 \u0442\u0438\u043F\u0430 \u043D\u0430 \u0444\u0430\u0439\u043B\u0430 .\n\ [...]
+ConfigView.label.openbar.incomplete=\u041B\u0435\u043D\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\: \u0441\u0430\u043C\u043E\u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+ConfigView.label.max_peers_total=\u041C\u0430\u043A\u0441. \u0432\u0440\u044A\u0437\u043A\u0438 \u0433\u043B\u043E\u0431\u0430\u043B\u043D\u043E [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+plugin.installer.recommended.plugin=\u041F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430\u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430 - \u0434\u0430 \u0441\u0435 \u043F\u0440\u0435\u0433\u043B\u0435\u0434\u0430 \u0438 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430, \u0430\u043A\u043E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E
+dlg.try.trial.title=\u0418\u0437\u043F\u0440\u043E\u0431\u0432\u0430\u043D\u0435 \u043D\u0430 DVD \u0437\u0430\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+metasearch.export.select.template.file=\u0417\u0430\u043F\u0438\u0441 \u043D\u0430 \u0448\u0430\u0431\u043B\u043E\u043D
+MyTorrentsView.menu.changeDirectory=\u0421\u043C\u044F\u043D\u0430 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0434\u0430\u043D\u043D\u0438
+ConfigView.section.style.defaultSortOrder.desc=\u041D\u0438\u0437\u0445\u043E\u0434\u044F\u0449\u043E
+ConfigView.section.tracker.enableudp=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 UDP \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B
+ConfigView.section.plugins.magnetplugin=\u041C\u0430\u043D\u0438\u043F\u0443\u043B\u0430\u0442\u043E\u0440 \u043D\u0430 Magnet URI
+Trackers.column.seeds.info=\u041F\u043E\u0441\u044F\u0432\u043A\u0438 \u0432 \u0440\u043E\u044F\u043A\u0430
+wizard.maketorrents.autohost=\u041F\u043E\u0434\u0441\u043B\u043E\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0432\u044A\u0440\u0445\u0443 \u0432\u0433\u0440\u0430\u0434\u0435\u043D\u0438\u044F \u0442\u0440\u0430\u043A\u0435\u0440
+iconBar.editcolumns.tooltip=\u0420\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0438
+ConfigView.section.style.reOrderDelay.never=\u041D\u0438\u043A\u043E\u0433\u0430
+Formats.units.MiB=MiB
+ConfigTransferAutoSpeed.upload.capacity.usage=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043A\u0430\u043F\u0430\u0446\u0438\u0442\u0435\u0442\u0430 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+v3.MainWindow.text.my.account=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0441\u043C\u0435\u0442\u043A\u0430
+sidebar.dropdown.tooltip=\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u0442\u0430 \u043B\u0435\u043D\u0442\u0430 \u0434\u0430 \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u043A\u0430\u0442\u043E \u043C\u0435\u043D\u044E
+PeersView.timetosend=\u0412\u0440\u0435\u043C\u0435 \u0437\u0430 \u043F\u0440\u0435\u043F\u0440\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430 (\u0440\u0435\u0436\u0438\u043C \u0441\u0443\u043F\u0435\u0440-\u0441\u0435\u0435\u043D\u0435)
+MainWindow.menu.transfers.pausetransfers.keybinding.mac=Meta+.
+ConfigView.text.neverIgnore=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u043F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430
+TableColumn.header.maxupspeed.info=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+IrcClient.connected=\u0421\u0432\u044A\u0440\u0437\u0430\u043D \u043A\u044A\u043C
+MyTrackerView.passive=\u041F\u0430\u0441\u0438\u0432\u043D\u043E
+SpeedTestWizard.finish.panel.max.download=\u041C\u0430\u043A\u0441. \u0441\u0432\u0430\u043B\u044F\u043D\u0435\:
+restart.error.url=http\://wiki.vuze.com/w/Restarting_Issues
+wizard.multitracker=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043C\u0443\u043B\u0442\u0438-\u0442\u0440\u0430\u043A\u0435\u0440 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043A\u044A\u043C \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+importTorrentWizard.importfile.path=\u041F\u044A\u0442
+MyTorrentsView.menu.filter=\u0421\u043F\u0438\u0441\u044A\u043A \u0441 \u0444\u0438\u043B\u0442\u0440\u0438\u2026\u0085
+PeersView.gain=\u0414\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u0435
+GeneralView.label.savein=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u0432\:
+device.tivo.enable=\u0421 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u043D\u0430 TiVo
+TableColumn.header.activityText=\u0421\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435
+DownloadManager.error.datamissing=\u041B\u0438\u043F\u0441\u0432\u0430\u0442 \u0434\u0430\u043D\u043D\u0438
+pairing.config.icon.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 Vuze Remote \u0438\u043A\u043E\u043D\u0430 \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E
+v3.MainWindow.text.log.out=\u041E\u0442\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+CacheView.general.size=\u041F\u044A\u043B\u0435\u043D \u0440\u0430\u0437\u043C\u0435\u0440
+TableColumn.header.duration=\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442
+ConfigView.label.sleep.info=\u041A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u044A\u0442 \u0434\u0430 \u043D\u0435 \u0437\u0430\u0441\u043F\u0438\u0432\u0430/\u0445\u0438\u0431\u0435\u0440\u043D\u0438\u0440\u0430 \u0434\u043E\u043A\u0430\u0442\u043E\u2026
+ump.install=\u0411\u044A\u0440\u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\:\n\u0421 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043C\u0430\u043B\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043A\u0430 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u0449\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0433\u043B\u0435\u0434\u0430 \u0442\u043E\u0432\u0430 \u0432 [...]
+Button.rename=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435
+ActivityView.legend.limit=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u043D\u0430 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435
+ConfigView.section.file.decoder.showlax=\u041F\u043E-\u043C\u0430\u043B\u043A\u043E \u0432\u0435\u0440\u043E\u044F\u0442\u043D\u0438 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0438
+device.offlinedownloader.view.title=\u041D\u0435 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.title.full=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
+TableColumn.header.DateCompleted.info=\u0414\u0430\u0442\u0430 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+ConfigView.section.style.ShowTabsInTorrentView=\u0421 \u043F\u043E\u0434-\u0440\u0430\u0437\u0435\u043B\u0438 \u0432 \u0438\u0437\u0433\u043B\u0435\u0434\u0438\u0442\u0435 \u043D\u0430 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0442\u0430 ({ConfigView.section.security.restart.title})
+ConfigView.section.general=\u041E\u0431\u0449\u043E
+ConfigView.pluginlist.scan=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u043D\u043E\u0432\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+mdi.entry.dvdburn.new=\u0417\u0430\u043F\u0438\u0441 \u043D\u0430 \u043D\u043E\u0432\u043E DVD
+ConfigView.label.popup.timestamp=\u0421 \u0432\u0440\u0435\u043C\u0435-\u043E\u0442\u043F\u0435\u0447\u0430\u0442\u044A\u043A \u0432\u044A\u0440\u0445\u0443 \u0438\u0437\u0441\u043A\u0430\u0447\u0430\u0449\u0438\u0442\u0435 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F
+ConfigView.label.openbar=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+OpenTorrentWindow.startMode.forceStarted=\u041D\u0430\u0441\u0438\u043B\u0441\u0442\u0432\u0435\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u043D\u0430\u0442
+PeersView.Messaging=\u0421\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u044F
+ConfigView.label.downloading.testTime=\u041F\u0435\u0440\u0438\u043E\u0434 \u043D\u0430 \u043E\u0446\u0435\u043D\u043A\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 [s]
+ConfigView.pluginlist.column.loadAtStartup=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+wizard.tracker.local=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0433\u0440\u0430\u0434\u0435\u043D\u0438\u044F Vuze \u0442\u0440\u0430\u043A\u0435\u0440
+splash.firstMessageNoI18N=(\: Vuze \:)
+TableColumn.header.sr_prog.info=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u0434\u0430\u0442\u0430\u0442\u0430, \u043D\u0430 \u043A\u043E\u044F\u0442\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u043D\u044F\u043A\u043E\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0435 \u0434\u043E\u0441\u0442\u0438\u0433\u043D\u0430\u043B\u043E \u0434\u0430\u0434\u0435\u043D\u0438 \u0441\u [...]
+# used for more than just "delete data"
+deletedata.noprompt=\u0411\u0435\u0437 \u043D\u043E\u0432\u043E \u043F\u043E\u0434\u0441\u0435\u0449\u0430\u043D\u0435
+Stats.title.full=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438
+MyTorrentsView.dialog.setPosition.title=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u044F
+ConfigView.label.show.cat.but=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0431\u0443\u0442\u043E\u043D\u0438 \u0437\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+Button.unmarkSelected=\u0411\u0435\u0437 \u043E\u0442\u0431\u0435\u043B\u044F\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u043E\u0442\u043E
+ConfigView.label.checkOncompletion=\u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0432\u0430\u043D\u0435 \u043E\u0442\u043D\u043E\u0432\u043E \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430\u0442\u0430 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+Peers.column.as.info=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 AS (\u0430\u0432\u0442\u043E\u043D\u043E\u043C\u043D\u0430 \u0441\u0438\u0441\u0442\u0435\u043C\u0430) \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+ColumnSetup.chosencolumns=\u0418\u0437\u0431\u0440\u0430\u043D\u0438 \u043A\u043E\u043B\u043E\u043D\u0438
+GeneralView.label.trackerurlupdate=\u041E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0430
+PiecesView.priority.info=\u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0432\u0430 \u043F\u0430\u0440\u0447\u0435, \u043D\u043E \u043D\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043E\u0441\u043E\u0431\u0435\u043D\u043E \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435
+SpeedTestWizard.set.upload.title=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0438 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.connection.encryption.require_encrypted_transport=\u0418\u0437\u0438\u0441\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D \u0442\u0440\u0430\u043D\u0441\u043F\u043E\u0440\u0442
+DHTTransport.report.rerequest_bit=\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0438\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 %1 \u0434\u043E %2 \u043E\u0442 %3
+Progress.reporting.no.history.to.display=\u041D\u044F\u043C\u0430 \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0441 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435
+OpenTorrentOptions.show.label=\u041F\u0440\u0438 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0434\u0430 \u0441\u0435 \u043F\u043E\u043A\u0430\u0436\u0435 \u0441\u043B\u0435\u0434\u043D\u0438\u044F\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\:
+ConfigView.section.plugins.irc=\u041C\u0440\u0435\u0436\u0430 IRC
+dlg.auth.denied.link=<A HREF\="info">\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043E\u0442\u0445\u0432\u044A\u0440\u043B\u0435\u043D\u0438 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u043E\u043D\u043D\u0438 \u043A\u043E\u0434\u043E\u0432\u0435</A>
+azbuddy.tracker.bbb.status.idle=\u0411\u0435\u0437 \u043B\u0430\u043D\u0441\u0438\u0440\u0430\u043D\u0435
+security.certcreate.createfail=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
+ConfigView.section.style.use_show_parent_folder=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 "%1" \u0432\u043C\u0435\u0441\u0442\u043E "%2" \u0432 \u0442\u043E\u0440\u0435\u043D\u0442 \u043C\u0435\u043D\u044E\u0442\u0430\u0442\u0430
+SpeedTestWizard.finish.panel.disabled=\u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D
+TableColumn.header.tag.count=\u0411\u0440. \u043E\u0431\u0435\u043A\u0442\u0438
+configureWizard.file.fastResume=\u0421 \u0431\u044A\u0440\u0437\u043E \u043F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+ConfigView.section.security.op.error=\u041F\u0440\u043E\u0432\u0430\u043B \u0432 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\:\n %1
+remote.pairing.instruction=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043A\u043E\u0434\u044A\u0442 \u043F\u043E-\u0434\u043E\u043B\u0443 \u0432 \u043F\u0440\u0430\u0437\u043D\u0438\u0442\u0435 \u043C\u0435\u0441\u0442\u0430 \u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438 \u043E\u0442 \u043D\u044F\u043A\u043E\u0435 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u043E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435.
+TableColumn.header.savepath.info=\u0426\u0435\u043B\u0435\u0432\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0438\u043B\u0438 \u0444\u0430\u0439\u043B \u0437\u0430 \u0434\u0430\u043D\u043D\u0438\u0442\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+swt.updater.urlsgetter.downloading=\u041F\u043E\u043B\u0443\u0447\u0430\u0432\u0430\u043D\u0435 \u0441\u043F\u0438\u0441\u044A\u043A \u0441 \u043E\u0433\u043B\u0435\u0434\u0430\u043B\u043D\u0438 \u043E\u0442
+devices.auto.start=\u0410\u0432\u0442\u043E-\u0441\u0442\u0430\u0440\u0442
+FilesView.menu.setpriority.normal=&\u041D\u043E\u0440\u043C\u0430\u043B\u0435\u043D
+configureWizard.transfer2.mselect.info=xxx/<\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442> \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 <\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442> b/s \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435.\n\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u0437\u0430 ADSL \u0432\u0440\u044A\u0437\u043A\u0430 768 Kbps \u0441\u043A\u043E\u0440 [...]
+ConfigView.section.plugins.xml_http_if=\u0418\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043D\u0430 XML/HTTP
+iconBar.stream=\u041F\u043E\u0442\u043E\u0447\u043D\u043E \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435
+# This is the beginning of the word "View". It's right aligned under the icon bar item
+v3.iconBar.view.big=\u0418\u0437\u0433
+sidebar.LibraryUnopened=\u041D\u043E\u0432\u043E
+MyTorrentsView.menu.stop=\u0421\u0442\u043E&\u043F
+MyTorrentsView.menu.explore=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+MainWindow.menu.help.about=\u0417\u0430 Vuze
+MainWindow.nat.status.tooltip.bad=\u041F\u0440\u043E\u0431\u043B\u0435\u043C \u0441 \u0434\u043E\u0301\u0441\u0435\u0433\u0430 \u043F\u0440\u0438 \u0437\u0430\u0449\u0438\u0442\u043D\u0430 \u0441\u0442\u0435\u043D\u0430/NAT \u043F\u0440\u0435\u0437 TCP. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 \u0423\u0438\u043A\u0438 \u0437\u0430 \u043F\u043E\u043C\u043E\u0449
+TableColumn.header.category.info=\u0418\u043C\u0435 \u043D\u0430 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F, \u043A\u044A\u043C \u043A\u043E\u044F\u0442\u043E \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442
+DownloadManager.error.operationcancancelled=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u0435 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430
+ConfigView.label.seeding.firstPriority.shareRatio=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E \u043F\u043E\u0434
+label.dismiss.all=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438
+device.mediaserver.remove_all=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u043C\u0435\u0434\u0438\u0439\u043D\u0438 \u0441\u044A\u0440\u0432\u044A\u0440\u0438
+IPChecker.external.loadingwebpage=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430
+subscriptions.config.autostart.min=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E, \u0430\u043A\u043E >\= MB [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+azsubs.contextmenu.lookupassoc=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0430\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u0437\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+v3.MainWindow.button.resume=\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+platform.win32.baddll.iFW_Xfilter=iolo Personal Firewall
+TorrentOptionsView.param.max.seeds=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u0435\u043D \u0431\u0440\u043E\u0439 \u0432\u0440\u044A\u0437\u043A\u0438 \u0437\u0430 \u0441\u0435\u0435\u043D\u0435 [0\: \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u0437\u0430 \u0432\u0440\u044A\u0437\u043A\u0430]
+TableColumn.header.\#=\u0420\u0435\u0434
+dhttracker.tracknormalwhenoffline=\u041F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043D\u0430 \u043D\u043E\u0440\u043C\u0430\u043B\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438, \u043A\u043E\u0433\u0430\u0442\u043E \u0442\u0440\u0430\u043A\u0435\u0440\u044A\u0442 \u0438\u043C \u0435 \u043D\u0435\u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D
+MainWindow.menu.file.open.url=&\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0085\u2026
+Peers.column.peer_byte_id=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u0418\u0434.
+MainWindow.menu.file.open.uri=URL, magnet \u0438\u043B\u0438 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435\u2026
+MainWindow.upgrade.explanation.manual=\u0420\u044A\u0447\u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u0438 \u043A\u0430\u0442\u043E \u0441\u0435 \u0437\u0430\u0442\u0432\u043E\u0440\u0438 Vuze, \u0441\u0432\u0430\u043B\u0438 \u043D\u043E\u0432\u0430\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0 [...]
+MainWindow.about.internet.forumdiscussion=\u0424\u043E\u0440\u0443\u043C\u0438
+pairing.ui.icon.tip=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u043D\u0430 Vuze
+ConfigView.label.seeding.ignore=\u041F\u0440\u0430\u0432\u0438\u043B\u0430 \u0437\u0430 \u043F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435
+subscript.none.subscribed=\u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u0442\u0443\u043A \u0437\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438 \u0437\u0430 \u0442\u043E\u0432\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+ConfigView.section.mode.advanced.text1=\u041F\u044A\u043B\u0435\u043D \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u0432\u0441\u0438\u0447\u043A\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438 \u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438.
+TableColumn.header.smoothup=\u0417\u0430\u0433\u043B\u0430\u0434\u0435\u043D\u043E \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+FilesView.dialog.priority.text=0\=\u041D\u043E\u0440\u043C\u0430\u043B\u043D\u043E, 1\=\u0412\u0438\u0441\u043E\u043A\u043E, 2\=\u041F\u043E-\u0432\u0438\u0441\u043E\u043A\u043E\u2026
+alert.raised.at.close=(\u0421\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E\u0442 \u043F\u0440\u0435\u0434\u0438\u0448\u043D\u043E \u0437\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 Vuze)
+SystemTray.menu.closealldownloadbars=\u0417&\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u0432\u0441\u0438\u0447\u043A\u0438 \u043B\u0435\u043D\u0442\u0438 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F
+SpeedTestWizard.finish.panel.max.seeding.upload=\u041C\u0430\u043A\u0441. \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435\:
+ConfigView.section.ipfilter.persistblocking=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0438\u0442\u0435 IP \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u0432\u0430\u0449\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438
+PiecesView.type=\u0422\u0438\u043F
+ConfigView.section.plugins.TrackerWeb=\u0422\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0430 \u043C\u0440\u0435\u0436\u0430
+TableColumn.header.CountryFlag.info=\u0417\u043D\u0430\u043C\u0435\u0442\u043E \u043D\u0430 \u0434\u044A\u0440\u0436\u0430\u0432\u0430\u0442\u0430 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+SpeedTestWizard.abort.message.interrupted=TorrentSpeedTestMonitorThread \u043F\u0440\u0435\u043A\u044A\u0441\u043D\u0430 \u043F\u0440\u0435\u0434\u0438 \u043A\u0440\u0430\u044F \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u0442\u0430
+ConfigView.boolean.irclog=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435 \u0434\u043D\u0435\u0432\u043D\u0438\u043A \u043D\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0442\u0430 \u043F\u043E \u043A\u0430\u043D\u0430\u043B (\u0432 IRC_log.htm)
+ConfigView.section.style.reOrderDelay=\u041F\u0440\u0435\u043F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0438\u0442\u0435 \u043D\u0430 \u0432\u0441\u0435\u043A\u0438 N \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F/\u0438 \u043D\u0430 \u0413\u041F\u0418 [0\: \u043D\u0438\u043A\u043E\u0433\u0430]
+MySharesView.type.dircontentsrecursive=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F (\u0440\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E)
+GeneralView.label.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\:
+ConfigView.section.style.alwaysShowTorrentFiles=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0432 \u0414\u0435\u0442\u0430\u0439\u043B\u0438/\u0424\u0430\u0439\u043B\u043E\u0432\u0435 \u0432\u0438\u043D\u0430\u0433\u0438
+GeneralView.label.uploaded=\u041A\u0430\u0447\u0435\u043D\u043E\:
+ConfigView.section.update.autodownload=\u0421\u0430\u043C\u043E\u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043F\u043E\u0434\u0441\u0435\u0449\u0430\u043D\u0435 \u043F\u0440\u0438 \u0433\u043E\u0442\u043E\u0432\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F
+trackername.prefs.message=\u0421\u043F\u0438\u0441\u044A\u043A \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u0438\u043C\u0435\u043D\u0430 \u0441 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ";"\n\u041D\u0430\u043F\u0440.\: a.b.com; c.d.net
+ConfigView.label.removeOnStop=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441\u043B\u0435\u0434 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E\u0442\u043E \u043C\u0443 \u0441\u043F\u0438\u0440\u0430\u043D\u0435
+OpenTorrentWindow.diskUsage=%1 \u043E\u0442 %2
+device.rss.localonly=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u043E\u0441\u0442\u044A\u043F\u0430 \u0441\u0430\u043C\u043E \u0434\u043E \u0442\u043E\u0437\u0438 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440
+ConfigView.section.file.nativedelete._windows=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0442\u0440\u0438\u0442\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u043A\u043E\u0448\u0447\u0435\u0442\u043E
+MyTorrentsView.menu.changeTracker=\u0414\u043E\u0431&\u0430\u0432\u044F\u043D\u0435 URL(\u0442\u0430) \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440
+MainWindow.menu.view.myshares.keybinding=Meta+3
+ConfigView.section.connection.port.rand.enable=\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u0438 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 \u0437\u0430 \u043F\u0440\u043E\u0441\u043B\u0443\u0448\u0432\u0430\u043D\u0435 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435
+MagnetPlugin.report.downloading=\u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043E\u0442 %1
+MyTorrentsView.dialog.setNumber.upload=\u043A\u0430\u0447\u0432\u0430\u043D\u0435
+configureWizard.transfer.maxUploadsPerTorrent=\u041C\u0430\u043A\u0441. \u043A\u0430\u0447\u0432\u0430\u043D\u0438\u044F \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+FilesView.fullpath=\u0426\u044F\u043B\u043E\u0441\u0442\u0435\u043D \u043F\u044A\u0442
+Formats.units.Tbit=Tbit
+MainWindow.menu.view.mytracker.keybinding=Meta+2
+MagnetPlugin.use.md.download.name=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u0438 \u0437\u0430 %1
+ConfigView.section.transfer.setmark=\u041F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435/\u0438\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0430\u0440\u043A\u0435\u0440\: \u043E\u0431\u043E\u0431\u0449\u0435\u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440 \u0449\u0435 \u0431\u044A\u0434\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u0430 \u043E\u0442 \u0442\u043E\u04 [...]
+externalLogin.auth_method_proxy=\u0421 \u043C\u0435\u0442\u043E\u0434 \u0437\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u043E \u043F\u0440\u0438\u0445\u0432\u0430\u0449\u0430\u043D\u0435 \u043D\u0430 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438. \u0410\u043A\u043E \u0442\u043E\u0432\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438, \u0434\u0430 \u0441\u0435 \u043E\u0442\u043C\u0435\u043D\u0438 \u0438 \u043E\u043F\u0438\u0442\u0430 \u043E\u0442\u043D\u04 [...]
+IrcView.errormsg=\u0413\u0440\u0435\u0448\u0435\u043D \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441 \u0432 /msg - /msg user text
+ConfigView.label.dl.add.req.attention=\u0420\u0430\u0437\u0434\u0435\u043B\u044A\u0442 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F \u0434\u0430 \u043C\u0438\u0433\u0430, \u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u0434\u043E\u0431\u0430\u0432\u044F \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.label.autoopen.detailstab=\u0410\u0432\u0442\u043E-\u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 '\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438' \u043F\u0440\u0438
+apply.to.current=\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435 \u043A\u044A\u043C \u0442\u0435\u043A\u0443\u0449\u043E\u0442\u043E
+ConfigView.section.plugins.update=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+OpenTorrentWindow.mb.invaliddefsave.text=\u041C\u0435\u0441\u0442\u043E\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u043E \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 '%1' \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E.\n\n\u0421\u043B\u0435\u0434 \u0437\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0437\u0438 \u0434\u0438\u0430\u043B\u043E\u0433 \u0449\u0435 \u0438\u043C\u0430 \u0432\u044A\u0437\u04 [...]
+label.vuze.services=Vuze \u0443\u0441\u043B\u0443\u0433\u0438
+dht.logging=\u0421 \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0435\u0439\u043D\u043E\u0441\u0442\u0442\u0430
+tag.property.trackers={label.trackers}
+MyTorrentsView.menu.setDownSpeed=\u0417\u0430\u0434\u0430\u0432\u0430\u043D\u0435 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+subs.prop.num_unread=\u0411\u0440\u043E\u0439 \u043D\u0435\u043F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438
+ConfigView.section.style.dropdiraction.sharefolder=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+ConfigView.section.tracker.separatepeerids.info=\u041F\u043E\u0432\u0438\u0448\u0430\u0432\u0430 \u0430\u043D\u043E\u043D\u0438\u043C\u043D\u043E\u0441\u0442\u0442\u0430, \u0430\u043A\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E/\u0441\u0435\u0435\u043D\u0435\u0442\u043E \u0435 \u0430\u043D\u043E\u043D\u0438\u043C\u043D\u043E,\n\u0434\u043E\u043A\u0430\u0442\u043E \u0441\u0435 \u043F\u043E\u043B\u0437\u0432\u0430 \u043D\u0435-\u0430\u043D\u043E\u043D\u0438\u043C\u043D\u04 [...]
+devices.xcode.prof_def=\u041F\u0440\u043E\u0444\u0438\u043B \u043D\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+ConfigView.label.piecereorderminmb=\u041F\u0440\u0435\u043F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u0441\u0430\u043C\u043E \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043F\u043E-\u0433\u043E\u043B\u0435\u043C\u0438 \u043E\u0442 (MB)
+mdi.entry.tagsoverview={tags.view.heading}
+Wizard.Subscription.search.subtitle2.sub2=\u0422\u043E\u0440\u0435\u043D\u0442\u0438 \u043E\u0442 \u0446\u0435\u043B\u0438\u044F \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442
+iconBar.start=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435
+Wizard.Subscription.search.subtitle2.sub1=HD \u0444\u0438\u043B\u043C\u0438, TV \u0448\u043E\u0443\u0442\u0430, \u0444\u0438\u043B\u043C\u0438, \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044F\u043D\u0438\u044F \u0432\u044A\u0432 Vuze \u043C\u0440\u0435\u0436\u0430\u0442\u0430
+iconBar.comment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440
+azbuddy.chat.title=Vuze \u043B\u0430\u0444\u0447\u0435
+MainWindow.menu.tools.netstat={Views.plugins.aznetstatus.title}\u2026
+TableColumn.header.DateFileCompleted=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0444\u0430\u0439\u043B
+GeneralView.label.updatein=\u041E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0435 \u0441\u043B\u0435\u0434\:
+TorrentOptionsView.param.max.uploads=\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0431\u0440\u043E\u0439 \u0433\u043D\u0435\u0437\u0434\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 [\u043C\u0438\u043D\u0438\u043C\u0443\u043C\: 2]
+TableColumn.header.device=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+ConfigView.section.style.doNotUseGB.tooltip=\u041F\u0440\u0438 \u043E\u0442\u043C\u0435\u0442\u043A\u0430 Vuze \u0434\u0430 \u043F\u043E\u043B\u0437\u0432\u0430 MB \u0435\u0434\u0438\u043D\u0438\u0446\u0438, \u0434\u043E\u0440\u0438 \u043A\u043E\u0433\u0430\u0442\u043E \u0440\u0430\u0437\u043C\u0435\u0440\u0438\u0442\u0435 \u0441\u0430 >1024 MB
+proxy.socks.ui.icon.tip=SOCKS \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\: %1\n\u0421 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0430\u0432\u0430\u043D\u0435 \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438\n\u0421 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 - \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438
+TableColumn.header.writerate=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441
+dlg.auth.trial.success.line1=Vuze \u0435 \u0433\u043E\u0442\u043E\u0432 \u0434\u0430 \u0437\u0430\u043F\u0438\u0441\u0432\u0430 DVD-\u0442\u0430.
+jvm.reset=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 JVM \u0432\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u0442\u0435 \u0434\u0430 \u0441\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u043E\u043D\u043D\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u0438\u0442\u0435 \u0441\u0435
+azbuddy.addtorrent.title=\u041F\u0440\u0438\u0435\u043C\u0430\u043D\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E?
+splash.initializeUIElements=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u0413\u041F\u0418 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438
+MyShares.column.category=\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+DHTView.transport.out=\u0418\u0437\u0445\u043E\u0434\u044F\u0449\u043E\:
+subs.prop.is_auto=\u0410\u0432\u0442\u043E-\u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438
+PeersView.menu.snubbed=&\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u043D\u0430\u0442
+ConfigView.section.style.defaultSortOrder=\u041F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.proxy.enable_socks.peer=\u041A\u043E\u043C\u0443\u043D\u0438\u043A\u0430\u0446\u0438\u0438\u0442\u0435 \u0441 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 (\u0441\u0430\u043C\u043E \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438\u0442\u0435 \u0432\u0440\u044A\u0437\u043A\u0438) \u0434\u0430 \u0441\u0430 \u043F\u0440\u0435\u0437 \u043F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A (\u0438\u0437\u0438\u0441\u043A\u04 [...]
+Progress.reporting.no.reports.to.display=\u0412 \u043C\u043E\u043C\u0435\u043D\u0442\u0430 \u043D\u044F\u043C\u0430 \u043E\u0442\u0447\u0435\u0442\u0438 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435
+ConfigView.label.xfs.allocation=\u0417\u0430\u0434\u0435\u043B\u044F\u043D\u0435 \u043D\u0430 \u043D\u043E\u0432\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u043F\u043E \u043C\u0435\u0442\u043E\u0434 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u043D \u0437\u0430 XFS
+TableColumn.header.download.info=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0430\u043D\u043D\u0438 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+label.browser=\u0411\u0440\u0430\u0443\u0437\u044A\u0440
+cat.rss.gen=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0435\u0441\u0442\u043D\u0430 \u0435\u043C\u0438\u0441\u0438\u044F RSS
+config.internal.browser=\u0412\u0433\u0440\u0430\u0434\u0435\u043D \u0431\u0440\u0430\u0443\u0437\u044A\u0440
+SpeedView.stats.currentPing=\u0422\u0435\u043A\u0443\u0449 \u043F\u0438\u043D\u0433\:
+DownloadManager.error.badsize=\u0413\u0440\u0435\u0448\u0435\u043D \u0440\u0430\u0437\u043C\u0435\u0440
+TableColumn.menu.maxuploads=\u0411\u0440. \u043C\u0430\u043A\u0441. \u043A\u0430\u0447\u0432\u0430\u043D\u0438\u044F
+TableColumn.header.date_added=\u0414\u0430\u0442\u0430 \u043D\u0430 \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435
+TableColumn.header.class=\u041A\u043B\u0430\u0441
+ConfigView.section.connection.advanced.socket.group=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u0446\u043E\u043A\u044A\u043B
+ConfigView.section.logging=\u0417\u0430\u043F\u0438\u0441\u0432\u0430\u043D\u0435 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A
+speedtest.wizard.title=\u041F\u0440\u043E\u0431\u0430 \u0437\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442
+ConfigView.section.proxy=\u041F\u044A\u043B\u043D\u043E\u043C\u043E\u0449\u043D\u0438\u043A
+TableColumn.header.tag.uprate={TableColumn.header.upspeed}
+MainWindow.menu.community.wiki=&\u0423\u0438\u043A\u0438 \u043D\u0430 \u043E\u0431\u0449\u043D\u043E\u0441\u0442\u0442\u0430
+ActivityView.legend.peeraverage=\u0421\u0440\u0435\u0434\u043D\u043E
+subscriptions.rss.enable=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0435\u043C\u0438\u0441\u0438\u0438 \u043E\u0442 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+MyTrackerView.badnat.info=\u041F\u043E\u0441\u044F\u0432\u043A\u0438/\u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438, \u0437\u0430 \u043A\u043E\u0438\u0442\u043E \u0441\u0435 \u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438\u043B\u0430 NAT \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430, \u0430\u043A\u043E \u0435 \u043F\u0443\u0441\u043D\u0430\u0442\u043E
+ConfigView.label.bindip.details=\u041D\u0430\u043F\u0440\u0438\u043C\u0435\u0440\: 192.168.1.5;eth0;eth1[2] \u0449\u0435 \u043F\u0440\u0438\u0432\u044A\u0440\u0436\u0435 \u0443\u043A\u0430\u0300\u0437\u0430\u043D\u0438\u044F IP \u043A\u044A\u043C \u0432\u0441\u0438\u0447\u043A\u0438 IP-\u0442\u0430 \u043D\u0430 1-\u0432\u0438\u044F \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 3-\u0442\u0438\u044F IP \u043D\u0430 2-\u0440\u0438\u044F \u0438\u043D\u0442\u0435\u0440\u0444\u [...]
+ConfigView.section.ipfilter.list.notinrange=\u043D\u0435 \u0435 \u0432 \u043A\u043E\u0439\u0442\u043E \u0438 \u0434\u0430 \u0435 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D
+TableColumn.header.seeds=\u041F\u043E\u0441\u044F\u0432\u043A\u0438
+button.columnsetup.tooltip=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043A\u043E\u043B\u043E\u043D\u0438
+security.crypto.persist_for.session=\u0422\u0435\u043A\u0443\u0449\u0430 \u0441\u0435\u0441\u0438\u044F
+wizard.webseed.configuration=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043D\u0430 HTTP \u043F\u043E\u0441\u044F\u0432\u043A\u0438
+OpenTorrentWindow.mb.notTorrent.text='%1' \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043E\u0442\u0432\u043E\u0440\u0438. \u041D\u0435 \u043F\u0440\u0438\u043B\u0438\u0447\u0430 \u043D\u0430 .torrent \u0444\u0430\u0439\u043B.\n\n\u0427\u0430\u0441\u0442 \u043E\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0442\u0435 \u0434\u0430\u043D\u043D\u0438\:\n%2
+GeneralView.label.comment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\:
+label.wrap.text=\u0421\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442
+remote.pairing.test.unavailable=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438 \u043E\u0442\u0434\u0430\u043B\u0435\u0447\u0435\u043D\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E\u0441\u0442. <A HREF\="retry">\u041D\u043E\u0432 \u043E\u043F\u0438\u0442</A>
+iconBar.switch.tooltip=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0413\u041F\u0418 \u0437\u0430 Vuze
+TableColumn.header.seeds.fullcopycalc=%2 \u043F\u044A\u043B\u043D\u0438 \u043A\u043E\u043F\u0438\u044F \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438 \u0437\u0430 %1 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+v3.topbar.menu.show.plugin=\u0417\u043E\u043D\u0430 \u0437\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+v3.menu.device.exploreTranscodes._windows=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 Explorer
+devices.contextmenu.od.auto=<\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E>
+ConfigView.section.style.xulRunnerPath=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043F\u044A\u0442 \u0434\u043E XULRunner/Firefox \u0440\u044A\u0447\u043D\u043E [\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0437\u0430 Firefox 3; \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442]
+security.certtruster.intro=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044A\u0442 \u0435 \u0438\u0437\u0434\u0430\u0434\u0435\u043D \u043E\u0442 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F, \u043D\u0430 \u043A\u043E\u044F\u0442\u043E \u0441\u0435 \u043D\u044F\u043C\u0430 \u0434\u043E\u0432\u0435\u0440\u0438\u0435
+MyTrackerView.announces=\u041E\u0431\u044F\u0432\u044F\u0432\u0430\u043D\u0438\u044F
+metasearch.template.version.bad=\u0428\u0430\u0431\u043B\u043E\u043D \u0437\u0430 \u0442\u044A\u0440\u0441\u0435\u043D\u0435 '%1' \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430 \u0431\u0435\u0437 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043D\u0430 Vuze
+ConfigView.label.minSeedingTime=\u041C\u0438\u043D. \u0432\u0440\u0435\u043C\u0435 \u0437\u0430 \u0441\u0435\u0435\u043D\u0435 [s]
+OpenTorrentWindow.torrent.options=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0449\u0435 \u0441\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0430\u0442 \u043D\u0430 \u0433\u043E\u0440\u0435\u0438\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\:
+PeersView.upload.info=\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u043E \u043A\u0430\u0447\u0435\u043D\u043E\u0442\u043E \u043A\u044A\u043C \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F.
+MyTrackerView.bytesinave=\u0412\u0445. \u0441\u0440.
+TableColumn.header.CountryFlagSmall.info=\u041C\u0430\u043B\u043A\u043E \u0437\u043D\u0430\u043C\u0435 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0430\u0442\u0430 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+ConfigView.label.stop.Sleep=\u041F\u0440\u0435\u0441\u0442\u043E\u0439 \u043D\u0430 \u043A\u043E\u043C\u043F\u044E\u0442\u044A\u0440\u0430
+Subscription.menu.export=\u0415\u043A\u0441\u043F\u043E\u0440\u0442\u2026
+restart.error=\u041F\u0440\u043E\u0432\u0430\u043B \u043F\u0440\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\:\n%1\n\u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 <A HREF\="{restart.error.url}">restarting issues</a>.
+DHTTransport.report.send_timeout=\u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435\u0442\u043E
+play.select.content=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435
+label.test.types=\u0412\u0438\u0434\u043E\u0432\u0435 \u043F\u0440\u043E\u0431\u0438
+menu.plus=Vuze \u041F\u043B\u044E\u0441
+# %1 = "in kbps" or ""; %2 = "upload" or "download"
+MyTorrentsView.dialog.setNumber.text=\u0412\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 %1 \u0437\u0430 \u043F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 %2\:
+Plugin.localtracker.autoadd.info=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u043C\u0435\u0441\u0442\u043D\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 (';' \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438 \u0430\u0434\u0440\u0435\u0441\u0438, \u043F\u0440. 1.2.3.4)
+Trackers.column.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+PeersView.uploadspeed.info=\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043A\u044A\u043C \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+TableColumn.header.down.info=\u0422\u0435\u043A\u0443\u0449\u043E \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0430\u043D\u043D\u0438 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438 \u043E\u0442 \u0434\u0440\u0443\u0433\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438
+MainWindow.dht.status.tooltip=\u041A\u043E\u0433\u0430\u0442\u043E \u0440\u0430\u0431\u043E\u0442\u0438 \u0420\u0411\u0414, \u0442\u043E\u0432\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0438\u0437\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u0431\u0440\u043E\u0439 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438 \u0442\u0435\u043A\u0443\u0449\u043E \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438
+azinstancehandler.alert.portclash=\u041A\u043E\u043D\u0444\u043B\u0438\u043A\u0442 \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\u0435 \u0432 \u043B\u043E\u043A\u0430\u043B\u043D\u0430\u0442\u0430 \u043C\u0440\u0435\u0436\u0430\: %1 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043E\u0442 \u0434\u0440\u0443\u0433 Vuze \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B, \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u043D\u043E\u0432 \u043F\u0440\ [...]
+MainWindow.menu.speed_limits.schedule.msg=\u0422\u0435\u043A\u0443\u0449\u0438 \u043F\u0440\u0430\u0432\u0438\u043B\u0430, \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0438\u0440\u0430\u0449\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E\u0442\u043E \u043F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0444\u0438\u043B\u0438 \u0437\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043D\u0430 \u0441\u043A\ [...]
+OpenTorrentWindow.mb.alreadyExists.text=<A HREF\="%1">%3</A> \u0432\u0435\u0447\u0435 \u0435 \u0434\u043E\u0431\u0430\u0432\u0435\u043D \u043A\u0430\u0442\u043E '%2'
+PeerManager.status.ok=\u043D\u043E\u0440\u043C\u0430\u043B\u043D\u043E
+ConfigView.section.mode.title=\u041E\u043F\u0438\u0442 \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F
+label.n.will.be.downloaded=%1 \u0449\u0435 \u0431\u044A\u0434\u0435 \u0441\u0432\u0430\u043B\u0435\u043D
+external.browser.manual=\u0420\u044A\u0447\u043D\u043E
+metasearch.addtemplate.dup.title=\u0414\u0443\u0431\u043B\u0438\u0440\u0430\u043D \u0448\u0430\u0431\u043B\u043E\u043D
+ConfigView.section.interface.enabletray=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0438\u044F \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440 (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+PeersView.BlockView.AvailCount=\u0411\u0440\u043E\u044F\u0447 \u043D\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u043E
+iconBar.openFolder.tooltip=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+Plugin.localtracker.name=\u0422\u044A\u0440\u0441\u0430\u0447 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0432 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+restart.error.bad=\u041F\u043E\u0432\u0440\u0435\u0434\u0435\u043D \u0444\u043E\u0440\u043C\u0430\u0442 \u0437\u0430 '%1'
+CacheView.writes.title=\u0412/\u0418 \u0437\u0430\u043F\u0438\u0441\u0438
+TableColumn.header.peakup=\u0412\u0440\u044A\u0445 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+v3.MainWindow.menu.publish=&\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435
+MainWindow.menu.view.show=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435
+configureWizard.transfer2.test.info=\u0418\u0437\u0431\u043E\u0440 \u0437\u0430 \u0438\u0437\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0430 \u043F\u0440\u043E\u0431\u0430 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430
+subscriptions.config.autostart.max=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435 \u0441\u0430\u043C\u043E, \u0430\u043A\u043E <\= MB [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+library.unopened.header=%1 \u043E\u0442 \u0441\u043F\u0438\u0441\u044A\u043A\u0430
+ConfigView.section.security.restart.title=\u0418\u0437\u0438\u0441\u043A\u0432\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442
+beta.wizard.forum.url=http\://www.vuze.com/forum_beta.start
+ConfigView.section.connection.tcp.enable=\u0421 TCP
+Peers.column.%=%
+subscriptions.listwindow.title=\u0422\u044A\u0440\u0441\u0430\u0447 \u043D\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+splash.initializeGM=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u043D\u043E\u0442\u043E \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+MainWindow.menu.tools=&\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438
+ConfigView.section.connection.http.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435
+diagnostics.log_found=Vuze \u043D\u0435 \u0435 \u0431\u0438\u043B \u0437\u0430\u0442\u0432\u043E\u0440\u0435\u043D \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u043E. \u0414\u0430 \u0441\u0435 \u043F\u043E\u0433\u043B\u0435\u0434\u043D\u0435 \u0437\u0430 <A HREF\="%1">\u0434\u043D\u0435\u0432\u043D\u0438\u0446\u0438 \u0441 \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430</A>. \u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0447\u0435\u0442\u0435 \u0441\u044A\u0449\u043E \u0 [...]
+plugins.basicview.activity=\u0414\u0435\u0439\u043D\u043E\u0441\u0442\:
+dlg.auth.denied.line1=\u041A\u043E\u0434\u044A\u0442 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u043D\u0430 Vuze \u041F\u043B\u044E\u0441 \u0435 \u043E\u0442\u043A\u0430\u0437\u0430\u043D. \u0414\u0430 \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 \u043F\u043E-\u0434\u043E\u043B\u0443 \u0437\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F.
+natpmp.routeraddress=\u0410\u0434\u0440\u0435\u0441 \u043D\u0430 \u0441\u0442\u0430\u043D\u0446\u0438\u044F [\u043F\u0440\u0430\u0437\u043D\u043E\: \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E]
+Button.availableSubscriptions=\u0421\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442\u0438
+MyTorrentsView.menu.moveDown=\u041D\u0430&\u0434\u043E\u043B\u0443
+UpdateWindow.quit=\u0418\u0437\u0445\u043E\u0434
+PeersView.host.info=\u0418\u043C\u0435 \u043D\u0430 \u043F\u043E\u0434\u0441\u043B\u043E\u043D\u0430 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F, \u0430\u043A\u043E \u0438\u043C\u0430 (\u0432\u043B\u0438\u044F\u0435 \u043D\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044F\u043D\u0435\u0442\u043E)
+wizard.directory.help=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u043E\u0442 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+Peers.column.maxdownspeed=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+DHTView.general.uptime=\u041D\u0430\u0440\u0430\u0431\u043E\u0442\u043A\u0430\:
+MainWindow.menu.help.support=&\u041F\u043E\u043C\u043E\u0449 \u0438 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430
+MyTorrentsView.menu.moveTop=&\u041D\u0430\u0439-\u0433\u043E\u0440\u0435
+ConfigView.label.xfs.allocation.tooltip=\u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u043F\u0440\u0430\u0432\u0438\u043B\u043D\u0430\u0442\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F \u043D\u0430 /usr/sbin/xfs_io \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0430. \u0412 \u043F\u043E\u0432\u0435\u0447\u0435\u0442\u043E Linux \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0446\u0438\u0438 \u0435 \u0447\u0430\u0441\u0442 \u043E\ [...]
+MyTorrentsView.menu.manual.shared_peers=\u0420\u044A\u0447\u043D\u043E (\u0441\u0440\u0435\u0434 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u0442\u0435)
+TorrentOptionsView.param.reset.button=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430
+wizard.multitracker.edit.newtracker=\u041D\u043E\u0432 \u0442\u0440\u0430\u043A\u0435\u0440
+PiecesView.title.full=\u041F\u0430\u0440\u0447\u0435\u0442\u0430
+menu.register=Vuze \u041F\u043B\u044E\u0441 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F
+upnp.mapping.trackerclientudp=UDP \u0442\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438 \u043F\u043E\u0440\u0442
+ConfigView.section.connection.networks.Public=\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u0430 IP \u043C\u0440\u0435\u0436\u0430 (\u043D\u0435 \u0435 \u0430\u043D\u043E\u043D\u0438\u043C\u043D\u0430)
+MyTorrentsView.menu.editTracker=\u0420&\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043D\u0435 URL(\u0442\u0430) \u043D\u0430 \u0442\u0440\u0430\u043A\u0435\u0440
+IrcView.privatefrom=\u041E\u0442
+ConfigView.section.mode.resetdefaults=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0442\u0430 \u0441\u044A\u0441 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 (\u043F\u0440\u0435\u043F\u043E\u0440\u044A\u0447\u0432\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+TableColumn.header.peersources=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+DHTView.general.live=\u0416\u0438\u0432\u0438\:
+ConfigView.label.moveifsamedrive=\u0422\u043E\u0432\u0430 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043F\u0440\u0430\u0432\u0438 \u0441\u0430\u043C\u043E, \u043A\u043E\u0433\u0430\u0442\u043E \u0438\u0437\u0442\u043E\u0447\u043D\u0438\u043A\u0430 \u0438 \u0446\u0435\u043B\u0442\u0430 \u0441\u0430 \u043D\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0438 \u0441\u0438\u0441\u0442\u0435\u043C\u0438
+configureWizard.file.message3=Vuze \u0449\u0435 \u0441\u0432\u0430\u043B\u044F \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F, \u043A\u043E\u044F\u0442\u043E \u0441\u0435 \u0438\u0437\u0431\u0438\u0440\u0430 \u0442\u0443\u043A\:
+subs.prop.is_public=\u041E\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u043E
+configureWizard.file.message2=Vuze \u043C\u043E\u0436\u0435 \u0434\u0430 \u043F\u043E\u0434\u043D\u043E\u0432\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0438\u0442\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u0434\u043D\u0430\u0433\u0430, \u0430\u043A\u043E \u043C\u0443 \u0431\u044A\u0434\u0430\u0442 \u0434\u043E\u0431\u0430\u0432\u0435\u043D\u0438 \u043C\u0430\u043B\u043A\u043E \u0434\u0430\u043D\u043D\u0438 \u0437\u0430 \u043F\u043E\u0434\u043D\u043E\u0432\u044 [...]
+configureWizard.file.message1=Vuze \u0449\u0435 \u0437\u0430\u043F\u0438\u0448\u0435 \u043E\u0442\u0432\u043E\u0440\u0435\u043D\u0438\u0442\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F, \u043A\u043E\u044F\u0442\u043E \u0441\u0435 \u0438\u0437\u0431\u0438\u0440\u0430 \u0442\u0443\u043A\:
+ConfigView.label.autoadjust=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430 \u043F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0442\u0435 \u0441\u043F\u043E\u0440\u0435\u0434 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430
+webui.pairingenable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435\u0442\u043E
+devices.tivo.machine=\u0418\u043C\u0435 \u043D\u0430 TiVo \u043C\u0430\u0448\u0438\u043D\u0430
+ConfigView.section.ipfilter.start=\u041D\u0430\u0447\u0430\u043B\u0435\u043D IP
+wizard.directory=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
+globalmanager.download.remove.veto=\u0417\u0430\u0431\u0440\u0430\u043D\u0435\u043D\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043F\u043E \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435
+ConfigView.section.file.defaultdir.ask=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435\:
+upnp.alert.lostdevice=UPnP\: \u0437\u0430\u0433\u0443\u0431\u0435\u043D\u0430 \u0432\u0440\u044A\u0437\u043A\u0430 \u0441 \u0443\u0441\u043B\u0443\u0433\u0430\u0442\u0430 '%1' \u043D\u0430 UPnP \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E '%2'
+MyTorrentsView.menu.sl_add_to_prof=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u043A\u044A\u043C/\u043E\u0431\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0444\u0438\u043B
+devices.view.heading=\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0435\u0434\u0438\u044F \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+azbuddy.ui.table.ss=SS
+SystemTray.menu.open_global_transfer_bar=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430 \u0437\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+devices.downloading=\u0421\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.stats.graph_update_dividers=\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u043D\u0430 \u043B\u0438\u043D\u0438\u044F \u043F\u0440\u0438 \u0432\u0441\u0435\u043A\u0438 60 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438
+Formats.units.Gbit=Gbit
+TableColumn.header.timesincedownload=\u0412\u0440\u0435\u043C\u0435 \u0441\u043B\u0435\u0434 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.section.queue.seeding.ignore=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0442\u0430
+azsubs.contextmenu.addassoc=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0430\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u0437\u0430 \u0430\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+ConfigView.section.connection.advanced.mtu=\u041D\u0430\u0439-\u0433\u043E\u043B\u044F\u043C \u043F\u0440\u0435\u043D\u0430\u0441\u044F\u043D \u043F\u0430\u043A\u0435\u0442 (MTU) \u0437\u0430 \u043B\u0438\u043D\u0438\u044F
+Peers.column.Encryption.info=\u041D\u0438\u0432\u043E \u043D\u0430 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0435 \u0442\u0435\u043A\u0443\u0449\u043E
+ConfigView.section.connection.advanced.bind_port=\u041F\u0440\u0438\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0435 \u043A\u044A\u043C \u043B\u043E\u043A\u0430\u043B\u0435\u043D \u043F\u043E\u0440\u0442 [0\: \u0431\u0435\u0437]
+tps.tracker.cache1=\u0411\u0443\u0444\u0435\u0440 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\: \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u043E\=%1
+MainWindow.dialog.restartconfirmation.title=\u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 Vuze?
+ConfigView.section.ipfilter.enable.descriptionCache.tooltip=\u0410\u043A\u043E \u043D\u0435 \u0435 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u043E, \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F\u0442\u0430 \u043D\u044F\u043C\u0430 \u0434\u0430 \u0441\u0435 \u043F\u043E\u043C\u043D\u044F\u0442
+sidebar.Activity=\u0418\u0437\u0432\u0435\u0441\u0442\u0438\u044F
+upnp.selectedinterfaces=\u0418\u0437\u0431\u0440\u0430\u043D\u0438 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0438 (\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ';', \u043D\u0430\u043F\u0440. eth0;eth1) [\u043F\u0440\u0430\u0437\u043D\u043E\: \u0432\u0441\u0438\u0447\u043A\u0438]
+ConfigView.label.moveonlyusingdefaultsave.tooltip=\u0414\u0430 \u0441\u0435 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0438 \u0441\u0430\u043C\u043E \u0430\u043A\u043E \u0441\u0432\u0430\u043B\u0435\u043D\u0438\u0442\u0435 \u0434\u0430\u043D\u043D\u0438 \u0441\u0430 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u0442\u0430 \u0437\u0430 \u0434\u0430\u043D\u043D\u0438 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435
+MagnetURLHandler.report.error=\u0433\u0440\u0435\u0448\u043A\u0430 %1
+ConfigTransferAutoSpeed.mode=\u0420\u0435\u0436\u0438\u043C\:
+tag.show.stats=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430\u0442\u0430 \u043D\u0430 \u0435\u0442\u0438\u043A\u0435\u0442\u0438\u2026
+v3.devicesview.infobar.text2=\u0417\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043A\u044A\u043C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0432\u043B\u0430\u0447\u0438 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u043E\u0442 \u043C\u0435\u0441\u0442\u043D\u0430\u0442\u0430 \u0431\u0438 [...]
+tag.type.ds.err={ManagerItem.error}
+azbuddy.os_not_avail=\u041D\u0435\u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D
+MyTorrentsView.menu.torrent.dl=\u0412\u0440\u044A\u0437\u043A\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442
+TableColumn.header.downloadspeedoverall.info=\u041E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+OpenTorrentWindow.mb.existingFiles.partialList=(\u041D\u0435\u043F\u044A\u043B\u0435\u043D \u0441\u043F\u0438\u0441\u044A\u043A. \u041E\u0449\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0432\u0435\u0447\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0442)
+wizard.maketorrent.filesize=\u0424\u0430\u0439\u043B\u043E\u0432(\u0438) \u0440\u0430\u0437\u043C\u0435\u0440(\u0438)
+DHTView.operations.store=\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435
+subscriptions.column.SubWizRank=\u0420\u0430\u043D\u0433
+TrayWindow.menu.stopalldownloads=\u0421\u043F\u0438\u0440\u0430\u043D\u0435 \u0432\u0441\u0438\u0447\u043A\u0438 \u0441\u0432&\u0430\u043B\u044F\u043D\u0438\u044F
+FilesView.menu.retarget=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+iconBar.top.tooltip=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0439-\u0433\u043E\u0440\u0435
+SpeedTestWizard.stage.message.requesting=\u0437\u0430\u044F\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u043E\u0431\u0430\u2026
+MainWindow.dht.status.disabled=\u0411\u0435\u0437 DHT
+MainWindow.menu.transfers.pausetransfersfor.keybinding.mac=Opt+Ctrl+Shift+.
+device.od.enable=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043D\u0435 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+Button.getstarted=\u0417\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435
+SpeedView.stats.estimate=\u041E\u0447\u0430\u043A\u0432\u0430\u043D\u043E
+MainWindow.menu.speed_limits.save_current=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0442\u0435 \u043A\u0430\u0442\u043E\u2026
+ConfigView.section.interface.clearsavepathsbutton=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435
+OpenTorrentWindow.fileList.changeDestination=\u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u043C\u0435\u0441\u0442\u043E\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u043E
+MyTorrentsView.menu.movedata=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0441 \u0434\u0430\u043D\u043D\u0438\u2026\u0085
+Progress.reporting.status.retrying=\u041D\u043E\u0432 \u043E\u043F\u0438\u0442\u2026
+ConfigView.section.style.showiconbar=\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043B\u0435\u043D\u0442\u0430 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438
+label.current=\u0422\u0435\u043A\u0443\u0449\u043E
+pairing.accesscode=\u041A\u043E\u0434 \u0437\u0430 \u0434\u043E\u0441\u0442\u044A\u043F
+v3.deviceview.infobar.line2.tivo=\u041F\u043E\u0442\u043E\u0447\u043D\u043E \u0432\u0438\u0434\u0435\u043E-\u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0441\u0435 \u043F\u0443\u0441\u043A\u0430\u0442 \u043A\u0430\u0442\u043E \u043E\u0442 TiVo \u0441\u0435 \u0438\u0437\u0431\u0435\u0440\u0435 Vuze \u0432 Now Playing List.
+MessageBoxWindow.nomoreprompting=\u0411\u0435\u0437 \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u043E \u043D\u0430\u043F\u043E\u043C\u043D\u044F\u043D\u0435
+devices.xcode.mancopy=\u0420\u044A\u0447\u043D\u043E \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+SpeedTestWizard.name.conf.level.none=\u0411\u0435\u0437
+MainWindow.menu.file.import=&\u0418\u043C\u043F\u043E\u0440\u0442 \u043D\u0430 XML \u0442\u043E\u0440\u0435\u043D\u0442\u0085\u2026
+v3.MainWindow.menu.file.closewindow=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+Tracker.alert.listenfail=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0441\u043B\u0443\u0448\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442 %1.\n\u0414\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0438 \u0434\u0430\u043B\u0438 \u0434\u0440\u0443\u0433\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0438 \u043D\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u04 [...]
+ConfigView.label.minSpeedForActiveDL=\u0414\u0430 \u043D\u0435 \u0441\u0435 \u0441\u0447\u0438\u0442\u0430, \u0447\u0435 \u0442\u043E\u0440\u0435\u043D\u0442\u044A\u0442 \u043F\u043E\u043B\u0437\u0432\u0430 \u0433\u043D\u0435\u0437\u0434\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435, \u0430\u043A\u043E \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u0435 \u043F\u043E\u0434
+MagnetPlugin.use.md.download=\u041F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440 \u043D\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u0438 \u0431\u0430\u0437\u0438\u0440\u0430\u043D \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+importTorrentWizard.torrentfile.browse=\u041F\u0440\u0435\u0433\u043B\u0435\u0434
+label.force.piece=\u041D\u0430\u0441\u0438\u043B\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435
+Peers.column.%.info=% \u043E\u0442 \u0442\u043E\u0440\u0435\u043D\u0442\u0430 \u0441\u0432\u0430\u043B\u0435\u043D \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F \u0434\u043E\u0441\u0435\u0433\u0430
+upnp.info=\u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u043D\u043E \u041F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u044F\u0432\u0430\u043D\u0435 \u0438 \u041F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 - (Universal Plug and Play - UPnP) \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\ [...]
+ConfigView.section.file.hashchecking.smallestfirst=\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u043D\u0430\u0439-\u043C\u0430\u043B\u043A\u0438\u0442\u0435 \u0441\u0432\u0430\u043B\u044F\u043D\u0438\u044F \u043F\u044A\u0440\u0432\u043E
+label.popups=\u0418\u0437\u0441\u043A\u0430\u0447\u0430\u0449\u0438 \u043F\u0440\u043E\u0437\u043E\u0440\u0446\u0438
+TableColumn.header.profile=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+label.clickone=\u0418\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0435\u0434\u043D\u043E
+config.external.browser.switch.feature=\u0424\u0443\u043D\u043A\u0446\u0438\u044F
+PeersView.title.short=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+ConfigView.label.seeding.rankType.tooltip=\u0422\u043E\u0440\u0435\u043D\u0442\u0438\u0442\u0435 \u0441 \u043D\u0430\u0439-\u0432\u0438\u0441\u043E\u043A \u0440\u0430\u043D\u0433 \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E.\n\u041A\u043E\u0433\u0430\u0442\u043E \u043D\u044F\u043A\u043E\u0439 \u0442\u043E\u0440\u0435\u043D\u0442 \u043F\u0440\u0438\u0434\u043E\u0431\u0438\u0435 \u043F\u043E-\u0432\u0438\u0441\u043E\u04 [...]
+OpenTorrentWindow.torrentLocation=\u0422\u043E\u0440\u0435\u043D\u0442(\u0438) \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\:
+network.admin.binding.state=\u041F\u0440\u0438\u0432\u044A\u0440\u0437\u0432\u0430\u043D\u0438\u044F\: %1, \u043D\u0430\u0441\u0438\u043B\u0430 \= %2
+ConfigView.section.tracker.maxpeersreturned=\u041C\u0430\u043A\u0441. \u0432\u044A\u0440\u043D\u0430\u0442\u0438 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+label.none={PeersView.uniquepiece.none}
+v3.MainWindow.xofx=%1 \u043E\u0442 %2
+MyTorrentsView.menu.setpriority.high=&\u0412\u0438\u0441\u043E\u043A
+ConfigView.label.seeding.autoReposition.tooltip=\u041F\u0440\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435, \u0440\u0435\u0434\u044A\u0442 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442\u0438\u0442\u0435 (\u043A\u043E\u043B\u043E\u043D\u0430 '\u2116') \u0449\u0435 \u0431\u044A\u0434\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u0435\u043D \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 \u0442\u043E\u0437\u0438 \u043D\u0430 \u043F\u043E\u0441\u04 [...]
+MyTorrentsView.menu.open=&\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B
+label.routing=\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044F
+GeneralView.label.updatein.querying=\u0422\u044A\u0440\u0441\u0435\u043D\u0435\u0085\u2026
+ConfigTransferAutoSpeed.algorithm=\u0410\u043B\u0433\u043E\u0440\u0438\u0442\u044A\u043C\:
+CacheView.reads.fromFile=\u041E\u0442 \u0444\u0430\u0439\u043B
+installPluginsWizard.finish.title=\u0418\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
+ManagerItem.initializing=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435
+ConfigView.section.logging.generatediagnostics=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435
+DHTView.activity.status=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+MainWindow.menu.language=&\u0415\u0437\u0438\u043A
+IPChecker.external.service.no-ip.name=No-IP
+update.instance.uninstall=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u0434\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F\u0442\u0430
+MainWindow.menu.view.iconbar=\u041B\u0435\u043D\u0442\u0430 \u0441 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0438
+devices.xcode.autoStart=\u0410\u0432\u0442\u043E-\u0441\u0442\u0430\u0440\u0442, \u043A\u043E\u0433\u0430\u0442\u043E \u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E
+ConfigView.section.transfer.autospeed.networks=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u043C\u0440\u0435\u0436\u0430
+v3.MainWindow.menu.view.actionbar=\u041B\u0435\u043D\u0442\u0430 \u043D\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F\u0442\u0430
+MainWindow.menu.file.share=&\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+device.wiki.itunes=http\://wiki.vuze.com/w/Devices_iTunes_Tips
+DHTView.db.divsize=\u0420\u0430\u0437\u043C. Div.
+dht.advanced=\u0421 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+label.inactive=\u041D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u043E
+MagnetPlugin.decentral_backup_disabled=<\u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D \u0434\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D \u0437\u0430\u043F\u0430\u0300\u0441>
+v3.MainWindow.menu.home=&\u041D\u0430\u0447\u0430\u043B\u043E
+MainWindow.nat.status.tooltip.probok=\u0414\u043E\u0441\u0435\u0433\u044A\u0442 \u0431\u0435\u0448\u0435 \u043D\u043E\u0440\u043C\u0430\u043B\u0435\u043D, \u043D\u043E \u043D\u044F\u043C\u0430 \u0441\u043A\u043E\u0440\u043E\u0448\u043D\u0438 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 TCP \u0432\u0440\u044A\u0437\u043A\u0438
+device.config.xcode.workdir=\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0438 \u0444\u0430\u0439\u043B\u043E\u0432\u0435
+ConfigView.label.queue.maxactivetorrentswhenseeding=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u043E \u043F\u0440\u0438 \u0441\u0435\u0435\u043D\u0435 \u0441\u0430\u043C\u043E [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+DHTView.activity.type=\u0422\u0438\u043F
+button.add.container=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440
+ConfigView.section.ipfilter.blockedinfo=IP-\u0442\u0430 \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0438 \u0437\u0430\u0440\u0430\u0434\u0438 IP \u0444\u0438\u043B\u0442\u0440\u0438
+ConfigView.section.Pairing=\u0421\u0434\u0432\u043E\u044F\u0432\u0430\u043D\u0435
+TableColumn.header.azsubs.ui.column.subs.info=\u0411\u0443\u0442\u043E\u043D, \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0432\u0430\u0449 \u0430\u0431\u043E\u043D\u0438\u0440\u0430\u043D\u0435 \u0437\u0430 \u0435\u043C\u0438\u0441\u0438\u044F, \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u0449\u0430 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438
+security.crypto.badpw=\u0412\u044A\u0432\u0435\u0434\u0435\u043D\u0430\u0442\u0430 \u043F\u0430\u0440\u043E\u043B\u0430 \u0435 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u043D\u0430
+MyTorrentsView.menu.thisColumn.autoTooltip=\u0421 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0432\u0438\u043D\u0430\u0433\u0438
+Button.bar.hide=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435
+alert.copy.on.comp.done=\u0418\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0435 %1\n\u0424\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435 \u0441\u0430 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0432 '%2'
+window.welcome.title=\u041F\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043E\u0442 Vuze %1
+pairing.status.initialising=\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435
+config.external.browser.switch.external=\u0412\u044A\u043D\u0448\u0435\u043D
+ConfigView.section.ipfilter.list.baddata=\u0438\u0437\u043F\u0440\u0430\u0449\u0430 \u043B\u043E\u0448\u0438 \u0434\u0430\u043D\u043D\u0438\: \u0441\u043B\u0443\u0447\u0430\u0438 \=
+window.updateswt.failed=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F\u0442\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438, \u0434\u0430 \u0441\u0435 \u043D\u0430\u0442\u0438\u0441\u043D\u0435 '\u0414\u0430' \u0437\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442.
+#Used by the webui plugin
+MyTorrentsView.menu.removeand.deleteboth=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u0432 &\u043A\u043E\u043C\u043F\u043B\u0435\u043A\u0442
+dlg.install.mlab.description=\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0437\u0430 \u0442\u0435\u0441\u0442 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442
+importTorrentWizard.importfile.message=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 XML \u0444\u0430\u0439\u043B \u0437\u0430 \u0438\u043C\u043F\u043E\u0440\u0442
+v3.MainWindow.menu.view.statusbar=\u041B\u0435\u043D\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E
+label.ago=\u043D\u0430\u0437\u0430\u0434
+MyTorrentsView.menu.renameColumn={ColumnRenameWindow.title}\u2026
+dlg.auth.enter.revoked=\u0422\u0435\u043A\u0443\u0449\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F \u0435 \u0430\u043D\u0443\u043B\u0438\u0440\u0430\u043D.
+FileView.BlockView.Done=\u0413\u043E\u0442\u043E\u0432\u0438
+iconBar.remove=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+device.quit.transcoding.title=\u041F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
+dht.status.disabled=\u0418\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u0420\u0411\u0414 \u043D\u0435 \u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u0430
+DHTView.operations.failed=\u041D\u0435\u0443\u0441\u043F\u0435\u0448\u043D\u0438
+Views.plugins.IRC.title=IRC - \u0442\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0430 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u043D\u0430 \u043B\u0438\u043D\u0438\u044F
+TableColumn.header.Thumbnail.info=\u041D\u0430\u043C\u0430\u043B\u0435\u043D \u0438\u0437\u0433\u043B\u0435\u0434 \u043D\u0430 Vuze \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435. \u0417\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0434\u0440\u0443\u0433\u0438 \u043D\u0430\u043C\u0430\u043B\u0435\u043D\u0438\u0442\u0435 \u0438\u0437\u0433\u043B\u0435\u0434\u0438 \u0441\u0435 \u0434\u0430\u0432\u0430\u0442 \u043E\u0442 \u041E\u0421-\u0430.
+UpdateMonitor.messagebox.verification.failed.text=\u0423\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 '%1' \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438\: %2
+DownloadActivityView.title.short={TableColumn.header.Speed}
+subscriptions.column.name=\u0410\u0431\u043E\u043D\u0430\u043C\u0435\u043D\u0442
+subscriptions.column.new.info=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u0434\u0430\u043B\u0438 \u0438\u043C\u0430 \u0435\u0434\u0438\u043D \u0438\u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u043D\u043E\u0432\u0438 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438
+azbuddy.ui.menu.dec=\u0414\u0435\u0448\u0438\u0444\u0440\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043A\u043B\u0438\u043F-\u0431\u043E\u0440\u0434\u0430
+Peers.column.peer_id=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u0418\u0434.
+ManagerItem.allocating=\u0417\u0430\u0434\u0435\u043B\u044F\u043D\u0435
+core.shutdown.alert=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 '%1' \u0435 \u043F\u0443\u0441\u043D\u0430\u0442\u043E \u043A\u0430\u0442\u043E %2
+TableColumn.header.max_sr={max.sr.window.title}
+Sidebar.beta.title=\u0411\u0435\u0442\u0430 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430
+seedmore.uploadmore=\u041A\u043E\u0435\u0444\u0438\u0446\u0438\u0435\u043D\u0442 \u0437\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E <100% \u043D\u0435 \u0435 \u0434\u043E\u0431\u0440\u043E \u043D\u0435\u0449\u043E \u0437\u0430 BitTorrent \u043C\u0440\u0435\u0436\u0430\u0442\u0430.\n\u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u043E\u0441\u0442\u0430\u0432\u0438 \u0442\u043E\u0437\u0438 \u0442\u043E\u0440\u0435\u043D\u0442 \u0437\u0430 \u044 [...]
+MyTorrentsView.dialog.setNumber.inKbps=\u0432 %1
+device.hide=\u0421\u043A\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+priority.normal=\u041D\u043E\u0440\u043C\u0430\u043B\u0435\u043D \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442
+MyTorrents.items.UpSpeedLimit.unlimited=\u041D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E
+MainWindow.about.section.internet=\u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442
+TableColumn.header.smootheta.info=\u0417\u0430\u0433\u043B\u0430\u0434\u0435\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u041E\u0412\u0417 {smooth.config}
+Plugin.localtracker.enable=\u0421 \u0442\u044A\u0440\u0441\u0430\u0447 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0432 \u043B\u043E\u043A\u0430\u043B\u043D\u0430 \u043C\u0440\u0435\u0436\u0430
+ConfigView.section.tracker.separatepeerids=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u0438 \u0441\u0430\u043C\u043E\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D \u0437\u0430 \u043A\u043E\u043C\u0443\u043D\u0438\u043A\u0430\u0446\u0438\u0438 \u0441 \u0442\u0440\u0430\u043A\u0435\u0440\u0430 \u0438 \u0437\u0430 \u0434\u043 [...]
+ipCheckerWizard.service=\u0423\u0441\u043B\u0443\u0433\u0430
+OpenTorrentWindow.mb.notValid.text=\u0422\u043E\u0440\u0435\u043D\u0442 '%1' \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043E\u0442\u0432\u043E\u0440\u0438. \u0410\u043A\u043E \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435\u0442\u043E \u0435 \u0432 \u0440\u0435\u0436\u0438\u043C \u0441\u0435\u0435\u043D\u0435, \u0434\u0430 \u0441\u0435 \u043E\u0441\u0438\u0433\u0443\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u043D\u043E\u0441\u0442 \u043D\u0430 \u0444\u0430\u0439\ [...]
+ConfigView.section.interface.resetassoc=\u041F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0438\u0442\u0435 \u0430\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438 \u043D\u0430 Explorer (.torrent)
+SpeedView.stats.session.tooltip=\u041E\u0431\u0449\u043E (\u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B)
+security.certcreate.city=\u0413\u0440\u0430\u0434 \u0438\u043B\u0438 \u043C\u044F\u0441\u0442\u043E
+swt.install.window.title=\u0418\u043D\u0441\u0442\u0430\u043B\u0430\u0442\u043E\u0440 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0437\u0430 Vuze
+ConfigView.section.server.enableudp=\u0422\u0440\u0430\u043A\u0435\u0440\u0441\u043A\u0438 \u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B \u043F\u0440\u0435\u0437 UDP
+ConfigView.section.stats.choosedefaultsavepath=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0437\u0430 \u0437\u0430\u043F\u0438\u0441 \u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438\u0442\u0435
+SpeedView.downloadSpeed.title=\u0421\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+ConfigView.label.defaultstarttorrentsstoppedandpause=\u041F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0432 \u0441\u043F\u0440\u044F\u043D\u043E \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0434\u0430 \u0435 \u0432 \u043F\u0430\u0443\u0437\u0430
+TableColumn.header.smoothdown.info=\u0417\u0430\u0433\u043B\u0430\u0434\u0435\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 {smooth.config}
+SpeedTestWizard.finish.panel.max.upload=\u041C\u0430\u043A\u0441. \u043A\u0430\u0447\u0432\u0430\u043D\u0435\:
+ConfigView.label.allowsameip.tooltip=\u0414\u0430 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0421\u0410\u041C\u041E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442.\n\u0417\u0430\u0449\u0438\u0442\u0430 \u043E\u0442 \u043F\u0438\u044F\u0432\u0438\u0446\u0438 (\u043A\u043E\u0433\u0430\u0442\u043E \u0435 \u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E).
+device.error.xcodefail=\u041F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+TableColumn.header.timesinceupload=\u0412\u0440\u0435\u043C\u0435 \u0441\u043B\u0435\u0434 \u043A\u0430\u0447\u0432\u0430\u043D\u0435
+ConfigView.label.seeding.rankType.none.tooltip=\u041F\u043E\u0434\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043F\u043E \u043A\u043E\u043B\u043E\u043D\u0430 "\u2116"
+device.od.error.notfound=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u0442\u043E \u0438\u0437\u0433\u043B\u0435\u0436\u0434\u0430 \u043D\u0435 \u0435 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E
+ConfigView.section.transfer.autospeed.info=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430\u0442\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u043E\u043C\u0435\u043D\u044F \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0437\u0430 \u0438\u0437\u0431\u044F\u0433\u0432\u0430\u043D\u0435 \u043F\u0440\u0435\u0442\u043E\u0432\u [...]
+sidebar.LibraryCD.tooltip=\u0418\u043C\u0430 %1 \u043F\u044A\u043B\u0435\u043D(\u0438) \u0442\u043E\u0440\u0435\u043D\u0442(\u0438 ), %2 \u043E\u0442 \u043A\u043E\u0438\u0442\u043E \u0441\u0435 \u0441\u0435\u0435(\u044F\u0442) \u0432 \u043C\u043E\u043C\u0435\u043D\u0442\u0430
+dlg.auth.success.subtitle=\u041F\u043E\u0437\u0434\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\!
+exportTorrentWizard.exportfile.path=\u041F\u044A\u0442
+pairing.srp.setpw.doit=\u041F\u0440\u043E\u043C\u044F\u043D\u0430
+MyTorrentsView.menu.clear_resume_data=\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438\u0442\u0435 \u0437\u0430 \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0430\u0432\u0430\u043D\u0435
+ipfilter.options=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 IP \u0444\u0438\u043B\u0442\u044A\u0440
+security.crypto.password.mismatch=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 \u043E\u0442\u043D\u043E\u0432\u043E, \u043F\u0430\u0440\u043E\u043B\u0438\u0442\u0435 \u043D\u0435 \u0441\u044A\u0432\u043F\u0430\u0434\u0430\u0442.
+label.contraints=\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u2026
+ConfigView.label.maxuploadswhenbusymin=\u041C\u0430\u043A\u0441. \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u043D\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u043F\u043E \u0442\u043E\u0440\u0435\u043D\u0442 \u043F\u0440\u0438 \u0437\u0430\u0435\u0442\u043E \u0442\u0430\u0439\u043C\u0435\u0440 [s]
+MainWindow.menu.beta.off=\u041D\u0430\u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0431\u0435\u0442\u0430 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430\u2026
+ConfigView.section.style.alwaysRefreshMyTorrents=\u041E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 {library.name} \u0432\u0438\u043D\u0430\u0433\u0438
+TableColumn.header.lan.info=\u0424\u043B\u0430\u0433 \u0437\u0430 \u0438\u043D\u0434\u0438\u043A\u0430\u0446\u0438\u044F, \u0447\u0435 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F\u0442 \u0435 \u0432 \u043B\u043E\u043A\u0430\u043B\u043D\u0430\u0442\u0430 \u043C\u0440\u0435\u0436\u0430
+PeersView.port=\u041F\u043E\u0440\u0442
+Button.set=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435
+webui.group.access=\u041A\u043E\u043D\u0442\u0440\u043E\u043B \u043D\u0430 \u0434\u043E\u0441\u0442\u044A\u043F
+dlg.auth.install.failed.title=\u0410\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F\u0442\u0430 \u0441\u0435 \u043F\u0440\u043E\u0432\u0430\u043B\u0438
+ConfigView.label.password=\u0417\u0430\u0449\u0438\u0442\u0430 \u043D\u0430 Vuze \u0441 \u043F\u0430\u0440\u043E\u043B\u0430\n\u0429\u0435 \u0441\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u043F\u0440\u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043E\u0442 \u0438\u043A\u043E\u043D\u0430 \u0438 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435.
+configureWizard.transfer2.current=<\u0422\u0435\u043A\u0443\u0449\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438>
+wizard.multitracker.edit.deletegroup=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+Button.close=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435
+ConfigView.section.connection.advanced.bind_port.tooltip=\u0412\u0440\u044A\u0437\u043A\u0438\u0442\u0435 \u043D\u0430 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438\u044F \u0446\u043E\u043A\u044A\u043B \u0449\u0435 \u0441\u0430 \u043B\u043E\u043A\u0430\u043B\u043D\u043E \u043F\u0440\u0438\u0432\u044A\u0440\u0437\u0430\u043D\u0438 \u043A\u044A\u043C \u0434\u0430\u0434\u0435\u043D\u0438\u044F \u043F\u043E\u0440\u0442.\n\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435\u [...]
+ConfigView.section.connection.network.max.simultaneous.connect.attempts.tooltip=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u0435\u043D \u0431\u0440\u043E\u0439 \u043D\u043E\u0432\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0438\u044F \u043D\u0430 \u0438\u0437\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438, \u043A\u043E\u0438\u0442\u043E Vuze \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043F\u0440\u0430\u0432\u0438 \u043 [...]
+ConfigView.section.stats.enable=\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043D\u0435
+FilesView.title.full=\u0424\u0430\u0439\u043B\u043E\u0432\u0435
+TableColumn.menu.sr_prog.interval=\u0417\u0430\u0434\u0430\u0432\u0430\u043D\u0435 \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043D\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u0442\u043E\u2026
+TableColumn.header.tag.xcode=\u0410\u0432\u0442\u043E-\u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+sidebar.VuzeHDNetwork=Vuze HD \u043C\u0440\u0435\u0436\u0430
+ConfigTransferAutoSpeed.add.comment.to.log=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440\:
+br.backup.last.error=\u0413\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u0435\u043D \u0437\u0430\u043F\u0430\u0300\u0441\:
+ConfigView.section.proxy.socks.version=SOCKS \u0432\u0435\u0440\u0441\u0438\u044F
+uninstallPluginsWizard.finish.explanation=\u0418\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438 \u0449\u0435 \u0441\u0435 \u0434\u0435\u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u0442 \u0447\u0440\u0435\u0437 \u0421\u044A\u0432\u0435\u0442\u043D\u0438\u043A\u0430 \u0437\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435.
+MainWindow.menu.view.console=\u041A&\u043E\u043D\u0437\u043E\u043B\u0430
+IrcView.privateto=\u0414\u043E
+Wizard.Subscription.create.rss=RSS \u0435\u043C\u0438\u0441\u0438\u044F
+SpeedView.stats.session=\u0422\u0430\u0437\u0438 \u0441\u0435\u0441\u0438\u044F
+TableColumn.header.sha1=SHA1
+ScrapeInfoView.title=\u041E\u0441\u043D\u043E\u0432\u0435\u043D \u0442\u0440\u0430\u043A\u0435\u0440
+security.certcreate.firstlastname=\u0418\u043C\u0435 \u0438 \u0444\u0430\u043C\u0438\u043B\u0438\u044F
+ConfigView.section.style.colorOverride.progressBar=\u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435
+MyTorrentsView.menu.host=&\u041F\u043E\u0434\u0441\u043B\u043E\u043D\u2026
+SpeedView.stats.downloaded=\u0421\u0432\u0430\u043B\u0435\u043D\u043E (\u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B)
+SpeedTestWizard.abort.message.not.unchoked=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u0430\u043B\u044F \u043E\u0442 \u043D\u0438\u043A\u043E\u0439 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D - \u043D\u0435 \u0441\u0430 \u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0430\u043B\u0438 \u0437\u0430\u043F\u0443\u0448\u0432\u0430\u043D\u0435\u0442\u043E
+Subscription.menu.remove=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+ConfigView.label.maxdownloads.tooltip=\u0412\u044A\u0437\u043C\u043E\u0436\u043D\u043E \u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0442\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u043D\u0430 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u044F \u0442\u0443\u043A \u0431\u0440\u043E\u0439 \u0441 \u0435\u0434\u043D\u043E \u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435.\n\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u0442\u043E\u0440\u0435\u043D\u0442, \u043E\u0442 [...]
+ConfigView.section.tracker.extensions=\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438\u044F
+label.check.avail={GeneralView.section.availability}
+DiskManager.error.nospace=\u041D\u0435\u0434\u043E\u0441\u0442\u0430\u0442\u044A\u0447\u043D\u043E \u043C\u044F\u0441\u0442\u043E \u043D\u0430 \u0434\u0438\u0441\u043A\u0430
+OpenTorrentWindow.torrentTable.name=\u0418\u043C\u0435
+ConfigView.label.seeding.firstPriority.following=\u043E\u0442 \u0441\u043B\u0435\u0434\u043D\u043E\u0442\u043E\:
+ConfigView.section.security.toolsinfo=\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u0438\u0442\u0435 JAR \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0442 \u0437\u0430 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u043D\u0430 \u043D\u044F\u043A\u043E\u0438 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438, \u043D\u0430\u043F\u0440. \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043D\u0430 Swing Web [...]
+ConfigView.label.watchtorrentfolder.tooltip=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0437\u0430 \u043D\u043E\u0432\u0438 \u0442\u043E\u0440\u0435\u043D\u0442\u0438 \u0440\u0435\u0434\u043E\u0432\u043D\u043E
+ConfigView.section.file.resume.recheck.all=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u0440\u0438 \u043D\u0435\u043F\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043D \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u043D\u0430 \u0446\u0435\u043B\u0438\u044F \u0444\u0430\u0439\u043B \u0437\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438 \u043F\u0430\u0440\u0447\u0435\u0442\u0430\n(\u0438\u043D\u0430\u0447\u0435 \u0441\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0 [...]
+ConfigView.section.connection.peersource.PeerExchange=\u041E\u0442 \u0434\u0440\u0443\u0433 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+v3.MainWindow.button.viewdetails=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438
+ConfigView.label.xfer.bias_up=\u0423\u0432\u0435\u043B\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438\u0442\u0435 \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435 \u0447\u0440\u0435\u0437 \u0442\u043E\u043B\u0435\u0440\u0430\u043D\u0441 \u043D\u0430 \u043A\u0430\u043F\u0430\u0446\u0438\u0442\u0435\u0442\u0430 \u0437\u0430 \u043A\u0430\u0447\u0432\u0430\u043D\u0435 \u0432\u044A\u0440\u0445\u0443 \u043D\u0435\u0437\u0430\u0432 [...]
+general.na.short=\u041D\u044F\u043C\u0430
+label.copy.on.comp=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043F\u0440\u0438 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430\u043D\u0435
+ColumnSetup.title=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u0430 \u0437\u0430 '%1'
+ConfigView.section.stats.hours=\u0447\u0430\u0441
+ConfigTransferAutoSpeed.log.button=\u0414\u043D\u0435\u0432\u043D\u0438\u043A
+ConfigView.label.seeding.firstPriority.ignore=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0442\u0430 \u0437\u0430 \u041D\u0412\u041F \u0437\u0430\:
+TableColumn.header.torrentfileindex.info=\u0418\u043D\u0434\u0435\u043A\u0441 \u043D\u0430 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0442\u043E\u0440\u0435\u043D\u0442\u0430
+MyTorrentsView.menu.publish=\u041F\u0443&\u0431\u043B\u0438\u043A\u0443\u0432\u0430\u043D\u0435\u2026\u0085
+dlg.auth.enter.prompt=Vuze \u041F\u043B\u044E\u0441 \u043A\u043E\u0434 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u044F\:
+DHTView.operations.findValue=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442
+v3.MainWindow.button.download=\u0421\u0432\u0430\u043B\u044F\u043D\u0435
+window.welcome.file=/changelog.txt
+platform.win32.baddll.SBLSP=SPEEDBit Video Accelerator
+MainWindow.menu.file.closetab.keybinding=Meta+W
+updater.cant.write.to.app.details=\u0412 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F "%1" \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043F\u0438\u0441\u0432\u0430.\n\n\u0422\u043E\u0432\u0430 \u0449\u0435 \u043F\u043E\u043F\u0440\u0435\u0447\u0438 \u0431\u044A\u0434\u0435\u0449\u0438 \u0430\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430 \u0431\u044A\u0434\u0430\u0442 \u043F\u0440\u0438\u043B\u0430\u0433\u0 [...]
+MyTorrentsView.menu.setSpeed.slots=\u0433\u043D\u0435\u0437\u0434\u0430 \u043F\u043E
+ClientStats.title.full=\u041A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438
+Trackers.column.peers.info=\u0420\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438 \u0441\u043F\u043E\u0440\u0435\u0434 \u0442\u0440\u0430\u043A\u0435\u0440\u0430
+splash.loadIpFilters=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 IP \u0444\u0438\u043B\u0442\u0440\u0438\u2026
+MyTorrentsView.menu.peersource=\u0418\u0437\u0442\u043E\u0447\u043D\u0438\u0446\u0438 \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438
+dht.diagnostics.group=\u0414\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0438
+ManagerItem.seeding=\u0421\u0435\u0435\u043D\u0435
+ConfigView.label.autoopen.dl={ManagerItem.downloading}
+pairing.last.error=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430
+SpeedView.stats.ratio=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435
+ConfigView.section.connection.serverport.wiki=\u0414\u043E\u0431\u0440\u0438 \u0438\u0437\u0431\u043E\u0440\u0438 \u043D\u0430 \u043F\u043E\u0440\u0442\u043E\u0432\u0435
+FilesView.click=\u0418\u0437\u0431\u043E\u0440\u2026
+MagnetPlugin.decentral_disabled=<\u0438\u0437\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0434\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u043E \u043F\u0440\u043E\u0441\u043B\u0435\u0434\u044F\u0432\u0430\u043D\u0435>
+SystemTray.menu.resumetransfers=\u041F\u043E\u0434\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0438
+devices.od.idle=\u041D\u0435\u043D\u0430\u0442\u043E\u0432\u0430\u0440\u0435\u043D\u043E
+IPChecker.external.analysingresponse=\u0410\u043D\u0430\u043B\u0438\u0437 \u043D\u0430 \u043E\u0442\u0433\u043E\u0432\u043E\u0440\u0430
+upnp.ignorebaddevices.alert=UPnP \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E, \u043D\u0430\u043C\u0438\u0440\u0430\u0449\u043E \u0441\u0435 \u043D\u0430 %1 \u0435 \u043F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u043D\u0430\u0442\u043E \u043F\u043E\u0440\u0430\u0434\u0438 \u043F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u0438 \u043F\u0440\u043E\u0432\u0430\u043B\u0438. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u04 [...]
+OpenTorrentWindow.fileTable.size=\u0420\u0430\u0437\u043C\u0435\u0440
+DHTView.operations.ok=\u0414\u0430
+exportTorrentWizard.process.outputfileexists.title=\u0421\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449 \u0444\u0430\u0439\u043B
+azbuddy.ui.table.last_ygm=\u041D\u043E\u0432\u0430 \u043F\u043E\u0449\u0430
+devices.xcode.setcopyto=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0437\u0430 \u043A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F\u2026
+ConfigView.label.stop.autoreset=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430 \u043F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043D\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F\u0442\u0430 \u0434\u0430 \u0441\u0430 '%1' \u0432\u0435\u0434\u043D\u044A\u0436 \u0437\u0430\u043F\u043E\u0447\u043D\u0430\u0442\u0438
+v3.activity.button.readall=\u041C\u0430\u0440\u043A\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u043E \u043A\u0430\u0442\u043E \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u043D\u043E
+TableColumn.header.category=\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F
+ConfigView.section.plugins.webui=\u0418\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043D\u0430 Swing Web
+webui.rootres=\u0413\u043B\u0430\u0432\u0435\u043D \u0440\u0435\u0441\u0443\u0440\u0441
+ConfigView.section.transfer.autospeed.enabledebug=\u0417\u0430\u043F\u0438\u0441 \u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A
+ConfigView.label.autoopen.cd={ManagerItem.seeding}
+TableColumn.header.smoothdown=\u0417\u0430\u0433\u043B\u0430\u0434\u0435\u043D\u043E \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+SpeedView.stats.con=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0437\u0430 \u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430\:
+wizard.multitracker.edit.save=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
+ConfigView.label.moveremoved=\u041F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0435\u043D\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 (\u043A\u043E\u0433\u0430\u0442\u043E \u0441\u0435 \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u0442)
+Alert.failed.update=\u041F\u0440\u043E\u0432\u0430\u043B \u0432 \u0438\u043D\u0441\u0442\u0430\u043B\u0430\u0446\u0438\u044F\u0442\u0430 \u043D\u0430 \u043F\u043E\u043D\u0435 1 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442. \u0414\u0430 \u0441\u0435 \u0432\u0438\u0434\u0438 <A HREF\="{Alert.failed.update.url}">VuzeWiki\: Failed Update</A> [%1]
+ConfigTransferAutoSpeed.set.tolerance=\u0442\u043E\u043B\u0435\u0440\u0430\u043D\u0441 (ms)
+devices.device=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E
+ConfigView.label.allowsameip=\u0421 \u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0432\u0440\u044A\u0437\u043A\u0438 \u043E\u0442 \u0435\u0434\u0438\u043D IP \u0430\u0434\u0440\u0435\u0441
+dlg.auth.denied=\u041E\u0442\u043A\u0430\u0437\u0430\u043D \u043A\u043E\u0434 \u0437\u0430 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u043D\u0435
+azbuddy.os_offline=\u041D\u0435 \u043D\u0430 \u043B\u0438\u043D\u0438\u044F
+subscriptions.column.last-checked=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E
+TableColumn.header.shareRatio=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435
+installPluginsWizard.mode.list=\u041F\u043E \u0441\u043F\u0438\u0441\u044A\u043A \u043E\u0442 sourceforge.net
+MyTorrentsView.menu.rename.displayed.enter.title=\u041F\u0440\u0435\u0438\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u043E\u0442\u043E \u0438\u043C\u0435
+external.browser.system=\u041F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0449\u0438\u044F\u0442 \u0441\u0435
+ConfigView.section.style.status.show_nat=NAT \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435
+ConfigView.section.tracker.seedretention=\u041C\u0430\u043A\u0441. \u043F\u043E\u0441\u044F\u0432\u043A\u0438 \u0437\u0430\u0434\u044A\u0440\u0436\u0430\u043D\u0438 \u0437\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+ConfigView.label.ratio=\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435
+OpenTorrentWindow.mb.badSize.text='%1' \u043D\u0435 \u0435 '%2' \u0438 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0437\u0430 \u0441\u0435\u0435\u043D\u0435
+OpenTorrentWindow.addPosition=\u041C\u044F\u0441\u0442\u043E \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430
+ConfigView.section.tracker.nonblockingconcmax=\u041C\u0430\u043A\u0441. \u043A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u0438 \u0432\u0440\u044A\u0437\u043A\u0438 [0\: \u043D\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E]
+TableColumn.header.up.info=\u0422\u0435\u043A\u0443\u0449\u043E \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0430\u043D\u043D\u0438 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u0438 \u043D\u0430 \u0434\u0440\u0443\u0433\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438
+azbuddy.ui.menu.copypk=\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u043E\u0431\u0449\u043E\u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D \u043A\u043B\u044E\u0447
+ConfigView.section.tracker.pollintervalincper=\u0412\u0441\u0435\u043A\u0438 'n' \u043A\u043B\u0438\u0435\u043D\u0442\u0438
+label.tracker.templates=\u0428\u0430\u0431\u043B\u043E\u043D\u0438 \u0437\u0430 \u0442\u0440\u0430\u043A\u0435\u0440\u0438
+SpeedTestWizard.set.upload.bytes.per.sec=kB/s
+ConfigView.label.saveresumeinterval=\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0434\u0430\u043D\u043D\u0438\u0442\u0435 \u0437\u0430 \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0435\u043D\u0438\u0435 \u043D\u0430 \u0432\u0441\u0435\u043A\u0438
+ConfigView.section.interface.enabletray._mac=\u0421 \u0438\u043A\u043E\u043D\u0430 \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u043D\u0430 \u0441\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0442\u043E (\u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442)
+TableColumn.header.downloadspeed.info=\u041E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435, \u043F\u0440\u0438 \u043A\u043E\u0435\u0442\u043E \u0441\u0435 \u0441\u0432\u0430\u043B\u044F \u043E\u0442 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0438\u044F
+label.udp_probe=UDP \u043F\u0440\u043E\u0431\u0430
+OpenTorrentWindow.pastearea=\u0414\u0430 \u0441\u0435 \u0432\u044A\u0432\u0435\u0434\u0435 URL, magnet \u0432\u0440\u044A\u0437\u043A\u0430 \u0438\u043B\u0438 \u0440\u0430\u0437\u0431\u044A\u0440\u043A\u0432\u0430\u043D\u0435\:
+MainWindow.upgrade.downloadingfrom=\u0421\u0432\u0430\u043B\u044F\u043D\u0435 \u043E\u0442\:
+exportTorrentWizard.torrentfile.message=\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B \u0437\u0430 \u0435\u043A\u0441\u043F\u043E\u0440\u0442
+ConfigView.section.dns.url=http\://wiki.vuze.com/w/UG_Options\#DNS
+pairing.server.warning.title=\u0421\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E\u0442 \u0441\u0434\u0432\u043E\u044F\u0432\u0430\u0449\u0438\u044F \u0441\u0435 \u0441\u044A\u0440\u0432\u044A\u0440
+TableColumn.header.swarm_average_speed=\u0421\u0440\u0435\u0434\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442 \u0437\u0430 \u0440\u043E\u044F\u043A\u0430
+PeersView.ip.info=IP \u043D\u0430 \u0440\u0430\u0432\u043D\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D
+DevicesOD.column.od_completion=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043D\u0430 \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440\u0430
+OpenTorrentWindow.mb.alreadyExists.title=\u0412\u0435\u0447\u0435 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430
+MainWindow.menu.speed_limits.wiki.url=http\://wiki.vuze.com/w/Speed_Limit_Scheduler
+azbuddy.enable_cat_pub=\u041E\u0431\u0449\u043E\u0434\u043E\u0441\u0442\u044A\u043F\u043D\u0438 \u0435\u0442\u0438\u043A\u0435\u0442\u0438/\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438, \u0437\u0430 \u043A\u043E\u0438\u0442\u043E \u0432\u0441\u0438\u0447\u043A\u0438 \u0434\u0440\u0443\u0436\u043A\u0438 \u043C\u043E\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0430\u0431\u043E\u043D\u0438\u0440\u0430\u0442 (\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B ',')
+MyTorrents.column.ColumnProgressETA.compon=\u0417\u0430\u0432\u044A\u0440\u0448\u0435\u043D \u043D\u0430 %1
+importTorrentWizard.process.inputfilebad.title=\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0444\u0430\u0439\u043B \u0437\u0430 \u0438\u043C\u043F\u043E\u0440\u0442
+TableColumn.header.torrentspeed=\u0421\u043A\u043E\u0440\u043E\u0441\u0442
+MainWindow.dialog.restartconfirmation.text=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0434\u0430 \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 Vuze?
+PluginDeprecation.view=\u041D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 \u043F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0438
+v3.button.removeActivityEntry=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u0438\u0435
+DHTTransport.report.rerequest_all=\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0438\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u0446\u0435\u043B\u0438\u044F \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440 \u043E\u0442 %1
+platform.win32.baddll.niphk=Norman Anti-Virus
+label.no.connections=\u041D\u044F\u043C\u0430 \u0432\u0440\u044A\u0437\u043A\u0438
+MyTorrentsView.menu.forceStart=&\u041D\u0430\u0441\u0438\u043B\u0435\u043D\u043E \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043D\u0435
+MainWindow.menu.speed_limits.info.curr=\u0422\u0435\u043A\u0443\u0449\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+devices.turnon.title=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u0437\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430
+TableColumn.header.secondsseeding=\u0421\u0435\u0435\u043D\u0435 \u0437\u0430
+MainWindow.about.internet.sourceforge=\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043D\u0430 Sourceforge \u0437\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0438
+v3.mb.delPublished.title=\u0421\u043F\u0438\u0440\u0430\u043D\u0435 \u0441\u0435\u0435\u043D\u0435\u0442\u043E \u043D\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435
+configureWizard.transfer2.rate.unchanged=\u0429\u0435 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0442 \u0442\u0435\u043A\u0443\u0449\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
+ConfigView.pluginlist.column.type.builtIn=\u0412\u0433\u0440\u0430\u0434\u0435\u043D
+sharing.progress.title=\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043D\u0430 \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435\u0442\u043E
+SpeedTestWizard.name.conf.level.high=\u0412\u0438\u0441\u043E\u043A\u043E
+label.outgoing=\u0418\u0437\u0445\u043E\u0434\u044F\u0449\u043E
+PluginDeprecation.log.details=---------\nIDENTIFIER\: %1\nCONTEXT\: %2\n\n*** BEGIN TRACE ***\n%3*** END TRACE ***\n\n
+TableColumn.header.fileext.info=\u0422\u0438\u043F \u043D\u0430 \u0444\u0430\u0439\u043B/\u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u044A\u0440\u0432\u0438\u0447\u043D\u0438\u044F \u0444\u0430\u0439\u043B \u043D\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E
+platform.win32.baddll.mclsp=McAfee Privacy Service
+TableColumn.header.CountryFlagSmall=\u0417\u043D\u0430\u043C\u0435
+v3.deviceview.infobar.line2.android=\u0414\u0430 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u043C\u043E\u043D\u0442\u0438\u0440\u0430\u043D\u0435 \u043F\u0440\u0435\u0437 USB \u043E\u0442 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0437\u0430 \u043F\u0440\u0430\u0432\u0438\u043B\u0435\u043D \u0442\u0440\u0430\u043D\u0441\u0444\u0435\u0440 \u043D\u0430 \u0432\u0438\u0434\u0435\u043E \u0444\u0430\u0439\u043B\u043E\u0432\u0435.
+ConfigView.section.security.resetkey.error=\u041F\u0440\u043E\u0432\u0430\u043B\u0438 \u0441\u0435 \u043F\u0440\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0442\u0430 \u043D\u0430 \u043A\u043B\u044E\u0447\u043E\u0432\u0435
+device.od.turnon.title=\u0412\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0434\u0434\u0440\u044A\u0436\u043A\u0430 \u0437\u0430 \u043D\u0435 \u0441\u0432\u044A\u0440\u0437\u0430\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0437\u0430 \u0441\u0432\u0430\u043B\u044F\u043D\u0435
+MainWindow.menu.speed_limits.delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435
+ConfigView.section.style.enableHeaderHeight=\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u0430 \u0432\u0438\u0441\u043E\u0447\u0438\u043D\u0430 \u043D\u0430 \u0437\u0430\u0433\u043B\u0430\u0432\u043A\u0430
+OpenTorrentWindow.addFiles.magnet=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043D\u0430 &magnet
+FileItem.high=\u0432\u0438\u0441\u043E\u043A
+devices.xcode.working_dir=\u0417\u043E\u043D\u0430 \u043D\u0430 \u043F\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435
+GeneralView.label.status.pieces=\u0421\u044A\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0430 \u043F\u0430\u0440\u0447\u0435\u0442\u0430
+FileDownload.canceled=\u0421\u0432\u0430\u043B\u044F\u043D\u0435\u0442\u043E \u043D\u0430 \u0442\u043E\u0440\u0435\u043D\u0442 \u0444\u0430\u0439\u043B \u0435 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043E \u0447\u0440\u0435\u0437 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\: %1
+dlg.install.azemp.description={dlg.player.install.description}
+v3.MainWindow.text.log.in=\u0412\u043F\u0438\u0441\u0432\u0430\u043D\u0435
+upnp.trace_to_log=\u041F\u043E\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043F\u044A\u043B\u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043D\u0435\u0438\u0437\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u0438 \u0432 \u0434\u043D\u0435\u0432\u043D\u0438\u043A\u0430
+label.tag=\u0415\u0442\u0438\u043A\u0435\u0442
+# Used for peers which we can't determine.
+PeerSocket.unknown=\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D
diff --git a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_eu.properties b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_eu.properties
index 973545d..3c15ac9 100644
--- a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_eu.properties
+++ b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_eu.properties
@@ -94,13 +94,14 @@ ConfigView.section.startstop=Hasi eta Gelditu
OpenTorrentFile.column.download=Jeitsi?
authenticator.location=Helbidea
upnp.alertothermappings=Beste ordenagailuetako ataken berri eman
-ConfigView.section.ipfilter.peerblocking.group=Hartzaile Itxipena
+ConfigView.section.ipfilter.peerblocking.group=Hartzaile Blokeoa
TableColumn.header.tag.upload_priority={cat.upload.priority}
SystemTray.menu.startalltransfers=Hasi Eskualdaketa Denak
health.explain.error=Arazo bat dago torrent honekin. Ikusi Egoera zutabea, edo ikurreko akats argibidea.
ConfigView.section.Devices=Izenburua
SpeedView.stats.estimatechoke=Irizpena (itopena)
MainWindow.dht.status.unreachable=DHT-a Suhesiturik
+json.file.browse=Ireki JSON Agiria
Views.plugins.UPnP.title.tooltip=Plug and Play Unibertsala
dlg.stream.plus.subtext=Asperturik zure jeisketak osatu arte itxaroteaz? Ikusi itzazu lehenago Play Now-rekin, Vuze Plusen ezaugarri bat ahalbidetzen dizuna bideoa ikustea jeisketak jarraitzen duen bitartean.
MainWindow.menu.view.mytorrents=&Liburutegia
@@ -169,13 +170,14 @@ ConfigView.section.plugins=Pluginak
v3.MainWindow.menu.file.closewindow.keybinding=Meta+W
DownloadManager.error.filenotfound=Agiria Ez da Aurkitu
TableColumn.header.copied=Kopiaturik
+menu.json.to.bencode=Bihurtu JSON Agiria BEncoded-ra...
ConfigView.section.security.resetkey.warning.title=Datu Galera Kontuz
devices.contextmenu.xcode=Gailuarentzako Transkodeaketa
label.table.default=Taula Berez
wizard.notimplemented=Garatu gabea
ConfigView.label.seeding.autoStart0Peers=Berez Hasi 0 hartzaile duten osaturiko torrent denak
OpenTorrentOptions.header.saveto=Gordetze Kokalekua\: %1
-Torrent.create.progress.ignoringfile=Agiria ezikuste
+Torrent.create.progress.ignoringfile=Agiria ezikusten
label.keep.alive=Heutsi Bizirik
config.external.browser.switch.subs=Harpidetzak
TableColumn.header.torrentfileindex=Agiri Aurkibidea
@@ -196,6 +198,7 @@ RCM.column.rc_actions=Eragiketak
dlg.auth.enter.line.try.1=Sartu zure eragintza kodea behean eta osatu zure Vuze Pluserako berritzea.
SpeedView.stats.upload_details=%1
device.status.online=Gailua online dago
+TableColumn.header.DateTorrentLastActive.info=Torrentak azken jarduera izan zuen eguna. Ez da eguneratzen torrenta lerrokatua edo gelditua den arte
FileItem.write=Idatzi
label.limit=Muga
PiecesView.DistributionView.RarestAvl=Atal Arraroak\: %1 (Eskur\:%2)
@@ -224,7 +227,7 @@ ConfigView.section.logging.log2type=Akats
TableColumn.header.sessionup.info=Saio hoentan igotako byteak
label.tags=Etiketak
azneti2phelper.install=Ezarri I2P Plugina
-SpeedTestWizard.finish.panel.auto.speed.seeding=BerezAbiadura emaritzan da\:
+SpeedTestWizard.finish.panel.auto.speed.seeding=Berez-Abiadura emaritzan da\:
ConfigView.label.seeding.numPeersAsFullCopy.tooltip=Kopia oso 1 X hartzaileko dela saiatuz, hartzaile zenbateko handia duten torrenteen lerruna murrizten duzu.\nZihurrena da, hartzaile zenbateko handiena duten torrentak dutela ere joan-etorri handiena.\nHonek ez du aldatzen erakutsitako 'emaritzen Z' bat ere.
ConfigView.section.dns.info=Atal honek aukerazko DNS zerbitzariak adierazten ditu eta noiz erabili behar diren zehazten du.\n\nAdibidez, Googlek DNS zerbitzari bat ekiten du 8.8.8.8 helbidean (eta 8.8.4.4-an osagarri bezala)\n\nHau erabilgarria izan daiteke zure DNS hornitzaileak izenak ongi erabakitzen ez dituenean.\n
TableColumn.header.DateCompleted=Eguna
@@ -232,8 +235,10 @@ dht.backup.only=DHT babeskopia bakarrik
ConfigView.section.proxy.check.on.start=Egiaztatu proxyaren egoera hasterakoan
TableColumn.header.date_completed=Osaturik
UIDebugGenerator.messageask.text=Mesedez sartuzazu jakinarazten ari zaren akatsaren azalpen bat
+config.browser.internal.disable=Ezgaitu barneko nabigatzailearen erabilpen guztiak
Button.deleteContent.fromLibrary=Kendu Liburutegitik
ConfigView.section.connection.peersource.Tracker=Aztarnaritik
+library.launch.web.in.browser.anon=Nabigatu izengabe
iconBar.queue=Hasi
CacheView.reads.avgsize=Neurri Bataz-bestekoa
ConfigView.section.file.perf.cache.enable.read=Egin irakurri-aurrera diskaren irakurketak gutxitzeko igotzen ari zarenean
@@ -249,7 +254,7 @@ tags.view.heading=Etiketa Gainikuspena
ConfigView.label.queue.stoponcebandwidthmet=Ez hasi beste torrentik igoera/jeisketa abiadura muga lortua dagoenen
ConfigView.button.save=Gorde
Security.keystore.corrupt='%1' giltzabiltegiak huts egin du, mesedez ezabatu hura eta birsortu/bir-inportatu egiaztagiriak
-azbuddy.dchat.pc.pinned.only=Only accept chats from participants
+azbuddy.dchat.pc.pinned.only=Kideen txatak bakarrik onartu
UpdateWindow.status.restartNeeded=Berrabiaraztea beharrezkoa da\!
importTorrentWizard.process.inputfilebad.message=Hutsegitea gertatu da hurrengo sarrera agiria atzitzean\:
ConfigView.section.security.op.error.title=Eragiketak Huts egin du
@@ -284,7 +289,7 @@ progress.window.msg.filemove=Mesedez itxaron agiri mugitze/berrizendatzea burutz
OpenTorrentWindow.mb.alreadyExists.default.name=Multimedia
mdi.entry.about.devices=Garatzen
update.fail.app.changed.title=Eguneratzeak Huts egin du
-pairing.alloc.fail=Huts egin du sarbide kode berri bat izendatzerakoan\n%1
+pairing.alloc.fail=Hutsegitea sarbide kode berri bat izendatzerakoan\n%1
ConfigView.section.tracker.portbackup=Babeskopia atakak (';' bananduta)
MinimizedWindow.all_transfers=Vuze Eskualdaketak
ConfigView.section.tracker.natchecktimeout=Egiaztatu itxaronaldia (seg)
@@ -385,7 +390,7 @@ devices.contextmenu.od.enable=Gaitu
pairing.status.registered=Eguneraketa eginda (%1)
DHTView.activity.details=Xehetasunak
platform.win32.baddll.WSOCKHK=Sare Babeslea
-ConfigView.label.minSeedingTime.tooltip=Emaritzen Lerruna sarri aldatu daiteke denbora epe labur batean, batzuetan torrenta berezgaitasunez abiaraztea eraginez, ondoren berehala gelditua eta lerrokatua izateko..\nHonek arazoa arintzen du torrenta emaletzan egotera behartuz denbora batez. Oraindikan eskuz gelditu dezakezu nahi baduzu.
+ConfigView.label.minSeedingTime.tooltip=Emaritzen Mailak sarri aldatu daitezke denbora epe labur batean, batzuetan torrenta berezgaitasunez abiaraztea eraginez, ondoren berehala gelditua eta lerrokatua izateko..\nHonek arazoa arintzen du torrenta emaletzan egotera behartuz denbora batez. Oraindikan eskuz gelditu dezakezu nahi baduzu.
PeerSocket.fake_client=USTELA
TrackerChangerWindow.title=Gehitu Aztarnaria
wizard.savingfile=Agiria gordetzen...
@@ -420,6 +425,7 @@ tag.type.man.featcon=Eduki Ezaugarriak
ConfigView.section.dns.alts=Aukerazko DNS zerbitzariak [';' bananduta]
ConfigView.section.style.dropdiraction.sharefoldercontents=Elkarbanatze Edukiak
azbuddy.tracker.bbb.status.title.tooltip=Klik bikoitza xehetasunak ikusteko
+library.launch.web.in.browser.dir.list=Betik Erakutsi Agiri Zerrenda
speedtest.wizard.select.title=Hautatu egin behar den abiadura azterketa mota
PeersView.uploadspeed=Igoera Abiadura
SpeedTestWizard.test.panel.already.running=Azteketa jadanik lanean\!
@@ -432,13 +438,13 @@ TableColumn.header.downspeed=Jeisketa Abiadura
wizard.newtorrent.byo=Eraiki Zeurea
MainWindow.menu.community.forums=Herkidego Ezta&baidaguneak
GeneralView.label.user_comment=Erabiltzailearen Aipamena\:
-MainWindow.IPs.tooltip=Iragazki zerrendaren azken eguneratzea\: %1\nGuztira IP Iragazkiak zerrendan - Itxitako/eragotzitako/gaitz IP-ak saio honetan.\nKlik bikoitza xehetasunak ikusteko.
+MainWindow.IPs.tooltip=Iragazki zerrendaren azken eguneratzea\: %1\nGuztira IP Iragazkiak zerrendan - blokeatutako/eragotzitako/IP gaitzak saio honetan.\nKlik bikoitza xehetasunak ikusteko.
OpenTorrentWindow.mb.notTorrent.cannot.display=Ezgaitu datuak egoki erakusteko
General.percent=Ehuneko
beta.wizard.disable.text=Mila esker beta bertsioak probatzeagaitik\!\n\nMesedez jeitsi eta ezarri argitaraturiko azken bertsioa beta programa baimentzeko
Button.turnon=Gaitu
TableColumn.header.torrentrelpath=Torrent Helburua
-swt.alert.cant.update="%3" -tik hartutako SWT liburutegia ezin da berezgaitasunez eguneratua izan %1 -> %2 bertsiora ("%4"-tik egon behar du gertaturik). Mesedez ikusi <A HREF\="http\://wiki.vuze.com/w/SWT_Cant_Auto_Update">the wiki</A> xehetasunetarako.
+swt.alert.cant.update="%3" -tik gertatutako SWT liburutegia ezin da berezgaitasunez eguneratua izan %1 -> %2 bertsiora ("%4"-tik gertatu behar da). Mesedez ikusi <A HREF\="http\://wiki.vuze.com/w/SWT_Cant_Auto_Update">wikia</A> xehetasunetarako.
ConfigView.section.interface.checkassoc=Egiaztatu elkartzeak hasitakoan
webui.port=Ataka
subscript.some.subscribed=Eduki hau duten harpidetza batzuk dituzu\nKlikatu eskuragarri dauden beste batzuk ikusteko
@@ -470,7 +476,7 @@ SpeedView.stats.estupcap=Igoera muga\:
importTorrentWizard.torrentfile.title=Sarrerako Torrentaren Hautapena
ConfigView.label.savedirectory=Gordetze Zuzenbidea
label.open.all=Ireki Denak
-TableColumn.header.timesincedownload.info=Datua torrenterako jeitsi zenetik igarotako denbora
+TableColumn.header.timesincedownload.info=Datuak torrenterako jeitsi zirenetik igarotako denbora
DownloadActivityView.title.full=Abiadura
pairing.ac.getnew=Izendatu sarbide kode berri bat
Button.apply=Ezarri
@@ -502,7 +508,7 @@ ConfigView.notAvailableForMode=Atal hau %1 moduarentzat edo handiagoarentzat da.
devices.choose.profile.info.text=Zure hautaketaren ondoren, Vuzek atzemango du bideo heuskarria hautaturiko irakurgailuan ikusi ahal den, eta gailu-bateragarri kopia bat sortu beharrezkoa bada.\n\nJarri hautatutako gailuaren gainean xehetasun gehiago ikusteko.
ConfigView.label.userequestlimitingpriorities=Finkatu jeisketa abiadura jeisketa lerroburuan jeisketa abiadura muga erdiesten denean
UpdateWindow.columns.install=Ezarri
-network.admin.maybe.vpn.msg=Agertzen da Sare Birtual Pribatu (VPN) bat eraginda eduki dezakezula\n\n\t%1\n\nHorrela bada pribatutasuna handitu dezakezu honetara loturatuz - hautatu BAI egiteko.\n\nHorrela ez bada, edo zihur ez bazaude, hautatu EZ.\n\nIkusi <a href\="http\://wiki.vuze.com/w/Proxies_And_VPNs\#VPN_Configuration">wikia</a> argibide gehiagorako.
+network.admin.maybe.vpn.msg=Agertzen da Sare Birtual Pribatu (VPN) bat eraginda eduki dezakezula\n\n\t%1\n\nHorrela bada pribatutasuna handitu dezakezu honetara lotuz - hautatu BAI egiteko.\n\nHorrela ez bada, edo zihur ez bazaude, hautatu EZ.\n\nIkusi <a href\="http\://wiki.vuze.com/w/Proxies_And_VPNs\#VPN_Configuration">wikia</a> argibide gehiagorako.
MainWindow.upgrade.newerversion=Vuzeren bertsio berri bat dago eskuragarri
ConfigView.label.experimental.osx.kernel.panic.fix=Zuzenketa esperimentala kernel panics dual-cpu OSX sistemarentzat [berrabiaraztea beharrezkoa]
azbuddy.disabled=Plugina ezgaiturik dago, ikusi plugin itxurapenak aldatzeko.
@@ -518,6 +524,7 @@ wizard.invaliddirectory=Zuzenbide baligabea\!
installPluginsWizard.mode.file=Agiritik
config.external.browser.switch.subs.inf=Behar du 'Vuze Hurruneko Webgunea' plugina; Emaitzak ez dira 'irakurrita' bezala ezartzen jeitsitakoan; Jeitsitako loturatan aipamenik ez
ConfigView.label.savetorrentbackup=Gorde babeskopia
+TagSettings.viewInSideBar=Ikusi Albobarran
quick.view.no.files=Ez dago Agiri Egokigarririk
UpdateProperty.list.message=Sartu balio berria %1-rako. Erabili ',' bat sarrera anitz banantzeko; utzi hutsik garbitzeko
ConfigView.section.security.toolsdir='tresnak.jar' dituen zuzenbidea
@@ -560,7 +567,7 @@ iconBar.pstream=Jarioa
externalLogin.wait=Orrialdea gertatzen, mesedez itxaron...
ConfigView.section.Subscriptions=Harpidetzak
TableColumn.header.eta_next=Hurrengo UED
-pairing.srp.pw.req=Sarhitza beharrezkoa - ezerk ez du lan egingo hau gabe\!
+pairing.srp.pw.req=Sarhitza beharrezkoa - ezerk ez du lanik egingo hau gabe\!
SpeedView.stats.unknown=Ezezaguna
azbuddy.dchat.import.data=Aurretik esportaturiko babeskopia datuak
remote.pairing.functions=<A HREF\="clip">Kopiatu kodea gakora</A> | <A HREF\="new">Eskuratu kode berri bat</A>
@@ -573,7 +580,7 @@ config.external.browser.non.pub=Betik erabili %1 eduki ez-publikoentzat
TorrentOptionsView.param.reset.to.default=Ezarri aukerak berezko balioetan
TableColumn.header.DownloadingRank=Jeisketa Mailaketa
device.renderer.remove_all=Kendu Aurkezle denak
-torrentdownload.error.dl_fail=Hutsegitea '%1' jeistean '%2'-tik\: %3
+torrentdownload.error.dl_fail=Hutsegitea '%1' jeistean '%2'-ra\: %3
DHTView.transport.packets=Paketeak
SpeedView.stats.maxUp=Geh. Igoera Abiadura\:
tps.tracker.cache=Hartzaile katxea
@@ -631,6 +638,7 @@ AlertMessageBox.warning=Kontuz
MyTrackerView.peers=Hartzaileak
azbuddy.beta.msgsync.missing='Mezu Aldiberetzea' plugina ezarri behar duzu
SpeedView.stats.measuredmin=Neurtuta Gutx.
+label.restored=Leheneratuta
Plugin.localtracker.info=LAN hartzaile bilatzaileak Vuzeren kopia anitz ahalbidetzen ditu suhesi baten atzean eta sare arrunt batean\ntorrentak modu eraginkorrean jeisteko beraien arteko elkarketa zuzenak gaituz.
azbuddy.dchat.decentralized.enabled={azbuddy.dchat.decentralized} Gaituta
MainWindow.menu.file.open.torrentnodefault.keybinding.mac=Meta+Auk+O
@@ -673,6 +681,7 @@ openTorrentWindow.mb.alreadyExists.merge=Nahi duzu aztarnari gehigarriak gehitze
dlg.stream.plus.title=Berritu
ConfigView.section.tracker.createcert=Sortu bere-izenpetze egiaztagiria
UIDebugGenerator.complete.text=Garbiketa agiria ezin da aurkitu '%1'.\n\nKlikatu Ongi agiri honentzat sistema-agiri leiho bat irekitzeko.
+bencode.file.browse=Ireki BEncoded Agiria
subscriptions.overview=Harpidetzen Gainikuspena
ConfigView.dialog.choosedefaultsavepath=Mesedez hautatu berezko gordetze zuzenbidea
v3.MainWindow.menu.showActionBarText=Erakutsi Izena
@@ -751,6 +760,7 @@ Column.seedspeers.started.noscrape=%1
v3.MainWindow.menu.library=&Liburutegia
Peers.column.Protocol=Hartuemana
CacheView.speeds.title=Datu Neurriak
+TagSettingsView.title=Ezarpenak
window.uiswitcher.NewUI.text=* Gomendatua hasiberrientzat eta erabilltzaile berrientzat.\n\n* Erraza, ikusizko grafika interfazea
StartStopRules.FP0Peers=FP / 0 Hartzaile
SubscriptionWizard.column.SubWizRank={subscriptions.column.SubWizRank}
@@ -771,6 +781,7 @@ ConfigView.label.seeding.ignoreShareRatio=Baztetu elkarbanatze maila hau duten t
TorrentOptionsView.param.reset.stats=Berrezarri torrent eskualdaketa estatistikak hutsean
azbuddy.dchat.status.noplugin=Akatsa\: Mezu Aldiberetze Plugina ez dago ezarrita
Peers.column.DLedFromOthers=Beste Batzuetatik
+TableColumn.header.archive.date=Artxibatze Eguna
tag.type.ds.comp={label.complete}
ConfigView.section.interface.cleartrackersbutton=Garbitu
ConfigView.section.tracker.announcescrapepercentage=Zuritu tartea % iragarpen epea\nadib. 200 \= 2\:1. 0 \= zer erabaki hartzaile artean
@@ -792,9 +803,11 @@ configureWizard.nat.ko=NAT Akatsa
Button.goLibrary=Joan Liburutegira
ManagerItem.high=Handia
TrackerAvail.column.type={Trackers.column.type}
+menu.bencode.to.json=Bihurtu BEncoded Agiria JSON-ra...
ConfigView.section.tracker.client.exclude_lan=Baztertu LAN eskualdaketa datu estatistikak
stats.longterm.group=Epe-Luzekoa
upnp.alert.mappinggrabbed=UPnP\: Izendapena '%1' ezarrita - helduta '%2'
+tag.constraints.info=Ikusi <A HREF\="https\://wiki.vuze.com/w/Tags\#Constraints">Etiketa Murrizketak</A> wiki orrialdea
download.removerules.unauthorised.info=Baimengabeko torrentak dira iragarri erantzunean "ez baimendua" edo "baimengabea" dutenak "hutsegite erantzunean"
MainWindow.menu.transfers.resumetransfers.keybinding=Meta+R
ConfigView.text.ignoreRule=Baztertu Arauak
@@ -802,7 +815,7 @@ ConfigView.section.sharing.torrentcomment=Sortutako torrententzako aipamenak
ConfigView.label.checkonstart=Egiaztatu azken bertsioa dudala Vuze abiatzerakoan
MyTorrentsView.menu.explore._mac=Erakutsi Finderren
#connected to more seeds/peers than tracker reports
-library.all.header.p=%1 Gai\: %2 Eraginda
+library.all.header.p=%1 Gai\: %2 Jardunean
ConfigView.section.tracker.passwordenabletorrent.info=BitTorrent bezero egokia (adibidez Vuze) behar da
br.restore.info=Leheneratu zure itxurapena babeskopia batetik
MyTorrentsView.menu.downSpeedLimit=Jeisketa Abiadura Muga
@@ -817,6 +830,7 @@ FilesView.menu.setpriority.numeric=Zenbakizkoa...
ConfigView.section.transfer.autospeed.tooltip=Berez-abiadura ezarpen bereziak
subscriptions.listwindow.loadingtext=Antzeko harpidetzak bilatzen %1
tag.type.ds.seed={ManagerItem.seeding}
+ArchivedFilesView.size={FilesView.size}
UI.cannot_submit_blank_text=Balio bat sartu behar duzu.
RCM.column.rc_size=Neurria
updater.cant.write.to.app.title=Ezin da Idatzi Aplikazioaren Agiritegira
@@ -825,8 +839,10 @@ TagGroupWindow.title=Ezarri Etiketa Multzoa
webui.bindip=Lotura IP-a - arrunt ez da beharrezkoa
max.sr.window.title=Xede Elkarbanatze Maila
PeerFilesView.title.short={FilesView.title.short}
+azbuddy.dchat.auto.mute=Berez Mututu Erabiltzaile Berriak
PeersView.I2.info=Hartzailea zure agiriren batean interesaturik dago?
pairing.local.ipv6=Tokiko IPv6 helbidea
+archive.info.title=Jeisketak Artxibatuta
pairing.local.ipv4=Tokiko IPv4 helbidea
MainWindow.upgrade.tooltip.progressbar=Jeisketaren garapena hemen erakusten da
MyTorrentsView.dialog.setNumber.download=jeitsi
@@ -840,7 +856,8 @@ v3.MainWindow.text.my.profile=Profila
ConfigView.label.seeding.rankType.peerSeed.options=Hartzaile\:Emaritza Maila Aukerak
TableColumn.header.date_added.info=Torrentaren gehitze eguna
pairing.status.noservices=Ez dago hurruneko zerbitzurik gaituta
-ConfigView.section.ipfilter.enablebanning=Itxi datu gaitzak etengabe bildaltzen dituzten hartzaileak
+ConfigView.section.ipfilter.enablebanning=Blokeatu datu gaitzak etengabe bildaltzen dituzten hartzaileak
+UpdateWindow.columns.currentversion={label.current}
PiecesView.BlockView.Have=Duzu
ConfigView.label.maxactivetorrents=Gehienezko Torrent lanean [0\: mugagabea]\n - Torrent berriak ez dira abian jarriko gehiago jeisten/emaritzen ari bazara
MyTorrentsView.menu.edit_comment=Aipamena Editatu
@@ -891,7 +908,7 @@ plus.notificaiton.ExpiringEntry.p=Zure Vuze Plus harpidetza epea %1 egun barru a
ConfigView.label.popupfilefinished=Erakutsi alerta leihoa agiria amaituta dagoenean
ConfigView.section.tracker.server=Zerbitzaria
v3.activity.header.vuze.news=Vuze Berriak
-metasearch.addtemplate.title=Ezarri Eredua Bilatu?
+metasearch.addtemplate.title=Ezarri Bilaketa Eredua?
plugin.aznetstatus.logfull=Oharreratze Osoa
dht.ipfilter.log=Ohartu IP Iragazki bortxaketez
stream.analysing.media.preview=Multimedia Aztertzen (Aurreikuspen Modua)
@@ -1010,13 +1027,14 @@ MainWindow.menu.help=&Laguntza
TableColumn.header.tag.downrate={TableColumn.header.downspeed}
ConfigView.section.stats.xslfiledetails=Hau estatistiken agiriaren idazburuan sartuko da <?xml-estilo-orria> etiketa erabiliz
window.updateswt.status.downloading=SWT Bertsio Berriena Jeisten
-remote.pairing.subtitle=Hurruneko Vuzek edozin ordenagailu edo mobiletik Vuzeren agintea hartzeko aukera ematen dizu - edonoiz, edonondik.
+remote.pairing.subtitle=Hurruneko Vuzek edozein ordenagailu edo mobiletik Vuzeren agintea hartzeko aukera ematen dizu - edonoiz, edonondik.
ConfigView.label.importdirectory=Inportatu Zuzenbidea
DownloadManager.error.fileempty=Torrent agiria hutsik dago
MainWindow.menu.community.blog=Vuze &Bloga
devices.xcode.setcopyto.title=Hautatu kopiaketa helbidea
TableColumn.header.md5.info=Agiriarentzako MD5 hasha (osorik jeitsia izan behar da; klikatu kalkulatzeko)downloaded; click to calculate)
TableColumn.header.name=Izena
+library.launch.web.in.browser=Ezeztatu hau webgune bat duten eta nabigatzaile bat irekitzen duten jeisketentzat
ConfigView.label.showpopuponclose=Erakutsi baieztapen leihoa 1 azpitik dagoen elkarbanatze maila duen emaritzea gelditzean
PeerManager.status.ps_disabled=Aztarnari hartzaile iturburua ezgaituta dago
MainWindow.menu.view.stats=Estatistikak
@@ -1074,6 +1092,7 @@ PiecesView.legend.incache=Datua Katxean dago
SpeedView.stats.estdowncap=Jeisketa muga\:
TableColumn.header.comment=Aipamena
PeersView.source=Iturburua
+archivedlsview.view.heading=Artxibatutako Jeisketak
GeneralView.label.maxuploadspeed.tooltip=geh. igoera abiadura [0 \: mugagabea]
security.crypto.persist_for.forever=Betirako
ConfigView.label.hap.tooltip=Ezkutatu osatutako atala
@@ -1104,7 +1123,7 @@ ConfigView.section.connection.group.peersources.info=Hautatu berez baimedutako i
configureWizard.file.browse=Bilatu
OpenTorrentOptions.header.peeroptions=Hartzaile eta Elkarketa Aukerak
MyTorrentsView.menu.moveEnd=&Beheren
-ConfigView.pluginlist.unloadSelected=Ezgertatu Hautatua
+ConfigView.pluginlist.unloadSelected=Desgertatu Hautatua
device.error.mountrequired="%1" Zure Gailua Tresnatzeko Beharrezkoa
dht.reseed.label=Arrunt birremaritzen Banaturiko Datubasea ez da beharrezkoa. Horrela ere, elkarketen zenbatekoa apala bada izan daiteke erabilia bir-baterapenerako.\nOrri zuria bereznahiko elkartutako hartzaileentzako edo sartu IP-a eta ataka hartzaile ezagun batetik bereznahikotzeko.
MainWindow.menu.file.import.keybinding.mac=Meta+Shift+I
@@ -1116,7 +1135,7 @@ ConfigView.section.interface.clearsavepaths=Garbitu gogoraturiko helburu gordeak
TableColumn.header.filecount=Agiriak
SpeedView.stats.now=Orain\:
ConfigView.section.file.bgdefaultdir.ask=Uste hoberena berez
-ConfigView.section.mode.advanced.text=Sartu sare ezarpenetara.\nErabili modu hau jakitea nahi baduzu zein GIB (Gehienezko Igorpen Batasuna) edo S/I ez itxiak dauden
+ConfigView.section.mode.advanced.text=Sartu sare ezarpenetara.\nErabili modu hau jakitea nahi baduzu zein GIB (Gehienezko Igorpen Batasuna) edo S/I ez blokeatuak dauden
MyTrackerView.name=Izena
props.window.title='%1' -en Ezaugarriak
AlertMessageBox.information=Argibideak
@@ -1130,7 +1149,7 @@ OpenTorrentWindow.mb.invaliddefsave.title=Gordetze Kokaleku Baliogabea
azbuddy.protocolspeed=KB/s geh. lagun harremanaren burugain
view.waiting.core=Ikustea eskuragarri egon daiteke Vuze Core gertatzen denean
ConfigView.section.transfer.autospeed.resetnetwork=Berrezarri sare xehetasunak
-ConfigView.label.lazybitfield=Erabili biteremu alperra (laguntzen du emaritzan biteremu-itxipenean ohinarritzen diren sareetan)
+ConfigView.label.lazybitfield=Erabili biteremu alperra (emaritzan laguntzen du biteremu-blokeoan ohinarritzen diren sareetan )
ConfigView.section.file.perf.cache.enable.write=Katxeak datuak jeisten ditu diskaren idazketak gutxitzeko eta baita ere gutxitzen du diskak atal egiaztapenerako egin behar dituen irakurketak
OpenTorrentWindow.mb.askCreateDir.text='%1' helmuga zuzenbidea ez dago.\n\nOrain sortu?
MagnetPlugin.report.error=akatsa %1
@@ -1185,6 +1204,7 @@ ConfigView.section.file.defaultdir.bestguess=Erabili ustezko hoberena gordetzeko
cat.autoxcode=Berez-Gailua
MyTorrentsView.menu.advancedmenu=Aurreratua
stats.long.weekstart=Asteko zenbaketa hasten da\:
+menu.pop.out=...
label.content=Edukia
v3.MainWindow.tab.events=Jakinarazpenak
CacheView.speeds.fromFile=Agiritik/Agirira
@@ -1213,7 +1233,7 @@ OpenTorrentWindow.addPosition.last=Azkena
PiecesView.legend.downloaded=Jeitsita, idazketa itxaroten
ConfigView.label.maxuploadsseeding=Ordezpen berezkoa emaritzan dagoenean
label.accept=Onartu
-ConfigView.section.tracker.tcpnonblocking=Erabili S/I ez-itxipena TCP aztarnari jardunerako. Aukera hau hautatzeak web aztarnaia ataka altenatibo batean lanean izatea eskatzen du. Esperimentala\!
+ConfigView.section.tracker.tcpnonblocking=Erabili S/I ez-blokeatzea TCP aztarnari jardunerako. Aukera hau hautatzeak web aztarnaia ataka altenatibo batean lanean izatea eskatzen du. Esperimentala\!
azbuddy.ui.table.rem_cat=Kat sarrera
ConfigView.section.file.torrent.ignorefiles=Baztertzeko agiriak torrentak sortzen/ezabatzen direnean\n - adib. .DS_Store; Thumbs.db
sidebar.header.vuze=Vuze
@@ -1327,10 +1347,11 @@ TrackerAvail.column.leechers={Trackers.column.leechers}
torrent.fix.corrupt.result.title=Eragiketa Emaitza
FilesView.remaining=Gelditzen diren atalak
devices.on.demand=Eskabidean
-ConfigView.section.ipfilter.list.title=Eragotzitako IP-ak
+ConfigView.section.ipfilter.list.title=Blokeatutako IP-ak
v3.MainWindow.tab.minilibrary=Jeisketak
mdi.entry.about.plugins=Pluginei Buruz
upnp.alert.multipledevice.warning=UPnP gailu anitz atzeman dira - egiaztatu denak behar duten ataka izendapena (ikusi UPnP sarrera eta itxurapena)
+archive.failed.text=Jeisketa bat edo gehiago ez daude egoera artxibagarrian.\n\nIkusi <a href\="http\://wiki.vuze.com/w/Archiving_Downloads">Wikia</a> argibide gehiagorako.
jvm.error=Akats bat egon da JVM aukeretara sartzean\: %1
TableColumn.header.fileext=Agiri Mota
xcode.deletedata.message=Zihur zaude behinbetirako ezabatu nahi duzula '%1' transkodeaketa kopia '%2'%3?
@@ -1353,7 +1374,7 @@ MainWindow.menu.window.zoom=&Zooma
ConfigView.download.abbreviated=J\:
MainWindow.menu.plugins.uninstallPlugins=Ezarpena &Kentzeko Laguntzailea...
subscriptions.column.SubWizName={FilesView.name}
-ConfigView.section.ipfilter.totalIPs=%1 IP itxita guztira, internetekoak %2
+ConfigView.section.ipfilter.totalIPs=%1 IP blokeatuta guztira, internetekoak %2
TableColumn.header.Speed=Abiadura
ConfigView.section.tracker.client=Bezeroa
label.nat.proxies=NAT/Proxyak
@@ -1437,6 +1458,7 @@ MainWindow.dialog.choose.file=Hautatu torrent agiria
TableColumn.header.name.ext=Agiri Mota\: %1
window.updateswt.status.downloading.updater=Eguneratze Moduloa Jeisten
azmsgsync.install.description=Mesedez itxaron Mezu Aldiberetze Plugina ezertzen den bitartean
+MyTorrentsView.menu.editTrackerMerge=Editatu Aztarnari URL-ak Batera
DevicesOD.column.od_name=Izena
v3.mb.PlayFileNotFound.title=Agira Ez da Aurkitu
ConfigView.section.language.info=Gaituta dagoenean, eguneratze egiaztapena Vuze abiarazten den bakoitzean egingo da.
@@ -1446,7 +1468,7 @@ TableColumn.header.smootheta=UED Lehundua
VivaldiView.title.full_v6=Vivaldi IPv6-a
label.date.format=Egun Heuskarria
ConfigTransferAutoSpeed.auto.speed.beta=Berez-Abiadura (beta)
-TableColumn.header.health.info=Zure elkarketak torrenteen erlateldeko elkarketan duen osasuna
+TableColumn.header.health.info=Zure elkarketak torrenteen erlateldean duen osasuna
ConfigView.text.ignore=Baztertu
RCM.column.rc_rank=Maila
configureWizard.transfer.maxUpSpeed=Gehienezko Igotze Abiadura (KB/s)
@@ -1471,6 +1493,7 @@ MyTorrentsView.menu.trackername.editprefs=Editatu Hobetsitako Aztarnari Erakuspe
PiecesView.typeItem.1=Azkarra
AlertMessageBox.error=Akatsa
PiecesView.typeItem.0=Astiroa
+v3.deleteContent.or.archive=Aukeran, ezeztatu eragiketa hau eta artxibatu zure jeisketak geroago erraz berreskuratzeko - ikusi 'Artxibatutako Jeisketat' Ikusi menuan
ConfigView.section.connection.port.rand.range=Ataka Maila [gutx-geh]
window.update.noupdates.title=Egiaztatu Eguneraketa Emaitzak
ConfigView.section.style.useFancyTabs=Erabili Apain Hegatsak
@@ -1479,7 +1502,7 @@ beta.wizard.on=Eguneratu azken beta bertsio egonkorrarekin mesedez.
Peers.column.timetocomplete=Gelditzen den Denbora
ConfigView.section.proxy.testsocks.title=SOCKS elkarketa aztertzen
ConfigView.section.downloadManagement=Jeisketa Kudeaketa
-config.external.browser.info2=Arrunt zure ordenagailuaren berezko nabigatzailea erabiltzen da. Hau aldatu dezakezu nabigatzaile bereizi bat erabiltzeko, edo plugin batek hornitzen duena (adib. Tor Nabigatzaile plugina)
+config.external.browser.info2=Arrunt zure ordenagailuaren berezko nabigatzailea erabiltzen da. Hau aldatu egin dezakezu nabigatzaile bereizi bat edo plugin batek hornitzen duena erabiltzeko (adib. Tor Nabigatzaile plugina)
config.external.browser.info1=Kanpoko nabigatzailea web edukiak bezerotik kanpoko nabigatzaile banandu batean erakusteko erabiltzen da, adibidez bilaketa emaitzen xehetasun orrialdeak
tag.type.man.vhdn={sidebar.VuzeHDNetwork}
MainWindow.menu.file.open.uri.keybinding=Meta+U
@@ -1517,6 +1540,7 @@ Views.plugins.UPnP.title=UPnP-a
ConfigView.section.ipfilter.discardminkb=Gutxienez %1 baztertuta bataz-bestekoa ezarri aurretik
MainWindow.menu.view.open_global_transfer_bar=Eskualdaketa &Barra
devices.copy.fail=Gailura kopiatzeak huts egin du
+label.copy.uri.to.clip=Kopiatu URI-a Gakora
IrcClient.channel=Kanala
SpeedTestWizard.abort.message.insufficient.slots=Ezin da igo edozein hartzailetara - ez dago nahikoa igoera aho?
FilesView.rename.choose.path.dir=Hautatu zuzenbide berri bat edo lehendik dagoen bat
@@ -1589,7 +1613,7 @@ ConfigView.section.file.config.currentdir=Oraingo itxurapen zuzenbidea\:
TrayWindow.menu.show=&Erakutsi Vuze
Pieces.column.Requested.info=Erakusten du atalean eskabide gehiago egin daitezkeen edo ez (*)
ConfigView.label.seeding.ignoreRatioPeers=Ezikusi bakoitzeko emaritza 1 duten torrentak
-PeersView.menu.blockupload=Blokeatu Igoera
+PeersView.menu.blockupload=Eragotzi Igoera
dlg.auth.install.failed.text=Kodearen eragintza '%1' hutsegitea zerbitzari akats bategaitik.\n\nMesedez saitu zaitez eragintzarekin geroago (jakinarazitako akatsa zen '%2')
Trackers.column.interval.info=Galdetze tartea segundutan\: tartea (gutx. tartea)
MagnetPlugin.report.searching=bilatzen...
@@ -1605,7 +1629,7 @@ ConfigView.section.interface.display.suppress.file.download.dialog=Ezabatu Agiri
PeersView.piece.info=Hartzaile honetatik eskabideturiko \# azken atala
DownloadActivityView.legend.up=Igoera
ConfigView.section.tracker.forceport=Behartu hostatutako kanpoko torrentak berezko ataka erabil dezaten
-v3.topbar.menu.show.frog=Da Igel Urdina
+v3.topbar.menu.show.frog=Igel Urdina
torrent.comment.azrating.install=Mailaketa Plugina ez dago ezarrita - ikusi Tresnak-> Pluginak-> Ezarpen Laguntzailea
ConfigView.label.announceport=Ordeztu iragarritako TCP ataka aztarnari iragarletzatarako, pex eta dht\n[utzi hutsik\: ez ezeztatu, 0\: sarrera elkarketarik ez]
ConfigView.section.stats=Estatistikak
@@ -1669,6 +1693,7 @@ chat.view.enter.key.msg=Sartu zure txatarentzako kanal giltza
Button.swarmit.tooltip=Bilatu neurri bereko agiriak Erletalde Aurkikuntzak erabiliz
ConfigView.label.playfilefinished=Jo soinu bat agiri batek amaitu duenean
MySharesView.type.dircontents=Zuzenbide edukiak
+ArchivedFilesView.title.full={FilesView.title.full}
importTorrentWizard.importfile.invalidPath=Inportazio agiri baliogabea
TableColumn.header.trackername=Aztarnariaren Izena
azbuddy.dchat.status.notavail=Egoera ez dago eskuragarri oraindik
@@ -1720,7 +1745,7 @@ ConfigView.section.logging.level=Ohar Maila
ConfigView.section.file.config.section=Itxurapen Ezarpenak\:
ConfigView.section.transfer.lan=LAN (Tokiko Sarbide Sarea)
SpeedTestWizard.test.panel.standard=irizpidea
-ConfigView.section.ipfilter.discardbanning=Itxi hartzaileak baztertutako datuak/datu onak bataz-bestekoa gainditzen badu [0\: ezgaituta]
+ConfigView.section.ipfilter.discardbanning=Blokeatu hartzaileak baztertutako datuak/datu onak arteko bataz-bestekoa gainditzen badu [0\: ezgaituta]
ConfigView.section.style.colorOverride.altRow=Aldizkako Lerroak
SpeedTestWizard.set.upload.hint=Ezarri Vuzeren BerezAbiadura algoritmoan erabiliko dire igoera eta jeisketa mugak.
PeerFilesView.title.full={FilesView.title.full}
@@ -1759,7 +1784,7 @@ ConfigView.section.logging.filter=Iragazi agirira ohartzerakoan
MainWindow.menu.view.irc.moved=Irc orain eskuragarri dago plugin bezala, ikusi http\://plugins.vuze.com/plugin_list.php. Ezarritakoan erabili ikuspegi hau ->pluginak->IRC sarbide menua.
SpeedView.stats.uptime=Denbora
ConfigView.section.connection.encryption.encrypt.fallback_incoming=Ahalbidetu enkriptatu-gabeko sarrera elkarketak
-TableColumn.header.trancode_qpos=Zenb.
+TableColumn.header.trancode_qpos=Z.
Progress.reporting.statusbar.button.tooltip=Erakutsi Garapen Jakinarazpen Leihoa
dlg.try.trial.text=Vuzek zure bideoetatik DVD grabaketak egin ahal izateko beharrezkoa den plugina ezartzea behar du. Klikatu Piztu jarraitzeko.
ConfigView.section.logging.logdir=Saio agiri zuzenbidea
@@ -1781,6 +1806,7 @@ MainWindow.menu.help.donate=Eman Dirulaguntza bat
device.xcode.always=Betik
unix.script.new.button.asknomore=Ez Esan Berriro
MyTorrentsView.menu.setSpeed.disabled=Ezgaiturik
+browser.internal.auto.disabled=Barneko nabigatzailea berezgaitasunez ezgaitu da Vuze kraskatzea saihesteko.\n\nBer-gaitzea nahi baduzu hemendik egin dezakezu\: Tresnak->Aukerak->Interfazea->Erakutsi\: Barneko Nabigatzailea\n\nArgibide gehiagorako ikusi <A HREF\="http\://wiki.vuze.com/w/Vuze_disappears\#SWT_Browser_Issues">Wikia</A>
Button.moveUp=Mugitu &Gora
MainWindow.menu.file.open.url.keybinding=Meta+L
DownloadManager.error.sha1=(SHA1) akatsa , ez dago Algoritmoa
@@ -1799,7 +1825,7 @@ DHTView.general.rendezvous=Hitzordua\:
label.searching=Bilatzen...
upnp.alert.differenthost=UPnP\: '%1'izendapena honek hartuta dago '%2' - mesedez aukeratu ataka ezberdin bat
ConfigTransferAutoSpeed.while.downloading=Jeisten\:
-tag.discovery.view.heading=Etiketa Aurkikuntza
+tag.discovery.view.heading=Etiketa Aurkikuntzak
DHTOpsView.title.full=BDB Grafika
ClientStats.column.sent=Bidalita
swt.updater.downloader.downloading=SWT hemendik jeisten
@@ -1838,13 +1864,14 @@ Formats.units.Gibit=Gibit
ConfigView.pluginlist.uninstallSelected=Kendu Hautatua
dlg.auth.validating.subtitle=Balioztatzen
FilesView.name.fastRename=Berrizendatze azkarra
-security.crypto.reason=Eragiketa arrazoia
+security.crypto.reason=Eragiketaren zergaitia
GeneralView.label.totalsize=Neurria Guztira\:
ConfigView.section.language.UpdateURL=Eguneratu URL-a
OpenTorrentWindow.mb.notTorrent.title=Ireki Huts egin duen Torrenta
GeneralView.label.totalspeed=Erletaldearen Abiadura\:
ConfigView.label.overrideip=Ezeztatu aztarnari iragarpen IP-a(k) - punttu eta kakotxaz banaduta sare ezberdinetarako bada
seedmore.shareratio=Zure elkarbanatze maila torrent honentzat hau da\:
+browser.internal.disabled.info=Barneko nabigatzailea ezgaituta dago.\n\nHau zeuk hemen esplizituki ezgaitu duzulako da\n\n\tTresnak->Aukerak->Interfazeak->Erakutsi\: Barneko Nabigatzailea\n\nedo berezgaitasunez ezgaitu da osagaiak Vuzeren kraskatzea eragin dezakeela atzeman delako.\n\nOraingo lotura azpian erakusten da (badaiteke orrialdea zuzen ez erakustea bezeroaren eraginez)
ConfigView.section.connection.encryption.encrypt.fallback_outgoing=Ahalbidetu enkriptatu-gabeko irteera elkarketak enkripatutako elkarketa saiakerak huts egiten badu
GeneralView.torrent_created_on_and_by=%1 %2-tik
MyTorrentsView.menu.manual.shared_torrents=Eskuz (torrent artean)
@@ -1856,6 +1883,7 @@ filter.header.matches1=(Bilaketa emaitzak\: %1)
ConfigView.section.mode.intermediate.text1=Ezaugarri gehiago jeisketak agintzeko, hobetzeko eta ikusteko.
ConfigView.label.open_transfer_bar_on_start=Ireki Eskualdaketa Barra hasieran
label.no.download.selected=Ez da jeisketarik hautatu
+azbuddy.dchat.ui.standalone.windows=Erabili leiho bananduak ohar-leiho txatentzat
MainWindow.menu.speed_limits.schedule=Egitaraupena...
friend.mod.subs=Eskuin-klikatzea harpidetzak aldatzeko
MainWindow.menu.window.zoom.maximize=Handitu
@@ -1882,6 +1910,7 @@ ConfigView.label.opendetails=Berez ireki xehetasunen hegatsa
beta.wizard.version=Orain duzun bertsioa %1
ipCheckerWizard.title=IP Egiaztapen Laguntzailea
LoggerView.excludeAll=Ez erakutsi adierazpide honekin bat datozen lerroak\:
+config.browser.internal.disable.info=Honek erabiltzen dituen ikuspegi guztietan izango du eragina, horrela batzuk kanpoko nabigatzailea erabiltzera aldatu daitezke - ikusi gainean
dlg.auth.revoked.line1=Zure Vuze Plus Eragintza Kodea indargabetua izan da. Mesedez klikatu behean argibide gehiago izateko.
tag.type.ds.incomp={label.incomplete}
TableColumn.header.tracker=Aztarnari Egoera
@@ -1924,7 +1953,7 @@ configureWizard.file.invalidPath=Zuzenbide okerra
ConfigView.section.tracker.password=Sarhitza
v3.deleteContent.applyToAll=Ezarri eragiketa %1 hautaturiko sarrera guztiei.
MagnetPlugin.report.secondarylookup.ok=Bigarren bilaketa bat egin da
-alert.copy.on.comp.fail=%1 Jeisketa\nAkats osatutako agiriak hona kopiatzeakoan '%2'\: %3
+alert.copy.on.comp.fail=%1 Jeisketa\nAkats osatutako agiriak hona kopiatzerakoan '%2'\: %3
GeneralView.label.maxuploads.tooltip=Une jakin batean itogabe izango diren gehienezko hartzaile zenbatekoa.
Scrape.status.error.badURL=Iragarle URL-ak ez ditu zuritze zehaztapenak jarraitzen.
exportTorrentWizard.process.outputfileexists.message=Irteerako agiria badago - gainidatzi?
@@ -2072,7 +2101,7 @@ ConfigView.section.mode.intermediate.wiki.publish=Agiriak Argitaratzen
SpeedTestWizard.abort.message.failed.peers=Hutsegitea hartzaileekin elkarketatzean
ConfigView.section.interface.password=Sarhitza
TableColumn.header.down=Jeitsita
-tag.type.ipset=IP Ezarpena
+tag.type.ipset=Hartzaile Ezarpena
ConfigView.section.queue.seeding.firstPriority=Lehentasun Nagusia
SpeedView.stats.title=Estatistikak
ConfigView.section.transfer.autospeed.minupload.tooltip=Igoera abiadura ez da arrunt berez beheratuko muga honen azpitik
@@ -2097,7 +2126,7 @@ trackername.prefs.title=Sartu Aztarnari-Anitzeko Torrententzako Hobetsitako Erak
TableColumn.header.tag.discovery.torrent=Torrentaren Iradokitzailea
label.reapply=Berriro-ezarri
Security.jar.signfail=JAR sinadura okerra - %1
-TagAddWindow.message=Sartu etiketa izen berri bat
+TagAddWindow.message=Sartu etiketa izen berri bat\:
v3.activity.remove.text=Zihur zaude Jakinarazpen hau ezabatzea nahi duzula?\n%1
label.see.x.for.help=Ikusi %1 laguntzarako
azbuddy.ui.table.online=Online
@@ -2129,11 +2158,11 @@ ConfigView.section.security.resetcerts.warning.msg=Zihur zaude egiaztagiri bilte
popup.error.hide=Ezkutatu
authenticator.savepassword=Gogoratu nire sarhitza
TableColumn.header.profile.info=Erabilitako transkodeaketa profila
-ConfigView.label.stop.Hibernate=Negutu Ordenagailua
+ConfigView.label.stop.Hibernate=Neguratu Ordenagailua
v3.MainWindow.button.pause=Pausatu
ConfigView.label.closetotray._mac=Itxi txikiagotuak Egoera Barra Ikurrera
-SpeedView.stats.idlePing=Idle Ping-a\:
-ConfigView.label.showsplash=Erakutsi ongi etorri ikusleihoa
+SpeedView.stats.idlePing=Jardungabe Ping-a\:
+ConfigView.label.showsplash=Erakutsi abiatze ikusleihoa
subscriptions.info.avail=Ez duzu harpidetzarik gehitu oraindik. %1 daude eskuragarri zure liburutegirako.
webui.protocol=Hartuemana
label.initial_tags=Hasierako Etiketak
@@ -2160,6 +2189,7 @@ TableColumn.header.sha1.info=Agiriarentzako SHA1 hasha (osorik jeitsi behar da,k
installPluginsWizard.file.no_such_file=Ez dago emandako izenik duen agiririk
installPluginsWizard.finish.explanation=Hautatutako Pluginak Eguneratze Laguntzailea erabiliz ezarri daitezke.\n\nMesedez lasai hartu, denbora apur bat behar izan dezake agertzeko.\n\nGarapenaren berri izateko, egin klik bikoitza egoera barraren ezkerraldean.
label.current.equals={label.current} %1
+MyTorrentsSubView.title.full=Torrentak
configureWizard.nat.test=Aztertu
PeersView.uniquepiece.none=Bat ere ez
TableColumn.header.uploadspeed.info=Hartzaieei datuak bidaltzeko erabiltzen ari garen abiadura
@@ -2194,13 +2224,15 @@ Subscription.menu.deleteall=Ezabatu Emaitza Denak
Trackers.column.leechers=Izainak
device.configure=Itxuratu...
MainWindow.status.warning.tooltip=Klikatu hemen xehetasunak ikusteko
+MyTorrentsView.menu.browse={azbuddy.dchat.open.in.browser}
azbuddy.ui.menu.sign=Izenpetu Gakoa
+archive.failed.title=Jeisketa Artxibatze Hutsegitea
azbuddy.dchat.rchans.ro=Irakurtzeko-Bakarrik Kanal Berria
AllPeersView.title.full=Hartzaile Guztiak
platform.win32.baddll.nvLsp=NVIDIA ntune / Forceware
torrent.decode.info.order.bad=Torrent Oharra\: '%1' torrenta oker eginda dago eta hash okerra sortu dezake.\n\nIkusi <a href\="http\://wiki.vuze.com/w/Torrent_Info_Order_Bad">the Vuze Wiki</a> xehetasun gehiagorako eta ahalezko konponbide baterako
-DHTOpsView.idle=Langabe - jardueraren zain...
-ConfigView.label.passwordmatch=Sarhitza eraginda\:
+DHTOpsView.idle=Jardungabe - jardueraren zain...
+ConfigView.label.passwordmatch=Sarhitza gaituta\:
ConfigView.label.ircserver=Zerbitzaria
LocaleUtil.title=Hautatu kodeaketa
Plugin.localtracker.wellknownlocals=Berezgaitasunez barneratzen du bigiztapena/lotura/tokiko sareak gunea (192.168 e.a)
@@ -2286,26 +2318,27 @@ v3.filter-bar=Izenburu Iragazkia\:
tag.type.ds.qford=Jeisteko Lerrokatuta
MainWindow.menu.file.share.dir=A&giritegia...
ConfigView.section.invalid.value=Balio okerra '%1' sartua '%2'\: %3
-br.backup.manual.info=Eskuzko babeskopia itxurapena
MyTorrentsView.menu.manual=&Eskuz...
-TorrentOptionsView.title.full=Aukerak
+br.backup.manual.info=Eskuzko babeskopia itxurapena
+azbuddy.dchat.ui.hide.ratings=Berezgaitasunez ezkutatu sortutako mailak, aipamenak eta erletalde batze mezuak
azbuddy.dchat.anon.beta=Izengabeko beta txata (I2P)
+TorrentOptionsView.title.full=Aukerak
SpeedTestWizard.stage.message.preparing=azterketa gertatzen...
FilesView.numberofpieces=Atal zenbatekoa
-upnp.alertsuccess=Jakinarazi zuzen egindako izendapenak
fileplugininstall.duplicate.desc='%1' Pluginaren, %2 bertsioa ezarrita dago
+upnp.alertsuccess=Jakinarazi zuzen egindako izendapenak
DHTView.activity.status.false=Lanean
pairing.group.srp=Uztarpen Seguru Aukerak
-ConfigView.section.security.resetcerts=Berrezarri egiaztagiri biltegia (Vuze berrabiaraziko du)
plugin.init.load.failed.classmissing=Kendu plugina 'Tresnak->Pluginak->Kentze Laguntzailea' bidez eta berriro ezarri.
+ConfigView.section.security.resetcerts=Berrezarri egiaztagiri biltegia (Vuze berrabiaraziko du)
platform.win32.baddll.nl_lsp=NetMugatzailea
ConfigView.label.directory=Zuzenbidea
MyTorrentsView.menu.queue=&Lerrokatu
MainWindow.about.internet.wiki=Vuzeren Wiki SEG
-MainWindow.dialog.choose.savepath_forallfiles=Hautatu agiri GUZTIEN gordetze helburua
-platform.jvmopt.accesserror=Huts egin du JVM aukeratara sartzean\: %1
-VivaldiView.title.full=Vivaldia
devices.sidebar.show.only.tagged=Erakutsi bakarrik etiketaturiko gailuak
+VivaldiView.title.full=Vivaldia
+platform.jvmopt.accesserror=Huts egin du JVM aukeratara sartzean\: %1
+MainWindow.dialog.choose.savepath_forallfiles=Hautatu agiri GUZTIEN gordetze helburua
ConfigView.section.proxy.show_icon.flag.incoming=Erakutsi ez-tokiko, ez-SOCKS barrurako elkarketarik akats egoera bezala.
ConfigView.label.movecompleted=Mugitu osatutako agiriak (jeitsi ondoren)
PiecesView.reservedby=Gordeta
@@ -2319,72 +2352,73 @@ ConfigView.section.security.nopw_v=Sarhitzik gabe eskuragarri, mesedez izena ema
devices.always.cache=Transkodeatu-Gabeko Agirientzako Katxea
configureWizard.nat.unable=Ezin izan da azterketa egin\: Okerreko ataka eman da, edo azterketarako zerbitzuak huts egin du.\nAgian beste aplikazioren bat ataka hau erabiltzen ari da.
ConfigView.section.ipfilter.autoload.file=IP iragazki agiria berezgertatzeko
-ConfigView.label.popupdownloadadded=Ohar alerta jeisketa gehitzen denean
label.private.chat=Txat Pribatua
-azbuddy.ui.table.msg_in=Mezu Sarrera
+ConfigView.label.popupdownloadadded=Ohar alerta jeisketa gehitzen denean
DonationWindow.noload.title=Egin Diru ekarpen bat
-MyTorrentsView.menu.export=XML Torrenta...
+azbuddy.ui.table.msg_in=Mezu Sarrera
TableColumn.header.ProgressETA=Garapena
-window.updateswt.ok=Ongi
+MyTorrentsView.menu.export=XML Torrenta...
+TableColumn.header.sizewithdnd.info=Torrenteko datuen neurria, agiri guztiak jeisten badituzu
platform.jvmopt.sunonly=Sun JVM-ak bakarrik dira sostengatuta (oraingo hornitzailea\=%1)
+window.updateswt.ok=Ongi
Subscription.menu.properties=Ezaugarriak...
v3.MainWindow.menu.browse=&Vuzen
security.certcreate.org=Erakundea
ConfigView.section.transfer.select=Berez-Abiadura
-ClientStats.column.received=Jasota
Views.plugins.Distributed.Tracker.title=Banaturiko Aztarnaria
+ClientStats.column.received=Jasota
beta.wizard.info=Vuze beta programan bazkidetuz bezeroan aurrentasuna duzu argitalpenetan.\n\nHonek aukera ematen dizu argitalpen hauek probatzeko eta beren egokitzapenean laguntzeko - zure laguntza oso erabilgarria da guretzat\!\n\nBaina beta bertsioak berez ezegonkorrak izan daitezke, horrela ere aukera hau hautatuz argitalpen nahiko egonkorretarako sarrera izango duzu. Nahi baduzu mesedez erabili 'Beta Eguneratze' plugina.
security.crypto.password=Sarhitza
popup.download.added="%1" zure jeisketa zerrendara gehitu da.
-iconBar.remove.tooltip=Kendu hautatutako torrentak
TableColumn.header.tag.name=Etiketa Izena
-Peers.column.UpRatio=Igoera Maila
+iconBar.remove.tooltip=Kendu hautatutako torrentak
dlg.stream.plus.text=Berritu Vuze Plusera eta ikusi zure bideoak jeisten daudela.
-LocaleUtil.label.checkbox.rememberdecision=Gogoratu erabakia gelditzen diren agiri-izenetarako
+Peers.column.UpRatio=Igoera Maila
DHTView.operations.received=Jasoa
+LocaleUtil.label.checkbox.rememberdecision=Gogoratu erabakia gelditzen diren agiri-izenetarako
download.removerules.removed.ok=Ongi buruturiko torrenteen '%1' berezgaitasunezko kenketa . Hau torrenteen kenketa arauengaitik zen.
ConfigTransferAutoSpeed.data.update.frequency=Eguneratze Maiztasuna
-TableColumn.header.tag.initsaveloc={label.init.save.loc}
TableColumn.header.torrentpath=Torrent Helbidea
+TableColumn.header.tag.initsaveloc={label.init.save.loc}
MyTorrents.column.ColumnProgressETA.PlayableIn=Irakurgarri %1
iconBar.showDownloadBar.tooltip=Erakutsi Jeisketa Barra
dht.execute.command=Igarpen komandoa
-Progress.reporting.default.error=Huts egin du
TableColumn.header.pieces.info=Grafika barrak jeitsi dituzun atalak adierazten ditu
+Progress.reporting.default.error=Huts egin du
SpeedTestWizard.abort.message.manual.abort=Eskuz utzita
blank.resource=Baliabidea
DHTView.activity.target=Xedea
v3.deviceview.infobar.line2.psp=Bideoak zure PSP-ra kopiatu daitezke hau elkarketaturik dagoenean.
-ConfigView.label.maxuploadspeed=KB/s gehienezko abiadura igoera orokorrentzat [0\: mugagabea]
platform.win32.baddll.nvappfilter=NVidia Suhesia
-IrcClient.defaultChannel=\#Azureus-Erabiltzaileak
+ConfigView.label.maxuploadspeed=KB/s gehienezko abiadura igoera orokorrentzat [0\: mugagabea]
ConfigView.label.passwordmatchno=Ez / Sarhitza ez da zuzena
+IrcClient.defaultChannel=\#Azureus-Erabiltzaileak
devices.cat.show=Erakutsi kategoriak
MyLibrary.bigView.header=Liburutegia
configureWizard.finish.title=Osatuta
ConfigTransferAutoSpeed.adjustment.interval=Zehaztu tarteak\:
ConfigView.label.peers=Hartzaile
jvm.show.file=Tokiko JVM aukera agiria da\: '%1' - Berreskurapenerako bakarrik editatu
-MyTorrentsView.menu.setSpeed.unlimited=Mugagabea
TableColumn.header.downspeed.info=Oraingo jeisketa abiadura
+MyTorrentsView.menu.setSpeed.unlimited=Mugagabea
security.certcreate.strength=Indarra
-ConfigView.label.startwatchedtorrentsstopped=Hasi geldituta
ConfigView.text.neverStop=Ez Gelditu Inoiz
+ConfigView.label.startwatchedtorrentsstopped=Hasi geldituta
UpdateWindow.title=Vuze Eguneratzailea
MyTorrentsView.\#=Zbk.
-TableColumn.header.RateIt=Maila
label.show.selected.rates=Erakutsi Hautaturiko Gaien Mailak
-ConfigView.label.seeding.rankType.peer.tooltip=hartzaile gehiago eta emaritza gutxiago \= lerrun handiagoa\nLerrun honek gutxiagotu egiten du eraginda eduki behar diren torrent zenbatekoa igoera gehieneratzeko.
+TableColumn.header.RateIt=Maila
label.tracker.selection=Aztarnari Hautapena
+ConfigView.label.seeding.rankType.peer.tooltip=hartzaile gehiago eta emaritza gutxiago \= lerrun handiagoa\nLerrun honek gutxiagotu egiten du eraginda eduki behar diren torrent zenbatekoa igoera gehieneratzeko.
subs.prop.enabled=Gaituta
Main.parameter.maxUploads=Geh aldibereko igoera zenbatekoa
ConfigView.label.downloading.info=Berezgaitasunez zehaztu jeisketa lerro kokapenak hobeto lan egiten du zure sarearen gaitasunaren araberako jeisketa abiadura muga zehaztasun zuzen bat ezartzen duzunean
ConfigView.label.bStartNoMoreSeedsWhenUpLimitMetSlack=Igoera muga hurbilketa (murrizpen ehunekoa edo osoa KB/seg-kotan)
general.enter.cookies=Sartu Cookiak
-wizard.invalidurl=URL hau baliogabea da
TableColumn.header.maxuploads=Geh. Igoera Zenbatekoa
+wizard.invalidurl=URL hau baliogabea da
ConfigView.section.tracker.client.scrapestoppedenable=Zuritu torrentak lanean ez daudenean
-SpeedView.stats.con_details=guztira\=%1, itogabe\=%2, lerrokatuta\=%3, eragotzita\=%4
+SpeedView.stats.con_details=guztira\=%1, itogabe\=%2, lerrokatuta\=%3, blokeatuta\=%4
speedtest.wizard.select.group=Azterketa Mota
PeersView.T.R.tooltip=Hartzaileak ezarri du elkarketa
config.external.browser=Kanpoko Nabigatzailea
@@ -2392,30 +2426,30 @@ v3.deviceview.infobar.line2.ps3=Bideoak jariotu zure PS3-ra joanez eta hautatuz
ConfigView.section.transfer.lan.uploadrate=KB/s LAN geh. igoera abiadura [0\: mugagabea]
TableColumn.header.Country=Herrialdea
upnp.selectedaddresses=Helbideak (';' banandurik, '-' aurrizkia\=ukatu, '+' \=ahalbidetu) [hutsik\: ezer ez]
-wizard.newtorrent.byo.editname.text=Sartu gaiaren izena torrentean agertzen den bezala
-fileDownloadWindow.saveTorrentIn=Gorde torrent agiria hemen\:
label.announce=Iragarri
+fileDownloadWindow.saveTorrentIn=Gorde torrent agiria hemen\:
+wizard.newtorrent.byo.editname.text=Sartu gaiaren izena torrentean agertzen den bezala
devices.choose.profile.title=Izenburua
StartStopRules.waiting=Itxaroten
ConfigView.label.seeding.rankType.peerSeed.tooltip=Maila Handiena \= Lerrun Handiena
-cat.upload.priority=Igoera Lehentasuna
ConfigView.section.transfer.autospeed.enableauto=Gaitu jeisten eta emaritzen
-PeersView.menu.kickandban.reason=Hartzailea eskuz eragotzia
+cat.upload.priority=Igoera Lehentasuna
FancyMenu.Header.Social=Gizartea
+PeersView.menu.kickandban.reason=Hartzailea eskuz eragotzia
label.uptime_coarse=Jardun-denbora%1%2
-ConfigView.section.transfer.lan.downloadrate.tooltip=Barneko LAN bera ez duten hartzaile elkarketek jeisketa muga neurria banandua dute
ConfigView.label.userequestlimiting=Erabili eskabide mugapena irakur atzerapenaren ordez jeisketa abiadura mugatzeko [ez du eraginik jeisketa abiadura mugagabea denean]
+ConfigView.section.transfer.lan.downloadrate.tooltip=Barneko LAN bera ez duten hartzaile elkarketek jeisketa muga neurria banandua dute
MyTorrentsView.dialog.NumberError.text=Sartu duzun zenbakia baliogabea edo ezezaguna da.
security.crypto.encrypt=Mesedez idatzi sarhitz bat sortu berri duzun enkriptaketa giltza babesteko. Mesedez ez ahaztu sarhitz hau, ez dago berreskuratzeko biderik egiten baduzu\!
button.nothanks=Ez Mila esker
-Peers.column.handshake_reserved.info=Adierazten du zein bit izan ziren ezarriak BT eskuematean
webui.pairingtest=\tEgin klik uztarpen azterketarako
+Peers.column.handshake_reserved.info=Adierazten du zein bit izan ziren ezarriak BT eskuematean
exportTorrentWizard.torrentfile.path=Helburua\:
-ConfigView.label.queue.retainforce=Aldatu 'behartu hastera' jeisketak 'behartu emaritza'-ra osatutakoan
UpdateWindow.restartLater=Berrabiarazi Vuze Geroago
-devices.turnon.prepageload=Eginkizun hau abiatzeko, osagai gehigarri baten ezarpena beharrezkoa da.
-min.sr.window.title=Gutxinezko Elkarbanatze Maila
+ConfigView.label.queue.retainforce=Aldatu 'behartu hastera' jeisketak 'behartu emaritza'-ra osatutakoan
azbuddy.dchat.anon.share.endpoint=Elkarbanatu izengabe torrent eta txat helmuga
+min.sr.window.title=Gutxinezko Elkarbanatze Maila
+devices.turnon.prepageload=Eginkizun hau abiatzeko, osagai gehigarri baten ezarpena beharrezkoa da.
ConfigView.section.file.max_open_files=Gehienezko agiri ireki irakurtzeko/idazteko\n[0\: mugagabea]
device.manu.desc=Egilea
SubscriptionWizard.column.SubWizName={FilesView.name}
@@ -2423,17 +2457,17 @@ TableColumn.header.eta=UED
devices.choose.device.info.text=Hurrengoan, agiriak arrastatu eta askatu arrunt bat gailura edo hautatu itzazu Albobarran.
ConfigView.section.tracker.announcecacheminpeers=Iragarle katxeak hartzaile muga gaitzen du
ConfigView.label.openconfig=Ireki aukeren leihoa abiatzean
-ConfigView.section.style.defaultSortOrder.asc=Gorantz
OpenTorrentOptions.header.torrentinfo=Torrentaren Argibideak
+ConfigView.section.style.defaultSortOrder.asc=Gorantz
GeneralView.section.downloaded=Jeitsita
wizard.multitracker.title=Aztarnari-Anitz
-FileItem.donotdownload=Ez jeitsi
swt.uninstall.window.header=Hurrengo osagaiak kenduak izaeko hautatuak izan dira\:
-FilesView.menu.setpriority.skipped=&Ez jeitsi
+FileItem.donotdownload=Ez jeitsi
ipCheckerWizard.explanations=Zure kanpoko IP helbidea zein den aurkitzeko erabil dezakezu laguntzaile hau. Zure IP helbidea dinamikoa bada, DNS Zerbitzu Dinamiko batekin kontua irekitzea aholkatzen dizugu. Beheko zerrendan zerbitzu horietako zenbait ematen ditugu, erabili loturak kontu bat sortzeko (sostengatuta dagoen tokietan). Ondoren, bete IP helbidearen eremua zure hostatatze-izen dinamikoarekin (adib. nireizena.dyndns.org). Aplikazio bat beharko duzu zure DNS Zerbitzu Dinamikoa ber [...]
-ConfigView.section.queue=Lerroa
-IrcClient.hasjoined=bat egin du
+FilesView.menu.setpriority.skipped=&Ez jeitsi
MainWindow.menu.speed_limits=Abiadura &Mugak
+IrcClient.hasjoined=bat egin du
+ConfigView.section.queue=Lerroa
TagAddWindow.public.checkbox=Elkarbanatu etiketa izengabe herkidegoarekin
PeersView.discarded.info=Nolabait jaso duzun datua, nahiz eta beharrezkoa ez izan, eta baztertu duzuna.
group.auto=Berez
@@ -2443,9 +2477,9 @@ MyTrackerView.status.started=Lanean
device.config.xcode.disable_sleep=Saihestu ordenagailuaren lotaratzea transkodeatzerakoan
ConfigView.label.minSpeedForActiveDL.tooltip=Jeisketa aho bat betik da erabilia lehen 30 segundutan\nosatugabeko torrenta hasi ondoren.
azbuddy.dchat.nick.shared=Goitizena\: elkarbanatuta
-TableColumn.header.eta.info=Torrenta jeitsi arteko ustezko denbora
-MainWindow.menu.transfers.pausetransfersfor=Pausatu...
+TableColumn.header.eta.info=Torrenta osorik jeitsi arteko ustezko denbora
MainWindow.menu.torrent=T&orrenta
+MainWindow.menu.transfers.pausetransfersfor=Pausatu...
exportTorrentWizard.finish.message=Esportazioa ongi burutu da
label.show.all=Erakutsi Denak
TableColumn.header.torrentrelpath.info=Agiriaren kokaleku erlatiboa torrentean
@@ -2453,42 +2487,43 @@ TableColumn.header.tag.uplimit={TableColumn.header.maxupspeed}
authenticator.realm=Eremua
MySharesView.type=Mota
dlg.stream.plus.renew.subtitle=Vuze Plus Berritzea
-PeerSocket.unknown_az_style=Ezezaguna %1 %2
-ConfigView.section.connection.advanced.write_select=Idatzi hautatutako itxaron denbora (milaen, berez %1)
splash.initializeGui=Leiho Nagusia Abiarazten
+ConfigView.section.connection.advanced.write_select=Idatzi hautatutako itxaron denbora (milaen, berez %1)
+PeerSocket.unknown_az_style=Ezezaguna %1 %2
upnp.ignorebaddevices.info=Orain baztertutako gailuak\: %1
-ConfigView.label.seeding.ignore0Peers=Baztertu 0 hartzaileko torrentak
ConfigView.label.showuptime=Erakutsi Jardun-denbora
+ConfigView.label.seeding.ignore0Peers=Baztertu 0 hartzaileko torrentak
devices.cancel_xcode_del=Ezeztatu Bihurketa/Kentzea
manual.mode=Eskuz
label.pin=Finkatu
ipCheckerWizard.service.url=Lotura\:
ConfigView.section.proxy.show_icon=Erakutsi SOCKS ikurra egoera eremuan gaituta dagoenean
-splash.of=->
azbuddy.ui.table.loc_cat=Cats irteera
+splash.of=->
OpenTorrentOptions.show.always=betik
plugins.basicview.progress=Garapena\:
-ConfigView.section.connection.encryption.encrypt.fallback_info=Ordezko aukera gaitzeak bezero bateraezinekin elkarketak ahalbidetuko ditu BAINA elkarketa enkriptatu-gabeak izango dira
resetconfig.warn=Honek Vuzeren itxurapenean egin dituzun aldaketa guztiak galtzea eragingo du./nJarraitu itxurapen berrezarpenarekin?
+ConfigView.section.connection.encryption.encrypt.fallback_info=Ordezko aukera gaitzeak bezero bateraezinekin elkarketak ahalbidetuko ditu BAINA elkarketa enkriptatu-gabeak izango dira
dlg.auth.install.subtitle.plus=Vuze Plus ezartzen...
OpenTorrentOptions.show.many=agiri 1 baino gehiago dagoenean bakarrik
ConfigView.pluginlist.column.version=Bertsioa
MyTorrentsView.menu.exportmenu=Esportatu
-ConfigView.section.connection.encryption.encrypt.info.link=Mesedez ikusi hemen xehetasunak
MyTorrentsView.menu.moveUp=&Gora
+ConfigView.section.connection.encryption.encrypt.info.link=Mesedez ikusi hemen xehetasunak
MyTorrents.column.ColumnProgressETA.2ndLine=UED\: %1
label.spam=Spamtzailea
-v3.MainWindow.button.delete=Ezabatu
MainWindow.status.updowndetails.tooltip=Jeisketa/Igoera abiadura xehatasunak\nEskuin-klikatu aldatzeko, Klik Bikoitza estatistikak irekitzeko
-Column.seedspeers.started.over=%1
+v3.MainWindow.button.delete=Ezabatu
exportTorrentWizard.torrentfile.invalidPath=Torrent agiri baliogabea
+Column.seedspeers.started.over=%1
MyTorrentsView.menu.rename.save_path=Berrizendatu Gordetzeko Helburua
-Subscription.menu.upgrade=Gaitu Bertsio Handienera Eguneratzea
installPluginsWizard.file.title=Mesedez bilatu ezarri nahi duzun plugina
+Subscription.menu.upgrade=Gaitu Bertsio Handienera Eguneratzea
ConfigView.section.security.publickey.undef=Oraindikan zehaztu gabe
-MyTorrentsView.menu.tracker=Aztarnaria/&Torrenta
MainWindow.statusText.checking=Bilatu Eguneraketak
+MyTorrentsView.menu.tracker=Aztarnaria/&Torrenta
upnp.refresh.label=Berritu mapaketak
+view.one.download.only=Hautatu ikuspegi hau erakusteko jeisketa bat
swt.install.window.header=Hurrengo osagaiak ezarriak izateko hautatuak izan dira\:
ManagerItem.stopped=Geldituta
platform.win32.baddll.InjHook12=Torrent Maila Zaintzailea
@@ -2499,8 +2534,8 @@ security.crypto.title=Enkriptazio Giltza Sarbidea
MainWindow.about.internet.homepage=Vuze Webgunea
network.enforce.ipbinding=Betearazi IP loturak baita interfazeak eskuragarri ez direnean, saihestu edozein elkarketa adierazitako interfazeetako bat ere eskuragarria ez denean
dlg.corewait.text=Une Bat Mesedez...\n\nZure eskaera Vuzek abiarazpena burutu ondoren bideratuko da.
-label.num.torrents=%1 {ConfigView.section.torrents}
StartStopRules.menu.viewDebug=Ikusi Garbiketa Argibideak
+label.num.torrents=%1 {ConfigView.section.torrents}
ConfigView.section.transfer.autospeed.enableautoseeding=Gaitu emaritzan bakarrik dagoenean
FilesView.path=Helburua\:
br.restore.warning.title=Kontuz Itxurapen Galera\!
@@ -2508,23 +2543,23 @@ subscriptions.search.enable=Gaitu harpidetza emaitzetarako bilaketa (berrabiaraz
chat.view.create.chat=Sortu Txata
ConfigView.label.prioritizefirstpiece.tooltip=Lehen agiri baten hasiera eta amaiera jeisteko saiakerak.\nAurreikuspen hasierak sostengatzeko.
update.now.desc=Vuzek eguneraketak egitea behar du migrazioa osatzeko.\n\nElkarrizketa hau itxi ondoren Windowsi eskatu ahal diozu eguneraketa aurrerabidea osatzeko.\n\nVuzeren berrabiaraztea EZ da beharrezkoa.
-ConfigView.label.xfer.bias_no_limit=Bidea ezartzeko saiakera igoera muga orokor eraginkor bat ez dagoenean
iconBar.openURL.tooltip=Ireki URL-a
-CacheView.general.inUse=Erabiltzen
+ConfigView.label.xfer.bias_no_limit=Bidea ezartzeko saiakera igoera muga orokor eraginkor bat ez dagoenean
ConfigView.label.startRatioPeers=Hasi emaritzen emale bat baino gutxiago dagoenean
-TableColumn.header.CountryCode=HK
-Main.parameter.maxSpeed=Geh igoera abiadura byte/seg-ko
+CacheView.general.inUse=Erabiltzen
#file can be a URL or a path in the jar
MainWindow.menu.help.releasenotes=Argitalpen Oharrak
+Main.parameter.maxSpeed=Geh igoera abiadura byte/seg-ko
+TableColumn.header.CountryCode=HK
option.rememberthis=Gogoratu ezarpen hau
ConfigView.title.short=Aukerak
FileItem.storage.reorder=Berrantolatu
-TableColumn.header.completion=Osaketa
subscriptions.config.ratelimits=Maila mugak\: pare <hostalaria>\=<gutxiengo minutuak> zerrendak, kakotxaz bananduta
-TableColumn.header.commenticon=Aipamen Ikurra
-v3.menu.device.exploreTranscodes=Erakutsi Agiriak
+TableColumn.header.completion=Osaketa
label.help=Laguntza
-pairing.view.registered=Klikatu ikusteko uneko izenemate xehetasunak
+v3.menu.device.exploreTranscodes=Erakutsi Agiriak
+TableColumn.header.commenticon=Aipamen Ikurra
+pairing.view.registered=Klikatu oraingo izenemate xehetasunak ikusteko
ConfigView.dialog.choosewatchtorrentfolderpath=Mesedez hautatu .torrenten inportazio-zuzenbidea
ConfigView.label.seeding.preferLargerSwarms.tooltip=Nagusiki 'buxatuta' dauden hartzaileekin emaritzen ari bazara torrentak, nahiago izatea erletalde handiagoak zentzua du\nNagusiki eskuragarritasun handiko torrentak emaritzen ari zarenean, nahiago izatea erletalde txikiak zentzua du.
ConfigView.section.interface.cleartrackers=Garbitu gogoraturiko aztarnariak
@@ -2532,16 +2567,16 @@ label.bar.trans=Barra gardentasuna [0\=argikaitza;100\=gardena]
device.playnow.buffer=Buffer neurria irakurketak hasi aurretik [seg]
MainWindow.menu.help.plugins=Lortu Pluginak
proxy.socks.bad.incoming=Ez-Proxituriko barrurako elkarketak atzeman dira\!
-TrackerAvail.column.status={Trackers.column.status}
v3.activity.remove.title=Ezabatu Jakinarazpena
-sidebar.LibraryDL.tooltip=Osatugabeko %1 torrent dago, hauetako %2 orain jeisten dago/daude
+TrackerAvail.column.status={Trackers.column.status}
menu.selectfilesinfolder=Hautatu %1-ko agiri guztiak
-OpenTorrentFile.column.size={TableColumn.header.size}
+sidebar.LibraryDL.tooltip=Osatugabeko %1 torrent dago, hauetako %2 orain jeisten dago/daude
devices.activation=Gailu Eragitketa
+OpenTorrentFile.column.size={TableColumn.header.size}
MyTrackerView.status=Egoera
sidebar.top.level.gap=Idazburu lerro arteko tartea ({ConfigView.section.security.restart.title})
-TableColumn.header.filesdone.info=Agiri eginda/Agiriak guztira *edo* Jauzi-gabeko agiri eginda (Agiri eginda)/Jauzi-gabeko agiriak guztira (Agiriak guztira)
ConfigView.section.transfer.lan.enable=Gaitu abiadura muga bananduak LAN elkarketentzat
+TableColumn.header.filesdone.info=Agiri eginda/Agiriak guztira *edo* Jauzi-gabeko agiri eginda (Agiri eginda)/Jauzi-gabeko agiriak guztira (Agiriak guztira)
ConfigView.section.connection.advanced.SO_RCVBUF=Hartunea SE_RCVBUF neurria [0\: erabili SE berez]
ConfigView.section.connection.advanced=Sare Ezarpen Aurreratua
TableColumn.header.tag.discovery.name=Etiketa Iradokizuna
@@ -2553,25 +2588,25 @@ ConfigView.section.connection.pairing.url=http\://wiki.vuze.com/w/UG_Aukerak\#Uz
ConfigView.label.bindip=Lotu tokiko IP helbidera edo interfazera
MyTorrentsView.menu.exporttorrent=Torrenta...
core.shutdown.se=emaritza burututa
-wizard.hint.file=Aholkua\: Arrastatu eta Askatuz hautatu dezakezu agiri bat
-subs.prop.auth=Egiaztapena beharrezkoa
Button.sendNow=Bidali Orain
+subs.prop.auth=Egiaztapena beharrezkoa
+wizard.hint.file=Aholkua\: Arrastatu eta Askatuz hautatu dezakezu agiri bat
upnp.mapping.udptrackerport=UDP Aztarnari Ataka
label.click.to.change=Klikatu aldatzeko
-window.updateswt.text=Zure SWT Bertsioa zaharregia da\!\nSWT Vuzek erabiltzen duen grafika liburutegia da eta zuk duzun bertsioa zaharregia da Vuzeren azken bertsioarekin lan egiteko. Klikatu 'Ongi' botoia zure SWT-a eguneratzeko.
-wizard.tracker.ssl=Erabili SSL
security.certcreate.cancel=Ezeztatu
-ConfigView.section.tracker.publishenable=Argitaratu torrent-aren xehetasunak "<tracker_url>"-era
+wizard.tracker.ssl=Erabili SSL
+window.updateswt.text=Zure SWT Bertsioa zaharregia da\!\nSWT Vuzek erabiltzen duen grafika liburutegia da eta duzun bertsioa zaharregia da Vuzeren azken bertsioarekin lan egiteko. Klikatu 'Ongi' botoia zure SWT-a eguneratzeko.
RCM.column.rc_level=Maila
+ConfigView.section.tracker.publishenable=Argitaratu torrent-aren xehetasunak "<tracker_url>"-era
MyTorrents.column.ColumnSpeed=Abiadura
-deletecontent.also.deletetorrent=Ezabatu .torrent agiria ere
externalLogin.title=Izenematea Beharrezkoa
+deletecontent.also.deletetorrent=Ezabatu .torrent agiria ere
ConfigView.section.tracker.client.showwarnings=Erakutsi aztarnariek bidalitako kontuz\! mezuak
label.DNS=DNS
TorrentOptionsView.param.upload.priority=Igoera lehentasuna [0\=berezkoa;1\=lehentasunezkoa]
dlg.auth.enter.link.try.2=<A HREF\="link">Klikatu hemen</A> oraindik ez baduzu Vuze Plusen kopia bat erosita.
-dlg.auth.enter.link.try.1=Ez duzu eragintza kode bat? <A HREF\="upgrade">Berritu orain</A>.
chats.view.heading=Txat Gainbegirada
+dlg.auth.enter.link.try.1=Ez duzu eragintza kode bat? <A HREF\="upgrade">Berritu orain</A>.
config.dialog.shortcut.title=Ezarri Lastertekla
Button.clear=Garbitu
Peers.column.UpDownRatio.info=Hartzailearen "Igota\:Jeitsita" Maila
@@ -2580,30 +2615,30 @@ subs.prop.update_period=Eguneratze epea
tray.options=Erretilu Aukerak
GeneralView.label.swarm_average_completion=Bataz-besteko Osaketa\:
TableColumn.header.azsubs.ui.column.subs_link=Elkartasuna
-ConfigView.section.ipfilter.edit=Editatu
ConfigView.label.bStartNoMoreSeedsWhenUpLimitMet=Ez hasi torrent gehiago emaritzarako igoera orokor muga erdietsitakoan
+ConfigView.section.ipfilter.edit=Editatu
device.od.error.opfailstatus=Gailuak huts egin du komando hau prozesatzerakoan %1\: egoera %2
OpenTorrentWindow.fileTable.fileName=Agiri Izena
azbuddy.dchat.open.magnet=Ireki Magneta Vuzen
ConfigView.section.language.enableUpdate=Gaitu Web Eguneraketa
dht.info=Plugin honek zentralizatu gabeko aztarnapena sostengatzen du, beste gauza batzuen artean, - ezgaituz gero zure jeisteko gaitasuna murriztuko da
-DevicesOD.column.od_remaining=Gelditzen dena
library.unopened.header.p=%1 gai
-FileView.BlockView.Outstanding=Egikete
+DevicesOD.column.od_remaining=Gelditzen dena
label.num_queued=%1 Lerrokatuta
-ConfigView.section.file.delete.include_files_outside_save_dir=Datuak ezabatzerakoan, ahalbidetu torrentetik kanpo lotura duten agiriek zuzenbidea gordetzea hauek ere ezabatuak izateko
-ConfigView.button.browse=&Bilatu...
+FileView.BlockView.Outstanding=Egikete
device.error.copyfail=Agiri Batek Edo Gehiagok Huts Egin Du Agiritegira Kopiatzean
-PeersView.piece=Atal
-download.removerules.unauthorised.seedingonly=\tEmaritzan bakarrik
-dlg.auth.revoked=Eragintza Kodea Indargabetuta
+ConfigView.button.browse=&Bilatu...
+ConfigView.section.file.delete.include_files_outside_save_dir=Datuak ezabatzerakoan, ahalbidetu torrentetik kanpo lotura duten agiriek zuzenbidea gordetzea hauek ere ezabatuak izateko
br.restore.warning.info=Zure itxurapena leheneratzeak orain duzuna erabat ordeztuko du.\nKontuan izan ekin aurretik hau babeskopiatzea\!
+dlg.auth.revoked=Eragintza Kodea Indargabetuta
+download.removerules.unauthorised.seedingonly=\tEmaritzan bakarrik
+PeersView.piece=Atal
security.crypto.decrypt=Mesedez idatzi sarhitza zure enkriptaketa giltza irekitzeko.
custom.settings.import.res=Inportatuta %1 ezarpen.%2
label.missing=Ez dago
ConfigView.section.server=Elkarketa
-TrackerChangerWindow.newtracker=Sartu aztarnari berriaren URL-a
config.external.browser.switch.info=Barneko nabigatzailetik kanpokora aldatu dezakezu zenbait ezaugarrietarako baina eraginkortasun batzuk galdu daitezke
+TrackerChangerWindow.newtracker=Sartu aztarnari berriaren URL-a
tag.type.ds=Jeisketa Egoera
TableColumn.header.transcode_status=Egoera
security.crypto.persist_for.dont_save=Ez gorde
@@ -2611,66 +2646,66 @@ general.add.friends=Gehitu lagun batzuk\!
FilePriority.invalid.title=Lehentasun Baliogabea
tag.type.ds.act={FileView.BlockView.Active}
ConfigView.label.seeding.firstPriority.ignoreIdleHours=Ezer igo ez duten torrentak
-ConfigView.section.mode.advanced.wiki.main=Wiki Orrialde Nagusia
remote.pairing.tip.text=Hurruneko Vuze Tresnabarra \: Joan hona <A HREF\="http\://remote.vuze.com/download/">remote.vuze.com/download</A>\nVuze Hurruneko Sakelekoa\: Joan hona <A HREF\="http\://remote.vuze.com/">remote.vuze.com</A> zure sakeleko nabigatzailean.
-devices.contextmenu.od=Lineaz-kanpo Jeisten
+ConfigView.section.mode.advanced.wiki.main=Wiki Orrialde Nagusia
tps.status.available=Eskuragarria
-MainWindow.menu.view.allpeers=Hartzaile Guztiak
-dht.advanced.group=Ezarpen aurreratuak
-PasswordWindow.passwordprotected=Vuze sarhitzez babestuta dago.\nVuzeren leihoa erakusteko, mesedez sartu zure sarhitza hemen\:
-GeneralView.label.downloaded=Jeitsita\:
+devices.contextmenu.od=Lineaz-kanpo Jeisten
configureWizard.nat.message=Vuzerentzako irteera hoberena izateko osoki gomendatua da internetetik erabat eskuragarri egotea. Tresna honek aztertzea eta / edo sarrerako elkarketen onartzeko ataka aldatzea ahalbidetzen dizu.\n\n OHARRA\: TCP 6880 ataka barnean gordea da eta ezin da erabili.
-TableColumn.header.AzProduct=Hemendik
+GeneralView.label.downloaded=Jeitsita\:
+PasswordWindow.passwordprotected=Vuze sarhitzez babestuta dago.\nVuzeren leihoa erakusteko, mesedez sartu zure sarhitza hemen\:
+dht.advanced.group=Ezarpen aurreratuak
+MainWindow.menu.view.allpeers=Hartzaile Guztiak
ConfigView.complete.abbreviated=O\:
+TableColumn.header.AzProduct=Hemendik
ConfigView.section.sharing.rescanenable=Gaitu aldizkako birmihaketak elkarbanatzetan aldaketentzat
-azbuddy.dchat.public.nick=Elkarbanatutako goitizen publikoa
+azbuddy.dchat.public.nick=Elkarbanatutako izenorde publikoa
iconBar.details=Xehetasunak
-ConfigView.label.seeds=Emaritza
Button.save=Gorde
-DHTView.transport.sent=Bidalita
+ConfigView.label.seeds=Emaritza
azneti2phelper.install.reason.i2ptracker=Gehitzen ari zaren torrentak I2P aztarnari bat du.
-SpeedView.uploadSpeed.title=Igoera Abiadura
+DHTView.transport.sent=Bidalita
TableColumn.header.torrentpath.info=Torrentak diskan duen helbidea
+SpeedView.uploadSpeed.title=Igoera Abiadura
fileDownloadWindow.state_error=Akatsa\:
importTorrentWizard.process.outputfileexists.message=Irteerako agiria badago - gainidatzi?
devices.sidebar.hide.rend.generic=Ezkutatu gailu generikoak
-v3.MainWindow.search.defaultText=Bilatu Torrentak...
MyTorrentsView.menu.remove=K&endu
+v3.MainWindow.search.defaultText=Bilatu Torrentak...
v3.mb.delPublished.delete=&Ezabatu
-dlg.player.install.description=Irakurketa osagai gehigarria ezartzen...
wizard.newtorrent.byo.editname.title=Editatu Gai Izena
-library.all.header=%1 Gai\: %2 Eraginda
+dlg.player.install.description=Irakurketa osagai gehigarria ezartzen...
ConfigView.section.connection.group.webseed=Web/HTTP Emaritzak
-speedtest.wizard.test.mode.updown=igoera eta jeisketa
-ConfigView.section.file.writemblimit=Gehienezko idaz eskabide lerrokatuta (%1)
-ConfigView.section.security.resetkey=Berrezarri giltzak
+library.all.header=%1 Gai\: %2 Jardunean
devices.turnon.qos=Elkarbanatu izengabeko gailu estatistikak Vuzerekin
+ConfigView.section.security.resetkey=Berrezarri giltzak
+ConfigView.section.file.writemblimit=Gehienezko idaz eskabide lerrokatuta (%1)
+speedtest.wizard.test.mode.updown=igoera eta jeisketa
stream.analysing.media=Multimedia Aztertzen
Button.finish=Amaitu
-v3.share.private.text=Hautaturiko torrenta Torrent Pribatu bezala markaturik dago\n\nEzin duzu torrent pribaturik elkabanatu.
-iconBar.down=Jeisketa
TableColumn.header.chat.name=Txat Izena
+iconBar.down=Jeisketa
+v3.share.private.text=Hautaturiko torrenta Torrent Pribatu bezala markaturik dago\n\nEzin duzu torrent pribaturik elkabanatu.
ConfigView.section.ipfilter.description=Azalpena
-ConfigView.section.file.perf.cache.size=Katxe neurria %1
-v3.mb.PlayFileNotFound.button.redownload=Birjeitsi Datuak
label.route=Bidea
+v3.mb.PlayFileNotFound.button.redownload=Birjeitsi Datuak
+ConfigView.section.file.perf.cache.size=Katxe neurria %1
torrent.comment.azmsgsync.install=Mezu Aldiberetze Plugina ez dago ezarrita edo txata ezgaituta dago - ikusi Tresnak-> Pluginak->Lagunak
azbuddy.dchat.ro=Irakurtzeko bakarrik kanala
devices.xcode.remove.vetoed='%1' Transkodeaketa garatzen, jeisketa ezin da kendu osatu arte edo transkodeaketa 'Gailuak' orrialdetik ezeztatuta egon arte.
-dhttracker.alt_port=Ataka [0\: zorizkoa]
TableColumn.menu.date_added.reset=Berrezarri Eguna
-MainWindow.menu.window.minimize.keybinding=Meta+M
-ConfigView.section.file.perf.explain=Kontuz - Neurri hauen aldaketek kalterako eragin dezakete jeisketan. Berrabiarazpena beharrezkoa da.\n'oraimen gabe' arazoak badituzu torrent elkarketak mugatzea kontuan hartu beharko duzu. (Ikusi Eskualdaketa itxurapena)
+dhttracker.alt_port=Ataka [0\: zorizkoa]
label.showhide.tag=Erakutsi / Ezkutatu Etiketa(k)
+ConfigView.section.file.perf.explain=Kontuz - Neurri hauen aldaketek kalterako eragin dezakete jeisketan. Berrabiarazpena beharrezkoa da.\n'oraimen gabe' arazoak badituzu torrent elkarketak mugatzea kontuan hartu beharko duzu. (Ikusi Eskualdaketa itxurapena)
+MainWindow.menu.window.minimize.keybinding=Meta+M
configureWizard.finish.message=Orain Vuze itxuratuta dago, ondo izan \!
importTorrentWizard.torrentfile.invalidPath=Torrent agiri baliogabea
+PeersView.C2.info=Hartzaileari jeisketa blokeatzen badiozu
ConfigView.section.tracker.scrapecacheperiod=Zuripen katxea (smilaen)
-PeersView.C2.info=Hartzaileari jeisketa galarazten badiozu
security.crypto.persist_for.day=1 egun
-MainWindow.menu.view.tagsoverview={tags.view.heading}
v3.share.private.title=Torrenta Elkarbanatzen
-device.itunes.status.running=iTunes lanean dago
+MainWindow.menu.view.tagsoverview={tags.view.heading}
mdi.entry.games=Jokoak
+device.itunes.status.running=iTunes lanean dago
importTorrentWizard.finish.message=Inportazioa ongi burutu da
ConfigView.section.stats.defaultsavepath=Estatistikak gordetzeko zuzenbidea
externalLogin.explanation.capture=Izena eman behar duzu eredu hau sortzeko. Egindakoan, mesedez klikatu "Eginda".
@@ -2684,68 +2719,68 @@ TableColumn.header.peakdown=Jeisketa Gailurra
Column.seedspeers.notstarted=%2
Plugin.localtracker.autoadd=Ageriko hartzaileak
TableColumn.header.Quality=Ontasuna
-ConfigView.label.use_old_speed_menus=Erabili estilo zaharreko abiadura menuak [berrabiaraztea beharrezkoa]
ConfigView.label.seeding.rankType.seed.fallback=Hartzaileentzako Gordeta\: Emaritza Maila ondoren \n(0 \: Inoiz Ez Gordeta)
+ConfigView.label.use_old_speed_menus=Erabili estilo zaharreko abiadura menuak [berrabiaraztea beharrezkoa]
devices.contextmenu.od.enabled=Gaiturik
TableColumn.header.totalspeed.info=Hona elkarketaturik dauden hartzaile guztien Abiadura Guztira
-OpenTorrentFile.column.\#=Zenb.
-ConfigView.section.connection.encryption.require_encrypted_transport.tooltip=Behartu enkriptatutako elkarketak erabiltzera beste hartzaile batzuekin
-message.confirm.delete.text=Zihur zaude '%1' ezabatzea nahi duzula?
+OpenTorrentFile.column.\#=Zbk.
label.anon.short=A
-azbuddy.dchat.status.nohandler=Akatsa\: Ez dago mezu kudeatzailerik eskuragarri
+message.confirm.delete.text=Zihur zaude '%1' ezabatzea nahi duzula?
+ConfigView.section.connection.encryption.require_encrypted_transport.tooltip=Behartu enkriptatutako elkarketak erabiltzera beste hartzaile batzuekin
chats.view.infobar.text2=Honek monitorizatzen/eskuhatzen ari zaren txat ugariren argibideak erakusten ditu. Ikusi Wikia argibide gehiagorako <a href\="{azbuddy.dchat.link.url}">hemen klikatuz...</a>
+azbuddy.dchat.status.nohandler=Akatsa\: Ez dago mezu kudeatzailerik eskuragarri
chats.view.infobar.text1=Txat Gainbegirada
Progress.reporting.status.canceled=Ezeztaturik
-dlg.install.vuzexcode.description=Mesedez itxaron Media Aztergailuaren osagaia ezartzen den bitartean
iconBar.play.tooltip=Irakurri hautaturiko edukia
+dlg.install.vuzexcode.description=Mesedez itxaron Media Aztergailuaren osagaia ezartzen den bitartean
Wizard.Subscription.rss.subtitle3=Behin gordeta, zuzeneko harpidetzak jasoko dituzu zure albobarran zure RSS jarioen bidez emaitza berriak eskuragarri dauden bakoitzean
-SpeedTestWizard.set.limit.conf.level=Segurtasuna
-fileplugininstall.install.title=Plugina Ezarri?
Wizard.Subscription.rss.subtitle2=Argitaratzaile zenbaitzuk RSS jarioak eskaintzen dituzte beren edukientzat. Helbiditu URL-a argitaratzailearen webgunean, kopiatu eta itsati URL-a gaineko eremuan, orduan klikatu Gorde.
-Wizard.Subscription.rss.subtitle1=Idatzi edo itsasi URL-a ondoren\:
+fileplugininstall.install.title=Plugina Ezarri?
+SpeedTestWizard.set.limit.conf.level=Segurtasuna
+Wizard.Subscription.rss.subtitle1=Idatzi edo itsasi URL-a azpian\:
ManagerItem.error=Akatsa
-azbuddy.ui.menu.verify=Egiaztatu Gakoa
ConfigView.section.connection.port.rand.together=TCP eta UDP-rako ataka bera
-v3.splash.initSkin=EI Azala abiarazten
+azbuddy.ui.menu.verify=Egiaztatu Gakoa
OpenTorrentOptions.header.filesInfo.some=%1 -> %2 Agiritik\: %3
+v3.splash.initSkin=EI Azala abiarazten
ConfigView.section.style.colorOverrides.reset=Berrezarri Margoa
-restart.error.pnf='%1' Helburua ez da aurkitu
TableColumn.header.bad_avail_time=Kopia Osoa Ikusita
+restart.error.pnf='%1' Helburua ez da aurkitu
ConfigView.section.security.group.crypto=Publikoa/Pribatua Giltzak
PeersView.I1.info=Interesaturik zaude beste hartzaile batek duen agirian?
ConfigView.section.files.move=Osaketa Mugitzen
-FileView.BlockView.Skipped=Jauzita
ConfigView.section.style.alwaysRefreshMyTorrents.tooltip=Aukera honek Liburutegi ikuspegia berritzen du nahiz eta begien aurrean ez egon (erabilgarria zenbait mirc pluginentzako)
+FileView.BlockView.Skipped=Jauzita
TableColumn.header.SeedingRank.info=Torrentak zein gaizkiro behar duen emaritzea adierazten duen balio maila. Balio handiagoak behar handiagoa esanahi du
MyTorrentsView.menu.setpriority=Ezarri &Lehentasuna
-ConfigView.section.proxy.enable_proxy=Gaitu proxya aztarnariarekiko harremanetarako [berrabiaraztea beharrezkoa]
-ConfigView.label.openstatsonstart=Ireki Estatistikak hasitakoan
device.model.desc=Ereduaren azalpena
-ConfigView.section.ipfilter.blockbanning=256 helbideko bloke baten eragozpena gutxienez zenbateko hau blokean eragotzia izan denean
-TorrentOptionsView.title.short=Aukerak
-MainWindow.menu.file.restart=Berrabiarazi &Vuze
+ConfigView.label.openstatsonstart=Ireki Estatistikak hasitakoan
+ConfigView.section.proxy.enable_proxy=Gaitu proxya aztarnariarekiko harremanetarako [berrabiaraztea beharrezkoa]
+ConfigView.section.ipfilter.blockbanning=Eragotzi 256 helbideko bloke bat gutxienez blokean honetan asko izan direnean eragotziak
azbuddy.os_busy=Lanpetuta
+MainWindow.menu.file.restart=Berrabiarazi &Vuze
+TorrentOptionsView.title.short=Aukerak
ConfigView.section.style.forceSIValues=Behartu balioak erakutsiak izateko IEK balio bezala ondorengo helburuekin erabilitako erakusleihoa edozein izanda ere. (adib. 1MB \= 1MiB \= 1048576B)
OpenTorrentWindow.startMode=Gehitu Modua
Button.selectAll=Hautatu Denak
ManagerItem.checking=Egiaztatzen
-ConfigView.group.scrape=Zuritzea
v3.deleteContent.message=\nEzabatzea nahi duzu '%1' zure ordenagailutik, edo zure Vuze Liburutegitik kentzea besterik ez?
+ConfigView.group.scrape=Zuritzea
TableColumn.header.AvgAvail=Bataz-besteko Eskurg/atal
popup.next=>
wizard.mode=Aztarnaria / Modua
-ConfigView.section.transfer.lan.uploadrate.tooltip=Barneko LAN bera ez duten hartzaile elkarketek igoera muga neurria banandua dute
azbuddy.ui.menu.ygm=Bidali MBD
-SystemTray.menu.stopalltransfers=Gelditu &Eskualdaketa Guztiak
+ConfigView.section.transfer.lan.uploadrate.tooltip=Barneko LAN bera ez duten hartzaile elkarketek igoera muga neurria banandua dute
ConfigView.label.seeding.firstPriority=Lehentasun nagusia doa hau duten torrentetatik
+SystemTray.menu.stopalltransfers=Gelditu &Eskualdaketa Guztiak
OpenTorrentOptions.show.never=inoiz ez berriro
-ConfigView.pluginlist.whereToPutOr=Elkarbanatutako pluginentzat erabili\:
ConfigView.section.style.graphicsUpdate=Eguneratu Grafika barrak EIG-aren Z eguneratzetik behin
-ConfigView.section.security=Segurtasuna
+ConfigView.pluginlist.whereToPutOr=Elkarbanatutako pluginentzat erabili\:
SpeedTestWizard.test.panel.not.accepted=Azterketa eskabidea ez da onartu\:
+ConfigView.section.security=Segurtasuna
label.copy.to.clipboard=Kopiatu Gakora
-ConfigView.label.seeding.addForSeedingDLCopyCount=Hartu 'emaritzarako gehitutako' jeisketatzat kopia zenbateko hau duten jeitsierak
ConfigView.label.autoopen=Berez Irekitzea
+ConfigView.label.seeding.addForSeedingDLCopyCount=Hartu 'emaritzarako gehitutako' jeisketatzat kopia zenbateko hau duten jeitsierak
CategoryAddWindow.title=Gehitu Kategori Berria
FileProgress.stopped=Geldituta
ConfigView.section.transfer.autospeed.chokeping=Itopen ping aldiak [segundu milaenetan]
@@ -2754,18 +2789,18 @@ FilePriority.invalid.text=Balio baliogabea sartu da, osoa behar da\: %1
installPluginsWizard.mode.title=Mesedez hautatu ezarpen bide bat
FilesView.rename.confirm.delete.title=Baieztatu Ezabaketa
MyTrackerView.webui.contextmenu.copyurl=Kopiatu torrentaren URL-a gakoan
-ConfigView.section.logging.timestamp=Denbora irarketa heuskarria ohar agirientzat
RCM.column.rc_new=Irekigabe
+ConfigView.section.logging.timestamp=Denbora irarketa heuskarria ohar agirientzat
TableColumn.header.up=Igota
configureWizard.transfer2.group=Modua
ConfigView.label.seeding.ignore.header.rule=Araua
PeersView.T=ELK
-PeersView.S=Baztertuta
TableColumn.header.TableColumnNameInfo=Zutabe Izena eta Azalpena
-OpenTorrentWindow.startMode.stopped=Geldituta
+PeersView.S=Baztertuta
UpdateConstraint.title=Eguneraketa Mugak
+OpenTorrentWindow.startMode.stopped=Geldituta
+v3.deviceview.infobar.line2.xbox=Jarioatu bideoak zure Xbox 360-ra joanez eta Nire XBox -> Bideo Liburutegia -> Vuze hautatuz.
ConfigView.label.seeding.ignore.header.value=Balioa
-v3.deviceview.infobar.line2.xbox=Jarioatu bideoak zure Xbox 360-ra joanez eta hautatuz Nire XBox -> Bideo Liburutegia -> Vuze.
Formats.units.TB=TB
beta.wizard.off=Pozik nago argitaraturiko bertsioekin, ez eskerrik asko\!
SpeedTestWizard.finish.panel.title=Abiadura Azterketa Amaiturik\!
@@ -2781,18 +2816,18 @@ PeersView.optunchoke=Auk. Itogabe
azbuddy.dchat.general.chats=Txat Orokorrak
Scrape.status.initializing=Zuritzeko itxaroten...
ManagerItem.low=Txikia
-TableColumn.header.tag.public.info={tag.share}
label.beta=Beta
-GeneralView.label.hash=Hasha\:
+TableColumn.header.tag.public.info={tag.share}
ConfigView.section.style.dropdiraction=Arrastatu eta Askatu ekintza zuzenbideentzat
+GeneralView.label.hash=Hasha\:
pairing.ac.getnew.create=Sortu
ConfigView.section.file.defaultdir.lastused=Eguneratu berezko zuzenbidea gordetako azken helbidera
-PeersView.%=Jeitsitako Ehunekoa
MyTorrentsView.menu.eta.abs=Erakutsi UED denbora oso bat bezala
-Progress.reporting.action.label.cancel.tooltip=Ezeztatu eragiketa
+PeersView.%=Jeitsitako Ehunekoa
ConfigView.label.udplistenport=UDP aditze ataka
-ConfigView.label.seeding.rankType.timedRotation=Denboratutako Itzulikapena
+Progress.reporting.action.label.cancel.tooltip=Ezeztatu eragiketa
jvm.max.mem.current=Oraingo Pilo gehiena da\: %1
+ConfigView.label.seeding.rankType.timedRotation=Denboratutako Itzulikapena
fileplugininstall.duplicate.title=Bikoiztu Plugina
ConfigView.section.connection.encryption.use_crypto_port=Erabili 'kriptoataka' aztarnari hedapena sarrera lauko elkarketa saiakerak saihesteko. Aztaranari batzuek ez dute onartzen hau eta honelako akatsak dituzte "Atata Okerra' edo 'Legezkanpoko gatazka'
v3.MainWindow.menu.games=Jolasak
@@ -2806,45 +2841,45 @@ TableColumn.header.sessiondown=Saio Jeitsiera
label.proxy=Proxya
exportTorrentWizard.exportfile.invalidPath=Esportazio agiri baliogabea
MainWindow.menu.view.plugins.logViews=Saio Ik&uspegiak
-v3.MainWindow.tab.publish=Argitaratu
RCM.column.rc_created=Sortua
-LocaleUtil.column.text=Idatzi Ezezaguna
+v3.MainWindow.tab.publish=Argitaratu
label.show.tag=Erakutsi Etiketak
+LocaleUtil.column.text=Idatzi Ezezaguna
v3.MainWindow.button.stop=Gelditu
wizard.webseed.adding=HTTP Emaritzak Gehitzen
dht.warn.user=Jakinarazi balizko NAT/ ataka mapaketa arazoak
v3.MainWindow.menu.view.asAdvancedList=Zerrenda Aurreratua
-ConfigView.section.logging.generatediagnostics.info=Sortu igarpen argibideak eta kopiatu gakora eta ohar agira, ezarrita badago
-ConfigView.section.tracker.client.scrapeinfo=Zuritzea ezgaituz torrent askoren lerrokatzea saihestu daiteke, lanerako erletaldeko argibideak berreskuratzean aztarnariak zurituz ohinarritzen baitira.
ConfigView.section.style.ShowFancyMenu=Erakutsi Fancy Menua (Berrabiaraztea Beharrezkoa)
+ConfigView.section.tracker.client.scrapeinfo=Zuritzea ezgaituz torrent askoren lerrokatzea saihestu daiteke, lanerako erletaldeko argibideak berreskuratzean aztarnariak zurituz ohinarritzen baitira.
+ConfigView.section.logging.generatediagnostics.info=Sortu igarpen argibideak eta kopiatu gakora eta ohar agira, ezarrita badago
device.router.view.title=Bideratzaileak
-TableColumn.header.unopened.info=Torrenta irakurria izan den adierazteko ikurra (irekita)
ConfigView.label.sleep=Lotarazi
+TableColumn.header.unopened.info=Torrenta irakurria izan den adierazteko ikurra (irekita)
ConfigView.section.tracker.passwordenabletorrent=Gaitu sarhitza torrentetan
Pieces.column.\#.info=Atal Zenbakia
-ConfigView.section.tracker.createbutton=Sortu
menu.sortByColumn=Antolatu %1 arabera
+ConfigView.section.tracker.createbutton=Sortu
devices.button.installitunes=Ezarri iTunes Baterapena
device.autohide.alert=%1 gailua(k) ezkutatu egin d(ir)a online ez egoteagaitik %2 egunez.\nIkusi Tresnak->Aukerak->Gailuak jokabide hau itxuratzeko.\nEskuin-klikatu 'Gailu Irakurketa' albo barran ezkutuko gailuak erakusteko.
-TableColumn.header.size=Neurria
ConfigView.section.style=Interfazea
+TableColumn.header.size=Neurria
dlg.corewait.title=Core-a Abiarazten
ConfigView.section.transfer.select.v2=Berez-Abiadura (beta)
ConfigView.section.tracker.pollinterval=Aztarnariaren bezeroa zenbatero zundatuko den (segundoak)
ConfigView.section.tables=Aurkibideak
-CacheView.reads.hits=Kolpeak
br.backup.auto.dir.select=Mesedez hautatu berezko babeskopia zuzenbidea
-natpmp.info=NAT-PMP Apple-n UPnP aukera da eta berriki Hegazkaietan ere sostengatua da\n\nJakin ezazu orain duzun UPnP gaituta dagoela NAT-PMP gaitzeko NAT-PMP gailu bezala UPnP gailu mota berezitzat hartzen da
-webui.i2p_dest=I2P helbidea
-UIDebugGenerator.message.cancel.title=Garbiketa Argibidea Sortzea Ezeztatuta
+CacheView.reads.hits=Elkarjotzeak
+natpmp.info=NAT-PMP Apple-n UPnP aukera da eta berriki Hegazkaietan ere sostengatua da\n\nOhartu orain duzun UPnP gaituta dagoela NAT-PMP gaitzeko NAT-PMP gailu bezala UPnP gailu mota berezitzat hartzen da
MyTrackerView.date_added=Gehituta
-MyTorrentsView.menu.setSpeed.disable=Ezgaitu Igoera
+UIDebugGenerator.message.cancel.title=Garbiketa Argibidea Sortzea Ezeztatuta
+webui.i2p_dest=I2P helbidea
Wizard.Subscription.subscribe.library.empty=Ez dago harpidetza eskuragarririk?\n \nBilatu margo laranja dizdiratsuko harpidetza botoia Vuze HD Sarean.\n \n<A HREF\="http\://wiki.vuze.com/w/FAQ_Harpidetzak">Irakurri gehieago</A>
-ConfigView.label.priorityExtensions=Berez-lehenetsi agiri mota hauek\: \n - adib\: .txt; .nfo; .jpg
+MyTorrentsView.menu.setSpeed.disable=Ezgaitu Igoera
wizard.webseed=Gehitu HTTP Emaritzak torrentetik
+ConfigView.label.priorityExtensions=Berez-lehenetsi agiri mota hauek\: \n - adib\: .txt; .nfo; .jpg
iconBar.openNoDefault.tooltip=Ireki .torrent agiria (ez gorde berez)
-IrcClient.copyright=PircBot Java IRC API erabiltzen - http\://www.jibble.org/pircbot.php
ConfigView.section.connection.advanced.url=http\://wiki.vuze.com/w/UG_Options\#Sare_Ezarpen_Aurreratuak
+IrcClient.copyright=PircBot Java IRC API erabiltzen - http\://www.jibble.org/pircbot.php
OpenTorrentWindow.mb.badSize.title=Agiri Bateraezina
custom.settings.import.title=Inportatu Itxurapen Ezarpenak?
dlg.auth.enter.expiry=Oraingo eragintza kodea iraungitzen da %1.
@@ -2854,80 +2889,81 @@ DHTView.db.divfreq=Maiztasun Dib.
ConfigView.section.proxy.dns.info=Ikusi Elkarketa->DNS itxurapena DNS zerbitzari gehigarria adierazteko proxy erabakirako.
Peers.column.timetocomplete.info=Hartzailea osatuta dagoen arte gelditzen den denbora
MainWindow.nat.status.unknown=NAT
-OpenTorrentWindow.addFiles.URL=Gehitu &URL-a
ConfigView.label.seeding.rankType.timedRotation.tooltip=Lerrokatutako torrent osatu guztiak emaletzen moduan itzulikatuko dira.\nEmaletze denbora 'Gutxiengo Emaletza Denbora' bidez ezartzen da
-MyTorrentsView.menu.thisColumn.toClipboard=Kopiatu Idatzia Gakoan
+OpenTorrentWindow.addFiles.URL=Gehitu &URL-a
azbuddy.addtorrent.msg=Laguna '%1' bidali dizu '%2'.\nJeisketa hau gehitzea nahi duzu?
-v3.activity.header.downloads=Jeisketak
+MyTorrentsView.menu.thisColumn.toClipboard=Kopiatu Idatzia Gakoan
TorrentDetailsView.filter=Bilatu agiriak...
+v3.activity.header.downloads=Jeisketak
ConfigView.section.ipfilter.editFilter=Editatu Iragazkia
-mb.azmustclose.text=Vuzek amaitu beharra du arazo bat dagoelako Vuzeren (bir)abiaraztean zihurrenik programa erabiltzaile administrari bezala exekutatu izanak eragin duena.\n\nVuze itxi ondoren, mesedez bir-ireki eskuz.
-MyTorrentsView.menu.movemenu=Mugitu Agiriak
v3.splash.hookPluginUI=Elkarketatzen IU Pluginean
-v3.MainWindow.tab.home=Tresnategia
+MyTorrentsView.menu.movemenu=Mugitu Agiriak
+mb.azmustclose.text=Vuzek amaitu beharra du arazo bat dagoelako Vuzeren (bir)abiaraztean zihurrenik programa erabiltzaile administrari bezala exekutatu izanak eragin duena.\n\nVuze itxi ondoren, mesedez bir-ireki eskuz.
ConfigView.section.security.unlockkey=Irekitze giltza bereziak
+v3.MainWindow.tab.home=Tresnategia
PeersView.connected_time.info=Hartzailearekin elkarketaturik emaniko denbora guztia
MyTrackerView.bytesin=Sar. Byte
ConfigView.section.file.perf=Egintza Aukerak
security.crypto.persist_for.30days=30 egun
-installPluginsWizard.list.description=Pluginaren azalpena
MainWindow.dialog.select.vuze.file=Hautatu Vuze Agiria
-label.right.click.for.options=Eskuin-klikatu aukeratarako
-ConfigView.section.transfer.autospeed.latencyfactor=Ezkutuko aldaketak abiadura aldaketekin lotzeko erabiltzen den ezaugarria (zenbaki luzeek sentikortasuna murrizten dute)
+installPluginsWizard.list.description=Pluginaren azalpena
+label.right.click.for.options=Eskuin-klikatu aukerak ikusteko
label.out=Kanpoa
-Progress.reporting.window.remove.now.tooltip=Kendu osaturiko, huts eginiko, edo ezeztaturiko aurrerabide guztiak ikuspenetik
-ConfigView.section.mode.beginner=Hasiberria
+ConfigView.section.transfer.autospeed.latencyfactor=Ezkutuko aldaketak abiadura aldaketekin lotzeko erabiltzen den ezaugarria (zenbaki luzeek sentikortasuna murrizten dute)
br.restore.folder.title=Hautatu Leheneratze Agiritegia
-ConfigView.section.plugins.dht=Banaturiko DB
+ConfigView.section.mode.beginner=Hasiberria
+Progress.reporting.window.remove.now.tooltip=Kendu osaturiko, huts eginiko, edo ezeztaturiko aurrerabide guztiak ikuspenetik
platform.jvmopt.nolink=Ezin dira JVM aukerak kudeatu dagoen itxurapenak eragotzi egiten duelako
+ConfigView.section.plugins.dht=Banaturiko DB
ConfigView.section.connection.encryption.min_encryption_level=Gutxienezko enkriptaketa maila
ConfigView.section.transfer.autospeed.minupload=%1 gutxienezko igoera abidadura
ConfigView.label.seeding.firstPriority.ignoreSPRatio=Emaritza-Hartzaile maila gehiago duten torrentak
tag.discovery.view.options=Aukerak
-core.shutdown.dl=jeisketak burututa
label.click.to.restore=Klikatu Leheneratzeko
+core.shutdown.dl=jeisketak burututa
ConfigView.section.tracker.scrapeandcache=Zuripena eta katxea
-ConfigView.label.seeding.firstPriority.ignore0Peer=0 Hartzaileko Torrentak
ConfigView.section.proxy.port=Ataka
+ConfigView.label.seeding.firstPriority.ignore0Peer=0 Hartzaileko Torrentak
Button.cancel=E&zeztatu
-Peers.column.maxupspeed=Geh. Igoera Abiadura
-label.init.save.loc=Hasierako Gordetze Kokalekua
TableColumn.header.sr_prog=Elkarbanatze Maila Garapena
+label.init.save.loc=Hasierako Gordetze Kokalekua
+Peers.column.maxupspeed=Geh. Igoera Abiadura
CacheView.reads.\#=Zenb.
-MainWindow.menu.tools.speedtest=Abiadura Azterketa...
MainWindow.menu.window.alltofront=Mugitu denak &aurrera
+MainWindow.menu.tools.speedtest=Abiadura Azterketa...
azbuddy.dchat.node.status=%1%2Elkargune\=%3, Eskabideak\=%4
subs.ext.view.info=Vuze harpidetza emaitzak erakusteko kanpoko nabigatzaile bat erabiltzeko itxuratuta duzu
azbuddy.ui.menu.cat.set=Sartu kategoria
-ConfigView.label.seeding.rankType.peer=Berdingarritutako Hartzaile Zenbaketa
OpenTorrentWindow.addFiles.Clipboard=Gehitu Ga&kotik
-plugin.sharing.remove.veto=Elkarbanatze hau elkarbanatze 'zuzenbide edukiak' azpi-elkarbanatze bat da eta ezin da ezabatua izan.\n Ezabatu erro elkarbanatze
+ConfigView.label.seeding.rankType.peer=Berdingarritutako Hartzaile Zenbaketa
ConfigView.group.irctitle=IRC Ezarpenak
-Torrent.create.progress.totalfilecount=Agiri zenbateko osoa\:
+plugin.sharing.remove.veto=Elkarbanatze hau elkarbanatze 'zuzenbide edukiak' azpi-elkarbanatze bat da eta ezin da ezabatua izan.\n Ezabatu erro elkarbanatze
download.removerules.updatetorrents=Kendu Vuze eguneratze torrentak erletaldeak eskatzen badu
-TableColumn.header.tag.type={MySharesView.type}
+Torrent.create.progress.totalfilecount=Agiri zenbateko osoa\:
plugin.aznetstatus.pingtarget=Ping/zantzu bide xedea (Packet INternet Groper\=INternetako Pakete Eskuztatzailea)
+TableColumn.header.tag.type={MySharesView.type}
Trackers.column.peers=Hartzaileak
LoggerView.pause=Pausatu Saio hastea
ConfigView.label.usefastresume=Erabili Berrekite Azkarreko aukera
-speedtest.wizard.test.mode.down=jeitsi
MainWindow.menu.window.minimize=&Ikurtu
+speedtest.wizard.test.mode.down=jeitsi
devices.xcode.only.show=Erakutsi Bakarrik Transkodeatutako Agiriak Gailuan
-ConfigView.pluginlist.column.isOperational=Eragiketakor?
ConfigView.label.savetorrents=Gorde .torrent agiriak
+ConfigView.pluginlist.column.isOperational=Eragiketakor?
external.browser.failed=Kanpoko Nabigatzaile Hutsegitea
-GeneralView.yes=Bai
TableColumn.header.tag_colors=Etiketa Margoak
+GeneralView.yes=Bai
Wizard.Subscription.optin.title=Gaitu Harpidetzak
Formats.units.MB=MB
-health.explain.grey=Esanahi du zure torrenta ez dagoela (ez jeisten ez igotzen)
-configureWizard.file.title=Torrentak / Agiriak
ConfigView.section.style.status.show_rategraphs=Erakutsi bataz-besteko historia grafikak jeisketa/igoera idatzien azpian
+configureWizard.file.title=Torrentak / Agiriak
+health.explain.grey=Esanahi du zure torrenta ez dagoela (ez jeisten ez igotzen)
library.incomplete.header.p=%1 gai jeisten, %2 itxaroten jeisteko
+label.copy.url.to.clip=Kopiatu URL-a Gakora
PeersView.client.info=Hartzaileak erabiltzen duen BT bezero mota
DownloadManager.error.unabletostartserver=Ezgaitu Hasi Zerbitzaria - egiaztatu sarrera atakaren ezarpenak / suhesi baimenak aplikazioa zerbitzari bezala jarduteko
-exportTorrentWizard.process.inputfilebad.message=Hutsegitea gertatu da hurrengo sarrera agiria atzitzean\:
ConfigView.label.seeding.firstPriority.DLMinutes=Igarotako denbora jeisten hastetik
+exportTorrentWizard.process.inputfilebad.message=Hutsegitea gertatu da hurrengo sarrera agiria atzitzean\:
Button.bar.show=Erakutsi
GeneralView.label.maxuploads=Igoera Ahoak\:
DHTView.activity.title=Jarduera
@@ -2942,33 +2978,34 @@ ConfigView.label.quickviewmaxkb=Geh. agiri neurria [KB]
MainWindow.dht.status.initializing=DHT-a Abiarazten
security.crypto.pw.title=Sartu Sarhitza
importTorrentWizard.process.torrentfail.title=Torrentaren Idazketa Hutsegitea
-ConfigView.section.style.dropdiraction.sharefoldercontentsrecursive=Elkarbanatze Edukiak (Baliabidegarria)
ConfigView.section.style.units=Erakutsi Batasunak
+ConfigView.section.style.dropdiraction.sharefoldercontentsrecursive=Elkarbanatze Edukiak (Baliabidegarria)
TableColumn.header.TableColumnInfo=Zutabe Azalpena
-TrackerClient.announce.warningmessage=Aztarnaria '%1' larri itzuli da '%2'
-ConfigView.pluginlist.whereToPut=Ezarri erabiltzaile osagarri bereiziak zeure zuzenbidean\:
message.status.success=Gertaerak
+ConfigView.pluginlist.whereToPut=Ezarri erabiltzaile osagarri bereiziak zeure zuzenbidean\:
+TrackerClient.announce.warningmessage=Aztarnaria '%1' larri itzuli da '%2'
ConfigView.section.proxy.password=Sarhitza
MainWindow.menu.window.zoom.restore=Txikiagotu
ConfigView.section.file.save.peers.max=Gehienezko hartzaile gordetzeko [0\:mugagabe]
ConfigView.section.file.defaultdir.autorename=Berez berrizendatu torrent datuak agiriak helburuan ezberdinak ikusten badira
-PeersView.downloadspeedoverall=Jeisketa Abiadura Guztira
PiecesView.DistributionView.weHave=Dituzun atalak
+PeersView.downloadspeedoverall=Jeisketa Abiadura Guztira
device.mediaserver.remove_all.title=Baieztatu Kentzea
Formats.units.KB=KB
-OpenTorrentWindow.filesInfo=%1 %2-tik izango dira jeitsiak.
device.show=Erakutsi Ezkutatu Gailuak
+OpenTorrentWindow.filesInfo=%1 %2-tik izango dira jeitsiak.
#There is a plugin to help with internationalizing these bundles at http://plugins.vuze.com/plugin_list.php
MainWindow.menu.file.open.torrent=Torrent Agiria...
uninstallPluginsWizard.finish.title=Kentzearen Garapena
ConfigView.section.style.forceMozilla=Behartu Vuze Mozilla erabiltzera tresnak Bilatzeko [xulrunner edo firefox 3 beharrezkoa; berrabiaraztea beharrezkoa]
sidebar.header.transfers=Agiriak
TagGroupWindow.message=Sartu multzoaren izena
-ConfigView.label.seeding.fakeFullCopySeedStart=baina gutxienez duten torrententzat bakarrik
+ConfigView.label.deletetorrents=Ezabatu jatorrizko .torrent agiriak jeisketa gehitu ondoren.
update.instance.update=Eguneraketak Egiaztatzen
+ConfigView.label.seeding.fakeFullCopySeedStart=baina gutxienez duten torrententzat bakarrik
label.plugin.options=Plugin Aukerak...
-UpdateMonitor.messagebox.verification.failed.title=Ezarpen Egiaztapenak Huts egin du
FileItem.normal=Arrunta
+UpdateMonitor.messagebox.verification.failed.title=Ezarpen Egiaztapenak Huts egin du
MyTorrentsView.menu.move=&Mugitu
FilesView.priority=Lehentasuna
label.classic=Klasikoa
@@ -2978,30 +3015,30 @@ SpeedTestWizard.set.upload.result=Azken Azterketaren Emaitza
ConfigView.section.style.showProgramIcon.tooltip=Ikusik bir-irekitzea behar izan dezake aldaketak eragina izan dezaten
IrcClient.topicforchannel=Gaia kanalerako
ConfigView.section.logging.maxsize=Gehienezko ohar agiriaren neurria
-ConfigView.label.seeding.firstPriority.ignore.info=Kontuan izan arau hauek erabiliz torrenta gelditzea gertatu daitekela\njeisketa amaitu bezain laister.
-authenticator.tracker=Aztarnaria
devices.view.title=Gailuak
+authenticator.tracker=Aztarnaria
+ConfigView.label.seeding.firstPriority.ignore.info=Kontuan izan arau hauek erabiliz torrenta gelditzea gertatu daitekela\njeisketa amaitu bezain laister.
azbuddy.ui.mykey=Nire giltza\:
wizard.maketorrents.init.tags=Hasierako etiketak (','-z bananduta)
OpenTorrentWindow.fileList=Agiri torrentetan\:
-ConfigView.dialog.choosedefaulttorrentpath=Mesedez hautatu berezko torrent zuzenbidea
iconBar.queue.tooltip=Hasi (lerrokatuta) hautaturiko torrentak
+ConfigView.dialog.choosedefaulttorrentpath=Mesedez hautatu berezko torrent zuzenbidea
installPluginsWizard.file.browse=Bilatu...
-subs.prop.last_error=Azken akatsa
label.complete=Osatua
+subs.prop.last_error=Azken akatsa
tag.type.ds.inact={label.inactive}
v3.MainWindow.tab.library=Liburutegia
-MainWindow.status.latestversion=Azkena
health.explain.red=Esanahi du ez zaudela inolako hartzailera elkarketaturik jeisketan zehar
-installPluginsWizard.title=Ezarri Pluginak
+MainWindow.status.latestversion=Azkena
configureWizard.nat.server.udp_listen_port=Sarrerako UDP Aditze Ataka
+installPluginsWizard.title=Ezarri Pluginak
webui.port.override=Ataka ezeztatua\: beharrezkoa da bakarrik NAT-aren itxurapenagaitik ataka publikoa eta barneko egoitza ezberdinak direnean.
-TrackerAvail.column.leechers.info={Trackers.column.leechers.info}
security.certcreate.title=Sortu Bere-Sinatze Egiaztagiria
+TrackerAvail.column.leechers.info={Trackers.column.leechers.info}
DetailedListView.title=Zerrenda Zehatza
OpenTorrentWindow.fileTable.destinationName=Helmuga Izena
-ConfigView.label.strictfilelocking=Betearazi bazterketa agiri idazketa sarbide itxipena torrenteetan
FilesView.menu.setpriority.numeric.auto=Zenbakizkoa -Berez Gutxiagoratzen
+ConfigView.label.strictfilelocking=Betearazi bazterketa agiri idazketa sarbide itxipena torrenteetan
TransferStatsView.legend.ping3=3 Xedea
TransferStatsView.legend.ping2=2 Xedea
TransferStatsView.legend.ping1=1 Xedea
@@ -3010,39 +3047,39 @@ ConfigView.section.connection.network.max.simultaneous.connect.attempts=Gehienez
DHTView.general.nodes=Elkarguneak\:
ConfigView.label.openconsole=Ireki kontsola abiatzean
MainWindow.menu.file.create.fromfile=&Agiri &batetik
-ConfigView.section.file.perf.cache.enable=Gaitu diska katxea
-VivaldiView.title.fullcvs=Vivaldi CVS-a
TableColumn.header.SeedingRank=Emaritza Maila
+VivaldiView.title.fullcvs=Vivaldi CVS-a
+ConfigView.section.file.perf.cache.enable=Gaitu diska katxea
ConfigView.section.connection.encryption.encrypt.group=Garraio Enkriptazioa/Itsutzea
SpeedTestWizard.test.panel.enc.label=Sakatu enkriptaketarekin aztertzeko\:
-Button.sendManual=Eskuzko Bidalketa (sortu .zip)
MyTorrentsView.menu.create_personal_share=Sortu Norbere Elkarbanatzea
+Button.sendManual=Eskuzko Bidalketa (sortu .zip)
azbuddy.dchat.share.fail.title=Elkarbanatze Hutsegitea
dlg.auth.title=Eragintza
MainWindow.status.latestversion.clickupdate=Egin klik eguneratzeko
TableColumn.header.availability=Eskuragarritasuna
IPChecker.external.service.discoveryvip.description=Discoveryvip - IP helbidearen egiaztatzea bakarrik
MainWindow.upgrade.section.info=Bertsio Berria Eskuragarri
-upnp.alertdeviceproblems=Jakinarazi UPnP gailuarekin izandako arazoak
PeersView.incomingreqcount=Sarrera Eskabidea
+upnp.alertdeviceproblems=Jakinarazi UPnP gailuarekin izandako arazoak
v3.MainWindow.button.comment=Aipamena
-MainWindow.menu.file.share.dircontents=Agiritegi &Edukiak...
-IrcClient.haskicked=kanporatua izan da
configureWizard.transfer2.mselect=Hautatu zure elkarketaren IGOTZE abiadura muga
+IrcClient.haskicked=kanporatua izan da
+MainWindow.menu.file.share.dircontents=Agiritegi &Edukiak...
ConfigView.label.pauseresume=Berez-pausatu/berrekin
-MainWindow.status.update.tooltip=Klik bikoitza garapen argibideak ikusteko
-UpdateMonitor.messagebox.accept.unverified.text='%1' ez da Vuzeren plugin ofizial bezala egiaztu ahal izan.\nJarraitu behar EZ duen plugina bada.\nEzarpena egin?
swt.uninstall.window.title=Vuze Osagai/Plugin Kentzailea
+UpdateMonitor.messagebox.accept.unverified.text='%1' ez da Vuzeren plugin ofizial bezala egiaztu ahal izan.\nJarraitu behar EZ duen plugina bada.\nEzarpena egin?
+MainWindow.status.update.tooltip=Klik bikoitza garapen argibideak ikusteko
MainWindow.menu.closealldetails=Itxi &Xehetasun Guztiak
Progress.reporting.action.label.retry.tooltip=Birsaiatu eragiketa
-MyTorrentsView.mytorrents=Liburutegia
Subscription.menu.reset=Berrezarri Hasierako Egoera
+MyTorrentsView.mytorrents=Liburutegia
br.restore=Leheneratu
pairing.status.pending=Eguneraketa burutuko da %1
-ConfigView.option.dm.dblclick.play=Irakurri Edukia
devices.sidebar.oxc.closevuze=Utzi Vuze
-CacheView.reads.fromCache=Katxetik
+ConfigView.option.dm.dblclick.play=Irakurri Edukia
ConfigView.section.ipfilter.end=Amaierako IP-a
+CacheView.reads.fromCache=Katxetik
dlg.auth.trial.title=DVD Grabaketa Proba
PeersView.T.info=L (tokikoa)\: zuk ezarri duzu elkarketa, R (hurrunekoa)\: hartzaileak ezarri du elkarketa.
tag.sharing.enable.text=Nahi duzu zure etiketa/kategoria esleipenak izengabe herkidegoarekin elkarbanatzea?\n\nHonek beste erabiltzaileei beren jeisketak antolatzen lagunduko die.\n\nEskuin-klikatu etiketak/kategoriak albobarran banakako ezarpenak aldatzeko beharrezkoa bada.
@@ -3050,117 +3087,119 @@ MyTrackerView.status.published=Argitaratuta
Formats.units.GB=GB
PeersView.BlockView.NextRequest=Hurrrengo Eskabidea
v3.MainWindow.Loading=Gertatzen... Mesedez Itxaron
-azbuddy.ui.menu.send_msg=Sartu zure lagunari bidaltzeko idazkia
ConfigView.section.file.merge.same.size=Saiatu neurri berdina duten osatugabeko agiriak batzen
-ConfigView.pluginlist.broken=Hautsita
+azbuddy.ui.menu.send_msg=Sartu zure lagunari bidaltzeko idazkia
v3.MainWindow.menu.view.toolbartext=Tresnabarra Izena
+ConfigView.pluginlist.broken=Hautsita
GeneralView.label.filename=Izena\:
DownloadManager.error.filetoobig=Torrent agiria handiegia da
-TableColumn.header.maxuploads.info=Gehienez \# hartzaile aldibereko igoeran
azbuddy.dchat.user.status=Online\: %1, Aurkeztuta\: %2
+TableColumn.header.maxuploads.info=Gehienez \# hartzaile aldibereko igoeran
webui.mode=Modua
-iconBar.open.tooltip=Ireki Torrenta(k)
security.crypto.persist_for=Sarhitzaren iraupen epea
+iconBar.open.tooltip=Ireki Torrenta(k)
MainWindow.menu.view.myshares=Nire Elkarbanatzeak
dlg.install.mlab.subtitle=Ezartzen
rcm.rc_tracker.tt=Klikatu aztarnaria bilatzeko
-TableColumn.header.peersources.info=Hartzaile iturburu baimenduak hartzaileekiko elkarketak ezartzeko
-ipCheckerWizard.progresstitle=IP-a Egiaztatzen
-device.search.auto=Berezgaitasunez bilatu gailuak
devices.info.copypending=%1 Agiri Itxaroten Kopiatuak Izateko
-splash.openViews=Ikuspegiak Irekitzen
+device.search.auto=Berezgaitasunez bilatu gailuak
+ipCheckerWizard.progresstitle=IP-a Egiaztatzen
+TableColumn.header.peersources.info=Hartzaile iturburu baimenduak hartzaileekiko elkarketak ezartzeko
ConfigView.option.dm.dblclick.show=Erakutsi Agiria
+splash.openViews=Ikuspegiak Irekitzen
MainWindow.dialog.exitconfirmation.text=Egitan nahi duzu Vuzetik irtetzea?
azbuddy.dchat.rchans.pub=Kanal Publikoa
-DHTTransport.report.received_bit=jasota %1 %2 %3
-iconBar.down.tooltip=Mugitu behera
exportTorrentWizard.finish.title=Osatua
+iconBar.down.tooltip=Mugitu behera
+DHTTransport.report.received_bit=jasota %1 %2 %3
library.core.wait=Une Bat Mesedez...\nVuze Bezeroa Abiatzen ari da
label.options.and.info=A&ukerak/Argibideak...
-Progress.reporting.status.finished=Amaiturik
-ConfigView.label.periodiccheck=Egiaztatu aldizka azken bertsioa ezarrita dagoela
ConfigView.section.file.defaultdir.autorename.tooltip=Honek izenak berdinak direnean torrent batek beste torrent baten agiriak gainidaztea saihesten du
-TableColumn.header.maxupspeed=Geh. Igoera Abiadura
+ConfigView.label.periodiccheck=Egiaztatu aldizka azken bertsioa ezarrita dagoela
+Progress.reporting.status.finished=Amaiturik
plus.notificaiton.ExpiredEntry.s=Zure Vuze Plus harpidetza epea amaitu da\: <A %2>Berritu Orain</A>
+TableColumn.header.maxupspeed=Geh. Igoera Abiadura
MainWindow.menu.language.refresh=&Berritu
MessageBoxWindow.rememberdecision=Gogoratu nire erabakia
plus.notificaiton.ExpiredEntry.p={plus.notificaiton.ExpiredEntry.s}
configureWizard.nat.title=NAT / Zerbitzari Ataka Azterketa
-ConfigView.section.logging.log0type=Argibide
label.current_ip=Oraingo IP Helbidea\:
+ConfigView.section.logging.log0type=Argibide
upnp.refresh_mappings_on_bad_nat=Berezgaitasunez berritu izendapenak NAT egoera "suhesiturik" denean
-splash.plugin.UIinit=EIG Plugina Abiarazten\: %1
DHTView.general.skew=Bihurria\:
-SpeedTestWizard.test.panel.test.countdown=azterketa amaituko da\:
+splash.plugin.UIinit=EIG Plugina Abiarazten\: %1
DHTView.general.users=Erabiltz.\:
+SpeedTestWizard.test.panel.test.countdown=azterketa amaituko da\:
#Used by the webui plugin
MyTorrentsView.menu.removeand.deletetorrent=Ezabatu &Torrent Agiria
ConfigView.label.watchtorrentfolder=Inportatu .torrent berriak berezgaitasunez
torrent.view.info=Ikusi Torrentaren Argibideak...
ConfigView.section.tracker.server.group.networks.info=Hautatu aztarnariak hartzaileak onartuko dituen sarebidea
IrcView.actionnotsupported=Ekintza hau ez dago sostengatuta
-DHTView.operations.findNode=Elkargune Bilaketa
ConfigView.section.tracker.announcecacheperiod=Iragarle katxea (milaen)
+DHTView.operations.findNode=Elkargune Bilaketa
iconBar.up.tooltip=Mugitu gora
+MyTorrentsView.menu.archive=Artxiboa
label.bt.connect=BT Elkarketa
ConfigView.section.proxy.group.tracker=Aztarnari Harremanak
MainWindow.menu.vote=Iradoki Ezaugarri bat
-DHTView.operations.ping=Ping (Int. Pak. Eskuzt.)
ConfigView.label.queue.newseedsmovetop=Mugitu osatutako torrent berrienak emaritzen zerrendaren aurrealdera
+DHTView.operations.ping=Ping (Int. Pak. Eskuzt.)
ConfigView.label.disconnetseed=Eten emaritzak emaritzean
MainWindow.menu.transfers.resumetransfers.keybinding.mac=Meta+Shift+.
-ConfigView.section.connection.group.http=HTTP
device.retry.copy=Birsaiatu Kopiatzen
+ConfigView.section.connection.group.http=HTTP
ConfigView.label.enableSystrayToolTip=Erakutsi jeisketa estatistikak azalean
-MainWindow.menu.file.create.fromdir=Zuzenbide &batetik
ConfigView.section.tracker.maxthreads=Geh. eskabide aldiberean
+MainWindow.menu.file.create.fromdir=Zuzenbide &batetik
ConfigView.section.security.system.managed=Sistema kudeaketa giltza babesa
-MyTorrentsView.menu.sl_remove_from_prof=Kendu Profiletik
Button.mark=Markatu
+MyTorrentsView.menu.sl_remove_from_prof=Kendu Profiletik
ConfigView.section.connection.advanced.SO_SNDBUF=Hartune SO_SNDBUF neurria [0\: erabili SE berez]
torrent.fix.corrupt.browse=Ireki Torrenta
-azbuddy.ui.menu.cat.share=Gaitu lagunekiko harpidetza
memmon.heap.auto.increase.warning=Piloaren oroimena handitu da %1. Vuze berrabiarazitakoan izango du eragina.
+azbuddy.ui.menu.cat.share=Gaitu lagunekiko harpidetza
Formats.units.TiB=TiB
ConfigView.label.seeding.rankType.peerSeed=Hartzaileak\: Emaritza Maila
-platform.win32.baddll.MxAVLsp=VCom Fix-It Erabilgarriak
-DHTView.db.indirect=Zeharka
-PeersView.outgoingreqcount=Irteera Eskabidea
label.more.dot=Gehiago...
-exportTorrentWizard.exportfile.message=Sartu esportatzeko xml agiria
+PeersView.outgoingreqcount=Irteera Eskabidea
+DHTView.db.indirect=Zeharka
+platform.win32.baddll.MxAVLsp=VCom Fix-It Erabilgarriak
DownloadManager.error.unsupportedencoding=Kodeaketa Okerra
+exportTorrentWizard.exportfile.message=Sartu esportatzeko xml agiria
MyTorrentsView.menu.clear_alloc_data=Garbitu Izendapen Egoera
-TorrentOptionsView.multi.title.full=Torrent Aukerak/Argibideak
ConfigView.section.file.decoder.nodecoder=Bat ere ez
+TorrentOptionsView.multi.title.full=Torrent Aukerak/Argibideak
device.router.is_mapping=Berezgaitasunezko ataka mapaketa
MyTorrentsView.filter=Bilatu liburutegian...
configureWizard.transfer2.message=Bittorrent tit-for-tat hartuemanean ohinarrituta dago - orokorrean zure igoera azkarrena, zure jeisketa azkarrena - zein jeisketa azkarra, eta elkarbanatze maila on bat azkar lortzeko, behar duzu igoera abiadura on bat.\n\nHorrela ere, zure elkarketarako azkarregi igotzen baduzu, gainzamatu egin dezakezu errendimendu orokorra motelagoa izanez eta sarearen baliabideengaitik lehiatzen diren beste aplikazioei eraginez.\n\nHortaz garrantzitsua da zama muga o [...]
ConfigView.section.tracker.client.connecttimeout=Elkarketa itxaronaldia (seg)
GeneralView.label.maxdownloadspeed.tooltip=geh. jeisketa abiadura [0\: mugagabea]
azbuddy.ui.menu.enc=Enkriptautu Gakoa
-dial.up=Urrutizkin bidezko Internet elkarketa
ConfigView.label.piecereorder=Erantsi datuak jeitsitako agiriei eta berrantolatu atalak jeisketa garapen bezala
-MainWindow.dialog.share.sharefile=Hautatu Elkarbanatzeko Agiria
-MainWindow.menu.transfers.pausetransfers=&Pausatu
+dial.up=Urrutizkin bidezko Internet elkarketa
device.itunes.status.notinstalled=iTunes ez dago ezarrita
+MainWindow.menu.transfers.pausetransfers=&Pausatu
+MainWindow.dialog.share.sharefile=Hautatu Elkarbanatzeko Agiria
stats.general.smooth_secs=Lehundutako bataz-besteko leiho neurria [seg]
-DHTView.general.contacts=Harremanak\:
upnp.ignorebaddevices.reset.action=Berrezarri
-OpenTorrentWindow.mb.existingFiles.text=Agirietako batzuk jadanik badaude adierazitako agiritegian\:\n\n%1\nJarraitzen baduzu, Vuzek datu zuzenak lortzeko agirien gaineko egiaztapena egin dezake eta gainidatzi beharrezkoa bada.
-MainWindow.menu.file.share.dircontentsrecursive=Agiritegiko Edukiak... (&Baliabideak)
+DHTView.general.contacts=Harremanak\:
ConfigView.section.security.nopw=Sarhitzik gabe jarrita
+MainWindow.menu.file.share.dircontentsrecursive=Agiritegiko Edukiak... (&Baliabideak)
+OpenTorrentWindow.mb.existingFiles.text=Agirietako batzuk jadanik badaude adierazitako agiritegian\:\n\n%1\nJarraitzen baduzu, Vuzek datu zuzenak lortzeko agirien gaineko egiaztapena egin dezake eta gainidatzi beharrezkoa bada.
TableColumn.header.min_sr={min.sr.window.title}
+tagtype.discovered=Aurkitutako Etiketa
GeneralView.label.downloadspeed=Jeisketa Abiadura\:
v3.MainWindow.menu.view.sidebar=Alboko Barra
AlertMessageBox.unread=Irakurri gabeko mezu alertak dituzu - klikatu hemen ikusteko.
Trackers.column.seeds=Emaritzak
-ConfigView.section.sharing.permitdht=Baimendu zentralizatu gabeko jarraipena aztarnaria eskuraezina denean
-MySeeders.bigView.header=CDLiburutegia
MainWindow.menu.speed_limits.profile=Sartu Profil Izena
-MainWindow.menu.view=&Ikusi
+MySeeders.bigView.header={sidebar.LibraryCD}
+ConfigView.section.sharing.permitdht=Baimendu zentralizatu gabeko jarraipena aztarnaria eskuraezina denean
beta.wizard.link=Egin klik hemen beta argitalpenen webgunera joateko
-ConfigView.section.style.addurlsilently=Ireki pasatutako URL-ak modu isilean
+MainWindow.menu.view=&Ikusi
ConfigView.section.ipfilter.list.inrange=barrutian zegoen
+ConfigView.section.style.addurlsilently=Ireki pasatutako URL-ak modu isilean
PeersView.host=Hostalari Izena
TorrentInfoView.columns='{library.name}' Zutabeak ikusi
ColumnSetup.categories=Kategoriak\:
@@ -3174,59 +3213,60 @@ devices.sidebar.onxcodecomplete=Transkodeaketa Osaketan
label.in=Hemen
ConfigView.label.autoSeedingIgnoreInfo=Baztertutako torrentak emaritzen lerroko beherenera doaz. Ez dira berezgaitasunez hasiko.\nEzikusi arauak ez dira Lehentasun Nagusia irizpidea duten torrentei ezartzen.\nAlderantzizkoa adierazten ez bada, erabili 0 balio bat araua ezgaitzeko.
TableColumn.header.\#.info=Lehentasun/Kokapen/Antolaketa Zenbakia
-ConfigView.section.tracker.port=Gaitu aztarnaria HTTP atakan
search.dialog.text=Sartu torrent berriak bilatzeko idazkia\:
+ConfigView.section.tracker.port=Gaitu aztarnaria HTTP atakan
azbuddy.dchat.ui.max.kb=Geh. hizki txat leiho bakoitzeko [KB]
UpdateWindow.status.restartMaybeNeeded=Berrabiaraztea beharrezkoa izan daiteke
+ArchivedFilesView.name={FilesView.name}
ConfigView.group.override=Ezeztatu Aukerak
-fileDownloadWindow.status=Egoera\:
TableColumn.header.activityType=Mota
-azbuddy.dchat.copy.channel.export=Kanal Babeskopia
+fileDownloadWindow.status=Egoera\:
TableColumn.header.activityActions=Eragiketak
+azbuddy.dchat.copy.channel.export=Kanal Babeskopia
ConfigView.label.xfer.bias_slack=KB/s gutxienez gordeta jeisketa osatuentzat
MinimizedWindow.name=Izena\:
-Trackers.column.updatein.info=Hurrengo eguneraketa arteko denbora
aznettorbrowser.install.text=Ezarri Tor Nabigatzailea Plugina .onion eta .i2p web eduki nabigazioa sostengatzeko?
+Trackers.column.updatein.info=Hurrengo eguneraketa arteko denbora
PeerColumn.activationCount=Elkarketa egiten saiatzen diren hartzaileak\: %1
ConfigView.section.interface.legacy=Ondasuna
TableColumn.header.Rating=Mailatzen
-IrcView.title.short=IRC
ConfigView.section.sharing.usessl=Erabili SSL elkarbanatze iturburuentzat (beharrezkoa Aztarnari itxurapena)
+IrcView.title.short=IRC
ConfigView.label.startwatchedtorrentsstopped.tooltip=Gehitu .torrent berria GELDITUTA egoeran
-FileItem.low={SpeedTestWizard.name.conf.level.low}
GeneralView.label.swarm_average_completion.tooltip=Erletaldeko hartzaileen osaketa bataz-besteko ehunekoa
+FileItem.low={SpeedTestWizard.name.conf.level.low}
device.odpt.enable=Torrent pribatuak barne
SWT.alert.erroringuithread=Kudeatu ezinezko akats bat gertatu da EIG-an, akats gehiago egon daiteke.
-metasearch.addtemplate.failed.desc=Hutsegitea eredua ezartzerakoan\: %1
-TableColumn.header.trancode_completion=Bihurketaren Garapena
ConfigView.section.style.useTree=Erakutsi Agiriak Liburutegia ikuspegietan (Berrabiaraztea Beharrezkoa)
+TableColumn.header.trancode_completion=Bihurketaren Garapena
+metasearch.addtemplate.failed.desc=Hutsegitea eredua ezartzerakoan\: %1
message.taking.too.long=Badirudi uste baino denbora gehiago hartzen ari dela\nSakatu 'ESC' eragiketa hau ezeztatzea nahi baduzu
-Button.open=Ireki
mdi.entry.chatsoverview={chats.view.heading}
-v3.MainWindow.search.last.tooltip=Itzuli bilaketa emaitzetara
+Button.open=Ireki
ConfigView.section.tracker.client.enabletcp=Gaitu HTTP/HTTPS aztarnari bezero protokoloa
+v3.MainWindow.search.last.tooltip=Itzuli bilaketa emaitzetara
exportTorrentWizard.process.inputfilebad.title=Torrent Agiri Baliogabea
ConfigView.label.closetotray=Itxik Sistemaren Erretilura ikurtzen du
-ConfigView.filter=idatzi iragazteko hitza(k)
-ConfigView.label.zeronewfiles=Esleitu eta hasieratu agiri berriak, haiek sortzen direnean
tag.sharing.enable.title=Elkarbanatu Herkidegoarekin
+ConfigView.label.zeronewfiles=Esleitu eta hasieratu agiri berriak, haiek sortzen direnean
+ConfigView.filter=idatzi iragazteko hitza(k)
Scrape.status.disabled=Zuritzea Ezgaituta
ConfigView.section.connection.peersource.Incoming=Sarrera elkarketak
MainWindow.dialog.share.sharedircontents=Hautatu Elkarbanatzeko Agiritegiko Edukia
menu.delete.options.keybinding=EZAB
label.more=Gehiago
TagRenameWindow.title=Berrizendatu Etiketa
-MainWindow.menu.view.configuration.keybinding=Meta+,
devices.od=Lineaz-kanpoko jeistzailea
+MainWindow.menu.view.configuration.keybinding=Meta+,
ConfigView.section.transfer.autospeed.reset.button=Berrezarri
-DHTView.transport.bytes=Byte
pairing.explicit.enable=Gaitu
+DHTView.transport.bytes=Byte
subscriptions.config.auto=Berez-jeisketa
-DHTView.general.dying=Azkenetan\:
ConfigView.label.systray=Sistema Erretilua
+DHTView.general.dying=Azkenetan\:
Pieces.column.\#=Zenb.
-upnp.releasemappings=Askatu mapaketak itxieran
sidebar.header.dvd=DVD Grabaketa
+upnp.releasemappings=Askatu mapaketak itxieran
DHTTransport.report.timeout=denboraz-kanpo, erantzunik ez %1
wizard.hint.mode=Aholkua\: Agiri bat edo zuzenbide bat Arrastatu eta Askatu dezakezu\n\t laguntzaile honetan agiria edo zuzenbidea hautatzeko
v3.MainWindow.currentDL=Orain Jeisten
@@ -3239,31 +3279,31 @@ ConfigTransferAutoSpeed.set.point=zehazte puntua (sm)
subscriptions.listwindow.popularity=Ezaguntasuna
label.more.info.here=Klikatu argibide gehiagorako
TableColumn.header.completed=Osatuta
-iconBar.start.tooltip=Hasi hautatutako torrenta(k)
-deletedata.title=Ezabatu edukia
-TableColumn.header.maxdownspeed.info=Hartzailean ezarritako jeisketa abiadura muga
azmsgsync.install.text='Mezu Aldiberetzea' Plugina beharrezkoa da txat deszentralizaturako [ezgaituta jadanik ezarrita badago]
+TableColumn.header.maxdownspeed.info=Hartzailean ezarritako jeisketa abiadura muga
+deletedata.title=Ezabatu edukia
+iconBar.start.tooltip=Hasi hautatutako torrenta(k)
FilesView.size=Neurria
GeneralView.label.trackerurl=Aztarnariaren URL-a\:
ConfigView.section.torrents=Torrentak
MySharesView.type.dir=Zuzenbidea
DHTView.activity.type.4=Kanpo Ezarpena
-DHTView.activity.type.3=Barne Ezarpena
ConfigView.section.tracker.host.addurls=Zihurtatu aztarnari hauen URL-ak hostatutako torrenteetan daudela
+DHTView.activity.type.3=Barne Ezarpena
DHTView.activity.type.2=Kanpo Lorpena
-importTorrentWizard.torrentfile.path=Helburua\:
DHTView.activity.type.1=Barne Lorpena
-exportTorrentWizard.title=Esportatu XML torrenta
+importTorrentWizard.torrentfile.path=Helburua\:
SpeedView.stats.upbias=Igoera bideak\:
-dht.reseed.ip=IP helbidea
-ConfigView.label.openbar.complete=berez ireki emaritzak
+exportTorrentWizard.title=Esportatu XML torrenta
devices.copy.pending=Agiri kopia egiteke
-subs.prop.version=Bertsioa
-dlg.stream.plus.renew.text=Berritu zure Vuze Plus harpidetza zure bideoak irakurtzen jarraitzeko jeitsita bezala.
+ConfigView.label.openbar.complete=berez ireki emaritzak
+dht.reseed.ip=IP helbidea
label.trackers=Aztarnariak
-webui.homepage=Etxeko orrialdea
-ConfigView.label.prioritizemostcompletedfiles=Gainontzeko agiriei lehentasun Handia eman osatutako % -aren eta agiri neurriaren arabera
+dlg.stream.plus.renew.text=Berritu zure Vuze Plus harpidetza zure bideoak irakurtzen jarraitzeko jeitsita bezala.
+subs.prop.version=Bertsioa
azbuddy.contextmenu=Bi&dali Lagun Bati
+ConfigView.label.prioritizemostcompletedfiles=Gainontzeko agiriei lehentasun Handia eman osatutako % -aren eta agiri neurriaren arabera
+webui.homepage=Etxeko orrialdea
Plugin.trackerpeerauth.name=Aztarnari Hartzaile Baimena
MainWindow.upgrade.assistant=Berritze Laguntzailea
updater.progress.window.title=Oraingo Ezarpen Eginkizunak
@@ -3272,40 +3312,40 @@ rcm.view.heading=Erlatalde Aurkituak
ConfigView.section.NATPMP=NAT-PMP
subscriptions.column.nb-new-results=Emaitza Berriak
MyTorrentsView.menu.rename.displayed=Berrizendatu Erakutsitako Izena
-ConfigView.section.tracker.client.scrapeenable=Gaitu zuriketa
ConfigView.label.serverport=Sarrerako TCP / UDP aditze ataka
+ConfigView.section.tracker.client.scrapeenable=Gaitu zuriketa
Formats.units.GiB=GiB
-GeneralView.label.connected=elkartuta
importTorrentWizard.process.outputfileexists.title=Agiria Badago
+GeneralView.label.connected=elkartuta
tps.pex.details=Elkarketaturik %1 hartzailera (egiteke\: hal\=%2, beste\=%3)
-configureWizard.transfer.maxActiveTorrents=Gehienez Eraginda
-configureWizard.file.path=Helburua\:
-OpenTorrentWindow.mb.noDestDir.title=Helmuga Zuzenbidea ez da aurkitu
-remote.pairing.title=Hurruneko Uztarpena
+configureWizard.transfer.maxActiveTorrents=Gehienez Jardunean
PeersView.menu.kick=Ostikoa
+remote.pairing.title=Hurruneko Uztarpena
+OpenTorrentWindow.mb.noDestDir.title=Helmuga Zuzenbidea ez da aurkitu
+configureWizard.file.path=Helburua\:
MagnetPlugin.report.waiting_ddb=DDB abiarazpena itxaroten...
MyTrackerView.bytesoutave=Irt. Bat.best.
-ConfigView.label.stop.seedcomp=Emaritza burutu denean
azbuddy.dchat.rchans.anon=Izengabeko Kanalak
+ConfigView.label.stop.seedcomp=Emaritza burutu denean
webui.pairing.info.y=Uztarpena gaituta dago, ikusi Elkarketa ->Uztarpena aukerak xehetasun gehiagorako.
security.crypto.password.mismatch.title=Sarhitz Akatsa
wiki.fat32=http\://wiki.vuze.com/w/FAT32_agir_neurri_muga
ConfigView.label.seeding.rankType.none=Bat ere ez
-webui.pairing.info.n=Uztarpena ezgaiturik dago, ikusi Elkarketa->Uztarpena aukerak ezaugarri honen argibide gehiagorako
-device.xcode.never=Inoiz
+webui.pairing.info.n=Uztarpena ezgaituta dago, ikusi Elkarketa->Uztarpena aukerak ezaugarri honen argibide gehiagorako
Button.validate=Balioztatu
+device.xcode.never=Inoiz
quick.view.scheduled.title=Egitaraupen Ikuspen Azkarra
MainWindow.menu.file.export.keybinding.mac=Meta+Shit+E
-TableColumn.header.completion.info=Jeitsitako ehunekoa adierazten duen grafikoa
sr_prog.window.message=Sartu elkarbanatze maila garapen grabaketa tartea (adib. 1.0 \= kopia oso guztiak)
-subscript.import.fail.title=Inportatzeak Huts egin du
+TableColumn.header.completion.info=Jeitsitako ehunekoa adierazten duen grafikoa
Button.add=Gehitu
+subscript.import.fail.title=Inportatzeak Huts egin du
StartStopRules.0Peers=0 Hartzaile
-wizard.webseedseditor.edit.title=HTTP Emaritza Editorea
MainWindow.menu.pairing=Hurruneko Uztarpena
+wizard.webseedseditor.edit.title=HTTP Emaritza Editorea
remote.pairing.instruction2={remote.pairing.instruction} Aukeran, eskaneatu QR kodea zure sakeleko gailura eta jauzi sarbide kodea sartu behar izatea.
-IrcView.noticefrom=Oharra\:
xmwebui.required='Vuze Hurruneko Webgunea' plugina ezarri behar duzu lan honetarako\n\nIkusi Tresnak->Pluginak->Ezarpen Laguntzailea...
+IrcView.noticefrom=Oharra\:
v3.iconBar.view.small.tooltip=Ikusi Zerrenda Aurreratu bezala
OpenTorrentWindow.mb.noGlobalDestDir.title=Helmuga Zuzenbidea ez da aurkitu
SpeedTestWizard.abort.message.scheduled.in=azteketa egitarauturik ... %1 segundutan
@@ -3314,177 +3354,179 @@ window.updateswt.ignore=Ez ikusi
devices.xcode.autoCopy=Berezgaitasunez Kopiatu Agiritegira
PeersView.BlockView.Avail.NoHave=Hartzaileak du; Zuk ez
pairing.ipv6=IPv6 Helbide publikoa
-Search.menu.engines=Ereduak
pairing.ipv4=IPv4 Helbide publikoa
+Search.menu.engines=Ereduak
+mdi.entry.archiveddownloadsview={archivedlsview.view.heading}
ConfigView.section.security.backupkeys=Babeskopia giltza agiri bati
azbuddy.ui.new_buddy=Lagun berriaren giltza\:
#
# 2.0.4.4
#
ConfigView.section.style.guiUpdate=EIG eguneratze epea
-MainWindow.menu.file.export.keybinding=Meta+E
DHTOpsView.notAvailable=BDB Grafika ez dago eskuragarri
+MainWindow.menu.file.export.keybinding=Meta+E
PiecesView.DistributionView.theyHave=Hartzaileak dituen atalak
DHTView.title.full_v6=Banaturiko Datubasea IPv6
subscriptions.listwindow.popularity.reading=Irakurtzen...
-configureWizard.transfer.connection.7=adsl/xxx kablea/1024 kbs-koa
ConfigView.label.start.onlogin=Hasi Vuze izena emanda
+configureWizard.transfer.connection.7=adsl/xxx kablea/1024 kbs-koa
configureWizard.transfer.connection.6=adsl/xxx kablea/768 kbs-koa
-configureWizard.transfer.connection.5=adsl/xxx kablea/512 kbs-koa
UpdateWindow.cancel=Ezeztatu
-configureWizard.transfer.connection.4=adsl/xxx kablea/384 kbs-koa
+configureWizard.transfer.connection.5=adsl/xxx kablea/512 kbs-koa
progress.window.title=Eragiketa Garatzen
-configureWizard.transfer.connection.3=adsl/xxx kablea/256 kbs-koa
+configureWizard.transfer.connection.4=adsl/xxx kablea/384 kbs-koa
TableColumn.header.resolution=Bereizmena
+configureWizard.transfer.connection.3=adsl/xxx kablea/256 kbs-koa
configureWizard.transfer.connection.2=adsl/xxx kablea/128 kbs-koa
-configureWizard.transfer.connection.1=modema
ConfigView.section.security.unlockkey.error=Huts egin du giltza irekitzean - sarhitz okerra
-configureWizard.transfer.connection.0=Norbererara
+configureWizard.transfer.connection.1=modema
ConfigView.option.dm.dblclick.show._mac=Erakutsi Agiria(k) Finder-en
+configureWizard.transfer.connection.0=Norbererara
ConfigView.eta.abbreviated=U\:
ConfigView.section.DNS={label.DNS}
-tag.type.ds.stop={ManagerItem.stopped}
device.odauto.enable=Berezgaitasunez kudeatu jeisketak
+tag.type.ds.stop={ManagerItem.stopped}
ConfigView.label.allowSendVersion=Ahalbidetu Vuzeri bertsio zenbakia eta zorizko id izengabeak bidaltzen bertsio berriaren bila ari denean
OpenTorrentFile.column.priority={FilesView.priority}
-tag.property.constraint=Murrizketak
-iconBar.bottom.tooltip=Mugitu beheren
-MainWindow.menu.view.beta=Beta Programa
dlg.stream.plus.renew.title=Vuze Plus Berritzea
-MainWindow.menu.file.folder=&Agiritegia...
+MainWindow.menu.view.beta=Beta Programa
+iconBar.bottom.tooltip=Mugitu beheren
+tag.property.constraint=Murrizketak
wizard.choosedirectory=Hautatu zuzenbidea
+MainWindow.menu.file.folder=&Agiritegia...
TableColumn.header.Country.info=Hartzailea kokaturik dagoen herrialdea
wizard.multitracker.new=Berria...
devices.restrict_access.msg=IP zerrenda kakotxaz banandurik baimentzeko [edo ukatzeko aurrezenbakia bada -]
MyTorrentsView.clearFilter.tooltip=Garbitu Iragazkia
ConfigView.label.switchpriority.tooltip=Lehentasun txikiak torrentari izendaturiko igoera bandazabalera zenbatekoa murrizten du
-dialog.associations.prompt=Vuze ez da BitTorrent agirientzako berezko aplikazioa.\nNahi duzu .torrent agiriak Vuzerekin elkartzea
Button.retarget=Birxedetu
+dialog.associations.prompt=Vuze ez da BitTorrent agirientzako berezko aplikazioa.\nNahi duzu .torrent agiriak Vuzerekin elkartzea
restart.error.oom=Oroimenetik kanpo
columnChooser.columndescription=Azalpena
RCM.column.rc_title=Izena
TableColumn.header.tag.copyoncomp={label.copy.on.comp}
-v3.topbar.menu.show.logo=Logoa
-PeersView.BlockView.NoAvail.NoHave=Inork ez du
-ConfigView.section.tracker.sendjavaversionandos=Bidali Java bertsioa eta Sistema Eragile izena
configureWizard.title=Itxurapen Laguntzailea
+ConfigView.section.tracker.sendjavaversionandos=Bidali Java bertsioa eta Sistema Eragile izena
+PeersView.BlockView.NoAvail.NoHave=Inork ez du
+v3.topbar.menu.show.logo=Logoa
ConfigView.section.connection.advanced.write_select_min=Idatzi hautatutako gutxienezko itxaronaldia (milaen, berezkoa %1)
ConfigView.text.neverStart=Ez Hasi Inoiz
TableColumn.header.remaining=Egiteke
TableColumn.header.swarm_average_completion=Hartzaileen Bataz-besteko Osatua
config.external.browser.prog=Nabigatzaile exekutagarria
-swt.uninstall.window.ok=Kendu
pairing.host=Hostalari izena (DNS izena)
-MyTorrentsView.menu.explore._windows=Erakutsi Ex&plorerrean
-GeneralView.label.completed=Osatuta\:
+swt.uninstall.window.ok=Kendu
MyTorrentsView.menu.ipf_enable=Gaitu IP Iragazkia
+GeneralView.label.completed=Osatuta\:
+MyTorrentsView.menu.explore._windows=Erakutsi Ex&plorerrean
sidebar.sash.tooltip=F7 albobarra ezkutatu/erakutsi azkarrerako
azbuddy.ui.table.last_msg=Azken Mezua
OpenTorrentWindow.changeDestination=Aldatu Helmuga
-GeneralView.label.maxdownloadspeed=Jeisketa Muga
popup.error.hideall=Ezkutatu Denak
+GeneralView.label.maxdownloadspeed=Jeisketa Muga
br.backup.last.time=Azken babeskopia eginda\:
-pairing.op.fail=Uztarpen Eragiketa Hutsegitea
dialog.add.peers.msg=Sartu hartzaile bakoitzaren helbidea honela <hostalaria>\:<ataka> - kakotxaz bananduz sarrera anitz badira
+pairing.op.fail=Uztarpen Eragiketa Hutsegitea
DHTView.db.local=Tokikoa
MainWindow.about.section.system=Sistema
SystemTray.menu.exit=I&rten
-PeersView.state=Egoera
MyTorrentsView.menu.exporthttpseeds=Esportatu HTTP emaritza URL-ak gakora
-ConfigView.section.mode.advanced=Aurreratua
+PeersView.state=Egoera
smooth.config=(ikusi itxurapena leiho iraupena ezartzeko)
+ConfigView.section.mode.advanced=Aurreratua
health.explain.blue=Emaritzean, esanahi du ez zaudela inolako hartzailera elkarketaturik.\nJeistean, esanahi du zenbait hartzaileetara elkarketaturik zaudela, baina aztarnaria bertan behera dagoela
ConfigView.section.tracker.maxposttimemultiplier=LORTU denbora biderkatzailea POST jardunerako [0\: mugagabea]
-webui.access=Sarbidea
-wizard.singlefile.help=Sortu torrenta agiri bakarretik
devices.xcode.tagshare=Elkarbanatu Etiketadun Transkodeaketak
+wizard.singlefile.help=Sortu torrenta agiri bakarretik
+webui.access=Sarbidea
TableColumn.header.bad_avail_time.info=Jeisketaren kopia oso bat eskuragarria izan zen azken aldia
-SharedPortServer.alert.selectorfailed=Huts egin du sarrerako datuen aditze ezartzeak.\nEgiaztatu suhesi ezarpenak java(w).exe baimentzen duen 'zerbitzari' bezala ekiteko
-ConfigView.section.style.addurlsilently.tooltip=Berezgaitasunez jeitsi pasatutako/askatutako .torrenten URL-ak elkarrizketa kutxa ireki gabe.
-v3.menu.device.defaultprofile=Berezko Profila
library.category.header=Kategoria '%1'
+v3.menu.device.defaultprofile=Berezko Profila
+ConfigView.section.style.addurlsilently.tooltip=Berezgaitasunez jeitsi pasatutako/askatutako .torrenten URL-ak elkarrizketa kutxa ireki gabe.
+SharedPortServer.alert.selectorfailed=Huts egin du sarrerako datuen aditze ezartzeak.\nEgiaztatu suhesi ezarpenak java(w).exe baimentzen duen 'zerbitzari' bezala ekiteko
ipCheckerWizard.checkFailed=Huts egin du, zergaitia\:
-wizard.maketorrents.autoopen=Ireki torrenta emaritzarako egindakoan
-PiecesView.BlockView.NoHave=Ez Duzu
-TrayWindow.menu.exit=I&rten
TorrentOptionsView.param.max.peers=Geh. elkarketa zenbatekoa [0\: mugagabea]
+TrayWindow.menu.exit=I&rten
+PiecesView.BlockView.NoHave=Ez Duzu
+wizard.maketorrents.autoopen=Ireki torrenta emaritzarako egindakoan
MainWindow.nat.status.tooltip.ok=Eskuragarritasuna Ongi (TCP)
ConfigView.section.logging.udptransport=Gaitu UDP garraio aztarna aditzea
label.no.suggestions=Ez dago Iradokizunik
-exportTorrentWizard.process.unknownfail.title=Ustekabeko Akatsa
device.model.name=Eredu izena
+exportTorrentWizard.process.unknownfail.title=Ustekabeko Akatsa
SpeedTestWizard.set.upload.button.apply=Ezarri
-v3.iconBar.view.big.tooltip=Ikusi Zerrenda Arrunt bezala
+TableColumn.header.DateTorrentLastActive=Azken Jarduera
label.anon.i2p=Izengabekoa (I2P)
+v3.iconBar.view.big.tooltip=Ikusi Zerrenda Arrunt bezala
ConfigView.label.maxnumwant=Mugatu itzul daitezkeen aztarnari hartzaile zenbatekoa
-TableColumn.header.crc32=CRC-32
OpenTorrentWindow.startMode.seeding=Emaritzen
+TableColumn.header.crc32=CRC-32
label.outbound=Kanporakoa
ConfigView.auto=Berez
PeerSocket.bad_peer_id=hartzaile txar ID-a
-TorrentInfoView.torrent.encoding=Torrent kodeaketa
ConfigView.label.lh.ext=Hedapenak
+TorrentInfoView.torrent.encoding=Torrent kodeaketa
ConfigView.section.transfer.autospeed.enabledownadj=Gaitu jeisketa abiadura neurriratzea
subs.prop.last_result=Aurkituriko azken emaitz berriak
AlertMessageBox.comment=Aipamena
webui.tor_dest=Tor helbidea
-azbuddy.dchat.anon.nick=Izengabeko goitizena elkarbanatuta
-ConfigView.section.file.decoder.prompt.tooltip=Erakutsi betik elkarrizketa kodeaketa aukera eskuragarri dagoenean
-DHTTransport.report.sending=datuak bidaltzen
GeneralView.label.trackerurlopen.tooltip=Egin klik aztarnariaren orri nagusia irekitzeko
-MyTorrentsView.menu.health=Osasunari buruz
+DHTTransport.report.sending=datuak bidaltzen
+ConfigView.section.file.decoder.prompt.tooltip=Erakutsi betik elkarrizketa kodeaketa aukera eskuragarri dagoenean
+azbuddy.dchat.anon.nick=Izengabeko goitizena elkarbanatuta
dialog.pause.for.period.title=Sartu Denbora Epea
+MyTorrentsView.menu.health=Osasunari buruz
SpeedTestWizard.test.panel.currinfo=BitTorrent bandazabalera aztertzen.
-ConfigView.section.connection.encryption.min_encryption_level.tooltip=Laua- eskuematea bakarrik\nRC4 - jario osoa\nEnkriptaketa handiagoak CPU gehiago behar du .
-label.protocol={Peers.column.Protocol}
+ConfigView.section.connection.encryption.min_encryption_level.tooltip=Laua - eskuematea bakarrik\nRC4 - jario osoa\nEnkriptaketa handiagoak CPU gehiago behar du .
ConfigView.label.watchtorrentfolderinterval.tooltip=Agiritegia berriro mihatu arteko pausaldia
-MainWindow.menu.file.closewindow=Itxi &Leihoa
-FilesView.menu.open=&Ireki
+label.protocol={Peers.column.Protocol}
device.mediaserver.remove_all.desc=Zihur zaude multimedia Zerbitzari denak kentzea nahi dituzula?
+FilesView.menu.open=&Ireki
+MainWindow.menu.file.closewindow=Itxi &Leihoa
Subscription.menu.resetauth=Berrezarri Egiaztapen Xehetasunak
installPluginsWizard.list.nullversion=Bertsiorik ez
-v3.MainWindow.menu.contentnetworks.manage=&Kudeatu HD Sareak
OpenTorrentOptions.title=Ireki Torrenta Aukerak
-CacheView.speeds.fromCache=Katxetik/Katxera
+v3.MainWindow.menu.contentnetworks.manage=&Kudeatu HD Sareak
DHTView.operations.sent=Bidalia
+CacheView.speeds.fromCache=Katxetik/Katxera
SpeedView.stats.measured=Neurtuta
label.mute=Mututu
-configureWizard.transfer2.test=Abiatu Azterketa
ColumnRenameWindow.title=Berrizendatu Zutabea
+configureWizard.transfer2.test=Abiatu Azterketa
device.playnow.group=Irakurri Orain
Trackers.column.updatein=Hurrena
ipCheckerWizard.checkComplete=IP osatua\:
PiecesView.DistributionView.SeedAvl=Emaritza Eskur.Ekarpena
change.url.msg.title=Aldatu '%1'-rako URL-a
-ConfigView.label.openmytorrents=Ireki Liburutegia hasitakoan
UpdateWindow.columns.size=Neurria
+ConfigView.label.openmytorrents=Ireki Liburutegia hasitakoan
network.ipbinding.icon.show=Erakutsi egoera ikurra egoerabarran loturak eraginda daudenean
MainWindow.dht.status.users=%1 erabiltzaile
-TableColumn.header.alerts={ConfigView.section.interface.alerts}
FilesView.rename.choose.path=Hautatu dagoen agiria edo berri bat
-ConfigView.section.irc=IRC
-device.import.title=Gailua Inportatu?
+TableColumn.header.alerts={ConfigView.section.interface.alerts}
azmsgsync.install.ok.msg=Mezu Aldiberetze Plugina ongi ezarri da
+device.import.title=Gailua Inportatu?
+ConfigView.section.irc=IRC
tag.type.man=Eskuzkoa
-Formats.units.Mbit=Mbit
MainWindow.sr.status.tooltip.bad=Elkarbanatze Maila %1 gaizki\: < 0.5
+Formats.units.Mbit=Mbit
subscription.request.add.message=%1 RSS jario bat da\n\nGehitu harpidetza berri bat?
ConfigView.section.style.dropdiraction.opentorrents=Ireki Torrentak
-ConfigView.section.file.readmblimit.explain=Neurri honek prozesatzeke dauden irakurketak biltegiratzeko zenbat oroimen erabiliko den mugatzen du
xcode.deletedata.message.2=\n(hemen kopia bat egon daiteke oraindik '%1')
+ConfigView.section.file.readmblimit.explain=Neurri honek prozesatzeke dauden irakurketak biltegiratzeko zenbat oroimen erabiliko den mugatzen du
MainWindow.status.checking=egiaztatzen
IrcView.help=Baliozko aginduak hauek dira\:\n . /help\: mezu hau erakusten du\n . /nickname | /name\: zure izena aldatzen du \n . /me action\: ekintza bat bidaltzen du \n . /msg nick message\: mezu pribatua bidaltzen dio <nick>-(e)ri\n . /r message\: azken mezu pribatuari erantzuten dio\n . /join \#channelB (ez egin klik hemen, adibide bat da)\: uneko kanaletik BKanalera aldatzen du
TableColumn.header.tag.downlimit={TableColumn.header.maxdownspeed}
ClientStats.column.percent=%
DHTView.general.leaves=Orriak\:
+ColumnSetup.availcolumns=Eskuragarri %1 zutabe
+subscript.add.title=Ezarri Harpidetza?
+MainWindow.menu.plugins.installPlugins=E&zarpen Laguntzailea...
# %1 = total speed; %2 = # of slots; %3 = speed per slot
MyTorrentsView.menu.setSpeed.multi=%1 {MyTorrentsView.menu.setSpeed.in} %2 {MyTorrentsView.menu.setSpeed.slots} %3
-MainWindow.menu.plugins.installPlugins=E&zarpen Laguntzailea...
-subscript.add.title=Ezarri Harpidetza?
-ColumnSetup.availcolumns=Eskuragarri %1 zutabe
-ConfigView.label.seeding.numPeersAsFullCopy=Saiatu kopia oso Bat izaten denentzat\n(0 \: Ez Saiatu)
ConfigView.section.connection.prefer.udp=Hobetsi UDP elkarketa
-ConfigView.section.ipfilter.clear.on.reload=Garbitu iragazkiak birgertatzerakoan. Birgertatze aurrerabidean zehar IP-ak ez dira itxiko. Hautatugabe badago, itxigabeko berriek ez dute eraginik izango berrabiarazi arte.
+ConfigView.label.seeding.numPeersAsFullCopy=Saiatu kopia oso Bat izaten denentzat\n(0 \: Ez Saiatu)
+ConfigView.section.ipfilter.clear.on.reload=Garbitu iragazkiak birgertatzerakoan. Birgertatze aurrerabidean zehar IP-ak ez dira blokeatuko. Hautatugabe badago, blokeatu-gabeko berriek ez dute eraginik izango berrabiarazi arte.
columnChooser.columnname=Zutabe Izena
RCM.column.rc_hash=Hasha
OpenTorrentWindow.mb.openError.title=Irekitze Akatsa
@@ -3501,116 +3543,122 @@ swt.updater.urlsgetter.platform=Plataformarako SWT-a\:
popup.error.details=Xehetasunak
Peers.column.lan=LAN (Tokiko Sarbide Sarea)
OpenTorrentWindow.mb.openError.text='%1' ezin izan du ireki\:
+webui.pairing.autoauth=Gaitu berezko sarhitz babesa\: erabiltzaile izena\=vuze, sarhitza\=<uztarpen sarbide kodea>
+MainWindow.upgrade.hint2=Aholkua\:\\Gero Vuze itxi nahi baduzu, sakatu Ezeztatu eta\n\titxi ondoren Azureus2-new.jar berrizendatu Azureus2.jar bezala
#
# > 2.0.8.0
#
OpenTorrentWindow.title=Ireki Torrenta(k)
-MainWindow.upgrade.hint2=Aholkua\:\\Gero Vuze itxi nahi baduzu, sakatu Ezeztatu eta\n\titxi ondoren Azureus2-new.jar berrizendatu Azureus2.jar bezala
-webui.pairing.autoauth=Gaitu berezko sarhitz babesa\: erabiltzaile izena\=vuze, sarhitza\=<uztarpen sarbide kodea>
MainWindow.upgrade.hint1=Aholkua\:\t Amaitu botoia sakatuz dena berezgaitasunez egingo da
TableColumn.header.peers=Hartzaileak
PiecesView.completed=Osatuta
Button.search=Bilatu
+Peers.column.network=Sarea
splash.plugin.init=Plugina Abiarazten\:
platform.win32.baddll.sarah=ONDATUTA\! Aplikazio Geruza Suhesia
-device.model.num=Eredu zenbakia
MainWindow.menu.speed_limits.load=Ezarri...
+device.model.num=Eredu zenbakia
Peers.column.UpRatio.info=Hartzailearen "Zuretik Igota \: Besteetatik Igota" Maila
-ConfigView.label.mindownloads=Gutx. aldibereko jeisketa
ConfigView.section.style.customDateFormat=Norbere Egun Heuskarria
+ConfigView.label.mindownloads=Gutx. aldibereko jeisketa
mdi.entry.plus.free=Vuze Plus
Browser.popup.error.no.access=Akats bat gertatu da hurruneko baliabide bat atzitzerakoan.\nMesedez saiatu zaitez geroago
ConfigView.label.lh.info=Agiria berez agiriaren motaren arabera erregistraturiko aplikazioarekin abiarazten du.\nEzeztatu jokabide hau aplikazio zehatzak adieraziz emaniko agiri hedapenentzat [kakotxaz banadutako zerrenda].
ConfigView.label.openbar.incomplete=Jeisketa barrak\: berez ireki jeisketak
ConfigView.label.max_peers_total=Geh.elkarketa orokorrean [0\: mugagabea]
+label.exec.on.assign=Exekutatu Esleitzean
plugin.installer.recommended.plugin=Plugina gomendatuta - mesedez berrikusi eta ezarri beharrezkoa bada
dlg.try.trial.title=Probatu DVD Grabaketa
metasearch.export.select.template.file=Gorde Eredua
MyTorrentsView.menu.changeDirectory=Aldatu Datu Zuzenbidea
ConfigView.section.style.defaultSortOrder.desc=Beherantz
ConfigView.section.tracker.enableudp=Gaitu UDP aztarnari hartuemana
-FancyMenu.Header.Other=Besteak
ConfigView.section.plugins.magnetplugin=Magnet URI Agintea
-wizard.maketorrents.autohost=Hostatu torrenta aztarnariaren barne
+FancyMenu.Header.Other=Besteak
Trackers.column.seeds.info=Emaritzak erletaldean
-ConfigView.section.style.reOrderDelay.never=Inoiz Ez
+wizard.maketorrents.autohost=Hostatu torrenta aztarnariaren barne
iconBar.editcolumns.tooltip=Zutabe Ezarpena
+ConfigView.section.style.reOrderDelay.never=Inoiz Ez
Formats.units.MiB=MiB
-v3.MainWindow.text.my.account=Kontu Argibideak
ConfigTransferAutoSpeed.upload.capacity.usage=Igoera Gaitasun Erabilia
+v3.MainWindow.text.my.account=Kontu Argibideak
sidebar.dropdown.tooltip=Erakutsi albokobarra menu heuskarrian
-MainWindow.menu.transfers.pausetransfers.keybinding.mac=Meta+.
PeersView.timetosend=Atala birbidaltzeko denbora (Gain-Emaritze Modua)
+MainWindow.menu.transfers.pausetransfers.keybinding.mac=Meta+.
ConfigView.text.neverIgnore=Ez Baztertu Inoiz
-IrcClient.connected=Elkartuta hona\:
TableColumn.header.maxupspeed.info=Geh Igoera Abiadura torrent bakoitzeko
+IrcClient.connected=Elkartuta hona\:
MyTrackerView.passive=Pasiboa
SpeedTestWizard.finish.panel.max.download=Geh. jeisketa\:
wizard.multitracker=Gehitu Aztarnari-Anitzaren argibideak torrentari
importTorrentWizard.importfile.path=Helburua\:
-PeersView.gain=Irabazia
MyTorrentsView.menu.filter=Iragazi Zerrenda...
+PeersView.gain=Irabazia
GeneralView.label.savein=Gordeta Hemen\:
-TableColumn.header.activityText=Mezua
device.tivo.enable=Gaitu TiVo sostengua
-DownloadManager.error.datamissing=Datuak Ez daude
+TableColumn.header.activityText=Mezua
+archivedls.view.infobar.text2=Heutsi eskura zure jeisketa osatu eta geldituei hauek artxibatuz - erabili eskuin-klikatu menua artxibatzeko; Liburutegira leheneratzeko klik bakar batez.\nArtxibatutako jeisketek baliabide oso gutxi erabiltzen dute Vuzeren barne. Argibide gehiagorako <a href\="http\://wiki.vuze.com/w/Archiving_Downloads">klikatu hemen Wikia ikusteko...</a>
+archivedls.view.infobar.text1=Artxibatutako Jeisketak
pairing.config.icon.show=Erakutsi Hurruneko Vuzeren hurruneko ikurra egoera barran
+DownloadManager.error.datamissing=Datuak Ez daude
v3.MainWindow.text.log.out=Irten
CacheView.general.size=Neurria Guztira
+menu.copy.hash.to.clipboard=Kopiatu Hash Gakora
TableColumn.header.duration=Iraupena
ConfigView.label.sleep.info=Saihestu ordenagailua lotaratzea/etetea....
ump.install=Eguneratze Azkarra Egiten\:\nBideo honentzat beharrezkoa den irakur gehigarri txiki bat ezartzen.
Button.rename=Berrizendatu
ActivityView.legend.limit=Neurri muga
ConfigView.section.file.decoder.showlax=Erakutsi aukera gutxieneko kodeaketak
-ConfigView.title.full=Aukerak
device.offlinedownloader.view.title=Lineaz-kanpoko Jeistzaileak
+ConfigView.title.full=Aukerak
TableColumn.header.DateCompleted.info=Torrentaren jeisketa burutu zen eguna
ConfigView.section.style.ShowTabsInTorrentView=Erakutsi azpi-hegatsak Liburutegi ikuspegietan ({ConfigView.section.security.restart.title})
ConfigView.section.general=Orokorra
ConfigView.pluginlist.scan=Mihatu Plugin berrien bila
mdi.entry.dvdburn.new=Sortu DVD Berria
+ConfigView.option.dm.dblclick.open.browser={MyTorrentsView.menu.browse}
ConfigView.label.popup.timestamp=Gehitu ordu-irarketa alerta oharrei
ConfigView.label.openbar=Berez irekitze jeisketa barra
OpenTorrentWindow.startMode.forceStarted=Behartu Hastea
azbuddy.dchat.fave.chats=Txat Gogokoenak
PeersView.Messaging=Mezularitza
-ConfigView.pluginlist.column.loadAtStartup=Gertatu Abiatzerakoan
ConfigView.label.downloading.testTime=Jeisketa abiadura azterketa aldia [seg]
+ConfigView.pluginlist.column.loadAtStartup=Gertatu Abiatzerakoan
wizard.tracker.local=Erabili Vuze Barneko Aztarnaria
splash.firstMessageNoI18N=(\: Vuze \:)
+TableColumn.header.sr_prog.info=Jeisketaren elkarbanatze mailak balio bat erdiesten duen eguna erakusten du
# used for more than just "delete data"
deletedata.noprompt=Ez galdetu berriro
-TableColumn.header.sr_prog.info=Jeisketaren elkarbanatze mailak balio bat erdiesten duen eguna erakusten du
-MyTorrentsView.dialog.setPosition.title=Ezarri Kokapena
Stats.title.full=Estatistikak
-Button.unmarkSelected=Desmarkatu Hautatua
+MyTorrentsView.dialog.setPosition.title=Ezarri Kokapena
ConfigView.label.show.cat.but=Erakutsi Kategoria Botoiak
+Button.unmarkSelected=Desmarkatu Hautatua
ConfigView.label.checkOncompletion=Egiaztatu berriro atalak jeisketa egin ondoren
Peers.column.as.info=Hartzailearen AS (Sistema Autonomoa) xehetasunak
ColumnSetup.chosencolumns=Zutabe Hautatuak
-SpeedTestWizard.set.upload.title=Ezarri Igoera eta Jeisketa Mugak
-PiecesView.priority.info=Atal honen osaketa lehentasuna, baina ez jarri harreta askorik horretan
GeneralView.label.trackerurlupdate=Eguneratu &Aztarnaria
-DHTTransport.report.rerequest_bit=bir-eskabidetzen %1 %2 %3
+PiecesView.priority.info=Atal honen osaketa lehentasuna, baina ez jarri harreta askorik horretan
+SpeedTestWizard.set.upload.title=Ezarri Igoera eta Jeisketa Mugak
ConfigView.section.connection.encryption.require_encrypted_transport=Garraio enkriptatua beharrezkoa
+DHTTransport.report.rerequest_bit=bir-eskabidetzen %1 %2 %3
Progress.reporting.no.history.to.display=Ez dago xehetasun mezurik erakusteko.
OpenTorrentOptions.show.label=Torrent bat irekitzerakoan, erakutsi elkarrizketa hau\:
ConfigView.section.plugins.irc=IRC
dlg.auth.denied.link=<A HREF\="info">Kode Eragintza Ukapenaren Argibideak</A>
Generic.words.scan=Mihatu
-security.certcreate.createfail=Egiaztaturiko sortzeak huts egin du
azbuddy.tracker.bbb.status.idle=Kitzikapen Gabe
-ConfigView.section.style.use_show_parent_folder=Erabili "%1" ordez "%2" torrent menuetan
+security.certcreate.createfail=Egiaztaturiko sortzeak huts egin du
tag.azbuddy.dchat.shares=Txat Elkarbanatzeak
-SpeedTestWizard.finish.panel.disabled=ezgaiturik
+ConfigView.section.style.use_show_parent_folder=Erabili "%1" ordez "%2" torrent menuetan
RCM.column.rc_tracker=Aztarnaria
+SpeedTestWizard.finish.panel.disabled=ezgaiturik
TableColumn.header.tag.count=Z Gai
-configureWizard.file.fastResume=Gaitu Berrekite azkarra
RCM.column.rc_peers=Hartzaileak
+configureWizard.file.fastResume=Gaitu Berrekite azkarra
ConfigView.section.security.op.error=Huts egin du eragiketa osatzean\:\n %1
-TableColumn.header.savepath.info=Torrenteen datuentzako helbide agiritegia edo agiria
remote.pairing.instruction=Besterik gabe sartu beheko kodea edozein hurruneko gailuk emandako tartean.
+TableColumn.header.savepath.info=Torrenteen datuentzako helbide agiritegia edo agiria
swt.updater.urlsgetter.downloading=Ispilu zerrenda bat lortu hemendik
devices.auto.start=Berez-abiatzea
FilesView.menu.setpriority.normal=&Arrunta
@@ -3619,28 +3667,29 @@ ConfigView.section.plugins.xml_http_if=XML/HTTP Interfazea
iconBar.stream=Irakurri Orain
# This is the beginning of the word "View". It's right aligned under the icon bar item
v3.iconBar.view.big=Iku
-MyTorrentsView.menu.stop=&Gelditu
sidebar.LibraryUnopened=Berria
-MainWindow.menu.help.about=Vuzeri buruz
+MyTorrentsView.menu.stop=&Gelditu
MyTorrentsView.menu.explore=Erakutsi Agiria
-MainWindow.nat.status.tooltip.bad=Suhesi/NAT (TCP) eskuragarritasun arazoa. Joan Wikira laguntza lortzeko
+MainWindow.menu.help.about=Vuzeri buruz
label.none.assigned=Esleitu gabe
+MainWindow.nat.status.tooltip.bad=Suhesi/NAT (TCP) eskuragarritasun arazoa. Joan Wikira laguntza lortzeko
+archive.info.text=Hautaturiko jeisketak artxibatuak izan dira eta eskuragarri daude 'Artxibatutako Jeisketak' ikuspegian 'Ikusi' menuan.\n\nIkusi <a href\="http\://wiki.vuze.com/w/Archiving_Downloads">Wikia</a> argibide gehiagorako.
TableColumn.header.category.info=Torrentari dagokion kategoria izena
DownloadManager.error.operationcancancelled=Eragiketa ezeztatuta
-ConfigView.label.seeding.firstPriority.shareRatio=Elkarbanatze maila honen azpitik
label.dismiss.all=Baztertu Denak
-IPChecker.external.loadingwebpage=Web orrialdea gertatzen
+ConfigView.label.seeding.firstPriority.shareRatio=Elkarbanatze maila honen azpitik
device.mediaserver.remove_all=Kendu Multimedia Zerbitzari denak
+IPChecker.external.loadingwebpage=Web orrialdea gertatzen
TableColumn.header.tag.group=Multzoa
-v3.MainWindow.button.resume=Berrekin
-azsubs.contextmenu.lookupassoc=Bilatu harpidetza elkarketak
subscriptions.config.autostart.min=Hasi bakarrik bada >\= MB [0\: mugagabea]
-TorrentOptionsView.param.max.seeds=Geh. emaritza elkarketak [0\: elkarketa muga]
+azsubs.contextmenu.lookupassoc=Bilatu harpidetza elkarketak
+v3.MainWindow.button.resume=Berrekin
platform.win32.baddll.iFW_Xfilter=iolo Suhesi Pertsonala
+TorrentOptionsView.param.max.seeds=Geh. emaritza elkarketak [0\: elkarketa muga]
TableColumn.header.\#=Zbk.
dhttracker.tracknormalwhenoffline=Torrent arruntak beren aztarnaria eskuragarria ez dagoenean bakarrik bideratu
-Peers.column.peer_byte_id=Hartzaile ID-a
MainWindow.menu.file.open.url=&Kokalekua...
+Peers.column.peer_byte_id=Hartzaile ID-a
MainWindow.menu.file.open.uri=URL-a, Magneta edo Hasha...
torrent.comment.rat2=Aipamena(k)\: %1
torrent.comment.rat1=Bataz-besteko Maila\: %1 (puntuak\: %2)
@@ -3648,67 +3697,67 @@ MainWindow.upgrade.explanation.manual=Eskuz eguneratu dezakezu Vuze itxiz, berts
MainWindow.about.internet.forumdiscussion=Eztabaidaguneak
pairing.ui.icon.tip=Vuze Hurruneko Elkarketa Egoera
ConfigView.label.seeding.ignore=Baztertu Arauak
-subscript.none.subscribed=Egin klik torrent honentzat eskuragarri dauden harpidetzak ikusteko
ConfigView.section.mode.advanced.text1=Sarbide osoa ezarpen eta ezaugarri guztietara.
+subscript.none.subscribed=Egin klik torrent honentzat eskuragarri dauden harpidetzak ikusteko
TableColumn.header.smoothup=Igoera Lehundua
FilesView.dialog.priority.text=0\=Arrunta, 1\=Handia, 2\=Oso Handia...
-SystemTray.menu.closealldownloadbars=Itxi &Jeisketa Barra Guztiak
alert.raised.at.close=(Mezua aurretik itxitako Vuzetik)
+SystemTray.menu.closealldownloadbars=Itxi &Jeisketa Barra Guztiak
SpeedTestWizard.finish.panel.max.seeding.upload=Geh. igoera emaritzen\:
-ConfigView.section.ipfilter.persistblocking=Gorde itxitako IP xehetasunak berrabiarazpenetan
+ConfigView.section.ipfilter.persistblocking=Gorde blokeatutako IP xehetasunak berrabiarazpenetan
PiecesView.type=Mota
ConfigView.section.plugins.TrackerWeb=Aztarnari Webgunea
-ConfigView.boolean.irclog=Gaitu kanal jardueraren datuen erregistratzea (IRC_log.htm)
-SpeedTestWizard.abort.message.interrupted=TorrentAbiaduraAzterketaLeihoMezua eten egin da azterketa amaitu aurretik
TableColumn.header.CountryFlag.info=Hartzailearen Herrialde Ikurrina
+SpeedTestWizard.abort.message.interrupted=TorrentAbiaduraAzterketaLeihoMezua eten egin da azterketa amaitu aurretik
+ConfigView.boolean.irclog=Gaitu kanal jardueraren datuen erregistratzea (IRC_log.htm)
ConfigView.section.style.reOrderDelay=Berrantolatu taulak EIG-aren Z eguneratzetik behin [0\: inoiz ez]
MySharesView.type.dircontentsrecursive=Zuzenbide edukiak (baliabidea)
GeneralView.label.status=Egoera\:
-GeneralView.label.uploaded=Igota\:
ConfigView.section.style.alwaysShowTorrentFiles=Erakutsi betik torrent agiriak Xehetasunak/Agiriak atalean
+GeneralView.label.uploaded=Igota\:
ConfigView.section.update.autodownload=Berez jeitsi eguneraketak eta galdetu ezarpena gertu dagoenean
trackername.prefs.message=Puntu eta kakotxaz banandutako aztarnari hostalari izenak\nAdibidez\: a.b.com; c.d.net
-OpenTorrentWindow.diskUsage=%1 %2-tik
ConfigView.label.removeOnStop=Kendu torrenta zerrendatik berezgaitasunez gelditu ondoren
-MainWindow.menu.view.myshares.keybinding=Meta+3
-MyTorrentsView.menu.changeTracker=Gehitu aztarnari URL-a(k)
-ConfigView.section.file.nativedelete._windows=Mugitu ezabatutako agiriak Birziklapen Gunera
+OpenTorrentWindow.diskUsage=%1 %2-tik
device.rss.localonly=Sarbide ukatua ordenagailu honetara bakarrik
+ConfigView.section.file.nativedelete._windows=Mugitu ezabatutako agiriak Birziklapen Ontzira
+MyTorrentsView.menu.changeTracker=Gehitu aztarnari URL-a(k)
+MainWindow.menu.view.myshares.keybinding=Meta+3
ConfigView.section.connection.port.rand.enable=Zorizkotu aditze atakak hasterakoan
MagnetPlugin.report.downloading=Hemendik jeisten %1
MyTorrentsView.dialog.setNumber.upload=igo
configureWizard.transfer.maxUploadsPerTorrent=Gehienezko Igoera Torrnet bakoitzeko
FilesView.fullpath=Erakusi Helburu Osoa
-MainWindow.menu.view.mytracker.keybinding=Meta+2
Formats.units.Tbit=Tbit
-MagnetPlugin.use.md.download.name=%1-rentzako metadatu jeisketa
+MainWindow.menu.view.mytracker.keybinding=Meta+2
ConfigView.section.transfer.setmark=Ezarri/garbitu marka\: eskualdaketa estatistika orokorrak une honetatik aurrera erakutsiko dira (Vuze ezarpen denbora garbituta badago) aurrerantzean
+MagnetPlugin.use.md.download.name=%1-rentzako metadatu jeisketa
externalLogin.auth_method_proxy=Erabili cookie atzipenbide hedatua. Hutsegiten badu, ezgaitu aukera eta saiatu berriro.
IrcView.errormsg=Hitzjoskera Okerra /msg \: /msg erabiltzaile idazkia
-ConfigView.label.autoopen.detailstab=Berez ireki Xehetasun Hegatsa
ConfigView.label.dl.add.req.attention=Argitu jeisketa eremua jeisketa bat gehitzen denean
-ConfigView.section.plugins.update=Plugin Eguneratzea
+ConfigView.label.autoopen.detailstab=Berez ireki Xehetasun Hegatsa
apply.to.current=Ezarri Oraingoari
+ConfigView.section.plugins.update=Plugin Eguneratzea
OpenTorrentWindow.mb.invaliddefsave.text='%1' gordetze kokalekua baliogabea da.\n\nElkarrizketa hau isten duzunean aldatzeko galdetuko zaizu.\n\nBerezko gordetze kokalekua Tresnak->Aukerak->Agiriak bidez itxuratu daiteke.
-dht.logging=Gaitu jarduera gardentasuna
label.vuze.services=Vuze Zerbitzuak
+dht.logging=Gaitu jarduera gardentasuna
rcm.contextmenu.lookupassoc=Izenburua
tag.property.trackers={label.trackers}
MyTorrentsView.menu.setDownSpeed=Ezarri &Jeisketa Abiadura
-ConfigView.section.style.dropdiraction.sharefolder=Elkarbanatze Zuzenbidea
subs.prop.num_unread=Irakurrigabeko emaitz zenbatekoa
+ConfigView.section.style.dropdiraction.sharefolder=Elkarbanatze Zuzenbidea
ConfigView.section.tracker.separatepeerids.info=Izengabeko jarduera handituz jeisketa/emaritza izengabean\nez-izengabeko aztarnari elkarketa erabiltzen den bitartean
devices.xcode.prof_def=Berezko transkodeaketa profila
ConfigView.label.piecereorderminmb=Berrantolatu bakarrik handiagoak diren agiriak (MB-tan)
mdi.entry.tagsoverview={tags.view.heading}
-iconBar.start=Hasi
Wizard.Subscription.search.subtitle2.sub2=Webguneetako torrentak
-azbuddy.chat.title=Vuze Eztabaidagunea
-iconBar.comment=Aipamena
+iconBar.start=Hasi
Wizard.Subscription.search.subtitle2.sub1=HD Filmak, TB Ikuskizunak, Filmak, Vuze Sareko Trailerrak
+iconBar.comment=Aipamena
+azbuddy.chat.title=Vuze Eztabaidagunea
MainWindow.menu.tools.netstat={Views.plugins.aznetstatus.title}...
-GeneralView.label.updatein=Eguneraketa\:
TableColumn.header.DateFileCompleted=Agiria Osatuta
+GeneralView.label.updatein=Eguneraketa\:
TorrentOptionsView.param.max.uploads=Geh. igoera aho zenbatekoa [gutxienez\: 2]
TableColumn.header.device=Gailua
ConfigView.section.style.doNotUseGB.tooltip=Hautaturik badago, Vuzek jarraitu dezake erabiltzen MB baita 1024 MB baino handiagoak diren neurriekin
@@ -3716,9 +3765,9 @@ proxy.socks.ui.icon.tip=SOCKS egoera\: %1\nKlik-bikoitza estatistikak.\nEskuin-k
TableColumn.header.writerate=Idazketa Neurria
dlg.auth.trial.success.line1=Vuze gertu dago DVD-ak sortzeko.
TableColumn.header.chat.msg.out=Mezu Itxarotea
-splash.initializeUIElements=EI Osagaiak Abiarazten
-azbuddy.addtorrent.title=Jeisketa Onartu?
jvm.reset=Berrezarri JVM aukerak ezarpenaren berezkoetan
+azbuddy.addtorrent.title=Jeisketa Onartu?
+splash.initializeUIElements=EI Osagaiak Abiarazten
MyShares.column.category=Kategoria
label.fave=Gogokoena
DHTView.transport.out=Irteera\:
@@ -3726,83 +3775,83 @@ subs.prop.is_auto=Berez-jeistsi emaitza berriak
PeersView.menu.snubbed=&Errefusatuta
ConfigView.section.style.defaultSortOrder=Berezko Antolakuntza
ConfigView.section.proxy.enable_socks.peer=Gaitu proxya hartzaileekiko harremanetarako (kanporako elkarketak bakarrik) [berrabiaraztea beharrezkoa]
-ConfigView.label.xfs.allocation=Esleitu agiri berriak XFS agiri-sistema bereizia den bide bat erabiliz
Progress.reporting.no.reports.to.display=Une honetan ez dago garapen oharrik erakusteko
+ConfigView.label.xfs.allocation=Esleitu agiri berriak XFS agiri-sistema bereizia den bide bat erabiliz
TableColumn.header.download.info=Hartzailearengandik jasotzen ari zaren datuen zenbatekoa
label.browser=Nabaigatzailea
cat.rss.gen=Sortu tokiko RSS harpidetza
config.internal.browser=Barneko Nabigatzailea
SpeedView.stats.currentPing=Oraingo Ping-a\:
DownloadManager.error.badsize=Neurri Okerra
-TableColumn.header.date_added=Gehitze Eguna
TableColumn.menu.maxuploads=Geh. Igoera Zenbaketakoa
+TableColumn.header.date_added=Gehitze Eguna
TableColumn.header.class=Saila
-ConfigView.section.logging=Oharketa
ConfigView.section.connection.advanced.socket.group=Hartune Aukerak
+ConfigView.section.logging=Oharketa
speedtest.wizard.title=Abiadura Azterketa
ConfigView.section.proxy=Proxy Aukerak
TableColumn.header.tag.uprate={TableColumn.header.upspeed}
-ActivityView.legend.peeraverage=Bataz-bestekoa
MainWindow.menu.community.wiki=Herkidegoa, Wikia eta SEG
+ActivityView.legend.peeraverage=Bataz-bestekoa
subscriptions.rss.enable=Sortu RSS Jarioak harpidetzetatik
MyTrackerView.badnat.info=NAT egiaztapen bat huts eginda duten Emaritza/Hartzaileak, gaituta badago
-ConfigView.section.ipfilter.list.notinrange=ez zegoen inolako barrutitan
ConfigView.label.bindip.details=Adibidea\: 192.168.1.5;eth0;eth1[2] behartu dezake IP bereizi bat, 1. interfazearen IP guztietara eta 2. interfazearen 3. IP-ra .\n1. IP-a zerbitzu guztietarako erabilitzen da, beste guztiak zama orekatzeko erabiltzen dira\nHurrengo interfazeak daude baliagarri\:\n%1
+ConfigView.section.ipfilter.list.notinrange=ez zegoen inolako barrutitan
TableColumn.header.seeds=Emaritzak
button.columnsetup.tooltip=Zutabe Ezarpena
security.crypto.persist_for.session=Saio hau
wizard.webseed.configuration=HTTP Emaritza Itxurapena
-azbuddy.dchat.decentralized=Txat Deszentralizatua
OpenTorrentWindow.mb.notTorrent.text=Ezin da '%1' ireki. Ez dirudi .torrent agiri bat denik.\n\nJasotako datu batzuk\:\n%2
+azbuddy.dchat.decentralized=Txat Deszentralizatua
GeneralView.label.comment=Torrentaren Aipamena\:
ConfigView.label.save_list.clear=Kendu historia
-remote.pairing.test.unavailable=Ene, ezin izan da zure hurruneko elkarketa zehaztu. <A HREF\="retry"> Saiatu berriro</A>
label.wrap.text=Idatzia Erdiratu
-TableColumn.header.seeds.fullcopycalc=%1 hartzailek onartutako %2 kopia oso
+remote.pairing.test.unavailable=Ene, ezin izan da zure hurruneko elkarketa zehaztu. <A HREF\="retry"> Saiatu berriro</A>
iconBar.switch.tooltip=Vuze UI Hautatzailea
+TableColumn.header.seeds.fullcopycalc=%1 hartzailek onartutako %2 kopia oso
v3.topbar.menu.show.plugin=Plugin Gunea
v3.menu.device.exploreTranscodes._windows=Erakutsi Agiriak Explorer-ean
-security.certtruster.intro=Segurtasun Egiaztagiria fidagarritasunik onartu ez diozun baltzu batek jaulki du
-ConfigView.section.style.xulRunnerPath=Adierazi XulRunner / Firefox helburua eskuz [beharrezkoa FF3-rentzat; berrabiaraztea beharrezkoa]
devices.contextmenu.od.auto=<Berezgaitasunez>
+ConfigView.section.style.xulRunnerPath=Adierazi XulRunner / Firefox helburua eskuz [beharrezkoa FF3-rentzat; berrabiaraztea beharrezkoa]
+security.certtruster.intro=Segurtasun Egiaztagiria fidagarritasunik onartu ez diozun baltzu batek jaulki du
MyTrackerView.announces=Iragarleak
-azbuddy.dchat.copy.channel.url=Kanal URL-a
metasearch.template.version.bad='%1' Bilaketa eredua ezin da ezarri Vuze eguneratu arte
+azbuddy.dchat.copy.channel.url=Kanal URL-a
ConfigView.label.minSeedingTime=Gutxienezko emaritza denbora segundutan
OpenTorrentWindow.torrent.options=Hurrengo ezarpenak gainean hautaturiko torrentei ezarriko zaie\:
-MyTrackerView.bytesinave=Sar. Bat.best.
PeersView.upload.info=Zure igoera osoa hartzailera.
-restart.error=Berrabiarazteak huts egin du\n%1\nIkusi <A HREF\="{restart.error.url}">berrabiarazte gaiak</a>.
-Subscription.menu.export=Esportatu...
-ConfigView.label.stop.Sleep=Egoneratu Ordenagailua
+MyTrackerView.bytesinave=Sar. Bat.best.
TableColumn.header.CountryFlagSmall.info=Hartzailearen Herrialde Ikurrin Txikia
+ConfigView.label.stop.Sleep=Egoneratu Ordenagailua
+Subscription.menu.export=Esportatu...
+restart.error=Berrabiarazteak huts egin du\n%1\nIkusi <A HREF\="{restart.error.url}">berrabiarazte gaiak</a>.
DHTTransport.report.send_timeout=bidalketa itxaronaldia
-play.select.content=Hautatu Irakurtzeko Edukia
label.test.types=Aztertu Motak
+play.select.content=Hautatu Irakurtzeko Edukia
menu.plus=Vuze Plus
-Plugin.localtracker.autoadd.info=Berezgaitasunez gehitu tokiko hartzaile hauek [helbideak ';' bananduta, adib. 1.2.3.4]
# %1 = "in kbps" or ""; %2 = "upload" or "download"
MyTorrentsView.dialog.setNumber.text=Sartu %1 zenbaki bat aldatzeko %2era\:
+Plugin.localtracker.autoadd.info=Berezgaitasunez gehitu tokiko hartzaile hauek [helbideak ';' bananduta, adib. 1.2.3.4]
Trackers.column.status=Egoera
PeersView.uploadspeed.info=Zure igoera abiadura hartzailera
TableColumn.header.down.info=Beste erabiltzaielengandik orain jasotzen ari zaren datu zenbatekoa
MainWindow.dht.status.tooltip=Banaturiko Datubasea lanean dagoenean honek uneko online erabiltzaile zenbatekoa erakusten du
azinstancehandler.alert.portclash=Ataka gatazka atzeman da LAN-ean\: %1 jadanik erabilpenean du beste Vuze erabiltzaile batek, hautatu zorizko beste ataka eragozteko TCP / UDP aditzea [%2 eta %3 artean].
-OpenTorrentWindow.mb.alreadyExists.text=<A HREF\="%1">%3</A> jadanik gehituta dago '%2' bezala
MainWindow.menu.speed_limits.schedule.msg=Abiadura-muga profilak berezgaitasunez ezartzea agintzen duten oraingo arauak
+OpenTorrentWindow.mb.alreadyExists.text=<A HREF\="%1">%3</A> jadanik gehituta dago '%2' bezala
PeerManager.status.ok=Ongi
ConfigView.section.mode.title=Erabiltzaile Gaitasuna
-label.n.will.be.downloaded=%1 jeitsiko da
external.browser.manual=Eskuz
-ConfigView.section.interface.enabletray=Gaitu Sistema Erretilua [berrabiaraztea beharrezkoa]
+label.n.will.be.downloaded=%1 jeitsiko da
metasearch.addtemplate.dup.title=Bikoiztu Eredua
+ConfigView.section.interface.enabletray=Gaitu Sistema Erretilua [berrabiaraztea beharrezkoa]
PeersView.BlockView.AvailCount=Eskuragarritasun Zenbatekoa
-Plugin.localtracker.name=LAN Hartzaile Bilatzailea
iconBar.openFolder.tooltip=Ireki Agiritegi bat
+Plugin.localtracker.name=LAN Hartzaile Bilatzailea
restart.error.bad=Agiri heuskarri okerra '%1'
CacheView.writes.title=S/I Idatziak
-v3.MainWindow.menu.publish=&Argitaratu
TableColumn.header.peakup=Igoera Gailurra
+v3.MainWindow.menu.publish=&Argitaratu
MainWindow.menu.view.show=Erakutsi
configureWizard.transfer2.test.info=Hautatu azterketa oso bat egiteko abiadura
subscriptions.config.autostart.max=Hasi bakarrik bada <\= MB [0\: mugagabea]
@@ -3810,18 +3859,20 @@ library.unopened.header=%1 gai
ConfigView.section.security.restart.title=Berrabiarazpena Beharrezkoa
MyTorrentsView.menu.group=Multzoa...
label.set.shortcut=Ezarri Lasterbidea
-ConfigView.section.connection.tcp.enable=Gaitu TCP-a
label.reset.piece=Berrezarri Atala
-Peers.column.%=%
-splash.initializeGM=Torrent Kudeatzaile Orokorra Abiarazten
+ConfigView.section.connection.tcp.enable=Gaitu TCP-a
+ArchivedFilesView.title.short={FilesView.title.short}
subscriptions.listwindow.title=Harpidetza Bilatzailea
+splash.initializeGM=Torrent Kudeatzaile Orokorra Abiarazten
+Peers.column.%=%
MainWindow.menu.tools=&Tresnak
-ConfigView.section.connection.http.enable=Gaitu
Peers.column.\#=Z
+ConfigView.section.connection.http.enable=Gaitu
diagnostics.log_found=Vuze ez da zuzen itzali. Egiaztau <A HREF\="%1">igarpen ohar agiriak</A>. Irakurri ere wikiko idazlana <A HREF\="http\://wiki.vuze.com/w/Vuze_disappears">Vuze Ezagertzea</A> argibide gehiagorako.
plugins.basicview.activity=Jarduera\:
-natpmp.routeraddress=Geltoki helbidea [blank\: auto]
dlg.auth.denied.line1=Zure Vuze Plus Eragintza Kodea ukatua izan da. Mesedez klikatu behean argibide gehiago izateko.
+natpmp.routeraddress=Geltoki helbidea [blank\: auto]
+ArchivedDownloadsView.header={archivedlsview.view.heading}
Button.availableSubscriptions=Harpidetza Eskuragarria
MyTorrentsView.menu.moveDown=&Behera
UpdateWindow.quit=Irten
@@ -3833,27 +3884,27 @@ MainWindow.menu.help.support=&Laguntza eta Sostengua
MyTorrentsView.menu.moveTop=&Goren
ConfigView.label.xfs.allocation.tooltip=Mesedez zihurtatu /usr/sbin/xfs_io zure sisteman ongi ezarrita dagoela. Linux banaketa gehienetan "xfsprogs" paketean dago.
MyTorrentsView.menu.manual.shared_peers=Eskuz (hartzaile artean)
-PiecesView.title.full=Atalak
-wizard.multitracker.edit.newtracker=Aztarnari Berria
TorrentOptionsView.param.reset.button=Berrezarri
+wizard.multitracker.edit.newtracker=Aztarnari Berria
+PiecesView.title.full=Atalak
menu.register=Vuze Plus Eragiketa
upnp.mapping.trackerclientudp=UDP Aztarnari Bezero Ataka
-MyTorrentsView.menu.editTracker=Editatu aztarnari URL-ak
ConfigView.section.connection.networks.Public=IP sare publikoa (ez izengabea)
+MyTorrentsView.menu.editTracker=Editatu aztarnari URL-ak
IrcView.privatefrom=Hemendik
ConfigView.section.mode.resetdefaults=Berrezarri ezarpenak berezko balioetan (berrabiaraztea gomendatzen da)
-DHTView.general.live=Bizirik\:
TableColumn.header.peersources=Hartzaile Iturburuak
+DHTView.general.live=Bizirik\:
ConfigView.label.moveifsamedrive=Baina hau iturburua eta helmuga agiri sistema ezberdinetan daudenan bakarrik egiten du
configureWizard.file.message3=Vuze agiriak adieraziriko agiritegira jeitsi ditzake, agiritegi hori hemen hautatu dezakezu\:
-configureWizard.file.message2=Vuzek berehala berrabiarazi ditzake zure agiriak, zure torrentei berrabiarazte datuak eransten badizkiozu. Ezaugarri hau erabiliz, zati bat jeitsitako atalak ere berrabiaraziko dituzu.
subs.prop.is_public=Publikoa
+configureWizard.file.message2=Vuzek berehala berrabiarazi ditzake zure agiriak, zure torrentei berrabiarazte datuak eransten badizkiozu. Ezaugarri hau erabiliz, zati bat jeitsitako atalak ere berrabiaraziko dituzu.
configureWizard.file.message1=Vuzek irekitako torrentak agiritegi batean gordeko dira, agiritegi hori hemen adierazi dezakezu\:
-webui.pairingenable=Gaitu uztarpena plugin honentzat (azterketa aukerak gaituak izan daitezke uneko uztarpen xehetasunak ongi argitaratu direnean)
ConfigView.label.autoadjust=Berezgaitasunez zehaztu ezarpen hau elkarketa abiaduran ohinarrituta
+webui.pairingenable=Gaitu uztarpena plugin honentzat (azterketa aukerak gaituak izan daitezke uneko uztarpen xehetasunak ongi argitaratu direnean)
devices.tivo.machine=TiVo makina izena
-ConfigView.section.ipfilter.start=Hasierako IP-a
rcm.config.enabled=Gaitu
+ConfigView.section.ipfilter.start=Hasierako IP-a
wizard.directory=Zuzenbidea
globalmanager.download.remove.veto=Kenketa Ekintza Eragitza
ConfigView.section.file.defaultdir.ask=Berezko zuzenbidea\:
@@ -3861,73 +3912,73 @@ upnp.alert.lostdevice=UPnP\: Zerbitzuarekin elkarketa etenda '%1' UPnP gailuan '
MyTorrentsView.menu.sl_add_to_prof=Gehitu/Eguneratu Profila
devices.view.heading=Multimedia bihurgailua irakurgailuarentzat
azbuddy.ui.table.ss=SS
-SystemTray.menu.open_global_transfer_bar=Erakutsi Eskualdaketa Barra
RCM.column.rc_seeds=Emaleak
+SystemTray.menu.open_global_transfer_bar=Erakutsi Eskualdaketa Barra
devices.downloading=Jeisten
ConfigView.section.stats.graph_update_dividers=Erakutsi lerro zutia 60 eguneraketa bakoitzetik
-Formats.units.Gbit=Gbit
+TableColumn.header.timesincedownload=Jeisketa Jardungabe
ConfigView.section.queue.seeding.ignore=Baztertu Arauak
-TableColumn.header.timesincedownload=Jeisketa Idle-a
-Peers.column.Encryption.info=Erabilitako enkriptaketa maila
-ConfigView.section.connection.advanced.mtu=Gehienezko Eskualdaketa Batasuna Bidea (GEB)
+Formats.units.Gbit=Gbit
azsubs.contextmenu.addassoc=Gehitu harpidetza elkarketa
+ConfigView.section.connection.advanced.mtu=Gehienezko Eskualdaketa Batasuna Bidea (GEB)
+Peers.column.Encryption.info=Erabilitako enkriptaketa maila
ConfigView.section.connection.advanced.bind_port=Lotu tokiko atakara [0\: ezgaituta]
-tps.tracker.cache1=Hartzaile katxea\: erabilita\=%1
aznettorbrowser.install.subtitle=Tor Nabigatzailea Plugina ezartzen
+tps.tracker.cache1=Hartzaile katxea\: erabilita\=%1
MainWindow.dialog.restartconfirmation.title=Berrabiarazi Vuze
ConfigView.section.ipfilter.enable.descriptionCache.tooltip=Ezgaituta dagoenean, azalpenak ez dira gogoratuko
sidebar.Activity=Oharrak
upnp.selectedinterfaces=Hautaturiko interfazeak (';' banandurik, adib. eth0;eth1) [blank\: all]
ConfigView.label.moveonlyusingdefaultsave.tooltip=Mugitu bakarrik jeitsitako datuak berezko datuen zuzenbide badaude
-ConfigTransferAutoSpeed.mode=Era\:
-MagnetURLHandler.report.error=akatsa %1
tag.show.stats=Erakutsi Etiketa Estatistikak...
+MagnetURLHandler.report.error=akatsa %1
+ConfigTransferAutoSpeed.mode=Modua\:
v3.devicesview.infobar.text2=Eduki bat gailu batera transkodeatzeko, arrastatu edukia zure liburutegitik albobarrako gailura. Transkodeaketa osatuak ikusteko, klikatu banako gailuan eskuinean.
-tag.type.ds.err={ManagerItem.error}
azbuddy.os_not_avail=Eskuraezina
+tag.type.ds.err={ManagerItem.error}
MyTorrentsView.menu.torrent.dl=Torrent Jeisketa Lotura
-wizard.maketorrent.filesize=Agiri(en) Neurria
-OpenTorrentWindow.mb.existingFiles.partialList=(Zerrenda osatugabea Agiri gehieago jadanik badaude)
TableColumn.header.downloadspeedoverall.info=Hartzailearen ustezko jeisketa neurria
+OpenTorrentWindow.mb.existingFiles.partialList=(Zerrenda osatugabea Agiri gehieago jadanik badaude)
+wizard.maketorrent.filesize=Agiri(en) Neurria
DHTView.operations.store=Biltegia
-subscriptions.column.SubWizRank=Maila
ConfigView.label.alwaysShowLibraryHeader=Betik erakutsi buru/iragazki barra liburutegian
-FilesView.menu.retarget=Mugitu Agiriak
+subscriptions.column.SubWizRank=Maila
TrayWindow.menu.stopalldownloads=Gelditu &Jeisketa Denak
+FilesView.menu.retarget=Mugitu Agiriak
iconBar.top.tooltip=Mugitu lehen tokira
-MainWindow.dht.status.disabled=DHT-a Ezgaiturik
-SpeedTestWizard.stage.message.requesting=azterketa eskabidean...
MainWindow.menu.transfers.pausetransfersfor.keybinding.mac=Auk+Ktrl+Aldatu+.
+SpeedTestWizard.stage.message.requesting=azterketa eskabidean...
+MainWindow.dht.status.disabled=DHT-a Ezgaiturik
device.od.enable=Gaitu lineaz-kanpoko jeisketa gailuak
Button.getstarted=Abiaturik
SpeedView.stats.estimate=Irizpena
MainWindow.menu.speed_limits.save_current=Gorde Oraingoa Honela...
ConfigView.section.interface.clearsavepathsbutton=Garbitu
-MyTorrentsView.menu.movedata=Mugitu Datu Agiriak...
OpenTorrentWindow.fileList.changeDestination=Aldatu Helmuga
+MyTorrentsView.menu.movedata=Mugitu Datu Agiriak...
Progress.reporting.status.retrying=Birsaiatzen...
-ConfigView.section.style.showiconbar=Erakutsi Tresnabarra
label.current=Oraingoa
-v3.deviceview.infobar.line2.tivo=Bideoak jariotu zure TiVo-ra joanez eta Vuze hautatuz zure Uneko Irakur Zerrendan.
+ConfigView.section.style.showiconbar=Erakutsi Tresnabarra
pairing.accesscode=Sarbide kodea
+v3.deviceview.infobar.line2.tivo=Bideoak jariotu zure TiVo-ra joanez eta Vuze hautatuz zure Uneko Irakur Zerrendan.
MessageBoxWindow.nomoreprompting=Ez galdetu berriro
-SpeedTestWizard.name.conf.level.none=Ez
devices.xcode.mancopy=Eskuz Kopiatu Agiriak
+SpeedTestWizard.name.conf.level.none=Ez
MainWindow.menu.file.import=I&nportatu XML Torrenta...
-Tracker.alert.listenfail=Hutsegitea aditzea ataka honetan %1 ezartzerakoan.\nEgiaztatu beste aplikazioak ez daudela ataka hau erabiltzen.\nEgiaztatu ere lanean diharduten Vuzeren beste kopiak.
v3.MainWindow.menu.file.closewindow=Itxi
+Tracker.alert.listenfail=Hutsegitea aditzea ataka honetan %1 ezartzerakoan.\nEgiaztatu beste aplikazioak ez daudela ataka hau erabiltzen.\nEgiaztatu ere lanean diharduten Vuzeren beste kopiak.
ConfigView.label.minSpeedForActiveDL=Ez zenbatu jeisketa ahoa erabiltzen ari den torrenta abiadura hau baino txikiagoa bada
-importTorrentWizard.torrentfile.browse=Bilatu
MagnetPlugin.use.md.download=Gaitu jeisketan-ohinarrituriko metadatu eskualdaketa
+importTorrentWizard.torrentfile.browse=Bilatu
label.force.piece=Behartu Atala
Peers.column.%.info=Orain arte hartzaileak jeitsitako torrentaren ehunekoa
upnp.info=Plug and Play Unibertsalak (UPnP) ahalbidetzen du berezgaitasunezko ataka izendatzea gaituriko UPnP routerretan.
-ConfigView.section.file.hashchecking.smallestfirst=Berregiaztatu jeisketa txikienak lehenik
TableColumn.header.chat.msg.count.info=Mezu zenbatekoa beste erabiltzaileengandik (ez zeureak)
-TableColumn.header.profile=Gailua
+ConfigView.section.file.hashchecking.smallestfirst=Berregiaztatu jeisketa txikienak lehenik
label.popups=Oharleihoak
-label.clickone=Klikatu bat
+TableColumn.header.profile=Gailua
config.external.browser.switch.feature=Ezaugarria
+label.clickone=Klikatu bat
PeersView.title.short=Hartzaileak
ConfigView.label.seeding.rankType.tooltip=Lerrun handiena duten torrentak berezgaitasunez hasten dira.\nBeste torrent batek lerrun handiagoa lortzen duenean, lerrun txikienekoa gelditu eta lerrora itzultzen da.\n\nLerrokatuta egoeran dauden torrentak bakarrik daude baliagarri berezgaitasunez hasteko.\nGelditutako torrentak ez dira inoiz berezgaitasunez hasten.
OpenTorrentWindow.torrentLocation=Jeitsitako torrenta(k)\:
@@ -3938,14 +3989,14 @@ v3.MainWindow.xofx=%1 %2 -tik
MyTorrentsView.menu.setpriority.high=&Handia
ConfigView.label.seeding.autoReposition.tooltip=Gaituta badago, torrenteen ordena (Z zutabea) aldatu egingo da Emaritzen Lerrunarekin bat egin dezan.\nHau erabilgarria da zuk ez badituzu nahi ikusi Emaritzan Lerrunaren zenbakiak, baina jakin nahi duzu osatutako torrentak abiaraziko diren ordena.
MyTorrentsView.menu.open=&Ireki Agiria
-GeneralView.label.updatein.querying=Eskabidetzen...
label.routing=Biderapena
-CacheView.reads.fromFile=Agiritik
+GeneralView.label.updatein.querying=Eskabidetzen...
ConfigTransferAutoSpeed.algorithm=Algoritmoa\:
-ManagerItem.initializing=Abiarazten
+CacheView.reads.fromFile=Agiritik
installPluginsWizard.finish.title=Ezarpena Garatzen
-DHTView.activity.status=Egoera
+ManagerItem.initializing=Abiarazten
ConfigView.section.logging.generatediagnostics=Sortu
+DHTView.activity.status=Egoera
MainWindow.menu.language=&Hizkuntza
IPChecker.external.service.no-ip.name=Ez-IP
update.instance.uninstall=Kentzea Egiaztatzen
@@ -3964,73 +4015,74 @@ device.config.xcode.workdir=Berezko lan zuzenbidea transkodeatutako agirientzat
ConfigView.label.queue.maxactivetorrentswhenseeding=Geh. emaritzen bakarrik [0\:mugagabea]
DHTView.activity.type=Mota
button.add.container=Gehitu &Edukiontzia
-ConfigView.section.ipfilter.blockedinfo=IP iragazkiengaitik itxiak izan diren IP-ak
+ConfigView.section.ipfilter.blockedinfo=IP iragazkiengaitik blokeatuak izan diren IP-ak
ConfigView.section.Pairing=Uztarpena
-MyTorrentsView.menu.thisColumn.autoTooltip=Betik erakutsi tresnen argibideak
-security.crypto.badpw=Emandako sarhitza ez da zuzena
TableColumn.header.azsubs.ui.column.subs.info=Antzeko torrentak dituzten jarioetara harpidetzea ahalbidetzen dizun botoia
+security.crypto.badpw=Emandako sarhitza ez da zuzena
+MyTorrentsView.menu.thisColumn.autoTooltip=Betik erakutsi tresnen argibideak
Button.bar.hide=Ezkutatu
alert.copy.on.comp.done=%1 Jeisketa\nAgiriak ongi kopiatu dira '%2'ra
window.welcome.title=Ongi etorri Vuzera %1
pairing.status.initialising=Abiarazten
config.external.browser.switch.external=Kanpokoa
ConfigView.section.ipfilter.list.baddata=datu gaitzak bidali ditu.\: gertaerak \=
+window.updateswt.failed=Eguneratzeak huts egin du, sakatu Ongi berriro berrabiarazteko.
#Used by the webui plugin
MyTorrentsView.menu.removeand.deleteboth=Ezabatu &Biak
-window.updateswt.failed=Eguneratzeak huts egin du, sakatu Ongi berriro berrabiarazteko.
dlg.install.mlab.description=Mesedez itxaron abiadura azterketa osagia ezartzen den bitartean
importTorrentWizard.importfile.message=Hautatu inportatuko den xml agiria
-MyTorrentsView.menu.renameColumn={ColumnRenameWindow.title}...
-v3.MainWindow.menu.view.statusbar=Egoera Barra
label.ago=duela
+v3.MainWindow.menu.view.statusbar=Egoera Barra
+MyTorrentsView.menu.renameColumn={ColumnRenameWindow.title}...
dlg.auth.enter.revoked=Oraingo eragintza kodea indargabetua izan da.
FileView.BlockView.Done=Eginda
iconBar.remove=Ezabatu
device.quit.transcoding.title=Transkodeaketa garatzen
-Views.plugins.IRC.title=IRC - Onlineko Laguntza Teknikoa
-DHTView.operations.failed=Huts egin du
dht.status.disabled=Ezgaitu, eskuraezina den banaturiko datubasea
-UpdateMonitor.messagebox.verification.failed.text=Egiaztapena '%1' hutseginda\: %2
+DHTView.operations.failed=Huts egin du
+Views.plugins.IRC.title=IRC - Onlineko Laguntza Teknikoa
TableColumn.header.Thumbnail.info=Vuzeren edukientzako txikirudia; beste eduki guztientzakoak sistema eragileak ematen ditu ikur hauek.
+UpdateMonitor.messagebox.verification.failed.text=Egiaztapena '%1' hutseginda\: %2
DownloadActivityView.title.short=Abiadura
subscriptions.column.name=Harpidetza
-Peers.column.peer_id=Hartzaile ID-a
-azbuddy.ui.menu.dec=Dekriptatu Gakoa
subscriptions.column.new.info=Adierazi emaitza berri bat edo gehiago badaude
+azbuddy.ui.menu.dec=Dekriptatu Gakoa
+Peers.column.peer_id=Hartzaile ID-a
+MyTorrentsView.menu.restore.and=Leheneratu Eta...
ManagerItem.allocating=Esleitzen
core.shutdown.alert=Ekintza '%1' sugiltzatua %2
TableColumn.header.max_sr={max.sr.window.title}
Sidebar.beta.title=Beta Programa
-MyTorrentsView.dialog.setNumber.inKbps=%1
seedmore.uploadmore=Ehuneko 100 elkarbanatze maila baino txikiagoa edukitzea ez da ona torrent sarearentzat.\nTorrent honi apur bat gehiago emaritzen utzi beharko zenioke.\nZihur jarraitu nahi duzula?
+MyTorrentsView.dialog.setNumber.inKbps=%1
device.hide=Ezkutatu Gailua
priority.normal=Lehentasun Arrunta
MyTorrents.items.UpSpeedLimit.unlimited=Mugagabe
MainWindow.about.section.internet=Internet
TableColumn.header.smootheta.info=UED Abiadura Lehundua {smooth.config}
Plugin.localtracker.enable=Gaitu LAN hartzaile bilatzailea
-ConfigView.section.interface.resetassoc=Leheneratu explorer agiri elkartzea (.torrent) eta erakarpen kudeatzailea (magnet\:?xt\=...)
-OpenTorrentWindow.mb.notValid.text=Ezin da '%1' torrenta ireki. Emaritzan moduan irekitzen ari bazara, mesedez zihurtatu zaitez torrentaren datu agiria badagoela.
-ipCheckerWizard.service=Zerbitzua
ConfigView.section.tracker.separatepeerids=Erabili hartzaile nortasun ezberdinak aztarnariarentzat eta datu harremanerako
+ipCheckerWizard.service=Zerbitzua
+OpenTorrentWindow.mb.notValid.text=Ezin da '%1' torrenta ireki. Emaritzan moduan irekitzen ari bazara, mesedez zihurtatu zaitez torrentaren datu agiria badagoela.
+ConfigView.section.interface.resetassoc=Leheneratu explorer agiri elkartzea (.torrent) eta erakarpen kudeatzailea (magnet\:?xt\=...)
SpeedView.stats.session.tooltip=Guztira (Protokoloa)
-swt.install.window.title=Vuze Osagai/Plugin Ezartzailea
security.certcreate.city=Hiria edo Herria
-ConfigView.section.stats.choosedefaultsavepath=Mesedez hautatu estatistikak gordetzeko zuzenbidea
+swt.install.window.title=Vuze Osagai/Plugin Ezartzailea
ConfigView.section.server.enableudp=Gaitu UDP aztarnari bezero hartuemana
+ConfigView.section.stats.choosedefaultsavepath=Mesedez hautatu estatistikak gordetzeko zuzenbidea
SpeedView.downloadSpeed.title=Jeisketa Abiadura
ConfigView.label.defaultstarttorrentsstoppedandpause=Torrent bat gehitzen denean gelditutako egoeran berezgaitasunez gelditu hura
TableColumn.header.smoothdown.info=Jeiskea Abiadura Lehundua {smooth.config}
-ConfigView.label.allowsameip.tooltip=Egiaztatu BEHAR baduzu bakarrik.\nHau izainen aurkako babesa da (ezgaituta dagoenean).
SpeedTestWizard.finish.panel.max.upload=Geh. igoera\:
+ConfigView.label.allowsameip.tooltip=Egiaztatu BEHAR baduzu bakarrik.\nHau izainen aurkako babesa da (ezgaituta dagoenean).
device.error.xcodefail=Transkodeaketa Hutsegitea
-TableColumn.header.timesinceupload=Igoera Idlea
-ConfigView.label.seeding.rankType.none.tooltip=Antolakuntza ohinarrituta Z zutabean
+TableColumn.header.timesinceupload=Igoera Jardungabe
+ConfigView.label.seeding.rankType.none.tooltip=Antolakuntza Z zutabean ohinarrituta
device.od.error.notfound=Gailua lineaz-kanpo dagoela dirudi
ConfigView.section.transfer.autospeed.info=Berez-abiadurak berezgaitasunez zehazten du igoera muga sare elkarketaren gainzamatzea saihesteko\n\nMuga hauek berezgaitasunezko igoera abiadura gaituta dagoenean bakarrik ezarri daitezke eta behar du baita ere banaturiko datubasea gaituta egotea.\n
sidebar.LibraryCD.tooltip=Osatugabeko %1 torrent dago, hauetako %2 orain emaritzan dago/daude
-exportTorrentWizard.exportfile.path=Helburua\:
dlg.auth.success.subtitle=Zorionak\!
+exportTorrentWizard.exportfile.path=Helburua\:
pairing.srp.setpw.doit=Aldatu
MyTorrentsView.menu.clear_resume_data=Garbitu &Datuak Jarraitzeko
ipfilter.options=IP Iragazki Aukerak...
@@ -4038,10 +4090,10 @@ security.crypto.password.mismatch=Idatzitako sarhitz balioak ezberdinak dira, me
label.contraints=Mugak...
ConfigView.label.maxuploadswhenbusymin=Torrent bakoitzeko geh. igoera abiadura hartuta denboragailuan dagoenean [seg]
MainWindow.menu.beta.off=Utzi Beta Programa...
-FancyMenu.Header.Control=Agintea
ConfigView.section.style.alwaysRefreshMyTorrents=Betik berritu Liburutegia
-PeersView.port=Ataka
+FancyMenu.Header.Control=Agintea
TableColumn.header.lan.info=Hartzailea zure LAN-ean dagoen adierazten duen ikurra
+PeersView.port=Ataka
Button.set=Ezarri
webui.group.access=Sarbide Agintea
dlg.auth.install.failed.title=Eragintza Hutsegitea
@@ -4049,21 +4101,21 @@ ConfigView.label.password=Babestu Vuze sarhitza erabiliz\n - Ikurtutakoan eta ha
configureWizard.transfer2.current=<Oraingo Ezarpenak>
wizard.multitracker.edit.deletegroup=Ezabatu
Button.close=Itxi
-ConfigView.section.connection.network.max.simultaneous.connect.attempts.tooltip=Gehienezko irteera elkarketa berri ezartzen saiatu behar den Vuze une jakin batean.\nOHARRA\: WindowsXP Service Pack 2 (SP2)-k ezartzen du sistema guztiarentzako aldibereko 10 elkarketa ahalegineko muga..\nBerezko balioa 8 da.
ConfigView.section.connection.advanced.bind_port.tooltip=Irteera hartune elkarketak tokiko mailan behartuta egongo dira emaniko atakan.\nHau gaitzeak NAT bideratzailearen ezarpenarekin lagundu dezake .
+ConfigView.section.connection.network.max.simultaneous.connect.attempts.tooltip=Gehienezko irteera elkarketa berri ezartzen saiatu behar den Vuze une jakin batean.\nOHARRA\: WindowsXP Service Pack 2 (SP2)-k ezartzen du sistema guztiarentzako aldibereko 10 elkarketa ahalegineko muga..\nBerezko balioa 8 da.
ConfigView.section.stats.enable=Gaitu
-FilesView.title.full=Agiriak
TableColumn.menu.sr_prog.interval=Ezarri Garapen Tartea...
+FilesView.title.full=Agiriak
TableColumn.header.tag.xcode=Berez Transkodeatu
-ConfigTransferAutoSpeed.add.comment.to.log=Gehitu aipamena\:
sidebar.VuzeHDNetwork=Vuze HD Sarea
+ConfigTransferAutoSpeed.add.comment.to.log=Gehitu aipamena\:
br.backup.last.error=Azken babeskopia akatsa\:
-uninstallPluginsWizard.finish.explanation=Hautaturiko Pluginak Eguneratze Laguntzailea erabiliz kendu daitezke
ConfigView.section.proxy.socks.version=SOCKS bertsioa
-IrcView.privateto=Hona\:
+uninstallPluginsWizard.finish.explanation=Hautaturiko Pluginak Eguneratze Laguntzailea erabiliz kendu daitezke
MainWindow.menu.view.console=Kontsola
-Wizard.Subscription.create.rss=RSS
+IrcView.privateto=Hona\:
SpeedView.stats.session=Saio Honetan\:
+Wizard.Subscription.create.rss=RSS
TableColumn.header.sha1=SHA1
ScrapeInfoView.title=Lehen Aztarnaria
security.certcreate.firstlastname=Lehen eta bigarren izena
@@ -4076,136 +4128,138 @@ ConfigView.label.maxdownloads.tooltip=Hemen erabaki duzun kopurua eraginkortasun
ConfigView.section.tracker.extensions=Hedapenak
label.check.avail=Eskuragarritasuna
DiskManager.error.nospace=Diskako tokia ez da nahikoa
-ConfigView.section.security.toolsinfo=JAR agiri izenpetuak plugin batzuk laguntzeko erabiltzen dira, adibidez Swing Web Interfazea (hori egiteko itxuratzen denean).\nJAR agiriak izenpetzeko asmoarekin beharrezkoa da Sun JDK (ez JRE) ezarpenarekin datorren 'tools.jar' agirira sarbidea izatea.\nJRE bakarrik baduzu ezarrita mesedez ezarri ezazu JDK.\nVuzek agiria zure ordez bilatu dezake. Horrela ere, honek huts egiten badu zeuk agerian ezarri dezakezu hemen edukiaren zuzenbidea.
-ConfigView.label.seeding.firstPriority.following=hurrengoetara\:
OpenTorrentWindow.torrentTable.name=Izena
+ConfigView.label.seeding.firstPriority.following=hurrengoetara\:
+ConfigView.section.security.toolsinfo=JAR agiri izenpetuak plugin batzuk laguntzeko erabiltzen dira, adibidez Swing Web Interfazea (hori egiteko itxuratzen denean).\nJAR agiriak izenpetzeko asmoarekin beharrezkoa da Sun JDK (ez JRE) ezarpenarekin datorren 'tools.jar' agirira sarbidea izatea.\nJRE bakarrik baduzu ezarrita mesedez ezarri ezazu JDK.\nVuzek agiria zure ordez bilatu dezake. Horrela ere, honek huts egiten badu zeuk agerian ezarri dezakezu hemen edukiaren zuzenbidea.
ConfigView.label.watchtorrentfolder.tooltip=Bilatu .torrent berriak aldizka
+TableColumn.header.sizewithdnd=Torrentaren Neurria
ConfigView.section.file.resume.recheck.all=Berrabiarazte-hutsegitean egiaztatu agiri guztia atal osatuak bilatzeko (Bestela azken gordeketan eraginda zeuden atalak bakarrik egiaztatuko dira)
ConfigView.section.connection.peersource.PeerExchange=Beste hartzaile batez lortua
v3.MainWindow.button.viewdetails=Ikusi Xehetasunak
ConfigView.label.xfer.bias_up=Handitu jeisketa abiadurak igoera gaitasunera osatugabeko jeisketetan
general.na.short=E/G
label.copy.on.comp=Kopiatu Osatutakoan
-ConfigView.section.stats.hours=ordu
ColumnSetup.title=Zutabe Ezarpena '%1'
+ConfigView.section.stats.hours=ordu
ConfigTransferAutoSpeed.log.button=Laburpena
-ConfigView.label.seeding.firstPriority.ignore=Baztertu Lehentasun Nagusia arauen gainekoa hauentzat\:
TableColumn.header.torrentfileindex.info=Agiriaren aurkibidea torrentean
+ConfigView.label.seeding.firstPriority.ignore=Baztertu Lehentasun Nagusia arauen gainekoa hauentzat\:
MyTorrentsView.menu.publish=A&rgitaratu...
-DHTView.operations.findValue=Bilaketa Balioa
dlg.auth.enter.prompt=Vuze Plus Eragiketa Kodea\:
-v3.MainWindow.button.download=Jeitsi
+DHTView.operations.findValue=Bilaketa Balioa
ConfigView.section.Associations=Izenburua
+v3.MainWindow.button.download=Jeitsi
window.welcome.file=/changelog.txt
-MainWindow.menu.file.closetab.keybinding=Meta+W
platform.win32.baddll.SBLSP=SPEEDBit Bideo Bizkortzailea
-MyTorrentsView.menu.setSpeed.slots=ahoak
+MainWindow.menu.file.closetab.keybinding=Meta+W
updater.cant.write.to.app.details=Agiritegia "%1" idaztezina da.\n\nHonek etorkizuneko software eguneratzeak ezartzea saihestuko du.\n\nMesedez <a href\="http\://wiki.vuze.com/w/Failed_Update">ikusi wikia xehetasunetarako</a>.
+MyTorrentsView.menu.setSpeed.slots=ahoak
ClientStats.title.full=Bezero Estatistika
Trackers.column.peers.info=Aztarnariak itzulitako hartzaileak
-MyTorrentsView.menu.peersource=Hartzaile Iturburuak
splash.loadIpFilters=IP Iragazkiak Gertatzen...
+MyTorrentsView.menu.peersource=Hartzaile Iturburuak
dht.diagnostics.group=Igarpenak
OpenTorrentFileView.header={ConfigView.section.files}
ManagerItem.seeding=Emaritzen
-SpeedView.stats.ratio=Maila
-ConfigView.label.autoopen.dl=Jeisten
pairing.last.error=Azken akatsa
-ConfigView.section.connection.serverport.wiki=Hautatutako ataka onak
+ConfigView.label.autoopen.dl=Jeisten
+SpeedView.stats.ratio=Maila
FilesView.click=Klikatu...
-SystemTray.menu.resumetransfers=Berrekin Eskualdaketak
+ConfigView.section.connection.serverport.wiki=Hautatutako ataka onak
MagnetPlugin.decentral_disabled=<zentralizatu gabeko aztarnaritza ezgaituta>
+SystemTray.menu.resumetransfers=Berrekin Eskualdaketak
+devices.od.idle=Jardungabe
IPChecker.external.analysingresponse=Erantzuna aztertzen
-devices.od.idle=Hutsik
upnp.ignorebaddevices.alert=UPnP gailu helbidea %1 bazterturik dago etengabeko akatsengaitik. Ikusi UPnP plugin ezarpenak eragiketa honi buruzko aukerentzako.
-DHTView.operations.ok=Ongi
OpenTorrentWindow.fileTable.size=Neurria
+DHTView.operations.ok=Ongi
exportTorrentWizard.process.outputfileexists.title=Agiria Badago
azbuddy.ui.table.last_ygm=MBD
devices.xcode.setcopyto=Ezarri Kopiaketa Agiritegia
-v3.activity.button.readall=Markatu Irakurritako Denak
ConfigView.label.stop.autoreset=Berezgaitasunez berrezarri ekintzak '%1' behin eraginduta
-ConfigView.section.plugins.webui=Swing Web Interfazea
+v3.activity.button.readall=Markatu Irakurritako Denak
TableColumn.header.category=Kategoria
+ConfigView.section.plugins.webui=Swing Web Interfazea
webui.rootres=Erro baliabidea
ConfigView.section.transfer.autospeed.enabledebug=Ohar garbiketa argibideak
ConfigView.label.autoopen.cd=Emaritzan
TableColumn.header.smoothdown=Jeisketa Lehundua
SpeedView.stats.con=Elkarketa xehetasunak\:
wizard.multitracker.edit.save=Gorde
-ConfigTransferAutoSpeed.set.tolerance=jasangarritasuna (sm)
-Alert.failed.update=Huts egin du gutxienez osagai baten ezarpenak. Ikusi <A HREF\="{Alert.failed.update.url}">AzureusWiki\: Failed Update</A> [%1]
ConfigView.label.moveremoved=Mugitu osatutako agiriak (kentzerakoan)
-azbuddy.dchat.nick=Goitizena
+Alert.failed.update=Huts egin du gutxienez osagai baten ezarpenak. Ikusi <A HREF\="{Alert.failed.update.url}">AzureusWiki\: Failed Update</A> [%1]
+ConfigTransferAutoSpeed.set.tolerance=jasangarritasuna (sm)
devices.device=Gailua
+azbuddy.dchat.nick=Goitizena
ConfigView.label.allowsameip=Ahalbidetu elkarketa anitz IP beretik
-azbuddy.os_offline=Lineaz-kanpo
dlg.auth.denied=Eragintza Kodea Ukatuta
-TableColumn.header.shareRatio=Elkarbanatze Maila
+azbuddy.os_offline=Lineaz-kanpo
subscriptions.column.last-checked=Azken Egiaztapena
-MyTorrentsView.menu.rename.displayed.enter.title=Berrizendatu Erakutsitako Izena
+TableColumn.header.shareRatio=Elkarbanatze Maila
installPluginsWizard.mode.list=Sourceforge.net-eko zerrendatik
+MyTorrentsView.menu.rename.displayed.enter.title=Berrizendatu Erakutsitako Izena
external.browser.system=Ordenagailuaren Berezkoa
ConfigView.section.style.status.show_nat=NAT Egoera
-ConfigView.label.ratio=maila
ConfigView.section.tracker.seedretention=Geh. emaritza atxikia torrent bakoitzeko [0\:mugagabea]
+ConfigView.label.ratio=maila
OpenTorrentWindow.mb.badSize.text='%1' ez da '%2' eta ezin da emaritzarako erabili
OpenTorrentWindow.addPosition=Lerroko Kokapena
ConfigView.section.tracker.nonblockingconcmax=Geh. aldibereko elkarketa [0\: mugagabea]
TableColumn.header.up.info=Orain arte beste erabiltzaileei bidalitako datu zenbatekoa
azbuddy.ui.menu.copypk=Kopiatu Giltza Publikoa
ConfigView.section.tracker.pollintervalincper='z' bezerotik behin
-SpeedTestWizard.set.upload.bytes.per.sec=kByte/seg
label.tracker.templates=Aztarnari Ereduak
-ConfigView.section.interface.enabletray._mac=Gaitu Egoera Barra Ikurra [berrabiaraztea beharrezkoa]
+SpeedTestWizard.set.upload.bytes.per.sec=kByte/seg
ConfigView.label.saveresumeinterval=Eguneratu berrekite datuak betik
+ConfigView.section.interface.enabletray._mac=Gaitu Egoera Barra Ikurra [berrabiaraztea beharrezkoa]
TableColumn.header.downloadspeed.info=Hartzailearengandik jasotzen ari zaren abiaduraren neurria
-label.udp_probe=UDP Proba
OpenTorrentWindow.pastearea=Sartu URL-a, magnet lotura, edo hasha\:
+label.udp_probe=UDP Proba
MainWindow.upgrade.downloadingfrom=Jeisten hemendik\:
exportTorrentWizard.torrentfile.message=Hautatu esportatuko den torrent agiria
-TableColumn.header.swarm_average_speed=Erletaldearen Bataz-besteko Abiadura
pairing.server.warning.title=Uztarpen Zerbitzuaren Mezua
+TableColumn.header.swarm_average_speed=Erletaldearen Bataz-besteko Abiadura
PeersView.ip.info=Hartzailearen IP-a
-OpenTorrentWindow.mb.alreadyExists.title=Jadanik badago
DevicesOD.column.od_completion=Eskualdaketa Garapena
-azbuddy.enable_cat_pub=Kategoria publikoak dira zure lagunak izeneman daitezkeen GUZTIAK (',' banandurik)
+OpenTorrentWindow.mb.alreadyExists.title=Jadanik badago
MyTorrents.column.ColumnProgressETA.compon=Osatuta %1
+azbuddy.enable_cat_pub=Kategoria publikoak dira zure lagunak izeneman daitezkeen GUZTIAK (',' banandurik)
+MyTorrentsView.menu.restore={br.restore}
importTorrentWizard.process.inputfilebad.title=Inportazio Agiri Baliogabea
-MainWindow.dialog.restartconfirmation.text=Egitan nahi duzu Vuze berrabiaraztea
TableColumn.header.torrentspeed=Abiadura
+MainWindow.dialog.restartconfirmation.text=Egitan nahi duzu Vuze berrabiaraztea
PluginDeprecation.view=Plugin Garbiketa
v3.button.removeActivityEntry=Kendu Jakinarazpena
FancyMenu.Header.Content=Edukia
DHTTransport.report.rerequest_all=bir-eskabidetzen eskualdaketa osoa %1
platform.win32.baddll.niphk=Norman Birus-aurkakoa
-MyTorrentsView.menu.forceStart=&Behartu Hastera
label.no.connections=Elkarketarik gabe
+MyTorrentsView.menu.forceStart=&Behartu Hastera
MainWindow.menu.speed_limits.info.curr=Oraingo ezarpenak
devices.turnon.title=Piztu Gailu Sostengua
-MainWindow.about.internet.sourceforge=Sourceforge Egitasmoaren Webgunea
TableColumn.header.secondsseeding=Emaritzen
-v3.mb.delPublished.title=Gelditu Eduki Emaritza
+MainWindow.about.internet.sourceforge=Sourceforge Egitasmoaren Webgunea
rcm.rc_title.tt=Klikatu eduki hau bilatzeko
-ConfigView.pluginlist.column.type.builtIn=Barne Eraikita
+v3.mb.delPublished.title=Gelditu Eduki Emaritza
configureWizard.transfer2.rate.unchanged=Oraingo ezarpenak erabiliak izan daitezke
-sharing.progress.title=Klasikoen-Elkarbanatze Garapena
+ConfigView.pluginlist.column.type.builtIn=Barne Eraikita
+sharing.progress.title=Elkarbanatze Garapena
SpeedTestWizard.name.conf.level.high=Handia
label.outgoing=Kanporantz
PluginDeprecation.log.details=---------\nEZAGUTARAZLEA\: %1\nHITZINGURUA\: %2\n\n*** AZTARNAKETA HASIERA ***\n%3*** AZTARNAKETA AMAIERA ***\n\n
-platform.win32.baddll.mclsp=McAfee Pribatutasun Zerbitzua
TableColumn.header.fileext.info=Jeisketaren lehen agiriaren agiri mota/hedapena
+platform.win32.baddll.mclsp=McAfee Pribatutasun Zerbitzua
TableColumn.header.CountryFlagSmall=Ikurra
-ConfigView.section.security.resetkey.error=Hutsegitea du giltzak berrezartzean
v3.deviceview.infobar.line2.android=Gaitu USB heuskarria zure urrutizkenean bideoak zuzen eskualdatzeo
+ConfigView.section.security.resetkey.error=Hutsegitea du giltzak berrezartzean
device.od.turnon.title=Piztu Lineaz-kanpoko Jeisketa Sostengua
MainWindow.menu.speed_limits.delete=Ezabatu
ConfigView.section.style.enableHeaderHeight=Norbere Idazburu Garaiera
-FileItem.high=Handia
OpenTorrentWindow.addFiles.magnet=Gehitu &Magneta
+FileItem.high=Handia
devices.xcode.working_dir=Transkodeaketa eremua
-FileDownload.canceled=Torrent agiriaren jeisketa ongi ezeztatu da erabiltzailearen ekintzaz\: %1
GeneralView.label.status.pieces=Atalen Egoera
+FileDownload.canceled=Torrent agiriaren jeisketa ongi ezeztatu da erabiltzailearen ekintzaz\: %1
dlg.install.azemp.description=Azalpena
azbuddy.dchat.pc.enable=Gaitu txat pribatua
v3.MainWindow.text.log.in=Sartu
diff --git a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_pt_BR.properties b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_pt_BR.properties
index e79f8fe..b64b743 100644
--- a/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_pt_BR.properties
+++ b/azureus2/src/org/gudy/azureus2/internat/MessagesBundle_pt_BR.properties
@@ -15,14 +15,14 @@ ConfigView.section.style.showRankIcon=Exibir \u00CDcone de Ordem
columnChooser.title=Escolher as colunas a exibir
ConfigView.section.tracker.maxgettime=Tempo m\u00E1x. para processamento GET (segundos) [0\:ilimitado]
Button.moveDown=Mover &pra Baixo
-ConfigView.label.hapds=Desconectar dos seeds para disfar\u00E7ar, mas complete downloads
+ConfigView.label.hapds=Desconecte sementes para downloads mascarados mas conclu\u00EDdas
tag.stats.none.defined=Nenhuma tag com avalia\u00E7\u00E3o selecionado/definido\!
label.download.file=Arquivo Baixado
splash.unloadingTorrent=Descarregando Torrent
ManagerItem.forced=For\u00E7ado
device.search=Buscar por Dispositivos
iconBar.play=Tocar
-ConfigView.label.seeding.rankType.seed.options=S\u00F3 Op\u00E7\u00F5es de Contagem dos Seeds
+ConfigView.label.seeding.rankType.seed.options=Op\u00E7\u00F5es Somente para N\u00FAmero de Sementes
IPChecker.external.service.discoveryvip.name=Discoveryvip
azbuddy.msglog.title=Informa\u00E7\u00E3o sobre o Amigo
MyTorrentsView.menu.rename=Renomear
@@ -32,46 +32,46 @@ subscript.import.fail.desc=Detalhes\: %1
pairing.ui.icon.tip.no.recent=Sem conex\u00F5es recentes
platform.win32.baddll.FPServiceProvider=FoxyProxy Video Utility
ConfigView.label.prioritizefirstpiece=Priorizar o primeiro e o \u00FAltimo peda\u00E7o do(s) arquivo(s)
-Wizard.Subscription.search.subtitle3=Uma vez que a sua subscri\u00E7\u00E3o \u00E9 completada, voc\u00EA receber\u00E1 atualiza\u00E7\u00F5es ao vivo na sua barra lateral sempre que novos resultados est\u00E3o dispon\u00EDveis para sua busca.
+Wizard.Subscription.search.subtitle3=Uma vez que a sua assinatura \u00E9 completada, voc\u00EA receber\u00E1 atualiza\u00E7\u00F5es ao vivo na sua barra lateral sempre que novos resultados est\u00E3o dispon\u00EDveis para sua busca.
Wizard.Subscription.search.subtitle2=O que eu posso procurar?
Wizard.Subscription.search.subtitle1=Digite uma busca para come\u00E7ar a criar sua subscri\u00E7\u00E3o \:
-Peers.column.peer_id.info=A ID do Peer em formul\u00E1rio leg\u00EDvel
+Peers.column.peer_id.info=A ID do Par em formul\u00E1rio leg\u00EDvel
ConfigView.section.connection.peersource.Plugin=Adicionadas por um plugin
settings.updated.title=Configura\u00E7\u00F5es Atualizadas
Button.ignore=&Ignorar
ConfigTransferAutoSpeed.set.dht.ping=Configura\u00E7\u00E3o do Ping DHT\:
ConfigView.section.connection.advanced.mtu.tooltip=Tamanho m\u00E1ximo de um pacote que pode ser transferido em um frame na rede.\nO Vuze usa MTU-40 (MSS) para otimiza\u00E7\u00F5es de packet-payload de upload.\nValores recomendados\:\n 576 - Conex\u00F5es Dial-up\n1492 - Conex\u00F5es de banda larga PPPoE\n1500 - conex\u00F5es de banda larga a Cabo,Ethernet e DSL
-subscriptions.listwindow.subscribe=Subscrever
+subscriptions.listwindow.subscribe=Assinar
ConfigView.title.full._mac=Prefer\u00EAncias
remote.pairing.test.fail=Vuze n\u00E3o est\u00E1 acess\u00EDvel fora de sua rede local. <A HREF\="/pairing_error_faq.start">Learn more</A>
ipCheckerWizard.chooseService=Por favor escolha um servi\u00E7o de verifica\u00E7\u00E3o IP dos servi\u00E7os listados
ConfigView.label.downloading.autoReposition=Reposicionar na fila de downloads para otimizar o download
-iconBar.top=Mover pro topo
+iconBar.top=Topo
configureWizard.welcome.title=Bem-vindo ao Assistente de Configura\u00E7\u00E3o do Vuze
ManagerItem.ready=Esperando por outro(s) torrent(s) para requisitar
-PeersView.BlockView.NoAvail.Have=Voc\u00EA tem; O peer n\u00E3o
+PeersView.BlockView.NoAvail.Have=Voc\u00EA tem; Par n\u00E3o
label.information={wizard.information}
wizard.tracker.external=Usar um rastreador externo
MagnetPlugin.report.found=encontrado(s) %1
MagnetPlugin.report.md.done=Metadados baixado com sucesso
-Plugin.trackerpeerauth.info=Este plugin trabalha com os trackers para verificar que os peers s\u00E3o membros v\u00E1lidos da multid\u00E3o
+Plugin.trackerpeerauth.info=Este plugin trabalha com os trackers para verificar que os pares s\u00E3o membros v\u00E1lidos da multid\u00E3o
FilesView.click.info=Clique para calcular, use o bot\u00E3o direito do mouse no menu para v\u00E1rios c\u00E1lculos
-MyTorrentsView.menu.editWebSeeds=Editar Seeds HTTP
+MyTorrentsView.menu.editWebSeeds=Editar Sementes HTTP
Button.yes=Sim
MyTorrents.items.UpSpeedLimit.disabled=Sem upload
ConfigView.section.style.confirmationOnExit=Mostrar janela de confirma\u00E7\u00E3o ao sair
label.num_selected=%1 selecionado
-PeersView.gain.info=Quantidade baixado - os dados enviados
+PeersView.gain.info=Quantidade baixada - dados enviados
MagnetURLHandler.report.percent=completado\: %1%
MyTorrentsView.dialog.NumberError.title=N\u00FAmero Inv\u00E1lido ou N\u00E3o Reconhecido
-ConfigView.section.connection.webseed.act.on.avail=Somente ativar seeds da Web/HTTP para baixar quando a disponibilidade for baixa
+ConfigView.section.connection.webseed.act.on.avail=Somente ativar sementes de Web/HTTP quando a disponibilidade for pobre para baixar
SpeedTestWizard.test.panel.abort.countdown=abortar teste em\:
remote.pairing.tip.title=Dica\: Duas maneiras f\u00E1ceis de usar Vuze Remoto\:
Peers.column.as=AS/ASN
PeersView.state.handshake=Esperando pelo handshake
TableColumn.header.mergeddata=Fus\u00E3o da Multid\u00E3o
-upnp.mapping.dataport=Porta de Entrada dos Dados do Peer
-crypto.alert.as.warning=Rede '%1' \u00E9 conhecida por imp\u00F4r traffic shaping para reduzir a performance de download. A encripta\u00E7\u00E3o do transporte foi automaticamente ligada - isto pode ser desligado/modificado via par\u00E2metros de configura\u00E7\u00E3o.
+upnp.mapping.dataport=Porta de Entrada dos Dados do Par
+crypto.alert.as.warning=Rede '%1' \u00E9 conhecida por imp\u00F4r traffic shaping para reduzir a performance de download. A criptografia do transporte foi automaticamente ligada - isto pode ser desligado/modificado via par\u00E2metros de configura\u00E7\u00E3o.
network.admin.maybe.vpn.title=VPN Ativo?
ConfigView.section.security.restart.msg=O Vuze reiniciar\u00E1 agora para completar a opera\u00E7\u00E3o.
DevicesOD.column.od_status={MyTrackerView.status}
@@ -88,12 +88,12 @@ tags.view.infobar.text1=Descobrir Tags
ConfigView.label.stop.RunScriptAndClose=Executar Script + Desligar o Vuze
v3.MainWindow.view.wait=Inicializando a visualiza\u00E7\u00E3o, por favor espere.
openUrl.title=Abrir Local
-Torrent.create.progress.piececount=Contagem dos peda\u00E7os\:
+Torrent.create.progress.piececount=N\u00FAmero de peda\u00E7os\:
ConfigView.section.startstop={ConfigView.label.start} & {ConfigView.label.stop}
OpenTorrentFile.column.download=Baixar?
authenticator.location=Local
upnp.alertothermappings=Relatar portas possu\u00EDdas por outros computadores
-ConfigView.section.ipfilter.peerblocking.group=Bloqueio de Peers
+ConfigView.section.ipfilter.peerblocking.group=Bloqueando Pares
TableColumn.header.tag.upload_priority={cat.upload.priority}
SystemTray.menu.startalltransfers=Iniciar Todas as Transfer\u00EAncias
health.explain.error=H\u00E1 um erro com este torrent. Veja a coluna Status, ou a dica no \u00EDcone para o erro.
@@ -128,7 +128,7 @@ SpeedTestWizard.finish.panel.enabled=ativado
DHTTransport.report.request_all=requisitando a transfer\u00EAncia inteira de %1
ConfigView.label.seeding.preferLargerSwarms=Quando os torrents tem o mesmo rank, preferir as multid\u00F5es maiores
fileDownloadWindow.state_initializing=Inicializando
-ConfigView.label.ircwiki=Por favor leia http\://azureuswiki.com/index.php/Rules_para o_IRC
+ConfigView.label.ircwiki=Por Favor, leia http\://wiki.vuze.com/w/Rules_for_IRC
azbuddy.dchat.shared.tooltip=Compartilhado significa que o mesmo apelido \u00E9 usado em todos os canais por padr\u00E3o\nCanais p\u00FAblicos e an\u00F4nimos t\u00EAm configura\u00E7\u00F5es padr\u00E3o separados.
LoggerView.loggingDisabled=Logging n\u00E3o est\u00E1 ativado.
FilesView.%=%
@@ -137,7 +137,7 @@ MainWindow.dialog.share.sharedircontents.recursive=Recursivo
Button.deleteContent.fromComputer=Apagar do Computador
MainWindow.menu.help.checkupdate=&Procurar por Atualiza\u00E7\u00F5es...
Trackers.column.name=Detalhes
-health.explain.yellow=significa que o rastreador est\u00E1 OK, voc\u00EA est\u00E1 conectado a peers, mas voc\u00EA n\u00E3o tem nenhuma conex\u00E3o remota.\nVoc\u00EA pode ter um problema de NAT se seus torrents ficam no estado amarelo o tempo todo
+health.explain.yellow=Significa que o rastreador est\u00E1 OK, voc\u00EA est\u00E1 conectado a pares, mas voc\u00EA n\u00E3o tem nenhuma conex\u00E3o remota.\nVoc\u00EA pode ter um problema de NAT se seus torrents ficam no estado amarelo o tempo todo
dht.portdefault=Usar a porta padr\u00E3o
Button.send=Enviar
FilesView.mode=Modo
@@ -149,6 +149,7 @@ azbuddy.ui.menu.ping=Ping
devices.od.turnon.text3=Por favor, conecte o Disco R\u00EDgido no %1 para usar esse recurso.
devices.od.turnon.text2=Voc\u00EA gostaria que %1 continuasse a baixar os arquivos enquanto o computador estiver offline?
pairing.srp.enable=Ativar emparelhamento seguro
+privacy.view.public.only=P\u00FAblico Somente
devices.od.turnon.text1=N\u00F3s percebemos que voc\u00EA conectou-se a um %1.
ConfigView.section.tracker.processinglimits=Limites de processamento
IPChecker.external.service.no-ip.url=http\://www.no-ip.com/
@@ -162,7 +163,7 @@ authenticator.user=Nome de Usu\u00E1rio
label.torrent.structure=Estrutura do Torrent
Button.markSelected=Marcar os Selecionados
sidebar.show.options=Exibir as Op\u00E7\u00F5es como uma barra lateral do qu\u00EA uma janela separada
-subscript.add.upgrade.title=Atualizar a Subscri\u00E7\u00E3o?
+subscript.add.upgrade.title=Atualizar Assinatura?
window.uiswitcher.title=Escolhedor de IU do Vuze
MyTorrentsView.menu.category.delete=&Apagar Categoria
ConfigView.section.plugins=Plugins
@@ -174,10 +175,11 @@ ConfigView.section.security.resetkey.warning.title=Aviso sobre a Perda de Dados
devices.contextmenu.xcode=Transcondifica Para Dispositivo
label.table.default=Tabela Padr\u00E3o
wizard.notimplemented=Ainda n\u00E3o implementado
-ConfigView.label.seeding.autoStart0Peers=Auto-Iniciar todos os torrents completados com 0 peers
+ConfigView.label.seeding.autoStart0Peers=Auto-Iniciar todos os torrents completados com 0 pares
OpenTorrentOptions.header.saveto=Salvar com Destino\: %1
Torrent.create.progress.ignoringfile=Ignorando arquivo
label.keep.alive=Manter Vivo
+label.webseeds=Sementes da Web
config.external.browser.switch.subs={ConfigView.section.Subscriptions}
TableColumn.header.torrentfileindex=\u00CDndice de arquivo
devices.installed=Instalado
@@ -187,7 +189,7 @@ device.router.req_map=Mapeamentos obrigat\u00F3rios
ConfigView.section.tracker.ip=Endere\u00E7o IP externo do rastreador
azbuddy.enable_chat_notif=Ativar as notifica\u00E7\u00F5es do chat
label.container.display=<container>
-TableColumn.header.swarm_average_completion.info=A porcentagem da conclus\u00E3o m\u00E9dia dos peers na multid\u00E3o
+TableColumn.header.swarm_average_completion.info=A porcentagem da conclus\u00E3o m\u00E9dia dos pares na multid\u00E3o
dialog.uiswitcher.restart.title=Trocador de Interface do Usu\u00E1rio\: Requerido Reiniciar o Vuze
ConfigView.label.transferbar.remember_location=Lembrar do \u00FAltimo local da barra de transfer\u00EAncia
ConfigView.label.show.win.on.add=Mostrar a janela principal quando um download \u00E9 adicionado por outro aplicativo
@@ -203,7 +205,7 @@ PiecesView.DistributionView.RarestAvl=Peda\u00E7os Mais Raros\: %1 (Avl\:%2)
PeersView.BlockView.Transfer=Transferindo
LoggerView.filter.uncheckAll=Desmarcar Todas as Categorias
MyTorrentsView.menu.manual.per_torrent=Manual (por torrent)
-MainWindow.menu.file.open.torrentforseeding=Arquivo Torrent... (Para Ficar de Seed)
+MainWindow.menu.file.open.torrentforseeding=Arquivo Torrent... (Para Semeamento)
dialog.associations.title=Verifica\u00E7\u00E3o de Associa\u00E7\u00E3o
ConfigView.label.jvm=Op\u00E7\u00F5es do Java
ConfigView.label.playdownloadspeech=Falar quando um download est\u00E1 terminado
@@ -216,22 +218,23 @@ OpenTorrentOptions.header.startoptions=Op\u00E7\u00F5es de Iniciar\: %1
Formats.units.Tibit=Tibit
window.networkselection.description=Torrent\:
configureWizard.transfer.connection=Linha
-PeersView.Messaging.info=Suporta o envio de mensagens avana\u00E7ado API.
+PeersView.Messaging.info=Indica o sistema de mensagens est\u00E1 em uso.
general.all.friends=Todos os Amigos
IrcClient.joining=Entrando
subscriptions.dl_subs.enable=Baixe assinaturas de outros clientes, quando necess\u00E1rio
-ConfigView.section.connection.encryption.encrypt.info=Se a encripta\u00E7\u00E3o est\u00E1 ativada voc\u00EA n\u00E3o ser\u00E1 capaz de conectar a clientes incompat\u00EDveis a menos que voc\u00EA configure as op\u00E7\u00F5es de retorno
+ConfigView.section.connection.encryption.encrypt.info=Se a criptografia est\u00E1 ativada voc\u00EA n\u00E3o ser\u00E1 capaz de conectar a clientes incompat\u00EDveis a menos que voc\u00EA configure as op\u00E7\u00F5es de retorno
ConfigView.section.logging.log2type=Erro
TableColumn.header.sessionup.info=Byts enviados nesta sess\u00E3o
label.tags=Tags
azneti2phelper.install=Instalar Plugin I2P
-SpeedTestWizard.finish.panel.auto.speed.seeding=AutoVelocidade enquanto ficando de seed \u00E9 \:
-ConfigView.label.seeding.numPeersAsFullCopy.tooltip=Fingindo que h\u00E1 1 c\u00F3pia completa por X peers, voc\u00EA reduz o rank dos torrents com alta contagem de peers.\n\u00C9 prov\u00E1vel que os torrents com contagem alta de peers tamb\u00E9m possuam alto tr\u00E1fego.\nIsto n\u00E3o muda quaisquer das exibi\u00E7\u00F5es '\# de seeds'.
+SpeedTestWizard.finish.panel.auto.speed.seeding=Velocidade Autom\u00E1tica enquanto semeando \u00E9\:
+ConfigView.label.seeding.numPeersAsFullCopy.tooltip=Fingindo que h\u00E1 1 c\u00F3pia completa por X pares, voc\u00EA reduz o rank dos torrents com alto n\u00FAmeros de pares.\n\u00C9 prov\u00E1vel que os torrents com n\u00FAmero alto de pares tamb\u00E9m possuam alto tr\u00E1fego.\nIsto n\u00E3o muda quaisquer das exibi\u00E7\u00F5es do '\# de sementes'.
ConfigView.section.dns.info=Esta se\u00E7\u00E3o especifica servidores DNS alternativos e define em que podem ser utilizados.\n\nPor exemplo, o Google executa um servidor DNS no endere\u00E7o 8.8.8.8 (e 8.8.4.4 para backup)\n\nIsso pode ser \u00FAtil quando o provedor de DNS existente n\u00E3o est\u00E1 resolvendo nomes corretamente.\n
TableColumn.header.DateCompleted={TableColumn.header.date_completed}
dht.backup.only=DHT como backup somente
ConfigView.section.proxy.check.on.start=Verificar o status do proxy ao iniciar
-TableColumn.header.date_completed=Completado Em
+TableColumn.header.date_completed=Conclu\u00EDdo Em
+label.decentralised=Descentralizado
UIDebugGenerator.messageask.text=Por favor insira uma descri\u00E7\u00E3o do bug que voc\u00EA est\u00E1 reportando
config.browser.internal.disable=Desabilitar todos os usos do navegador interno.
Button.deleteContent.fromLibrary=Remover da Biblioteca
@@ -256,7 +259,7 @@ azbuddy.dchat.pc.pinned.only=Somente aceitar bate-papos de participantes pinados
UpdateWindow.status.restartNeeded=Reiniciar ser\u00E1 necess\u00E1rio\!
importTorrentWizard.process.inputfilebad.message=Uma falha ocorreu ao acessar o arquivo de entrada de dados\:
ConfigView.section.security.op.error.title=A Opera\u00E7\u00E3o Falhou
-subscript.add.desc=Voc\u00EA tem certeza que voc\u00EA quer instalar a subscri\u00E7\u00E3o '%1'?
+subscript.add.desc=Voc\u00EA tem certeza que voc\u00EA quer instalar a assinatura '%1'?
ConfigView.section.tracker.maxgettime.info=Usado para an\u00FAncio e limpezas
tps.type.plugin=Plugin
azbuddy.tracker.bbb.status.in=Eu Estou Sendo Acelerado
@@ -274,12 +277,13 @@ label.close.tab=Fechar Aba
window.updateswt.title=Sua vers\u00E3o da SWT \u00E9 muito antiga\!
ConfigView.label.autoupdate=Abrir o di\u00E1logo de atualiza\u00E7\u00E3o quando uma vers\u00E3o mais nova estiver dispon\u00EDvel
update.now.title=Atualiza\u00E7\u00E3o Requirida
-subscript.add.dup.desc=A subscri\u00E7\u00E3o '%1' j\u00E1 est\u00E1 instalada.
+subscript.add.dup.desc=A assinatura '%1' j\u00E1 est\u00E1 instalada.
+label.ip.filter=Filtro de IP
upnp.ignorebaddevices.reset=Resetar a lista de dispositivos ignorados
ManagerItem.downloading=Baixando
DiskManager.error.nospace_fat32={DiskManager.error.nospace} - checar {wiki.fat32}
Button.retry=&Tentar de Novo
-PeersView.state.info=Estado da conex\u00E3o com o peer
+PeersView.state.info=Estado da conex\u00E3o do par
device.rss.enable=Criar um feed RSS para o arquivo convertido - isto faz o conte\u00FAdo dispon\u00EDvel para leitores de feed RSS
ConfigView.section.ipfilter.allow=PERMITIR estes intervalos (o padr\u00E3o \u00E9 NEGAR)
progress.window.msg.filemove=Por favor espere enquanto a movimenta\u00E7\u00E3o/renomeamento do arquivo se completa
@@ -293,30 +297,31 @@ ConfigView.section.tracker.natchecktimeout=Verifica o esgotamento do tempo (segs
iconBar.share=Compartilhar
TableColumn.header.sessiondown.info=Bytes baixados nesta sess\u00E3o
devices.turnon.itunes=Inclu\u00EDdo suporte para iTunes (requerido para dispositivos da Apple)
-PeersView.menu.showdownload=Exibir Download &Detalhes
+PeersView.menu.showdownload=Exibir &Detalhes do Download
SpeedTestWizard.abort.message.entered.queued=Teste baixado entrou em estado requerido/parado
Button.renew=Renovar
ConfigView.text.any=qualquer
FilesView.sha1.calculate=Calcular SHA1 hash(s)
OpenTorrentFile.column.name.info={OpenTorrentWindow.fileTable.fileName}
-PeersView.outgoingreqcount.info=Contagem dos pedidos de sa\u00EDda feitos pelo peer
+PeersView.outgoingreqcount.info=Contagem dos pedidos de sa\u00EDda feitos pelo par
ConfigView.section.style.ShowTagButtons=Exibir Bot\u00F5es de Tag na Biblioteca
subscriptions.view.help.2=Obtenha atualiza\u00E7\u00F5es ao vivo gr\u00E1tis sempre que novo conte\u00FAdo est\u00E1 dispon\u00EDvel para baixar. <A HREF\="http\://wiki.vuze.com/w/FAQ_Subscriptions">Leia mais</A>.
-subscriptions.view.help.1=Adicionar Subscri\u00E7\u00F5es onde quer que voc\u00EA veja
+subscriptions.view.help.1=Adicionar Assinaturas onde quer que voc\u00EA veja
ConfigView.section.proxy.disable.plugin.proxies=Desabilitar plugins proxis (exemplo\: Tor/I2P plugins) quando o servidor SOCKS est\u00E1 configurado
azbuddy.dchat.open.in.vuze=Abrir no Vuze
MyTorrentsView.menu.setSpeed.in=entrada
-TorrentOptionsView.multi.title.short=Op\u00E7\u00F5es do Torrent
+TorrentOptionsView.multi.title.short=Op\u00E7\u00F5es/Info do(s) Torrent(s)
br.backup.auto.now=Testar auto-backup agora
OpenTorrentWindow.checkbox.showAdvanced=Uma vez que o torrent \u00E9 carregado, deixe-me definir op\u00E7\u00F5es avan\u00E7adas, como a sele\u00E7\u00E3o de arquivo e o local para salvar.
ConfigView.section.proxy.username.info=Se o servidor proxy exige autentica\u00E7\u00E3o mesmo quando nenhuma est\u00E1 definida, use a string "<nenhuma>" como nome de usu\u00E1rio
settings.updated.msg=Suas configura\u00E7\u00F5es do Vuze foram atualizadas.
GeneralView.label.numberofpieces=\# de Peda\u00E7os \:
ConfigView.label.enableSystrayToolTipNextETA=Exibir pr\u00F3ximo download a completar
+browser.internal.disabled.reenable=Reabilitando o navegador pode causar erros no programa (rein\u00EDcio requerido)
splash.plugin=Carregando o Plugin\:
Progress.reporting.window.remove.auto.tooltip=Automaticalmente remover todos os processos completados, falhos ou cancelados da visualiza\u00E7\u00E3o
ConfigView.label.set_ui_transfer_speeds.description.upload=Definir as velocidades de upload (em KB/s)
-wizard.webseedseditor.edit.newseed=Novo Seed
+wizard.webseedseditor.edit.newseed=Nova Semente
wizard.newtorrent.showtorrent=Procure o arquivo torrent gerado
installPluginsWizard.details.loading=Carregando detalhes, aguarde por favor...
v3.MainWindow.button.cancel=Cancelar
@@ -327,17 +332,17 @@ MainWindow.menu.community.chat=Comunidade &Bate-papo
label.pop.out=Sair
TableColumn.header.upspeed.info=Velocidade de upload atual
Button.bar.edit.cancel=Edi\u00E7\u00E3o Feita
-PeersView.C1.info=Ou o peer est\u00E1 impedindo voc\u00EA de baixar
+PeersView.C1.info=Ou o par est\u00E1 impedindo voc\u00EA de baixar
menu.change.url=Mudar URL...
Network.alert.acceptfail=Muitas falhas sucessivas ocorridas na porta %1, %2 - processamento abandonado. Por favor, cheque as configura\u00E7\u00F5es do firewall para esta porta para garantir que est\u00E1 habilitada para receber conex\u00F5es.
-TableColumn.header.activityDate=Data Adicionada
+TableColumn.header.activityDate=Data da Adi\u00E7\u00E3o
TableColumn.header.priority.info=Determina quanta banda de upload \u00E9 dada ao torrent
GeneralView.label.tracker=Status do Rastreador \:
ConfigView.section.connection.peersource.DHT=Rastreamento descentralizado
ConfigView.section.interface.wavlocation=Localiza\u00E7\u00E3o do arquivo .wav
ConfigView.section.style.disableAlertSliding=Desativar anima\u00E7\u00E3o de sliding/em alto estilo para mensagens de alerta
device.od.error.nospace=Sem espa\u00E7o no dispositivo ou nenhum drive externo conectado
-PeersView.uniquepiece=Peda\u00E7o (modo Super-Seed)
+PeersView.uniquepiece=Peda\u00E7o (modo Super-Semeamento)
security.certcreate.orgunit=Unidade Organizacional
metasearch.addtemplate.desc=Voc\u00EA tem certeza que voc\u00EA quer instalar um modelo de busca chamdo '%1'?
ConfigView.section.transfer.autospeed.maxupload=Velocidade m\u00E1xima de upload em %1 [0\: ilimitada]
@@ -357,26 +362,26 @@ ConfigView.section.transfer.autospeed.chokeping.tooltip=Os tempos do Ping em exc
v3.MainWindow.tab.browse=No Vuze
auto.mode=Autom\u00E1tico (recomendado)
v3.activity.button.watchall=Marcar Todos os Observados
-ConfigView.label.minPeersToBoostNoSeeds=Rank da Prioridade para Ficar de Seed menor para torrents sem seeds e com menos de
+ConfigView.label.minPeersToBoostNoSeeds=Rank Baixo para Semeamento de torrents com nenhuma semente ou menos qu\u00EA
ConfigView.section.style.defaultSortOrder.flip=Oposto da ordem anterior
azbuddy.dchat.rchans=Canais Relacionados
-TorrentOptionsView.param.alternative.value.enable=Alternar o valor quando ficando de seed
+TorrentOptionsView.param.alternative.value.enable=Alternar o valor quando semeando
Trackers.column.last_update=\u00DAltima Atualiza\u00E7\u00E3o
IPChecker.external.httpinvalidresponse=Resposta HTTP inv\u00E1lida
columnChooser.apply=Aplicar
ConfigView.section.file.perf.cache.trace=Rastrear opera\u00E7\u00F5es de cache para fins de diagn\u00F3stico
MagnetPlugin.report.alive=%1 est\u00E1 vivo
-TableColumn.header.maxdownspeed=M\u00E1x de Velocidade de Down
+TableColumn.header.maxdownspeed=Velocidade M\u00E1xima de Down
ConfigView.section.tracker.torrentsperpage=Quantos torrents por p\u00E1gina? [0\: ilimitados]
platform.win32.baddll.AxShlex=Alcohol 120%
ConfigView.section.ipfilter.bannedinfo=IPs que enviaram dados ruins - banidos se os limites excederam
-OpenTorrentWindow.set.savepath=Mudar o Nome da Pasta de N\u00EDvel Superior
+OpenTorrentWindow.set.savepath=Alterar Nome da Pasta de N\u00EDvel Superior
Formats.units.Kibit=Kibit
LoggerView.filter=Filtro
OpenTorrentOptions.header.tags={label.initial_tags}\: %1
FilesView.rename.failed.text=A opera\u00E7\u00E3o falhou, provavelmente devido a sele\u00E7\u00E3o de alvo inv\u00E1lida
azbuddy.tracker.bbb.status.out=Atualmente Acelerando os Amigos
-ConfigView.label.sleep.fpseed='Primeira Prioridade' seeding est\u00E1 ativo
+ConfigView.label.sleep.fpseed='Primeira Prioridade' semeamento est\u00E1 ativo
subscriptions.listwindow.autochecktext=O Vuze pode achar subscri\u00E7\u00F5es relacionadas ao conte\u00FAdo na sua biblioteca. Voc\u00EA quer ativar esta fun\u00E7\u00E3o?
discarded=descartado
ConfigTransferAutoSpeed.ping.time.good=Bom\:
@@ -387,21 +392,21 @@ devices.contextmenu.od.enable=Habilitado
pairing.status.registered=Atualizado com sucesso (%1)
DHTView.activity.details=Detalhes
platform.win32.baddll.WSOCKHK=Net nanny
-ConfigView.label.minSeedingTime.tooltip=Os Ranks de Seeding podem flutuar frequentemente em um curto per\u00EDodo de tempo, as vezes fazendo o torrent iniciar automaticamente, apenas para ser parado & e posto no fila imediatamente ap\u00F3s isso.\nIsto alivia o problema for\u00E7ando o torrent a ficar de seed por um per\u00EDodo dado de tempo. Voc\u00EA ainda pode par\u00E1-lo manualmente se voc\u00EA quiser.
+ConfigView.label.minSeedingTime.tooltip=Os Ranks de Semeamento podem flutuar frequentemente em um curto per\u00EDodo de tempo, as vezes fazendo o torrent iniciar automaticamente, apenas para ser parado & e posto no fila imediatamente ap\u00F3s isso.\nIsto alivia o problema for\u00E7ando o torrent a semear por um per\u00EDodo dado de tempo. Voc\u00EA ainda pode par\u00E1-lo manualmente se voc\u00EA quiser.
PeerSocket.fake_client=FALSO
TrackerChangerWindow.title=Adicionar Rastreador(es)
wizard.savingfile=Salvando Arquivo...
platform.jvmopt.configerror=N\u00E3o \u00E9 poss\u00EDvel gerenciar as op\u00E7\u00F5es de JVM devido a um erro de configura\u00E7\u00E3o
OpenTorrentFile.column.size.info=Tamanho do Arquivo
ConfigView.section.security.resetkey.error.title=A Opera\u00E7\u00E3o Falhou
-ConfigView.section.queue.seeding.autoStarting=In\u00EDcio Autom\u00E1tico
+ConfigView.section.queue.seeding.autoStarting=Auto-Iniciar
ConfigView.section.security.restorekeys=Restaurar as chaves de um arquivo
MainWindow.menu.file.open.torrent.keybinding=Meta+O
MainWindow.status.unofficialversion=Beta do Vuze
wizard.operationfailed=A opera\u00E7\u00E3o falhou
IPChecker.external.timeout=Ocorreu um esgotamento do tempo
ipfilter.disabled=Filtros de IP desativado
-TableColumn.header.seeds.info=\# seeds conectados para (\# seeds no total)
+TableColumn.header.seeds.info=\# sementes conectados a (\# total de sementes)
speedtest.wizard.select.general=O teste de velocidade geral (recomendado)
wizard.comment=Coment\u00E1rio
unix.script.new.auto.text=Um Novo Script de Inicializa\u00E7\u00E3o do Vuze est\u00E1 dispon\u00EDvel.\n\n\u00C9 altamente recomendado que voc\u00EA reinicie o Vuze agora.
@@ -412,10 +417,10 @@ v3.MainWindow.menu.view.footer=Barra dos Amigos
TableColumn.header.remaining.info=Quantia restante para baixar
platform.win32.baddll.gapsp=Neoteris
Pieces.column.Requested=Requesitado
-iconBar.bottom=Mover pro fundo
+iconBar.bottom=Embaixo
SpeedTestWizard.abort.message.scheduling.failed=O agendamento do teste falhou
TableColumn.header.file_eta={TableColumn.header.eta}
-PeersView.source.info=A fonte deste peer
+PeersView.source.info=A fonte deste par
GeneralView.label.totalspeed.tooltip=Velocidade total (e m\u00E9dia) de todos os clientes aos quais voc\u00EA est\u00E1 conectado.
FilesView.menu.setpriority.high=&Alta
tag.type.man.featcon=Conte\u00FAdo em Destaque
@@ -444,13 +449,13 @@ TableColumn.header.torrentrelpath=Caminho do Torrent
swt.alert.cant.update=biblioteca SWT carregada de "%3" n\u00E3o p\u00F4de ser automaticamente atualizada da vers\u00E3o %1 para a %2 (deve ser carregada de "%4"). Por favor veja <A HREF\="http\://azureuswiki.com/index.php/SWT_Cant_Auto_Update">no wiki</A> para detalhes.
ConfigView.section.interface.checkassoc=Verificar associa\u00E7\u00F5es ao iniciar
webui.port=Porta (*)
-subscript.some.subscribed=Voc\u00EA est\u00E1 subscrito a algumas das subscri\u00E7\u00F5es para este conte\u00FAdo.\nClique para ver as outras dispon\u00EDveis
+subscript.some.subscribed=Voc\u00EA est\u00E1 inscrito para algumas das assinaturas deste conte\u00FAdo.\nClique para ver as outras dispon\u00EDveis
show.tooltip.label=Exibir Dicas
br.backup.auto.everydays=Freq\u00FC\u00EAncia de backup [dias]
label.tag.selection=Tags Selecionadas
ConfigView.section.security.choosetoolssavedir=Selecione a pasta contendo o arquivo 'tools.jar'
v3.MainWindow.menu.view.toolbars=Barras de Ferramentas
-subscript.export.select.template.file=Salvar a Subscri\u00E7\u00E3o
+subscript.export.select.template.file=Salvar Assinatura
window.update.noupdates.beta.title={window.update.noupdates.title}
TableColumn.header.priority=Prioridade
devices.copy.folder.auto=Automaticamente copiar os arquivos para a pasta
@@ -459,14 +464,14 @@ MyTorrentsView.\#.info={TableColumn.header.\#.info}
platform.win32.baddll.radhslib=Naomi Filtro de internet ( Radiante )
Scrape.status.error.nohash=Hash inexistente na resposta.
MagnetURLHandler.report.torrent_size=tamanho do torrent\: %1
-Wizard.Subscription.create.title=Criar Nova Subscri\u00E7\u00E3o
+Wizard.Subscription.create.title=Criar Nova Assinatura
jvm.max.direct.mem.info=Nota\: esta op\u00E7\u00E3o de mem\u00F3ria "Direta", \u00E9 o mais comum para a necessidade de atualizar a mem\u00F3ria "Heap" acima.
azbuddy.chat.says=%1 diz\:
menu.max.share.ratio=Taxa de Compartilhamento Alvo (%1)...
device.xcode.group={device.xcode}
OpenTorrentWindow.torrent.remove=Remover torrent da lista
ActivityView.legend.swarmaverage=M\u00E9dia da multid\u00E3o
-TableColumn.header.seed_to_peer_ratio=Propor\u00E7\u00E3oSeed2Peer
+TableColumn.header.seed_to_peer_ratio=Propor\u00E7\u00E3oSemente2Pares
MainWindow.menu.window=&Janela
device.router.con_type=Conex\u00E3o\: %1
SpeedView.stats.estupcap=Limite de Upload\:
@@ -493,12 +498,13 @@ sidebar.header.subscriptions=Assinaturas
dlg.auth.revoked.link=<A HREF\="info">informa\u00E7\u00E3o sob c\u00F3digos de ativa\u00E7\u00E3o Revogado</A>
TableColumn.header.readrate=Taxa de Leitura
ConfigView.section.file.defaultdir.section=Op\u00E7\u00F5es Padr\u00E3o do Diret\u00F3rio
-Peers.column.peer_byte_id.info=ID do Peer em formul\u00E1rio em bytes
+Peers.column.peer_byte_id.info=ID do Par na forma de bytes
label.color=Cores
ConfigView.label.seeding.firstPriority.info=Torrents com Primeira Prioridade sempre estar\u00E3o no topo da fila.\nQuaisquer torrents combinando com o Crit\u00E9rio de Primeira Prioridade n\u00E3o ser\u00E3o automaticamente parados e enfileirados.\nUm torrent combinando com o crit\u00E9rio de Primeira Prioridade tomar\u00E1 um slot de download simult\u00E2neo se ele precisar.
+label.private=Privado
ConfigView.label.movetorrent=Mover .torrent
ConfigView.section.tracker.enablecompact=Ativar o protocolo de an\u00FAncio compacto
-ConfigView.label.maxStalledSeeding=M\u00E1ximo 'stalled' [0\:ilimitado]
+ConfigView.label.maxStalledSeeding=M\u00E1ximo 'estagnou' [0\:ilimitado]
azbuddy.ui.menu.send=Enviar Mensagem
jvm.min.mem=Tamanho da mem\u00F3ria Heap M\u00EDnimo [branco\=padr\u00E3o,min\=%1]
ConfigView.notAvailableForMode=Esta se\u00E7\u00E3o \u00E9 destinada para o modo %1 ou mais alto. N\u00E3o est\u00E1 dispon\u00EDvel no modo %2.
@@ -526,6 +532,7 @@ quick.view.no.files=Nenhum Arquivo Aplic\u00E1vel
UpdateProperty.list.message=Digite novo valor para %1. Use ',' para separar m\u00FAltiplas entradas; deixe em branco para limpar
ConfigView.section.security.toolsdir=Diret\u00F3rio contendo o arquivo 'tools.jar'
ConfigView.section.file.tb.delete=Ao excluir via tecla Delete ou barra de ferramentas\:
+privacy.view.level=N\u00EDvel de Privacidade
DHTTransport.report.send_complete=enviar completados
MainWindow.about.internet.bugreports=Relatar Bugs
azbuddy.downspeed=M\u00E1x da velocidade de download em KB/s do amigo [0\: ilimitada]
@@ -539,13 +546,13 @@ ConfigView.section.mode=Modo
label.anon=An\u00F4nimo
xcode.deletedata.title=Excluir conte\u00FAdo transcodificado
ConfigView.label.irclogin=Apelido
-TableColumn.header.device.info=Dispositivo Alvo
+TableColumn.header.device.info=Dispositivo de Destino
ConfigView.section.ipfilter.save=Salvar
wizard.multitracker.delete=Apagar
iconBar.editcolumns=Configura\u00E7\u00E3o da Coluna
PiecesView.DistributionView.NoAvl=Peda\u00E7os Indispon\u00EDveis
sidebar.show=Exibir barra lateral
-TableColumn.header.upload.info=Quantia de dados que n\u00F3s enviamos para o epeer
+TableColumn.header.upload.info=Quantia de dados que n\u00F3s enviamos para o par
ConfigView.section.sharing.privatetorrent=Torrent privado - s\u00F3 aceitar peers do rastreador
installPluginsWizard.list.loading=Por favor, espere enquanto a lista de plugins \u00E9 carregada.
Button.bar.add=Adicionar Amigos
@@ -562,7 +569,7 @@ MyTrackerView.completed=Completo
ConfigView.section.interface.cleardecisions=Limpar os di\u00E1logos de decis\u00E3o lembrados
iconBar.pstream={iconBar.stream}
externalLogin.wait=Carregando a p\u00E1gina, por favor espere...
-ConfigView.section.Subscriptions=Subscri\u00E7\u00F5es
+ConfigView.section.Subscriptions=Assinaturas
TableColumn.header.eta_next=Pr\u00F3ximo ETA
pairing.srp.pw.req=Senha necess\u00E1ria - nada vai funcionar sem isso\!
SpeedView.stats.unknown=Desconhecido
@@ -570,7 +577,7 @@ azbuddy.dchat.import.data=Dados de backup exportados anteriormente
remote.pairing.functions=<A HREF\="clip">Copiar c\u00F3digo para \u00E1rea de transfer\u00EAncia</A> | <A HREF\="new">Obter novo c\u00F3digo</A>
LocaleUtil.label.chooseencoding=Por favor selecione a codifica\u00E7\u00E3o mais apropriada
wizard.information=Informa\u00E7\u00E3o
-ConfigView.section.tracker.seedretention.info=Nota\: As estat\u00EDsticas de upload ser\u00E3o perdidas para seeds n\u00E3o retidos
+ConfigView.section.tracker.seedretention.info=Nota\: As estat\u00EDsticas de upload ser\u00E3o perdidas para sementes n\u00E3o retidos
CacheView.speeds.writes=Escritas
window.updateswt.status=Status
config.external.browser.non.pub=Sempre usar o %1 para conte\u00FAdo n\u00E3o-p\u00FAblico
@@ -580,18 +587,18 @@ device.renderer.remove_all=Remova todos os Renderers
torrentdownload.error.dl_fail=Falha no download '%1' para '%2'\: %3
DHTView.transport.packets=Pacotes
SpeedView.stats.maxUp=Velocidade M\u00E1x de Upload\:
-tps.tracker.cache=Cache de peer
+tps.tracker.cache=Cache de par
label.set=Alterar...
splash.initializePlugins=Inicializando os Plugins
ConfigView.section.interface.cleardecisionsbutton=Limpar
FilesView.dialog.priority.title=Digite prioridade num\u00E9rica
label.no.tag=Sem Tag
-PeersView.upload=Upload
+PeersView.upload=Up
TableColumn.header.torrent_created.info=Data em que o torrent foi criado, quando dispon\u00EDvel
wizard.multitracker.configuration=Configura\u00E7\u00E3o do Multi-Rastreador
StartStopRules.shareRatioMet=Propor\u00E7\u00E3o de Compartilhamento OK
-TableColumn.header.azsubs.ui.column.subs=Subscrever
-ConfigView.label.seeding.autoStart0Peers.tooltip=Marque se voc\u00EA quer que o rastreador sempre liste os seeds para torrents com 0 Peers.
+TableColumn.header.azsubs.ui.column.subs=Assinar
+ConfigView.label.seeding.autoStart0Peers.tooltip=Ativar se voc\u00EA quiser que o rastreador sempre liste as sementes para torrents com 0 pares.
security.certcreate.intro=Este di\u00E1logo permite a voc\u00EA criar um certificado auto-assinado
device.itunes.install_problem=Parece haver um problema com a integra\u00E7\u00E3o com o iTunes
FilesView.md5.calculate=Calcular hash MD5(s)
@@ -600,10 +607,10 @@ set.share.ratio.win.title=Configurar Taxa de Compartilhamento
ConfigView.label.backupconfigfiles=Fazer backup dos arquivos de configura\u00E7\u00E3o para prop\u00F3sitos de recupera\u00E7\u00E3o
iconBar.stop=Parar
StartStopRules.SPratioMet=Propor\u00E7\u00E3o de S\:P OK
-ConfigView.label.checkOnSeeding=Realizar re-verifica\u00E7\u00E3o de baixo recurso de peda\u00E7os quando ficando de seed
+ConfigView.label.checkOnSeeding=Realizar re-verifica\u00E7\u00E3o de baixo recurso de peda\u00E7os quando ficar semeando
DiskManager.alert.movefilerecoveryfails=Erro ao recuperar ap\u00F3s uma falha de movimenta\u00E7\u00E3o\nRestaura\u00E7\u00E3o do arquivo %1 falhou, %2
device.ms.group={device.mediaserver.view.title}
-ConfigView.label.seeding.rankType.seed=Apenas Contagem de Seeds
+ConfigView.label.seeding.rankType.seed=Apenas o N\u00FAmero de Sementes
Unopened.bigView.header=Novo
ConfigView.section.sharing.rescanperiod=Per\u00EDodo de re-escaneamento (segs)
PeerManager.status.checking=Verificando
@@ -632,11 +639,11 @@ MainWindow.menu.view.console.keybinding=Meta+4
DownloadManager.error.filewithouttorrentinfo=Nenhuma informa\u00E7\u00E3o de Torrent encontrada no arquivo
TableColumn.header.TableColumnSample=Amostra
AlertMessageBox.warning=Alerta
-MyTrackerView.peers=Peers
+MyTrackerView.peers=Pares
azbuddy.beta.msgsync.missing=Voc\u00EA precisa instalar o plugin 'Mensagem Sync'
SpeedView.stats.measuredmin=M\u00EDn. medido
label.restored=Restaurado(s)
-Plugin.localtracker.info=O descobridor de peers na LAN permite m\u00FAltiplas c\u00F3pias do Vuze atr\u00E1s de um firewall e em uma rede comum para baixar com efici\u00EAncia torrents ativando a conex\u00E3o direta entre eles
+Plugin.localtracker.info=O descobridor de pares em LAN permite m\u00FAltiplas c\u00F3pias do Vuze atr\u00E1s de um firewall e em uma rede comum para baixar com efici\u00EAncia torrents ativando a conex\u00E3o direta entre eles
azbuddy.dchat.decentralized.enabled={azbuddy.dchat.decentralized} Habilitado
MainWindow.menu.file.open.torrentnodefault.keybinding.mac=Meta+Opt+O
ConfigView.section.transfer.lan.tooltip=Configura\u00E7\u00F5es espec\u00EDficias-pra-LAN
@@ -652,14 +659,14 @@ v3.MainWindow.menu.getting_started=&Sendo Iniciado
dlg.auth.success.line2=Voc\u00EA agora \u00E9 capaz de gravar DVDs ilimitadas jog\u00E1veis, digitalizar seus arquivos em busca de v\u00EDrus e transmitir v\u00EDdeos que voc\u00EA est\u00E1 baixando - todos, sem an\u00FAncios\!
ConfigView.section.interface.resetassocbutton=Redefinir
dlg.auth.success.line1=Obrigado por fazer o upgrade para Vuze Plus.
-TableColumn.header.peakup.info=Up M\u00E1x. Alcan\u00E7ado
+TableColumn.header.peakup.info=Velocidade de Pico do Upload
DHTView.title.fullcvs=CVS da Base de Dados Distribu\u00EDda
webui.rootdir=Diret\u00F3rio Raiz (*)
wizard.multitracker.noannounce=A URL de an\u00FAncio n\u00E3o est\u00E1 presente em sua lista de rastreadores
Button.add.tooltip=Adic. um torrent \u00E0 sua biblioteca
ConfigView.label.start.inlrm=Iniciar no modo econ\u00F4mico (UI desativada, limitando a rede e o uso de mem\u00F3ria etc)
PeersView.statup=Estat\u00EDsticas do Upload
-ConfigView.section.queue.seeding=Ficar de Seed
+ConfigView.section.queue.seeding=Semeando
ConsoleView.title.short=Console
subs.prop.num_read=N\u00FAmero dos resultados de leitura
ConfigView.label.save_list.max_entries=Salvar tamanho do hist\u00F3rico de localiza\u00E7\u00E3o
@@ -671,15 +678,15 @@ uninstallPluginsWizard.title=Desinstalar Plugins
MainWindow.menu.help.whatsnew=O que h\u00E1 de novo?
DHTView.operations.data=Dados
wizard.newtorrent.byo.addcontainer.title=Adic. Container
-StartStopRules.numSeedsMet=\# Seeds OK
+StartStopRules.numSeedsMet=\# Sementes OK
config.internal.browser.proxy.select=Proxy do Navegador
-TableColumn.header.torrent_created=Criado Torrent em
+TableColumn.header.torrent_created=Torrent Criado em
openTorrentWindow.mb.alreadyExists.merge=Voc\u00EA deseja adicionar trackers adicionais de um novo download \u00E0 um j\u00E1 existente?
dlg.stream.plus.title={Button.upgrade}
ConfigView.section.tracker.createcert=Criar certificado auto-assinado
UIDebugGenerator.complete.text=Por favor envie o arquivo '%1' para az-bugreports at azureus-inc.com\n\nClique em Ok para abrir uma janela para este arquivo.
bencode.file.browse=Abrir arquivo BEencoded
-subscriptions.overview=Resumo assinaturas
+subscriptions.overview=Assinaturas
ConfigView.dialog.choosedefaultsavepath=Por favor, escolha o diret\u00F3rio padr\u00E3o para salvar
v3.MainWindow.menu.showActionBarText=Mostrar o Texto
azbuddy.dchat.ftux.footer=Qualquer uso do Vuze\u00AE ou Vuze+\u2122 que viole direitos autoriais de qualquer pessoa ou entidade n\u00E3o \u00E9 permitido.
@@ -710,7 +717,7 @@ FileItem.read=leitura
TableColumn.header.commenticon.info=Exibe o \u00EDcone se o download tem um coment\u00E1rio definido-pelo-usu\u00E1rio
splash.loadingTorrent=Carregando Torrent
GenericText.column=coluna
-OpenTorrentWindow.tlf.remove=Remover pasta de n\u00EDvel superior
+OpenTorrentWindow.tlf.remove=Remover a Pasta de N\u00EDvel Superior
ConfigView.section.ipfilter.enable=Ativar
MyTorrentsView.menu.setCategory.add=&Adicionar Categoria...
popup.closing.in=Auto-fechando a janela em %1 segundos
@@ -721,6 +728,7 @@ TableColumn.header.AzProduct.info=Rede de Conte\u00FAdo da qual o torrent se ori
plugins.basicview.status=Status\:
label.test.internet=Testar sua conex\u00E3o com a internet
azbuddy.ui.table.msg_queued=Na Fila
+privacy.view.wiki.url=http\://wiki.vuze.com/w/Privacy_View
mdi.entry.dvdburn=Gravar DVD
configureWizard.nat.sharePort=Usar uma \u00FAnica porta de entrada compartilhada para todos os torrents
FilesView.pieces=Peda\u00E7os
@@ -737,7 +745,7 @@ MainWindow.menu.file.open.vuze=Arquivo do Vuze...
ConfigView.section.queue.downloading={ManagerItem.downloading}
TableColumn.header.tags={label.tags}
MagnetPlugin.use.md.download.delay=\tatraso [segs]
-ConfigView.label.stopAfterMinutes=Uma vez trocado para ficar de seed, parar ap\u00F3s uma dura\u00E7\u00E3o de tempo
+ConfigView.label.stopAfterMinutes=Uma vez trocado para semeamento, parar ap\u00F3s uma dura\u00E7\u00E3o de tempo
dht.execute=Executar
PiecesView.size=Tamanho
# Will be used for {library.name} in classic view
@@ -759,12 +767,12 @@ Peers.column.Protocol=Protocolo
CacheView.speeds.title=Taxa de Dados
TagSettingsView.title=Configura\u00E7\u00F5es
window.uiswitcher.NewUI.text=* Recomendado para todos os usu\u00E1rios.\n\n* Interface f\u00E1cil, intuitiva.\n* Rica em recursos e configura\u00E7\u00F5es.
-StartStopRules.FP0Peers=FP / 0 Peers
+StartStopRules.FP0Peers=FP / 0 Pares
SubscriptionWizard.column.SubWizRank={subscriptions.column.SubWizRank}
Plugin.localtracker.networks=Redes locais
PeerManager.status.error=Erro
installPluginsWizard.file.file=Arquivo \:
-PeersView.S.info=Desprezado\: Um peer pode ser "desprezado" manualmente ou automaticamente (por n\u00E3o entregar os dados a uma taxa alta o bastante)
+PeersView.S.info=Desprezado\: Um par pode ser "desprezado" manualmente ou automaticamente (por n\u00E3o entregar os dados a uma taxa alta o bastante)
Scrape.status.scraping.queued=Scraping na fila...
ConfigView.section.style.extendedErase=Desenhe linhas de grade e preencher \u00E1reas em branco
progress.window.msg.progress=Por favor espere enquanto a opera\u00E7\u00E3o completa
@@ -777,16 +785,16 @@ IPChecker.external.addressextracted=Endere\u00E7o IP extra\u00EDdo
ConfigView.label.seeding.ignoreShareRatio=Ignorar torrents que tenham uma propor\u00E7\u00E3o de compartilhamento de
TorrentOptionsView.param.reset.stats=Resetar est\u00E1tisticas de transfer\u00EAncia de torrent para zero
azbuddy.dchat.status.noplugin=Erro\: Plugin Mensagem Sync n\u00E3o instalado
-Peers.column.DLedFromOthers=De Outros
+Peers.column.DLedFromOthers=Dos Outros
TableColumn.header.archive.date=Data do Arquivo
tag.type.ds.comp={label.complete}
ConfigView.section.interface.cleartrackersbutton=Limpar
-ConfigView.section.tracker.announcescrapepercentage=Intervalo do scrape com % da idade do an\u00FAncio\nex\: 200 \= 2\:1. 0 \= deixar o peer decidir
+ConfigView.section.tracker.announcescrapepercentage=Intervalo do scrape com % da idade do an\u00FAncio\nex\: 200 \= 2\:1. 0 \= deixar o par decidir
ConfigView.tb.delete.content=Apagar sem perguntar
MySharesView.menu.remove=Remover
DHTView.operations.title=Detalhes da Opera\u00E7\u00E3o
ConfigView.section.ipfilter=Filtros de IP
-DHTView.activity.status.true=Requisitado
+DHTView.activity.status.true=Enfileirado
azbuddy.nickname=Seu Apelido
ConfigView.section.tracker.udpversion=Vers\u00E3o do Protocolo UDP (1 ou 2)
ConfigView.section.file.friendly.hashchecking=Verifica\u00E7\u00E3o de hash amig\u00E1vel
@@ -811,7 +819,7 @@ ConfigView.section.sharing.torrentcomment=Coment\u00E1rio para torrents gerados
ConfigView.label.checkonstart=Procurar pela \u00FAltima vers\u00E3o quando o Vuze iniciar
MyTorrentsView.menu.explore._mac=Mostrar no Descobridor
#connected to more seeds/peers than tracker reports
-library.all.header.p=%1 items\: %2 ativo
+library.all.header.p=%1 itens\: %2 ativo
ConfigView.section.tracker.passwordenabletorrent.info=Requer cliente BitTorrent adequado (ex\: Vuze)
br.restore.info=Restaurar a configura\u00E7\u00E3o de um backup
MyTorrentsView.menu.downSpeedLimit=Limite de Velocidade de Download
@@ -824,7 +832,7 @@ wizard.close.confirmation=Confirma\u00E7\u00E3o
azbuddy.dchat.copy.rss.url=URL RSS
FilesView.menu.setpriority.numeric=Num\u00E9rico...
ConfigView.section.transfer.autospeed.tooltip=Configura\u00E7\u00F5es espec\u00EDficas da Auto-velocidade
-subscriptions.listwindow.loadingtext=Procurando subscri\u00E7\u00F5es relacionadas com %1
+subscriptions.listwindow.loadingtext=Procurando assinaturas relacionadas com %1
tag.type.ds.seed={ManagerItem.seeding}
ArchivedFilesView.size={FilesView.size}
UI.cannot_submit_blank_text=Voc\u00EA deve inserir um valor.
@@ -834,8 +842,8 @@ TagGroupWindow.title=Configurar Tag do Grupo
webui.bindip=Prender IP - normalmente n\u00E3o requerido (*)
max.sr.window.title=Taxa de Compartilhamento Alvo
PeerFilesView.title.short={FilesView.title.short}
-azbuddy.dchat.auto.mute=Mudo para Novos Usu\u00E1rios
-PeersView.I2.info=O peer est\u00E1 interessado no que voc\u00EA tem?
+azbuddy.dchat.auto.mute=Auto-Mudo para Novos Usu\u00E1rios
+PeersView.I2.info=O par est\u00E1 interessado no que voc\u00EA tem?
pairing.local.ipv6=Endere\u00E7o IPv6 local
archive.info.title=Downloads Arquivados
pairing.local.ipv4=Endere\u00E7o IPv4 local
@@ -845,17 +853,18 @@ ConfigView.label.startminimized=Iniciar minimizado
TableColumn.header.upspeed=Velocidade de Up
iconBar.new.tooltip=Criar um torrent
cat.options=Op\u00E7\u00F5es/Info dos Torrents Atuais...
-ActivityView.legend.trimmed=Arrumado (pontuado)
+ActivityView.legend.trimmed=Cortado (pontuado)
SpeedTestWizard.set.upload.label=Limite da Velocidade de Upload\:
v3.MainWindow.text.my.profile=Perfil
-ConfigView.label.seeding.rankType.peerSeed.options=Op\u00E7\u00F5es da Propor\u00E7\u00E3o dos Peers\:Seeds
+ConfigView.label.seeding.rankType.peerSeed.options=Op\u00E7\u00F5es de Propor\u00E7\u00E3o dos Pares\:Sementes
TableColumn.header.date_added.info=Data que o torrent foi adicionado
pairing.status.noservices=Nenhum servi\u00E7o remoto habilitado
+ConfigView.section.ipfilter.enablebanning=Bloquear pEWA que consistentemente mandam dados ruins
UpdateWindow.columns.currentversion={label.current}
-ConfigView.section.ipfilter.enablebanning=Bloquear peers que consistentemente mandam dados ruins
PiecesView.BlockView.Have=Tem
-ConfigView.label.maxactivetorrents=M\u00E1ximo de torrents ativos [0\: ilimitados]\n - Novos torrents n\u00E3o come\u00E7ar\u00E3o se voc\u00EA estiver baixando/ou ficando mais de seed
+ConfigView.label.maxactivetorrents=M\u00E1ximo de torrents ativos [0\: ilimitados]\n - Novos torrents n\u00E3o come\u00E7ar\u00E3o se voc\u00EA estiver baixando/semeando mais
MyTorrentsView.menu.edit_comment=Editar Coment\u00E1rio
+label.privacy=Privacidade
TableColumn.header.TorrentStream={iconBar.stream}
PiecesView.availability=Disponibilidade
MySharesView.type.file=Arquivo
@@ -866,7 +875,7 @@ TableColumn.header.secondsdownloading.info=Quantia de tempo que voc\u00EA esteve
MainWindow.upgrade.step2=Passo 2\: Fechar esta vers\u00E3o e reiniciar a nova vers\u00E3o do Vuze
label.original.file=Arquivo Original
MainWindow.upgrade.step1=Passo 1\: Baixar a nova vers\u00E3o
-ConfigView.section.tracker.natcheckenable=Verifica a conectividade da 'porta de entrada de dados' e reporta as falhas para os peers
+ConfigView.section.tracker.natcheckenable=Verifica a conectividade da 'porta de entrada de dados' e reporta as falhas para os pares
GeneralView.label.maxuploadspeed=Limite de Up
ConfigView.label.maxdownloadspeed=Velocidade m\u00E1xima global de download em KB/s [0\: ilimitada]
rss.internal.test.url=Clique para ver a p\u00E1gina inicial local
@@ -880,7 +889,7 @@ MainWindow.menu.quick_view=Exibi\u00E7\u00E3o R\u00E1pida
MagnetPlugin.contextmenu.exporturi=Copiar a URI do Magnet para a \u00C1rea de Transfer\u00EAncia
devices.choose.device.title=Selecione um dispositivo de reprodu\u00E7\u00E3o do video\:
MainWindow.menu.file.open.torrentnodefault=Arquivo Torrent... (Sem Save Padr\u00E3o)
-MyTrackerView.seeds=Seeds
+MyTrackerView.seeds=Sementes
ColumnSetup.filters=Filtros
MainWindow.nat.status.ok=NAT OK
Security.keystore.empty=O keystore est\u00E1 vazio. Por favor, crie um certificado auto-assinado (veja Ferramentas->Op\u00E7\u00F5es->Seguran\u00E7a) ou importe um certificado existente para '%1'
@@ -888,8 +897,8 @@ CategoryAddWindow.message=Insira um novo nome de categoria
GeneralView.label.private=Torrent Privado\:
ConfigView.unlimited=Ilimitado
ConfigView.section.connection.advanced.SO_SNDBUF.tooltip=Define o valor do socket padr\u00E3o SO_SNDBUF (em bytes), i.e. o tamanho da janela de envio TCP.\nO Vuze deixa isto n\u00E3o definido por padr\u00E3o, siginificando que os padr\u00F5es para o SO b\u00E1sico s\u00E3o usados.\nNOTA\: O linux dobra o valor dado.
-iconBar.stop.tooltip=Interromper
-dht.reseed=Ficar de seed de novo
+iconBar.stop.tooltip=Parar torrent(s) selecionado(s)
+dht.reseed=Resemear
restart.error.fnf='%1' n\u00E3o encontrado em '%2'
v3.MainWindow.button.preview=Pr\u00E9-visualiza\u00E7\u00E3o
AutoMigration.useralert=Arquivos da configura\u00E7\u00E3o do usu\u00E1rio do Vuze/resultados da auto-migra\u00E7\u00E3o dos diret\u00F3rios\:\n\n%1\nQuaisquer falhas devem ser migradas manualmente.\nN\u00C3O SE ESQUE\u00C7A DE ATUALIZAR OS CAMINHOS PARA SALVAR NA SUA CONFIGURA\u00C7\u00C3O SE ELES FORAM MIGRADOS\!
@@ -906,14 +915,15 @@ v3.activity.header.vuze.news=Not\u00EDcias do Vuze
metasearch.addtemplate.title=Instalar o Modelo de Busca?
plugin.aznetstatus.logfull=Registro Completo
dht.ipfilter.log=Registrar as viola\u00E7\u00F5es do Filtro de IP
+button.lookup.peers=Procurar por Pares
stream.analysing.media.preview=Analisando M\u00EDdia (Modo de Visualiza\u00E7\u00E3o)
Scrape.status.nextScrapeAt=Pr\u00F3xima scrape em %1
Scrape.status.error=Erro de Scrape\:
-SystemTray.tooltip.seeding=%1 ficando de seed,
+SystemTray.tooltip.seeding=%1 semeando,
TableColumn.TorrentStream.tooltip.disabled=Executar Agora n\u00E3o suporta arquivos desse tipo
webui.passwordenable=Ativar senha
updater.progress.window.info=Pressione 'Abortar' para terminar todas tarefas pendentes
-TableColumn.header.tag.discovery.addedon=Encontrado em
+TableColumn.header.tag.discovery.addedon=Encontrado Em
pairing.enable=Ativar o emparelhamento do Vuze e aplica\u00E7\u00F5es/interfaces remotas
fileDownloadWindow.title=Vuze \u2013 Baixador de Torrents
MainWindow.upgrade.explanation=Este assistente baixar\u00E1 a nova vers\u00E3o na sua pasta do Vuze e reiniciar\u00E1 o Vuze
@@ -930,7 +940,7 @@ FilesView.title.short=Arquivos
jvm.options.summary=S\u00FAmario das atuais op\u00E7\u00F5es explicitas\:
restart.error.denied=O acesso foi negado quando tentando executar '%1'. Tenha certeza de que voc\u00EA tem os direitos para rodar este programa.
iconBar.open=Adicionar Torrent
-ConfigView.label.minPeersToBoostNoSeeds.tooltip=Quaisquer torrents sem seeds e tendo menos peers do que voc\u00EA especificar\nir\u00E3o para o final da fila.
+ConfigView.label.minPeersToBoostNoSeeds.tooltip=Quaisquer torrents sem sementes e tendo menos pares do que voc\u00EA especificar\nir\u00E3o ser movidos para o final da fila.
devices.od.view.heading=Downloads agendados para download off-line
ConfigView.section.transfer.autospeed.network.info=Os limites acima s\u00E3o normalmente calculados automaticamente durante o download ou s\u00E3o o resultado de um teste de velocidade. Se voc\u00EA quer especific\u00E1-los manualmente use a op\u00E7\u00E3o abaixo.\nTodos os limites al\u00E9m dos 'consertados' ser\u00E3o subsequencialmente ajustados se necess\u00E1rio. \nInsira o valor e ent\u00E3o selecione seu tipo. Note que as velocidades est\u00E3o em %1.
sharing.progress.cancel=Cancelar
@@ -941,14 +951,16 @@ dht.reseed.port=Porta
MyTorrentsView.menu.movetorrent=Mover Arquivo Torrent...
v3.MainWindow.menu.contentnetworks.about=Sobre as Redes HD
AdvRenameWindow.title=Renomear Download
-wizard.maketorrents.superseed=Usar super-seeding
+wizard.maketorrents.superseed=Usar super-semeamento
MainWindow.menu.view.stats.keybinding=Meta+5
+button.search.dht=Busca DHT
SystemTray.tooltip.downloading=%1 baixando,
importTorrentWizard.process.importfail.title=Falha na Importa\u00E7\u00E3o do Torrent
device.config.autohide.old.devices=Auto-ocultar dispositivos que n\u00E3o foram vistos recetemente [dias, 0\: desabilitado]
custom.settings.import.res.title=Importa\u00E7\u00E3o da configura\u00E7\u00E3o completa
ConfigView.label.userequestlimiting.tooltip=Limitar Pedidos n\u00E3o \u00E9 t\u00E3o leve como as leituras atrasadas, mas permite a prioriza\u00E7\u00E3o do download baseado no posi\u00E7\u00E3o da fila do download e poderia melhorar a performance da rede
CacheView.writes.toCache=Para o Cache
+privacy.view.no.peers=Nenhum dos pares conectados
SpeedTestWizard.abort.message.download.added=Download %1 adicionado durante o teste
OpenTorrentFile.column.download.info=Baixar arquivo do interior do torrent\nUsar barra de espa\u00E7o para alternar para o modo de m\u00FAltipla sele\u00E7\u00E3o
TableColumn.header.chat.status={TableColumn.header.status}
@@ -956,12 +968,12 @@ DownloadActivityView.legend.down_smooth=Baixando (Suave)
proxy.info.title=Info do Proxy
MyTorrentsView.menu.recheck=For\u00E7ar Re-chec&agem
UpdateProperty.title=Propriedade da Atualiza\u00E7\u00E3o
-TableColumn.header.swarm_average_speed.info=A velocidade m\u00E9dia dos peers na multid\u00E3o
+TableColumn.header.swarm_average_speed.info=A velocidade m\u00E9dia dos pares na multid\u00E3o
PeerSocket.unknown_shadow_style=Desconhecido %1 %2
-Button.createNewSubscription=Criar Nova Subscri\u00E7\u00E3o
+Button.createNewSubscription=Criar Nova Assinatura
MagnetPlugin.use.lookup.service=Use o servi\u00E7o de pesquisa Vuze secund\u00E1rio se pesquisa magnet se via DHT falhar
mb.azmustclose.title=Erro de Inicializa\u00E7\u00E3o
-ConfigView.label.maxseedspertorrent=M\u00E1x. de seeds por torrent padr\u00E3o [0\: ilimitados]
+ConfigView.label.maxseedspertorrent=M\u00E1x. de sementes por padr\u00E3o do torrent [0\: ilimitados]
MyTorrentsView.menu.thisColumn.remove=Remover Coluna
download.removerules.name=Regras de Remo\u00E7\u00E3o
label.rss=RSS
@@ -977,7 +989,7 @@ GeneralView.label.uploadspeed=Velocidade de Upload \:
MyTorrentsView.menu.networks=Redes
ConfigView.label.watchtorrentfolderinterval=Intervalo
Button.install={swt.install.window.ok}
-ConfigView.section.connection.group.http.info=Suporte para seeding HTTP.
+ConfigView.section.connection.group.http.info=Suporte \u00E0 semeamento via HTTP.
ConfigView.label.opendialog=Abrir automaticamente o Assistente de Atualiza\u00E7\u00E3o quando uma atualiza\u00E7\u00E3o estiver dispon\u00EDvel
device.lastseen=Visto pela \u00FAltima vez
TableColumn.header.networks=Redes
@@ -1007,11 +1019,11 @@ CacheView.reads.amount=Quantidade
ConfigView.section.style.ShowTagButtons.CompOnly=Somente exibir na se\u00E7\u00E3o Completo da Biblioteca
ConfigTransferAutoSpeed.add.comment.to.log.group=Adicionar coment\u00E1rio ao log de debug
OpenTorrentTorrent.column.\#=\#
-TableColumn.header.peers.info=\# peers conectados a (\# peers no total)
+TableColumn.header.peers.info=\# pares conectados a (\# total de pares)
Button.next=Pr\u00F3ximo
azbuddy.dchat.custom=Canais personalizados
ColumnProgressETA.showSpeed=Exibir Velocidade
-Torrent.create.progress.piecelength=Comprimento do peda\u00E7o\:
+Torrent.create.progress.piecelength=Tamanho dos peda\u00E7os\:
dialog.uiswitcher.restart.text=O Vuze precisa reiniciar para trocar para o modo da nova Interface do Usu\u00E1rio.
label.favorites=Favoritos
v3.iconBar.down.tooltip=Mover pra Baixo\nSegure o bot\u00E3o do mouse para mover para o fundo
@@ -1027,16 +1039,17 @@ ConfigView.label.importdirectory=Diret\u00F3rio de Importa\u00E7\u00E3o
DownloadManager.error.fileempty=Arquivo torrent est\u00E1 vazio
MainWindow.menu.community.blog=Blog do &Vuze
devices.xcode.setcopyto.title=Escolha copiar para localiza\u00E7\u00E3o
+privacy.view.lookup.info=Buscar por pares I2P para ver se o download pode estar dispon\u00EDvel para dowload an\u00F4nimo.
TableColumn.header.md5.info=Hash MD5 para o arquivo (deve ser totalmente transferido; clique para calcular)
TableColumn.header.name=Nome
library.launch.web.in.browser=Substituir isto para downloads que cont\u00E9m um site e abrir no navegador
-ConfigView.label.showpopuponclose=Mostrar janela de confirma\u00E7\u00E3o quando parar de ficar de seed com uma propor\u00E7\u00E3o de compartilhamento menor que 1
-PeerManager.status.ps_disabled=A fonte peer do rastreador est\u00E1 desativada
+ConfigView.label.showpopuponclose=Mostrar popup de confirma\u00E7\u00E3o quando parando de semear com uma propor\u00E7\u00E3o de compartilhamento menor que 1
+PeerManager.status.ps_disabled=Fonte de pares do rastreador est\u00E1 desabilitada
MainWindow.menu.view.stats=&Estat\u00EDsticas
wizard.multitracker.edit.text.msg=Digite um trackerr por linha. Separar diferentes grupos (camadas) com uma linha em branco.
ConfigView.higher.mode.available=Mais op\u00E7\u00F5es est\u00E3o dispon\u00EDveis em modos de usu\u00E1rios mais altos
-PeersView.download.info=O total baixado por voc\u00EA do peer
-seedmore.title=O Torrent n\u00E3o est\u00E1 com seeds o bastante
+PeersView.download.info=O total baixado por voc\u00EA do par.
+seedmore.title=Torrent n\u00E3o tem sementes bastantes
ConfigTransferAutoSpeed.algorithm.selector=Seletor de Auto-Velocidade
MyTorrentsView.menu.thisColumn.sort=&Ordenar
window.uiswitcher.NewUI.title=Vuze
@@ -1072,11 +1085,11 @@ ConfigView.section.ipfilter.autoload.info=Suporta DAT (eMule), P2P (PeerGuardian
sidebar.header.discovery=Descobrir Cont\u00E9udo
importTorrentWizard.torrentfile.message=Insira o arquivo torrent para o qual importar
MainWindow.menu.speed_limits.view=Visualizar...
-ConfigView.section.mode.intermediate.wiki.host=Hospedar Arquivos
+ConfigView.section.mode.intermediate.wiki.host=Hospedagem de Arquivos
MainWindow.upgrade.error.downloading.hint=Erro\:\tIncapaz de baixar a nova vers\u00E3o, por favor atualize manualmente
MyTorrentsView.filter.tooltip=Use o s\u00EDmbolo '|' para filtrar v\u00E1rias frases \nCtrl+X para alternar entre RegEx e modos de pesquisa normais \nNo RegEx prefixo modo com '\!' para 'n\u00E3o'. \nPrefixo com \n\t'c\:. 'para pesquisar coment\u00E1rios \n\t't\:' para o host rastreador \n\t'f\:" para pesquisar nomes de arquivos
ConfigView.section.language=Idioma
-ConfigView.label.userSuperSeeding=Usar Super Seeding
+ConfigView.label.userSuperSeeding=Usar Super Semeamento
TableColumn.header.smoothup.info=Velocidade de Up Suavizado {smooth.config}
PeersView.connected_time=Tempo Conectado
fileDownloadWindow.retry=Tentar Novamente
@@ -1090,18 +1103,18 @@ PeersView.source=Fonte
archivedlsview.view.heading=Downloads Arquivados
GeneralView.label.maxuploadspeed.tooltip=Velocidade M\u00E1x. de Upload [0 \: ilimitada]
security.crypto.persist_for.forever=Pra sempre
-ConfigView.label.hap.tooltip=Ocultar um peda\u00E7o completo
+ConfigView.label.hap.tooltip=Ocultar peda\u00E7o completo
ConfigView.section.connection.group.networks=Redes
MainWindow.menu.file.exit.keybinding=Alt+F4
devices.comp.missing=Suporte do Vuze n\u00E3o instalado
SpeedTestWizard.test.panel.abort=Abortar
ManagerItem.queued=Na Fila
ConfigView.section.file.nativedelete._mac=Usar a Lixeira quando apagar os arquivos
-subscript.all.subscribed=Voc\u00EA est\u00E1 subscrito a este conte\u00FAdo
+subscript.all.subscribed=Voc\u00EA est\u00E1 inscrito para este conte\u00FAdo
DHTView.transport.title=Detalhes do Transporte
tag.type.ds.init={fileDownloadWindow.state_initializing}
-TableColumn.header.completed.info=\# dos peers que terminaram de baixar o torrent como reportado pelo rastreador
-subscriptions.view.title=Subscri\u00E7\u00F5es
+TableColumn.header.completed.info=\# dos pares que terminaram de baixar o torrent como reportado pelo rastreador
+subscriptions.view.title=Assinaturas
CacheView.speeds.reads=Leituras
subscription.request.add.title={subscriptions.add.tooltip}
ConfigView.label.queue.debuglog.info=Adiciona informa\u00E7\u00F5es de debug da fila ao arquivo de console/log.\nEmbora cifradas, as informa\u00E7\u00F5es de debug dizem a voc\u00EA o estado dos torrents e porque eles est\u00E3o/n\u00E3o est\u00E3o iniciando/requerindo.
@@ -1114,13 +1127,13 @@ TableColumn.header.tag.color={label.color}
ConfigView.label.minannounce=Tempo m\u00EDnimo entre an\u00FAncios de rastreador em segundos
azbuddy.dchat.cannel.import=Restaurar Canal
authenticator.details=Detalhes
-ConfigView.section.connection.group.peersources.info=Selecione as fontes padr\u00E3o permitidas para a conex\u00E3o com o peer
+ConfigView.section.connection.group.peersources.info=Selecione as fontes padr\u00E3o permitidas para a conex\u00E3o com o par
configureWizard.file.browse=Procurar
-OpenTorrentOptions.header.peeroptions=Rastreador, Peer & Op\u00E7\u00F5es de Conex\u00E3o
+OpenTorrentOptions.header.peeroptions=Rastreador, Pares & Op\u00E7\u00F5es de Conex\u00E3o
MyTorrentsView.menu.moveEnd=&Fundo
ConfigView.pluginlist.unloadSelected=Descarregar o Selecionado
device.error.mountrequired="%1" Necess\u00E1rio a montagem no seu dispositivo
-dht.reseed.label=Normalmente ficar de seed de novo da Base de Dados Distribu\u00EDda n\u00E3o \u00E9 necess\u00E1rio. Contudo, se o n\u00FAmero de contatos \u00E9 baixo, isto pode ser usado para a re-integra\u00E7\u00E3o.\nDeixe em branco para bootstrap off peers conectados ou insira o IP e porta para explicitamente bootstrap de um peer conhecido.
+dht.reseed.label=Normalmente, resemeamento do Banco de Dados Distribu\u00EDdo n\u00E3o \u00E9 necess\u00E1rio. De qualquer forma, se o n\u00FAmero de contatos \u00E9 baixo, isto pode ser usado para reintegra\u00E7\u00E3o.\\nDeixe em branco para o desativar o bootstrap dos pares conectados ou digitar UP e porta para bootstrap expl\u00EDcito de um pare conhecido.
MainWindow.menu.file.import.keybinding.mac=Meta+Shift+I
tag.show.overview=Exibir Sum\u00E1rio das Tag
wizard.next=Pr\u00F3ximo >
@@ -1129,6 +1142,7 @@ TableColumn.header.SpeedGraphic=Velocidade
ConfigView.section.interface.clearsavepaths=Limpar os caminhos para salvar recordados
TableColumn.header.filecount=Arquivos
SpeedView.stats.now=Agora
+label.vpn.status=Status do VPN
ConfigView.section.file.bgdefaultdir.ask=Padr\u00E3o de Melhor Palpite
ConfigView.section.mode.advanced.text=Acesso as configura\u00E7\u00F5es de rede.\nUse este modo se voc\u00EA sabe o que MTU ou I/O n\u00E3o-bloqueadores s\u00E3o...
MyTrackerView.name=Nome
@@ -1144,27 +1158,27 @@ OpenTorrentWindow.mb.invaliddefsave.title=Local Inv\u00E1lido para Salvar
azbuddy.protocolspeed=Acelera\u00E7\u00E3o m\u00E1xima do protocolo em KB/s do amigo
view.waiting.core=Visualizar estar\u00E3o dispon\u00EDveis uma vez N\u00FAcleo Vuze \u00E9 carregado ..
ConfigView.section.transfer.autospeed.resetnetwork=Resetar detalhes da rede
-ConfigView.label.lazybitfield=Usar lazy bitfield (ajuda a ficar de seed nas redes empregando o bloqueamento baseado no bitfield)
+ConfigView.label.lazybitfield=Usar lazy bitfield (ajuda a semear nas redes empregando o bloqueamento baseado no bitfield)
ConfigView.section.file.perf.cache.enable.write=Armazenar os dados de download no cache para reduzir as escritas em disco e tamb\u00E9m diminuir as leituras do disco requeridas para a checagem dos peda\u00E7os
OpenTorrentWindow.mb.askCreateDir.text=O diret\u00F3rio destino '%1' n\u00E3o existe.\n\nCriar agora?
MagnetPlugin.report.error=erro %1
ConfigView.label.ui_switcher=Exibir o Escolhedor de Interface Gr\u00E1fica do Vuze
MainWindow.nat.status.bad=Atr\u00E1s de Firewall
Scrape.status.scraping=Scraping..
-SpeedTestWizard.stage.message.connect.stats=Estat\u00EDsticas da conex\u00E3o\: peers\=%1, down_ok\=%2, up_ok\=%3
+SpeedTestWizard.stage.message.connect.stats=Estat\u00EDsticas da conex\u00E3o\: pares\=%1, down_ok\=%2, up_ok\=%3
azbuddy.ui.menu.cat.set_msg=V\u00EDrgula separa as listas das tags, categorias ou "Todos"
MagnetPlugin.report.ddb_disabled=DDB est\u00E1 desativado
SpeedTestWizard.abort.message.execution.failed=A execu\u00E7\u00E3o do teste falhou
TableColumn.header.DateFileCompleted.info=Mais recente data de conclus\u00E3o arquivo em torrent
-Wizard.Subscription.title=Subscrever
+Wizard.Subscription.title=Assinar
Tracker.tooltip.MultiSupport=Este rastreador suporta m\u00FAltiplos hash scrapes por pedido.
unix.script.new.title=Novo Script de Inicializa\u00E7\u00E3o do Vuze dispon\u00EDvel
-upnp.mapping.dhtudp=Base de Dados Distribu\u00EDda
+upnp.mapping.dhtudp=Banco de Dados Distribu\u00EDdo
azbuddy.os_away=Ausente
ConfigView.section.file.rename.incomplete=Adicionar sufixo para arquivos incompletos
MainWindow.menu.community=&Comunidade
TableColumn.header.Thumbnail=\u00CDcone
-TableColumn.header.azsubs.ui.column.subs_link.info=Associados com as subscri\u00E7\u00F5es
+TableColumn.header.azsubs.ui.column.subs_link.info=Associados com assinaturas
ConfigView.section.interface.display.suppress.file.download.dialog.tooltip=Mostrar todo o progresso do download do arquivo na barra de status em vez de um di\u00E1logo popup
dlg.auth.install.progress=Instalando %1 componentes...
wizard.multitracker.template.title=Editor de Modelos de Rastreador
@@ -1176,20 +1190,20 @@ SpeedTestWizard.abort.message.unsupported.type=Tipo de teste n\u00E3o suportado\
tag.type.ds.down={ManagerItem.downloading}
plugins.basicview.config=Config.
SpeedView.stats.asn=Rede\:
-StartStopRules.ratioMet=Peers\:Seed OK
+StartStopRules.ratioMet=Pares\:Sementes OK
ConfigView.section.tracker.pollintervalmin=M\u00EDnimo
-PeersView.title.full=Peers
+PeersView.title.full=Pares
wizard.multitracker.edit.name=Nome
ConfigView.section.plugins.dhttracker=Rastreador Distribu\u00EDdo
TableColumn.header.networks.info=Redes permitidas para a comunica\u00E7\u00E3o de dados peer-peer
-TableColumn.header.trackernextaccess=Pr\u00F3ximo Acesso do Rastreador
+TableColumn.header.trackernextaccess=Pr\u00F3ximo Acesso ao Rastreador
subscriptions.column.nb-results=Total de Resultados
TableColumn.header.CountryCode.info=O c\u00F3digo do pa\u00EDs (ISO 3166) onde o par est\u00E1 localizado
installPluginsWizard.installMode.shared=Instalar o(s) plugin(s) para todos os usu\u00E1rios
wizard.previous=< Voltar
subs.prop.template=Modelo
Button.unmark=Desmarcar
-ConfigView.label.maxuploadspeedseeding=Alternar a taxa apenas quando ficando de seed
+ConfigView.label.maxuploadspeedseeding=Alternar a taxa apenas quando ficando de semeando
update.instance.install=Checando a Instala\u00E7\u00E3o
OpenTorrentWindow.mb.existingFiles.title=O(s) Arquivo(s) j\u00E1 existe(m)\!
natpmp.enable=Ativar (note que deve tamb\u00E9m estar ativado na configura\u00E7\u00E3o do aeroporto para funcionar)
@@ -1221,11 +1235,11 @@ installPluginsWizard.installMode.info.title=Info
dht.execute.info=Pressione para executar o comando
ConfigView.section.proxy.no.local.dns=Evitar pesquisas de DNS locais
PiecesView.DistributionView.weDownload=Peda\u00E7os que voc\u00EA est\u00E1 baixando
-ConfigView.label.seeding.firstPriority.seedingMinutes=Tempo decorrido desde que mudou de baixando para seeding
+ConfigView.label.seeding.firstPriority.seedingMinutes=Tempo decorrido desde que mudou de baixando para semeando
ConfigView.label.stop.downcomp=Quando o download est\u00E1 completo
OpenTorrentWindow.addPosition.last=\u00DAltimo
PiecesView.legend.downloaded=Baixados, escrita pendente
-ConfigView.label.maxuploadsseeding=Alternar para o padr\u00E3o quando ficando de seed
+ConfigView.label.maxuploadsseeding=Alternar para o padr\u00E3o quando ficar semeando
label.accept=Aceitar
ConfigView.section.tracker.tcpnonblocking=Usar I/O n\u00E3o-bloqueador para processamento do rastreador TCP. Selecionar esta op\u00E7\u00E3o requer que o rastreador seja executado numa porta alternativa. Experimental\!
azbuddy.ui.table.rem_cat=Tags/Cats em
@@ -1254,6 +1268,7 @@ SpeedTestWizard.test.panel.testfailed=O teste falhou
ConfigView.section.server.enablednsrecords=Permitir o uso de rastreador registros DNS usados \u200B\u200Bpara melhorar DDOS acidentais
webui.user=Nome de usu\u00E1rio
device.itunes.status.notrunning=O iTunes n\u00E3o est\u00E1 sendo executado
+privacy.view.anon.only=An\u00F4nimo Somente
sidebar.LibraryDL=Baixando
PeersView.BlockView.title=Mapa dos Peda\u00E7os
MyTorrentsView.menu.host.error.title=Falha na Hospedagem do Torrent
@@ -1272,7 +1287,7 @@ ConfigView.pluginlist.column.unloadable=Descarreg\u00E1vel
PeersView.ip=IP
ConfigView.section.security.resetcerts.error.title={ Configview.section.security.resetkey.error.title }
ConfigView.label.set_ui_transfer_speeds=N\u00E3o levar em conta as velocidades de transfer\u00EAncia selecion\u00E1veis
-ManagerItem.superseeding=Super-Seeding
+ManagerItem.superseeding=Super-Semeamento
MainWindow.menu.file.create.keybinding=Meta+N
azbuddy.ui.menu.chat=Bate-papo
Scrape.status.cached=Scrape do cache
@@ -1282,14 +1297,15 @@ ConfigView.label.bStartNoMoreSeedsWhenUpLimitMetPercent=A aproxima\u00E7\u00E3o
sidebar.LibraryCD=Completados
TagAddWindow.title=Adicionar Nova Tag
ConfigView.pluginlist.loadSelected=Carregar os Selecionados
+label.socks.status=Status SOCKS
AdvRenameWindow.rename.torrent=Renomear Torrent
-subscript.add.dup.title=Duplicar a Subscri\u00E7\u00E3o
+subscript.add.dup.title=Assinatura Duplicada
ConfigTransferAutoSpeed.ping.time.bad=Ruim\:
IrcClient.connecting=Conectando a
dlg.stream.plus.renew.subtext={dlg.stream.plus.subtext}
ConfigView.label.overrideip.tooltip=Informar o rastreador de diferentes endere\u00E7o(s) de IP do que aquele de onde os pacotes de sa\u00EDda vem. Deixe em branco para n\u00E3o usar a op\u00E7\u00E3o.
tps.type.dht=DHT
-ConfigView.section.tracker.sendpeerids=Enviar as identidades dos peers aos que baixam
+ConfigView.section.tracker.sendpeerids=Enviar as identidades dos pares aos que baixam
FileItem.storage.compact=Compacta
tag.property.tracker_templates={label.tracker.templates}
security.crypto.password2=Re-inserir a senha
@@ -1297,7 +1313,7 @@ TableColumn.header.comment.info=Coment\u00E1rio definido-pelo-usu\u00E1rio para
ConfigView.boolean.ircsendinfo=Permite enviar as suas configura\u00E7\u00F5es (an\u00F4nimo) para\n os operadores do canal para ajud\u00E1-los a ajudar voc\u00EA
MainWindow.menu.file=&Arquivo
FilesView.rename.confirm.delete.text=Confirmar exclus\u00E3o do arquivo original '%1'
-SpeedView.stats.autospeed=Velocidade de Upload Autom\u00E1tica
+SpeedView.stats.autospeed=Velocidade de Upload Autom\u00E1tico (exibi\u00E7\u00E3o limitada a %1 ms)
MainWindow.menu.speed_limits.schedule.title=Agendar Limites de velocidade
ConfigView.section.style.library={library.name}
devices.cancel_xcode=Cancelar Convers\u00E3o
@@ -1321,7 +1337,7 @@ MainWindow.dialog.share.sharedir=Selecionar Pasta para Compartilhar
security.certtruster.no=N\u00E3o
ConfigView.section.tracker.pollintervalmax=M\u00E1ximo
delete.partial.files=Quando remover um download da biblioteca, apagar qualquer arquivo parcial selecionado como 'n\u00E3o baixar" ou 'apagar'
-PeersView.statup.info=Um valor estimado da velocidade de upload do peer
+PeersView.statup.info=Um valor estimado da velocidade de upload do par
MainWindow.menu.beta.on=Junte-se Programa Beta ...
SpeedTestWizard.name.conf.level.med=M\u00E9dia
MagnetPlugin.report.secondarylookup=Tentando servi\u00E7o de pesquisa secund\u00E1ria
@@ -1356,7 +1372,7 @@ ConfigView.section.tracker.web=Web
MyTrackerView.bytesout=Bytes Enviados
PeersView.pieces=Peda\u00E7os
plugin.sharing.torrent.remove.veto=Este registro de rastreador \u00E9 o resultado de um recurso que est\u00E1 sendo compartilhado.\nPara remover o download remova o compartilhamento associado\: v\u00E1 em Ferramentas->Meus compartilhamentos.
-azbuddy.dchat.create.join.key=Criar/entrar no canal personalizado\: chave
+azbuddy.dchat.create.join.key=Criar/entrar em um canal personalizado\: chave
mdi.entry.plus.full=Vuze Plus
CacheView.general.title=Info sobre o Cache
beta.wizard.intro.title=Sele\u00E7\u00E3o Inscri\u00E7\u00E3o
@@ -1389,11 +1405,11 @@ Formats.units.kbit=kbit
metasearch.addtemplate.done.desc=Modelo '%1' adicionado com sucesso.\nEle ser\u00E1 usado quando voc\u00EA fizer a pr\u00F3xima busca\!
ConfigView.section.color=Esquema de Cores
devices.choose.profile.info.title.selected=%1 detalhes\:
-SpeedTestWizard.test.panel.encrypted=encriptado
+SpeedTestWizard.test.panel.encrypted=criptografado
Peers.column.client_identification=Identifica\u00E7\u00E3o do Cliente
MainWindow.menu.view.clientstats={ClientStats.title.full}
label.checking.comments=Verificar a disponibilidade de coment\u00E1rios e avalia\u00E7\u00F5es de usu\u00E1rios
-PiecesView.speed.info=Peers mais lento s\u00E3o impedidos de interferir muito com os peda\u00E7os mais r\u00E1pidos
+PiecesView.speed.info=Pares mais lento s\u00E3o impedidos de interferir muito com os peda\u00E7os mais r\u00E1pidos
FilesView.name=Nome
MyTorrentsView.menu.checkfilesexist=Arquivos de Verifica\u00E7\u00E3o Existem
ConfigView.pluginlist.column.name=Nome
@@ -1412,7 +1428,7 @@ Torrent.create.progress.hashing=Hasheando arquivos
ConfigView.section.mode.beginner.text=Tudo que voc\u00EA precisa para baixar torrents.\nUse este modo se tudo que voc\u00EA quer \u00E9 gerenciar seus torrents.
externalLogin.explanation=O modelo "%1" requer que voc\u00EA logue. Uma vez logado esta janela automaticamente fechar\u00E1. Se ela n\u00E3o fechar por favor clique em "feito".
Menu.show.torrent.menu.tooltip=Mostra o menu Torrents na barra do menu do aplicativo no topo
-PeerManager.status.finishedin=Terminado em
+PeerManager.status.finishedin=Terminado em
security.certtruster.issuedto=Emitido Para\:
Torrent.create.progress.parsingfiles=Analizando arquivos
Progress.reporting.window.remove.auto=Automaticalmente remover itens inativos
@@ -1433,11 +1449,11 @@ device.upnp.desc_url=Descri\u00E7\u00E3o do Dispositivo
security.certcreate.alias=Apelido
FilesView.menu.rename=Renomear ou Mover Arquivo(s)
v3.iconBar.view.small=ew
-Tracker.announce.ignorePeerSeed=Ignorar Contagem de Peers/Seeds. %1
+Tracker.announce.ignorePeerSeed=Ignorar N\u00FAmero de Pares/Sementes. %1
ConfigView.section.tracker.publicenable.info=Isto permite que outros criem torrents que usem o seu tracker\nsem que voc\u00EA os hospede/publique
MyTrackerView.category=Categoria
ConfigView.label.moveonlyusingdefaultsave=apenas se estiver no diret\u00F3rio de dados padr\u00E3o
-label.merge=Juntar
+label.merge=Fundir
MainWindow.menu.file.closewindow.keybinding=Meta+Shift+W
Progress.reporting.window.remove.now=Remover itens inativos
SpeedTestWizard.finish.panel.auto.speed=AutoVelocidade \u00E9 \:
@@ -1466,13 +1482,13 @@ ConfigTransferAutoSpeed.auto.speed.beta=Auto-Velocidade(beta)
TableColumn.header.health.info=Qu\u00E3o saud\u00E1vel sua conex\u00E3o com a multid\u00E3o do torrent \u00E9
ConfigView.text.ignore=Ignorar
configureWizard.transfer.maxUpSpeed=Velocidade M\u00E1xima de Upload (KB/s)
-label.anon.chat=Bate-papo An\u00F4nimo
+label.anon.chat=Bate-Papo An\u00F4nimo
IrcView.clientsconnected=usu\u00E1rios
azneti2phelper.install.reason.decentralised=O torrent que voc\u00EA est\u00E1 adicionando \u00E9 puramente descentralizado. \u00C9 poss\u00EDvel que esse torrent s\u00F3 fucione na rede I2P.
dialog.associations.askagain=Verificar ao iniciar
tag.property.untagged={label.untagged}
ConfigView.section.security.resetcerts.error.msg=Falha ao redefinir o armazenamento de certificados por uma raz\u00E3o desconhecida, consulte os f\u00F3runs de ajuda
-GeneralView.label.peers=Peers\:
+GeneralView.label.peers=Pares\:
ConfigView.section.connection.networks.Tor=A rede do Onion Router (Tor)
ConfigView.label.playfilespeech=Falar quando um arquivo est\u00E1 terminado
library.tag.header=Tag '%1'
@@ -1491,7 +1507,7 @@ v3.deleteContent.or.archive=Alternativamente, cancele esta opera\u00E7\u00E3o e
ConfigView.section.connection.port.rand.range=Alcance das portas [min-max]
window.update.noupdates.title=Procurar pelos Resultados das Atualiza\u00E7\u00F5es
ConfigView.section.style.useFancyTabs=Usar Abas Extravagantes
-ConfigView.label.seeding.autoReposition=Automaticamente reposicionar torrents baseado no Rank do Seeding
+ConfigView.label.seeding.autoReposition=Automaticamente reposicionar torrents baseado no Rank de Semeamento
beta.wizard.on=Atualizar-me com as mais recentes vers\u00F5es beta est\u00E1veis \u200B\u200Bpor favor.
Peers.column.timetocomplete=Tempo Restante
ConfigView.section.proxy.testsocks.title=Testando conex\u00E3o SOCKS
@@ -1500,8 +1516,8 @@ config.external.browser.info2=Navegador padr\u00E3o do seu computador \u00E9 usa
config.external.browser.info1=O navegador externo \u00E9 usado para exibir conte\u00FAdo da web fora do cliente, por exemplo nos casos dos detalhes dos resultado das buscas
tag.type.man.vhdn={sidebar.VuzeHDNetwork}
MainWindow.menu.file.open.uri.keybinding=Meta+U
-ActivityView.legend.achieved=Taxa obtida
-dialog.add.peers.title=Adicionar Peer(s)
+ActivityView.legend.achieved=Taxa alcan\u00E7ada
+dialog.add.peers.title=Adicionar Par(es)
devices.choose.device.info.title=Dica Dispositivo
installPluginsWizard.list.title=Lista dos Plugins Instal\u00E1veis
TorrentInfoView.title.full={GeneralView.section.info}
@@ -1516,7 +1532,7 @@ fileplugininstall.install.desc=Voc\u00EA tem certeza que voc\u00EA quer instalar
MainWindow.menu.speed_limits.view_current=Visualizar Atual...
azbuddy.dchat.rchans.managed=Gerenciar Novo Canal
IrcClient.noNick=Nenhum Apelido Especificado. Por favor v\u00E1 para Visualiza\u00E7\u00E3o 'Op\u00E7\u00F5es'
-Peers.column.client_identification.info=Indica os nomes naturais dos clientes recebidos pelo Vuze - \u00FAtil para debugging
+Peers.column.client_identification.info=Indica os nomes naturais dos clientes recebidos pelo Vuze - \u00FAtil para depura\u00E7\u00E3o
MainWindow.menu.transfers.pausetransfers.keybinding=Meta+P
Categories.uncategorized=Sem categoria
MySharesView.title.full=Meus Compartilhamentos
@@ -1525,7 +1541,7 @@ MyTorrentsView.menu.start=&Iniciar
dht.enabled=Ativar a base de dados distribu\u00EDda
v3.mb.PlayFileNotFound.button.remove=Remover do Vuze
window.updateswt.status.done=Reiniciando
-TableColumn.header.transcode_name={ Tablecolumn.header.name }
+TableColumn.header.transcode_name={TableColumn.header.name}
MainWindow.updateavail=Clique aqui para atualiza\u00E7\u00F5es
TableColumn.header.secondsdownloading=Baixando Para
Button.bar.share=Compartilhar
@@ -1534,8 +1550,9 @@ Views.plugins.UPnP.title=UPnP
ConfigView.section.ipfilter.discardminkb=M\u00EDnimo de %1 descartados antes de aplicar a propor\u00E7\u00E3o
MainWindow.menu.view.open_global_transfer_bar=Barra de Transfer\u00EAncias
devices.copy.fail=Falha na c\u00F3pia para o dispositivo
+label.copy.uri.to.clip=Copiar URl Para \u00C1rea de Transfer\u00EAncia
IrcClient.channel=Canal
-SpeedTestWizard.abort.message.insufficient.slots=N\u00E3o p\u00F4de fazer upload a quaisquer dos peers - slots de upload insuficientes?
+SpeedTestWizard.abort.message.insufficient.slots=N\u00E3o p\u00F4de fazer upload a quaisquer dos pares - slots de upload insuficientes?
FilesView.rename.choose.path.dir=Escolher diret\u00F3rio novo ou existente
Main.parameter.usage=Uso \: java org.gudy.azureus2.cl.Main [par\u00E2metros] "arquivo.torrent" "caminho para salvar"
ConfigView.section.mode.intermediate=Intermedi\u00E1rio
@@ -1547,7 +1564,7 @@ torrent.comments.title=Coment\u00E1rios/Avalia\u00E7\u00F5es de '%1'
v3.MainWindow.menu.view.asSimpleList=Lista Simples
ManagerItem.waiting=Esperando
config.external.browser.select=Navegador Selecionado
-ConfigView.text.peers=Peers
+ConfigView.text.peers=Pares
wizard.maketorrent.auto=Autom\u00E1tico
ConfigView.section.tracker.publicenable=Ativar torrents externos
v3.mb.PlayFileNotFound.button.find=Achar Manualmente..
@@ -1561,8 +1578,8 @@ Views.plugins.azbuddy.title=Amigos
ConfigView.section.global=Geral
ConfigView.section.style.useUnitsRateBits=Usar bits em vez de bytes para os valores das taxas baseadas em bytes (KiB/s->Kibit/s etc.)
ConfigView.label.StartUIBeforeCore=Iniciar UI antes de iniciar o n\u00FAcleo
-device.rss.group=RSS Fedd local
-MainWindow.menu.speed_limits.wiki=Ajuda Wiki...
+device.rss.group=RSS Fedd Local
+MainWindow.menu.speed_limits.wiki=Ajuda do Wiki...
ConfigView.label.please.visit.here=Por favor visite aqui para detalhes
MainWindow.menu.file.exit=Sai&r
device.import.desc=Voc\u00EA tem certeza que deseja importar dispositivo '%1'?
@@ -1576,7 +1593,7 @@ azbuddy.dchat.rchans.rand=Subcanal Aleat\u00F3rio
ConfigView.label.set_ui_transfer_speeds.description.download=Definir as velocidades de download (em KB/s)
ConfigView.label.resume.downloads.on.start=Resumir downloads pausados ao iniciar ap\u00F3s a inicializa\u00E7\u00E3o completar
ConfigView.section.connection.http.port=N\u00FAmero da porta de entrada
-ConfigView.section.stats.exportpeers=Exportar os detalhes dos peers
+ConfigView.section.stats.exportpeers=Exportar os detalhes dos pares
ConfigView.section.file.subfolder.dnd=Mover arquivos n\u00E3o selecionados para download para subpasta
FilesView.firstpiece=Primeiro peda\u00E7o \#
pairing.explicit.info=Atributos IP Normalmente expl\u00EDcitas n\u00E3o precisa ser especificado como estes podem ser derivadas automaticamente.\nO atributo 'host' pode ser usado, por exemplo, se voc\u00EA tiver uma conta DynDNS e software cliente apropriado para manter seu IP din\u00E2mico registrado corretamente.
@@ -1588,7 +1605,7 @@ azbuddy.dchat.anon.share.endpoint.info=Infelizmente utilizando destinos separado
TableColumn.header.chat.fave={label.fave}
SystemTray.menu.show=&Mostrar o Vuze
TransferStatsView.legend.pingaverage=M\u00E9dia
-subscriptions.listwindow.failed=Nenhuma subscri\u00E7\u00E3o Achada
+subscriptions.listwindow.failed=Nenhuma subscri\u00E7\u00E3o Encontrada
iconBar.publish.tooltip=Publicar
torrent.view.info.title=Informa\u00E7\u00E3o do Torrent
device.xcode.whenreq=Quando requerido
@@ -1604,21 +1621,21 @@ ConfigView.section.language.UpdateNow=Atualizar Agora\!
ConfigView.section.file.config.currentdir=Diret\u00F3rio da configura\u00E7\u00E3o atual\:
TrayWindow.menu.show=&Mostrar o Vuze
Pieces.column.Requested.info=Mostra se mais pedidos podem ser feitos no peda\u00E7o ou n\u00E3o (*)
-ConfigView.label.seeding.ignoreRatioPeers=Ignorar torrents que tenham pelo menos 1 seed para cada
+ConfigView.label.seeding.ignoreRatioPeers=Ignorar torrents que tenham pelo menos 1 semente para cada
PeersView.menu.blockupload=Bloquear Upload
dlg.auth.install.failed.text=C\u00F3digo de ativa\u00E7\u00E3o '%1' falhou em virtude de um erro no servidor.\n\nPor Favor tente novamente a ativa\u00E7\u00E3o (erro reportado foi '%2')
-Trackers.column.interval.info=Re-consulta intervalo em segundos\: intervalo (intervalo min)
+Trackers.column.interval.info=Re-consultar intervalo em segundos\: intervalo (intervalo min)
MagnetPlugin.report.searching=buscando...
-dht.reseed.info=Ficar de seed da base de dados de novo
+dht.reseed.info=Resemear o banco de dados
TableColumn.header.tag.public={ConfigView.pluginlist.column.type.shared}
config.internal.browser.info3=Um proxy pode ser usado em raz\u00E3o do conte\u00FAdo ser alcan\u00E7ado indiretamente, quando instalado (Ex\: Provido pelo plugin Tor Helper)
config.internal.browser.info2=Por padr\u00E3o o Internet Explorer \u00E9 usado no Windows, o Safari no Mac. * Limitado vers\u00F5es * do Firefox pode ser usado no lugar - veja as seguintes op\u00E7\u00F5es
Subscription.menu.clearall=Marcar Todos Os Resultados Como Lidos
-subscript.add.upgradeto.desc=A vers\u00E3o %1 da subscri\u00E7\u00E3o '%2' est\u00E1 dispon\u00EDvel.\nVoc\u00EA quer atualizar?
-Wizard.Subscription.subscribe.title=Subscri\u00E7\u00F5es Dispon\u00EDveis
+subscript.add.upgradeto.desc=A vers\u00E3o %1 da assinatura '%2' est\u00E1 dispon\u00EDvel.\nVoc\u00EA quer atualizar?
+Wizard.Subscription.subscribe.title=Assinaturas Dispon\u00EDveis
config.internal.browser.info1=O navegador interno \u00E9 usado para exibir o conte\u00FAdo da web embutido no cliente, por exemplo, a p\u00E1gina da rede Vuze HD
ConfigView.section.interface.display.suppress.file.download.dialog=Suprimir o di\u00E1logo popup do Download do Arquivo
-PeersView.piece.info=\u00DAltimo peda\u00E7o \# requesitado deste peer
+PeersView.piece.info=\u00DAltimo peda\u00E7o \# pedido deste par
DownloadActivityView.legend.up={iconBar.up}
ConfigView.section.tracker.forceport=For\u00E7ar torrents externos hospedados para a porta padr\u00E3o
v3.topbar.menu.show.frog=O Sapo Azul
@@ -1629,16 +1646,16 @@ Column.seedspeers.started=%1 de %2
subscriptions.enter.freq=Introduzir a frequ\u00EAncia de atualiza\u00E7\u00E3o em minutos
ConfigView.section.invalid.value.title=Valor Inv\u00E1lido
DHTView.transport.in=Entrou \:
-ConfigView.label.seeding.rankType.seed.tooltip=Menos Seeds \= Maior Rank
+ConfigView.label.seeding.rankType.seed.tooltip=Menos Sementes \= Maior Rank
azbuddy.enabled=Ativado
dhttracker.alt_group=Rastreamento Alternativo
ConfigView.section.connection.networks.I2P=Rede I2P
plugin.init.load.failed=Erro ao carregar plugin '%1' de %2
message.confirm.delete.title=Confirmar a Exclus\u00E3o
-dht.reseed.group=Ficar de seed de novo
+dht.reseed.group=Resemear
ConfigView.label.quickviewexts=Extens\u00F5es de Arquivos para Exibi\u00E7\u00E3o-R\u00E1pida
sidebar.Library=Minha Biblioteca
-ConfigView.label.switchpriority=Auto-trocar para prioridade baixa quando estiver ficando de seed
+ConfigView.label.switchpriority=Auto-trocar para prioridade baixa quando estiver semeando
PeersView.menu.kickandban=Chutar e Banir
subs.prop.last_scan=\u00DAltima atualiza\u00E7\u00E3o bem sucedida
IPChecker.external.service.no-ip.description=Provedor de servi\u00E7o DNS din\u00E2mico e est\u00E1tico\n(nenhum servi\u00E7o de 'verificar o endre\u00E7o' dispon\u00EDvel gratuitamente)
@@ -1650,16 +1667,17 @@ label.learnmore=Aprender Mais
dlg.install.vuzexcode.subtitle=Instalando o componente de An\u00E1lise de M\u00EDdia
TableColumn.header.TableColumnChosenColumn=Escolher a Coluna
Subscription.menu.setcookies=Definir cookies
-iconBar.run.tooltip=Abrir
+iconBar.run.tooltip=Abrir usando o aplicativo padr\u00E3o
ConfigView.label.stop.RunScript=Executar Script
vote.vuze.url=http\://vote.vuze.com/
ConfigView.section.tracker.maxposttimemultiplier.info=Usado para formar submiss\u00F5es e uploads
azbuddy.tracker.bbb.status.title=Acelera\u00E7\u00E3o de Amigo
-Button.swarmit=Insira na Multid\u00E3o\!
+Button.swarmit=Buscar na Multid\u00E3o\!
GeneralView.label.status.file=Status do Arquivo
+OpenTorrentWindow.privacy.info=Permitindo privacidade, adiciona o torrent em um estado parado com as redes n\u00E3o habilitadas.\nUse a aba Privacidade para configurar as redes e depois inici\u00E1-lo.
GeneralView.label.creationdate=Criado Em \:
ipCheckerWizard.service.description=Descri\u00E7\u00E3o \:
-subscription.version.bad=A subscri\u00E7\u00E3o '%1' n\u00E3o pode ser instalado at\u00E9 que voc\u00EA atualize o Vuze
+subscription.version.bad=A assinatura '%1' n\u00E3o pode ser instalado at\u00E9 que voc\u00EA atualize o Vuze
ConfigView.section.tracker.enablekey=Ativar a entrega da chave ao tracker para seguran\u00E7a melhorada
platform.jvmopt.nolinkfile=N\u00E3o \u00E9 poss\u00EDvel gerenciar as op\u00E7\u00F5es de JVM como a migra\u00E7\u00E3o n\u00E3o \u00E9 completa
ColumnRenameWindow.message=Digite um novo nome para a coluna, deixe em branco para restaurar
@@ -1680,15 +1698,16 @@ metasearch.import.select.template.file=Abrir o Modelo
download.removerules.unauthorised.data=\tRemover Dados
device.onlyShowTagged=Exibir somente Dispositivos com Tags
MainWindow.sr.status.tooltip.poor=Taxa de Compartilhamento %1 pobre\: < 0.9
-wizard.webseed.title=Seeds HTTP
+wizard.webseed.title=Sementes HTTP
ConfigView.label.queue.debuglog=Registrar a informa\u00E7\u00E3o de debug
ConfigView.section.ipfilter.add=Adicionar
chat.view.enter.key.msg=Digite a chave do canal para seu bate-papo
-Button.swarmit.tooltip=Buscar arquivos com mesmo tamanho usando Swarm Discoveries
+Button.swarmit.tooltip=Buscar arquivos com mesmo tamanho usando Descobrir na Multid\u00E3o
ConfigView.label.playfilefinished=Tocar um som quando um arquivo est\u00E1 terminado
MySharesView.type.dircontents=Conte\u00FAdo do Diret\u00F3rio
ArchivedFilesView.title.full={FilesView.title.full}
importTorrentWizard.importfile.invalidPath=Arquivo de importa\u00E7\u00E3o inv\u00E1lido
+privacy.view.lookup.msg=Sementes\=%1, Leechers\=%2, Pares\=%3
TableColumn.header.trackername=Nome do Rastreador
azbuddy.dchat.status.notavail=Nenhum status dispon\u00EDvel ainda
br.backup.setup.info=Por favor, considere a cria\u00E7\u00E3o de backup de configura\u00E7\u00E3o autom\u00E1tica.\nVeja Ferramentas-> Op\u00E7\u00F5es-> Backup & Restaurar
@@ -1700,7 +1719,7 @@ FileView.BlockView.title=Peda\u00E7os do Arquivo
MainWindow.menu.view.detailedlist=&Lista Detalhada
FilesView.rename.failed.title=Renomear/Refazer o Alvo falhou
PeersView.menu.close=&Fechar
-ConfigView.section.proxy.group.peer=Comunica\u00E7\u00F5es do Peer
+ConfigView.section.proxy.group.peer=Comunica\u00E7\u00F5es dos Pares
Files.column.fileext=Tipo
Subscription.menu.dirtyall=Marcar Todos Os Resultados Como N\u00E3o Lidos
label.quick.config=Configura\u00E7\u00E3o R\u00E1pida
@@ -1717,16 +1736,16 @@ ConfigView.section.style.showdownloadbasket=Mostrar Cesta de Downloads (Arrastar
configureWizard.transfer2.rate.changed=Limite da Conex\u00E3o\=%1\nAplicada o limite ser\u00E1 de %2 (m\u00E1x. de torrents ativos\=%3, m\u00E1x. baixando\=%4)
azbuddy.ui.menu.cat_subs=Assinar
v3.menu.device.defaultprofile.never=Nunca Transcode
-columnChooser.move=Arraste as linhas para re-orden\u00E1-las
+columnChooser.move=Arrastar linhas para reorden\u00E1-las
ConsoleView.title.full=Console
azbuddy.beta.enabled=Beta Habilitado
-Plugin.extseed.name=Seeds Externos
+Plugin.extseed.name=Semente Externa
subscriptions.column.auto-download=Download Autom\u00E1tico
ConfigView.section.file.save.peers.pertorrent=por torrent
ConfigTransferAutoSpeed.capacity.used=% da Capacidade Usada
ConfigView.label.seeding.rankType=Colocar os torrents completados para auto-iniciar baseado em\:
ConfigView.section.mode.intermediate.text=Acesso as fun\u00E7\u00F5es do rastreador.\nUse este modo se voc\u00EA quer criar seu pr\u00F3prio rastreador e hospedar/publicar seus arquivos.
-PiecesView.DistributionView.PeerAvl=Contribui\u00E7\u00E3o Avl do Peer
+PiecesView.DistributionView.PeerAvl=Contribui\u00E7\u00E3o M\u00E9dia do Par
configureWizard.transfer2.hint=Configurando seu limite de upload alto demais ou baixo demais ir\u00E1 afetar a performace do download\!
subs.prop.next_scan=Pr\u00F3ximo scan em
SpeedView.stats.uploaded=Enviado (Protocolo)
@@ -1734,17 +1753,18 @@ ConfigView.section.queue.main=Principal
config.external.browser.test=Testar configura\u00E7\u00E3o do navegador externo
ConfigView.label.copyanddeleteratherthanmove=Copia e ent\u00E3o apaga os dados originais en vez de mov\u00EA-los em uma opera\u00E7\u00E3o - pode ajudar a evitar a perda de dados em alguns sistemas de arquivos
OpenTorrentWindow.message=Experimental
+label.show.in.sidebar=Exibir na Barra Lateral
ConfigView.section.logging.level=N\u00EDvel do Log
ConfigView.section.file.config.section=Configura\u00E7\u00F5es da Configura\u00E7\u00E3o
ConfigView.section.transfer.lan=LAN
SpeedTestWizard.test.panel.standard=padr\u00E3o
-ConfigView.section.ipfilter.discardbanning=Bloquear peers cuja propor\u00E7\u00E3o de dados descartados ruins/bons exceder [0\: desativado]
+ConfigView.section.ipfilter.discardbanning=Bloquear pares cuja propor\u00E7\u00E3o de dados descartados ruins/bons exceder [0\: desativado]
ConfigView.section.style.colorOverride.altRow=Linhas Alternadas
SpeedTestWizard.set.upload.hint=Definir os limites de upload e download usados pelo algor\u00EDtmo de AutoVelocidade do Vuze.
PeerFilesView.title.full={FilesView.title.full}
DHTTransport.report.resending=re-enviando dados
-Torrent.create.progress.totalfilesize=Tamanho total do arquivo\:
-GeneralView.label.seeds=Seeds\:
+Torrent.create.progress.totalfilesize=Tamanho total do arquivo\:
+GeneralView.label.seeds=Sementes\:
SpeedTestWizard.test.panel.explain=Mede sua velocidade no protocolo do Vuze. Selecione o tipo de teste de velocidade e o modo de encripta\u00E7\u00E3o. Visite a p\u00E1gina do wiki do Vuze para detalhes sobre este teste. O teste parar\u00E1 automaticamente se ele levar mais do que 2 minutos. Testes t\u00EDpicos terminam em menos de 1 minuto.
TableColumn.header.md5=MD5
PeerSocket.mismatch_id=n\u00E3o combinam
@@ -1776,20 +1796,20 @@ ConfigView.section.file.friendly.hashchecking.tooltip=Um levemente mais lento, m
ConfigView.section.logging.filter=Filtrar quando registrando no arquivo
MainWindow.menu.view.irc.moved=O Irc est\u00E1 agora dispon\u00EDvel como um plugin, veja http\://azureus.sourceforge.net/plugin_list.php. Quando instalado, use o menu visualizar->plugins->menu IRC para acess\u00E1-lo
SpeedView.stats.uptime=Tempo de Upload
-ConfigView.section.connection.encryption.encrypt.fallback_incoming=Permitir conex\u00F5es de entrada n\u00E3o encriptadas
+ConfigView.section.connection.encryption.encrypt.fallback_incoming=Permitir conex\u00F5es de entrada n\u00E3o criptografadas
TableColumn.header.trancode_qpos=\#
Progress.reporting.statusbar.button.tooltip=Mostrar a Janela de Relat\u00F3rio do Progresso
dlg.try.trial.text=Vuze precisa instalar o plugin necess\u00E1rio para gravar DVDs jog\u00E1veis \u200B\u200Bde seus v\u00EDdeos. Clique em Ativar para continuar.
ConfigView.section.logging.logdir=Diret\u00F3rio do arquivo de log
MainWindow.menu.quick_view.msg=Conte\u00FAdo do arquivo '%1' dentro de Download '%2'
PeersView.client=Cliente
-TableColumn.header.secondsseeding.info=Quantia total de tempo que voc\u00EA esteve fazendo see.
+TableColumn.header.secondsseeding.info=Quantia total de tempo que voc\u00EA esteve semeando.
SpeedTestWizard.name.conf.level.low=Baixa
remote.pairing.learnmore=<A HREF\="/pairing_learnmore.start">Pareamento FAQs</A>
label.listen=Ouvir
ConfigView.label.ignoreCase=Ignorar Mai\u00FAsculas/Min\u00FAsculas
device.error.copytomissing='Copiar para Pasta' "%1" N\u00E3o encontrado
-devices.xcode.profs=Perfis transcode Dispon\u00EDveis
+devices.xcode.profs=Perfis transcode dispon\u00EDveis
config.dialog.shortcut.text=Digite caractere para combina\u00E7\u00E3o com 'control+' para esta se\u00E7\u00E3o, deixe em branco para remover
ConfigView.label.transfer.ignorepeerports=Ignorar peers com estas portas de dados (';' separadas, ex\: 0;25;100-200)
exportTorrentWizard.process.torrentfail.title=Falha na Leitura do Torrent
@@ -1805,15 +1825,16 @@ MainWindow.menu.file.open.url.keybinding=Meta+L
DownloadManager.error.sha1=Erro\: Algor\u00EDtmo n\u00E3o encontrado (SHA1)
ConfigView.pluginlist.column.directory=Diret\u00F3rio
security.certtruster.issuedby=Emitido Por\:
-ConfigView.section.seeding=Ficar de seed
+ConfigView.section.seeding=Semeando
ConfigView.tb.delete.torrent=Somente remover da Biblioteca
ConfigView.section.sharing.protocol=Protocolo para recursos compartilhados
ConfigView.section.logging.statsinfo=Gerar info das estat\u00EDsticas
ConfigView.section.transfer.autospeedbeta=Auto-Velocidade-Beta
wizard.finish=Terminar
ConfigView.section.connection.udp.enable=Ativar UDP
-subs.prop.is_auto_ok=Auto-download permitido
+subs.prop.is_auto_ok=Download Autom\u00E1tico permitido
network.ipv6.enable.support=Ativar o suporte IPv6 (Java7 exigido no Windows)
+label.lookup.status=Status da Busca
DHTView.general.rendezvous=Encontro\:
label.searching=Procurando...
upnp.alert.differenthost=UPnP\: O Mapeamento '%1' foi reservado por '%2' - por favor selecione uma porta\tdiferente
@@ -1837,10 +1858,10 @@ IrcClient.joined=entrou
ConfigView.section.file.torrent.autoskipfiles=Extens\u00F5es de arquivos que n\u00E3o devem ser baixados ao adicionar um torrent [separado por ;]
label.properties=Propriedades
device.renderer.remove_all.desc=Voc\u00EA tem certeza que deseja remover todos os Renderers e seus transcodes?
-azbuddy.dchat.info=Bate-papo Descentralizada permite que voc\u00EA converse com outros usu\u00E1rios Vuze diretamente , e, opcionalmente, de forma an\u00F4nima.
+azbuddy.dchat.info=Bate-papo Descentralizado permite que voc\u00EA converse com outros usu\u00E1rios Vuze diretamente , e, opcionalmente, de forma an\u00F4nima.
#Used by the webui plugin
MyTorrentsView.menu.removeand.deletedata=Apagar &Dados
-label.chat=Bate-papo
+label.chat=Bate-Papo
ConfigView.section.transfer.autospeed.downadjratio=Taxa da velocidade de Download\:Upload (ex\: 2.0-> o limite da velocidade de download \u00E9 o dobro do limite de upload)
label.lang.upper.case=Use letras mai\u00FAsculas (ajuda a alinhar a experi\u00EAncia do usu\u00E1rio para aqueles que t\u00EAm "capslock" sempre ativado)
subscriptions.config.maxresults=N\u00FAmero m\u00E1ximo de resultados retidos por subscri\u00E7\u00E3o [0\: ilimitados]
@@ -1849,7 +1870,7 @@ wizard.multitracker.edit.title=Editor Multi-Rastreador
Scrape.status.networkdisabled=Rede n\u00E3o ativada
wizard.choosetorrent=Por favor escolha o arquivo torrent a criar
ConfigView.label.info.in.window.title=Exibir taxas atuais e etc. na barra de t\u00EDtulos
-health.explain.green=significa que tudo vai bem.
+health.explain.green=Significa que tudo vai bem.
MainWindow.menu.speed_limits.info.prof=Defini\u00E7\u00F5es para o perfil '%1'
Peers.column.UpDownRatio=Up\:Down
ConfigView.section.tracker.checkip=Auto-descobrir endere\u00E7o IP externo...
@@ -1861,11 +1882,11 @@ security.crypto.reason=Motivo para a opera\u00E7\u00E3o
GeneralView.label.totalsize=Tamanho Total \:
ConfigView.section.language.UpdateURL=URL da Atualiza\u00E7\u00E3o
OpenTorrentWindow.mb.notTorrent.title=Abrir Torrent
-GeneralView.label.totalspeed=Velocidade Total \:
+GeneralView.label.totalspeed=Velocidade da Multid\u00E3o\:
ConfigView.label.overrideip=N\u00E3o levar em conta o(s) IP(s) de an\u00FAncio do rastreador - semi-v\u00EDrgula os separa se h\u00E1 mais de um para diferentes redes
seedmore.shareratio=Sua propor\u00E7\u00E3o de compartilhamento neste torrent \u00E9 de
-browser.internal.disabled.info=O navegador interno est\u00E1 desabilitado.\\n\\nIsto ocorreu porque voc\u00EA explicitamente desabilitou via\\n\\n\\tFerrametas->Op\u00E7\u00F5es->Interface->Exibir\: Navegador Interno\\n\\nou foi automaticamente desabilitado em face dos crashs que parecem ocorrer em virtude do componente.\\n\\nO link atual est\u00E1 sendoe xibido abaixo (a p\u00E1gina pode n\u00E3o ser exibida corretamente em face das dep\u00EAndencias do cliente)
-ConfigView.section.connection.encryption.encrypt.fallback_outgoing=Permitir conex\u00F5es de sa\u00EDda n\u00E3o encriptadas se a tentativa de encriptar a conex\u00E3o falhar
+browser.internal.disabled.info=O navegador interno est\u00E1 desabilitado.\\n\\nIsto ocorreu porque voc\u00EA explicitamente desabilitou via\\n\\n\\tFerrametas->Op\u00E7\u00F5es->Interface->Exibir\: Navegador Interno\\n\\nou foi automaticamente desabilitado em face dos crashs que parecem ocorrer em virtude do componente.\n\nO link atual est\u00E1 sendo exibido abaixo (a p\u00E1gina pode n\u00E3o ser exibida corretamente em face das dep\u00EAndencias do cliente)
+ConfigView.section.connection.encryption.encrypt.fallback_outgoing=Permitir conex\u00F5es de sa\u00EDda n\u00E3o criptografadas se a tentativa de criptografar a conex\u00E3o falhar
GeneralView.torrent_created_on_and_by=%1 por %2
MyTorrentsView.menu.manual.shared_torrents=Manual (pelos torrents)
ConfigView.section.style.useCustomTabs=Usar abas que fecham (precisa reiniciar)
@@ -1876,17 +1897,18 @@ filter.header.matches1=(Resultados da busca\: %1)
ConfigView.section.mode.intermediate.text1=Mais recursos para controle, optimiza\u00E7\u00E3o e visualizando downloads
ConfigView.label.open_transfer_bar_on_start=Abrir a Barra de Transfer\u00EAncia ao iniciar
label.no.download.selected=Nenhum download selecionado
+azbuddy.dchat.ui.standalone.windows=Usar janelas independentes para popups de bate-papos
MainWindow.menu.speed_limits.schedule=Agendar...
friend.mod.subs=Bot\u00E3o direito do mouse para alterar assinaturas
MainWindow.menu.window.zoom.maximize=Maximizar
ConfigView.section.file.save.peers.enable=Salvar as conex\u00F5es com o peer para reconex\u00F5es r\u00E1pidas
v3.MainWindow.menu.view.pluginbar.keybinding=F8
DHTView.transport.received=Recebidos
-TableColumn.header.peakdown.info=Vel. M\u00E1x. Alcan\u00E7ado
+TableColumn.header.peakdown.info=Velocidade de Pico do Download
azbuddy.tracker.enabled=Ativar a 'Acelera\u00E7\u00E3o do Amigo' para priorizar o download com seus amigos
OpenTorrentWindow.startMode.queued=Na Fila
ConfigView.section.mode.beginner.wiki.definitions=Vocabul\u00E1rio BitTorrent
-Wizard.Subscription.optin.description=Com as Subscri\u00E7\u00F5es ativadas, o Vuze mostrar\u00E1 a voc\u00EA subscri\u00E7\u00F5es relacionadas ao conte\u00FAdo na sua Biblioteca e deixar\u00E1 voc\u00EA saber quando seu conte\u00FAdo subscrito est\u00E1 dispon\u00EDvel para download.\n\nVoc\u00EA gostaria de ativar as Subscri\u00E7\u00F5es?
+Wizard.Subscription.optin.description=Com as Assinaturas ativadas, o Vuze mostrar\u00E1 a voc\u00EA assinaturas relacionadas ao conte\u00FAdo na sua Biblioteca e deixar\u00E1 voc\u00EA saber quando seu conte\u00FAdo inscrito est\u00E1 dispon\u00EDvel para download.\n\nVoc\u00EA gostaria de ativar as Assinaturas?
ConfigView.section.tracker.enablecategories=Separar os torrents por categoria
IPChecker.external.ipnotfound=Endere\u00E7o IP n\u00E3o encontrado
tps.type.pex=PEX
@@ -1917,7 +1939,7 @@ importTorrentWizard.importfile.title=Sele\u00E7\u00E3o do Arquivo para Importa\u
SpeedView.stats.total=Total
PiecesView.numberofblocks=\# de Blocos
MainWindow.menu.view.plugins=&Plugins
-health.explain.share=significa que o torrent ou est\u00E1 hospedado ou publicado
+health.explain.share=Significa que o torrent ou est\u00E1 hospedado ou publicado
torrent.fix.corrupt.result.fixed=Hash de novo torrent de %1 calculado.\nPressione OK para salvar o torrent.
azneti2phelper.install.text=Instalar o Plugin I2P para ter suporte ao acesso a rede an\u00F4nima I2P?\\n\\n<a href\="http\://wiki.vuze.com/w/I2PHelper_HowTo">Clique para mais informa\u00E7\u00F5es</a>\\n\\nNote que a instala\u00E7\u00E3o pode levar v\u00E1rios minutos para que a\\nrede fique dispon\u00EDvel - seja paciente\!
Files.column.storagetype=Tipo de Armazenagem
@@ -1933,7 +1955,7 @@ webui.password=Senha
memmon.low.warning=A mem\u00F3ria \u00E9 fraca, voc\u00EA tem %1 remanescente de %2.\nO desempenho ir\u00E1 se degradar e, finalmente, Vuze vai parar de trabalhar\nVeja <a href\="http\://wiki.vuze.com/w/Java_VM_memory_usage">the Wiki</a> para obter detalhes sobre como aumentar a mem\u00F3ria dispon\u00EDvel.
installPluginsWizard.installMode.user=Instalar o(s) plugin(s) somente para voc\u00EA
azbuddy.dchat.log.messages=Registrar Mensagens Em Arquivo
-azbuddy.dchat.link.url=http\://wiki.vuze.com/w/decentralized_chat
+azbuddy.dchat.link.url=http\://wiki.vuze.com/w/Decentralized_Chat
TableColumn.header.readrate.info=Taxa de Leitura do Arquivo
MySharesView.name=Nome
ConfigView.label.passwordconfirm=Senha (confirmar)
@@ -1941,7 +1963,7 @@ PiecesView.priority=Prioridade
OpenTorrentWindow.xOfTotal=(%1 de %2)
br.test=Teste
window.updateswt.cancel=Cancelar
-ConfigView.label.disconnetseed.tooltip=Quando estiver ficando de seed com um torrent, desconectar quaisquer clientes que tamb\u00E9m est\u00E3o ficando de seed.\nEles n\u00E3o precisam estar falando com voc\u00EA.
+ConfigView.label.disconnetseed.tooltip=Quando semeando um torrent, desconecte de quaisquer clientes que tamb\u00E9m estejam semeando.\nEles n\u00E3o precisam estar falando com voc\u00EA.
configureWizard.file.invalidPath=Diret\u00F3rio inv\u00E1lido
ConfigView.section.tracker.password=Senha
v3.deleteContent.applyToAll=Aplicar a a\u00E7\u00E3o a todas as %1 entradas selecionadas
@@ -1958,11 +1980,11 @@ ConfigView.section.connection.advanced.IPDiffServ=Valor do DiffServ do pacote de
SpeedView.stats.now.tooltip=Total (Protocolo)
ConfigView.label.pause.downloads.on.exit=Pausar downloads ao sair
device.export.select.template.file=Exportar Dispositivo
-ConfigView.section.security.resetkey.warning=Voc\u00EA tem certeza que voc\u00EA quer resetar suas chaves de encripta\u00E7\u00E3o? Se voc\u00EA o fizer toda a informa\u00E7\u00E3o encriptada usando elas ser\u00E1 PERMANENTEMENTE PERDIDA. Tamb\u00E9m quaisquer outros peers em possess\u00E3o da sua chave p\u00FAblica n\u00E3o mais ser\u00E3o capazes de comunicar com voc\u00EA sem eles obterem sua nova chave. Ent\u00E3o, a menos que voc\u00EA realmente saiba o que voc\u00EA est\u00E1 fazen [...]
+ConfigView.section.security.resetkey.warning=Voc\u00EA tem certeza que voc\u00EA quer resetar suas chaves de criptografia? Se voc\u00EA o fizer toda a informa\u00E7\u00E3o criptografada usando elas ser\u00E1 PERMANENTEMENTE PERDIDA. Tamb\u00E9m quaisquer outros peers em possess\u00E3o da sua chave p\u00FAblica n\u00E3o mais ser\u00E3o capazes de comunicar com voc\u00EA sem eles obterem sua nova chave. Ent\u00E3o, a menos que voc\u00EA realmente saiba o que voc\u00EA est\u00E1 fazendo, n\ [...]
ConfigView.section.connection.nondata.udp.same=Usar a mesma porta UDP para a Base de Dados Distribu\u00EDda e o Rastreador UDP
-label.ctrl.space.for.suggestion=Pressione Ctrl + <espa\u00E7o> para sugest\u00F5es
+label.ctrl.space.for.suggestion=Pressione Ctrl+<espa\u00E7o> ou Shift+<espa\u00E7o> para sugest\u00F5es
iconBar.up=Envio
-ConfigView.label.seeding.fakeFullCopySeedStart.tooltip=Freq\u00FCentemente, torrents com poucas contagens de seeds e muitas contagens de peers querem dizer que provavelmente n\u00E3o s\u00E3o uma c\u00F3pia completa entre os peers.\nPortanto, voc\u00EA pode n\u00E3o querer que as regras de seeding finjam que h\u00E1 uma c\u00F3pia completa (e assim incorretamente reduzindo o seu rank)
+ConfigView.label.seeding.fakeFullCopySeedStart.tooltip=Freq\u00FCentemente, torrents com baixo n\u00FAmero de sementes e muitos de pares significam que provavelmente n\u00E3o h\u00E1 c\u00F3pia completa entre os pares.\nPortanto, voc\u00EA pode n\u00E3o querer que as regras de semeamento finjam que h\u00E1 uma c\u00F3pia completa (e assim incorretamente reduzindo o seu rank)
ConfigView.section.file.writemblimit.explain=Quando a velocidade de escrita no disco \u00E9 menor do que a velocidade de download este par\u00E2metro limita quantos dados ser\u00E3o requeridos antes que as velocidades de download sejam reduzidas.
iconBar.transcode.tooltip=Fazer m\u00EDdia dispon\u00EDvel para um dispositivo
SpeedTestWizard.set.download.label=Limite da Velocidade de Download\:
@@ -1975,7 +1997,7 @@ general.dont.ask.again=N\u00E3o perguntar de novo
ConfigView.section.style.dataStatsOnly=Mostrar apenas os dados das estat\u00EDsticas (esconder as estat\u00EDsticas do protocolo)
SpeedView.title.full=Atividade
PeersView.download=Down
-TableColumn.header.chat.user.count=Contador de Usu\u00E1rios
+TableColumn.header.chat.user.count=N\u00FAmero de Usu\u00E1rios
tps.status.unavailable=Indispon\u00EDvel
subscriptions.column.category={TableColumn.header.category}
resetconfig.warn.title=Confirme A\u00E7\u00E3o
@@ -1989,10 +2011,10 @@ LocaleUtil.label.hint.doubleclick=Dica\: um duplo clique em uma linha escolhe a
fileDownloadWindow.state_downloading=Baixando
v3.MainWindow.tab.advanced=Avan\u00E7ado
openUrl.referrer.info=Requerido apenas para sites da web que os pe\u00E7am
-Wizard.Subscription.subscribe.subscriptions=Subscri\u00E7\u00F5es Relacionadas
+Wizard.Subscription.subscribe.subscriptions=Assinaturas Relacionadas
ConfigView.option.dm.dblclick.show._windows=Mostrar Arquivo(s) no Explorer
-MyTorrentsView.menu.manual.per_peer=Manual (por peer)
-ConfigView.section.style.colorOverrides=N\u00E3o Levar em Conta as Cores
+MyTorrentsView.menu.manual.per_peer=Manual (por par)
+ConfigView.section.style.colorOverrides=Sobrepor Cor
device.itunes.install=Voc\u00EA precisa do iTunes instalado
ConfigView.pluginlist.column.type=Tipo
ConfigView.section.files=Arquivos
@@ -2003,7 +2025,7 @@ ManagerItem.moving=Movendo
dhttracker.enable_alt={ConfigView.section.stats.enable}
wizard.filesaved=Arquivo Salvo.
exportTorrentWizard.exportfile.title=Exportar Sele\u00E7\u00E3o de Arquivos
-TableColumn.header.seed_to_peer_ratio.info=Total da propor\u00E7a\u00F5 de seeds para peers na multid\u00E3o
+TableColumn.header.seed_to_peer_ratio.info=Total da propor\u00E7\u00E3o de sementes para pares na multid\u00E3o
ManagerItem.stopping=Parando
ConfigView.section.proxy.peer.informtracker=Informar a limita\u00E7\u00E3o ao rastreador
MainWindow.menu.transfers.pausetransfersfor.keybinding=Shift + Meta + p
@@ -2014,12 +2036,12 @@ dlg.player.install.subtitle=Instala\u00E7\u00E3o
SpeedView.stats.autospeed.disabled=Esta op\u00E7\u00E3o ou est\u00E1 desativada (voc\u00EA precisa do DHT) ou n\u00E3o est\u00E1 em uso (velocidade manual de upload selecionada)
metasearch.addtemplate.failed.title=A Instala\u00E7\u00E3o Falhou
wizard.multitracker.edit.edit=Editar
-ConfigView.label.hap=Marcar download completo
+ConfigView.label.hap=Marcar download como completo
DHTView.general.unknown=Desconhecido\:
-ConfigView.label.ignoreSeeds=Ignorar torrents com pelo menos
-PeersView.I2=I (Interessante para o peer)
+ConfigView.label.ignoreSeeds=Ignorar torrents com ao menos
+PeersView.I2=I (Interessante para o par)
label.not.spam=N\u00E3o \u00E9 Spammer
-PeersView.I1=I (Interessado pelo peer)
+PeersView.I1=I (Interessado pelo par)
azbuddy.ui.table.msg_out=Msg Sai
TagAddWindow.subtitle=Voc\u00EA pode gerenciar todas as suas tags e categorias por meio de Visualizar->{tags.view.heading}, e descobrir novas tags por meio de Visualizar->{tag.discovery.view.heading}.\n
label.connections=Conex\u00F5es
@@ -2039,7 +2061,7 @@ torrent.comments.info=Coment\u00E1rios e avalia\u00E7\u00F5es recuperadas de out
OpenTorrentWindow.mb.notTorrent.retry=Pesquisa Magnet
DHTView.general.replacements=Substitui\u00E7\u00F5es\:
exportTorrentWizard.torrentfile.title=Sele\u00E7\u00E3o da Entrada de Dados do Torrent
-window.networkselection.info=O torrent listado abaixo tem rastreador(es) que suportam as seguintes redes.\nSelecione aqueles a ativar para a comunica\u00E7\u00E3o com o rastreador e peer.\nSe \u00E9 um rastreador an\u00F4nimo que suporta clientes p\u00FAblicos ative ambas as redes an\u00F4nima e p\u00FAblica.\nAtivar a rede p\u00FAblica tem a consequ\u00EAncia \u00F3bvia de remover a anonimidade\!
+window.networkselection.info=O torrent listado abaixo tem rastreador(es) que suportam as seguintes redes.\nSelecione aqueles a ativar para a comunica\u00E7\u00E3o com o rastreador e par.\nSe \u00E9 um rastreador an\u00F4nimo que suporta clientes p\u00FAblicos ative ambas as redes an\u00F4nima e p\u00FAblica.\nAtivar a rede p\u00FAblica tem a consequ\u00EAncia \u00F3bvia de remover a anonimidade\!
OpenTorrentWindow.torrentTable.saveLocation=Salvar o Local
dlg.stream.plus.subtitle={Button.upgrade}
Alert.failed.update.url=http\://wiki.vuze.com/w/failed_update
@@ -2050,7 +2072,7 @@ label.fails=Falhas
wizard.torrentFile=Arquivo Torrent
webui.connectiontest=\tClique para testar a conex\u00E3o
ConfigView.section.style.colorOverride.error=Erro
-TableColumn.header.chat.msg.count=Contador de Mensagens
+TableColumn.header.chat.msg.count=N\u00FAmero de Mensagens
speedtest.wizard.select.bt=Teste de velocidade espec\u00EDfico para Bittorrent
aznettorbrowser.install.description=Por favor, aguarde enquanto o Plugin para o navegador Tor \u00E9 instalado
label.move.on.comp=Mover Quando Completo
@@ -2062,20 +2084,21 @@ Button.agree=Eu concordo
ConfigView.label.defaultstarttorrentsstopped=Por padr\u00E3o adicionar novos torrents no estado parado
MyTorrentsView.dialog.setFilter.title=Modificar Filtro
security.certtruster.resource=Recurso\:
-ConfigView.section.connection.encryption=Encripta\u00E7\u00E3o do Transporte
+ConfigView.section.connection.encryption=Criptografar Transporte
TableColumn.header.pieces=Peda\u00E7os
Views.plugins.Distributed.DB.title=Base de Dados Distribu\u00EDda
upnp.wiki_link=P\u00E1gina do wiki do Vuze sobre o UPnP
ConfigView.label.queue.minQueueingShareRatio=N\u00E3o requerer ou parar um torrent at\u00E9 que a sua propor\u00E7\u00E3o de compartilhamento atinja
ConfigView.section.server.enableudpprobe=Habilitar an\u00E1lise de rastreador UDP para rastreadores HTTP
-TableColumn.header.OnlyCDing4.info=Quantia de tempo que o torrent esteve fazendo seed. Exclui o tempo que o torrent estava baixando (e fazendo seed).
+TableColumn.header.donewithdnd.info=% feito de dados do torrent, se voc\u00EA baixar todos os arquivos. Isto nunca ser\u00E1 100%, se voc\u00EA tiver arquivos "N\u00E3o Baixar/N\u00E3o Fazer Download".
+TableColumn.header.OnlyCDing4.info=Quantia de tempo que o torrent esteve s\u00F3 semeando. Exclui o tempo que o torrent estava baixando (e semeando).
label.incomplete=Incompleto
torrent.avail.title=Fontes para '%1'
DHTView.db.title=Base de Dados
UpdateWindow.status.downloading=Baixando
ConfigView.section.logging.loggerenable=Ativar logging
azbuddy.ui.table.con=Con
-Peers.column.Encryption=Encripta\u00E7\u00E3o
+Peers.column.Encryption=Criptografia
sidebar.header.plugins=Plugins e Extras
ConfigView.section.br.overview=Configure seus backups requeridos para o Vuze. Isso ir\u00E1 permitir a recupera\u00E7\u00E3o de suas configura\u00E7\u00F5es no caso de um erro s\u00E9rio, tal como um erro no disco.\n\nIf poss\u00EDvel backup para um disco separado do que voc\u00EA normalmente usa o Vuze\!\n\nObserve que as opera\u00E7\u00F5es aqui somente se aplicam as configura\u00E7\u00F5es do Vuze, voc\u00EA precisa administrar o backup dos seus downloads voc\u00EA mesmo.\n\n
device.showGeneric=Mostrar dispositivos gen\u00E9ricos
@@ -2090,11 +2113,11 @@ Views.plugins.aznetstatus.title=Status da Rede
GeneralView.label.status.pieces_available=Status dos Peda\u00E7os
ConfigView.section.file.defaultdir.auto=Automaticamente baixar para o diret\u00F3rio padr\u00E3o (Sem Alertar)
dlg.auth.enter.cancelled=C\u00F3digo de ativa\u00E7\u00E3o atual foi cancelado.
-ConfigView.section.mode.intermediate.wiki.publish=Publicar Arquivos
-SpeedTestWizard.abort.message.failed.peers=Falhou em conectar a quaisquer peers
+ConfigView.section.mode.intermediate.wiki.publish=Publicando Arquivos
+SpeedTestWizard.abort.message.failed.peers=Falhou em conectar a quaisquer pares
ConfigView.section.interface.password={ConfigView.section.tracker.password}
TableColumn.header.down=Baixado
-tag.type.ipset=Mudar IP
+tag.type.ipset=Configurar Par
ConfigView.section.queue.seeding.firstPriority=Primeira Prioridade
SpeedView.stats.title=Estat\u00EDsticas
ConfigView.section.transfer.autospeed.minupload.tooltip=A velocidade de upload n\u00E3o ser\u00E1 normalmente diminu\u00EDda abaixo deste limite
@@ -2132,11 +2155,11 @@ menu.delete.options={iconBar.remove}...
azbuddy.dchat.status.destroyed=Destru\u00EDdo
swt.install.window.ok=Instalar
fileDownloadWindow.downloading=Baixando de \:
-TableColumn.header.AvgAvail.info=Soma da disponibilidade dos peda\u00E7os divididos por \# peda\u00E7os, divididos por \# conex\u00F5es
+TableColumn.header.AvgAvail.info=Soma da disponibilidade dos peda\u00E7os divididos pelo \# peda\u00E7os, divididos pelo \# conex\u00F5es
wizard.hint.directory=Dica\:\tVoc\u00EA pode escolher um \u00FAnico diret\u00F3rio com Arrastar e Soltar
PeersView.state.pending=Pendente
device.view.heading=M\u00EDdia para %1
-PeersView.incomingreqcount.info=Contagem dos pedidos de entrada feitos pelo peer
+PeersView.incomingreqcount.info=N\u00FAmero de pedidos de entrada feitas pela par
v3.MainWindow.menu.advanced=&Avan\u00E7ado
ConfigView.label.minimizetotray=Minimizar minimiza para o Tray do Sistema
TableColumn.header.ipfilter=Filtro de IP habilitado
@@ -2144,9 +2167,9 @@ device.tag=Tag do Dispositivo
TableColumn.header.path={FilesView.path}
device.upnp.present_url=Administra\u00E7\u00E3o de Dispositivos
azbuddy.dchat.ftux.welcome=Bem-vindo ao Bate-papo
-PeersView.C2=O (Obstruindo o peer)
+PeersView.C2=O (Obstruindo o par)
wizard.maketorrent.piecesize=Tamanho do Peda\u00E7os
-PeersView.C1=O (Obstru\u00EDdo pelo peer)
+PeersView.C1=O (Obstru\u00EDdo pelo par)
ConfigView.section.security.resetcerts.warning.msg=Voc\u00EA est\u00E1 certo que deseja restaurar a armazenagem de certificados? Se voc\u00EA tiver criado um auto-assinado certificado ou manualmente importado qualquer certificado, esses ser\u00E3o perdidos\!
popup.error.hide=Esconder
authenticator.savepassword=Lembrar da minha senha
@@ -2169,15 +2192,16 @@ ConfigView.section.style.status=\u00C1rea do Status\:
GeneralView.label.timeelapsed=Tempo Decorrido \:
ConfigView.label.passwordmatchyes=Sim
installPluginsWizard.installMode.title=Por favor, escolha o tipo de instala\u00E7\u00E3o
-ConfigView.section.connection.group.peersources=Fontes Peer
+ConfigView.section.connection.group.peersources=Fontes de Par
TableColumn.header.tag.properties={label.properties}
ConfigView.section.interface.wavlocation.info=Selecione o arquivo .wav ou deixe em branco para o som padr\u00E3o
-DHTView.db.keys=Teclas
+DHTView.db.keys=Chaves
ConfigView.section.file.max_open_files.tooltip=\u00DAtil se voc\u00EA baixa torrents com centenas/milhares de arquivos neles, e se voc\u00EA est\u00E1 atingindo o limite de gerenciamento de arquivos do SO.
devices.sidebar.mainheader.tooltip=%1 deispositivos est\u00E3o ocultos como generico ou sem tags.\nUse clique direito do mouse para revelar as op\u00E7\u00F5es
-ConfigView.label.startNumSeeds=\nCome\u00E7ar a ficar de seed se houver menos de\n - N\u00E3o leva em conta todas as outras regras
+ConfigView.label.startNumSeeds=\nCome\u00E7ar semeamento se houver ao menos\n - Sobrep\u00F5e todas as outras regras
ConfigView.section.file.decoder.showall=Considerar todas as codifica\u00E7\u00F5es poss\u00EDveis
CacheView.writes.hits=Salvos
+privacy.view.install.i2p=Instalar I2P
TableColumn.header.sha1.info=Hash SHA1 para o arquivo (deve ser totalmente baixado, clique para calcular)
installPluginsWizard.file.no_such_file=Nenhum arquivo existe com o nome dado.
installPluginsWizard.finish.explanation=Os plugins selecionados ser\u00E3o instalados usando o Assistente de Atualiza\u00E7\u00E3o.\n\nPor favor seja paciente, isto pode demorar um pouco para aparecer.\n\nPara um relat\u00F3rio do progresso, clique duas vezes a esquerda da barra de status.
@@ -2185,7 +2209,7 @@ label.current.equals={label.current} %1
MyTorrentsSubView.title.full=Torrents
configureWizard.nat.test=Teste
PeersView.uniquepiece.none=Nenhum
-TableColumn.header.uploadspeed.info=Taxa na qual n\u00F3s estamos enviando dados para o peer
+TableColumn.header.uploadspeed.info=Taxa na qual n\u00F3s estamos enviando dados para o par
dlg.auth.install.pct=%1% conclu\u00EDdo
TableColumn.header.name.info=Nome do torrent
DHTView.title.full=Base de Dados Distribu\u00EDda
@@ -2193,7 +2217,7 @@ unix.script.new.button.continue=Eu o farei depois
ConfigView.section.connection.advanced.read_select=Ler o tempo pra encerrar selecionado (milis, padr\u00E3o %1)
azneti2phelper.install.subtitle=Instalando Plugin I2P
devices.restrict_access.prompt=Restringir o acesso ao '%1'
-StartStopRules.firstPriority=1a Prioridade
+StartStopRules.firstPriority=1\u00B0 Prioridade
ConfigView.label.stop.Nothing=N\u00E3o fazer nada
tps.incoming.details=Atual\: TCP\=%1, UDP\=%2; Total\=%3
MyTorrentsView.menu.movedata.dialog=Escolher novo local
@@ -2221,7 +2245,7 @@ MyTorrentsView.menu.browse={azbuddy.dchat.open.in.browser}
azbuddy.ui.menu.sign=Sinalizar a \u00C1rea de Transfer\u00EAncia
archive.failed.title=Arquivamento do Download Falhou
azbuddy.dchat.rchans.ro=Novo Canal S\u00F3 para Leitura
-AllPeersView.title.full=Todos os Peers
+AllPeersView.title.full=Todos Pares
platform.win32.baddll.nvLsp=DA NVIDIA NTUNE / Forceware
torrent.decode.info.order.bad=Alerta no Torrent\: Torrent '%1' est\u00E1 com formatado incorretamente e pode gerar um hash incorreto.\n\nVeja <a href\="http\://wiki.vuze.com/w/Torrent_Info_Order_Bad">o Vuze Wiki</a> para mais detalhes e possiveis solu\u00E7\u00F5es.
DHTOpsView.idle=Inativo - aguardando por atividade...
@@ -2238,15 +2262,15 @@ GeneralView.label.averagespeed=m\u00E9dia
pairing.group.optional=Atributos opcionais
PiecesView.speed=Velocidade
Trackers.column.interval=Intervalo
-label.pinned.only=Pinados Somente
+label.pinned.only=S\u00F3 Fixados
ConfigView.label.movepartialdownloads=Mover mesmo se alguns arquivos est\u00E3o marcados para "N\u00E3o Baixar"
-ConfigView.section.stats.seconds=s
+ConfigView.section.stats.seconds=seg
AllPeers.column.\#=\#
devices.profile=Perfil
Peers.column.pieces.info=Barra gr\u00E1fica representando quais peda\u00E7os o peer baixou
Trackers.column.leechers.info=Leechers na multid\u00E3o
azbuddy.dchat.noti.sound=Tocar um som quando receber uma mensagem
-subscript.add.upgrade.desc=Voc\u00EA tem certeza que voc\u00EA quer atualizar a subscri\u00E7\u00E3o '%1'?
+subscript.add.upgrade.desc=Voc\u00EA tem certeza que voc\u00EA quer atualizar a assinatura '%1'?
MainWindow.menu.speed_limits.info.title=Detalhes do Limites de velocidade
ConfigTransferAutoSpeed.auto.speed.classic=Auto-Velocidade(cl\u00E1ssica)
MainWindow.dht.status.unreachabletooltip=Aparenta haver um problema com o mapeamento da porta UDP da Base de Dados Distribu\u00EDda (NAT/firewall)
@@ -2259,7 +2283,7 @@ v3.MainWindow.search.go.tooltip=Executar a Busca
ConfigView.label.popup.autohide=Automaticamente esconder alertas popup que n\u00E3o s\u00E3o sobre erros ap\u00F3s x segundos (definir em 0 para desativar o auto-esconder)
pairing.srp.state=Status \:%1
ConfigView.section.file.deletion.section=Exclus\u00E3o de arquivo
-DownloadManager.error.ioerror=Erro de Entrada/Sa\u00EDda de Dados
+DownloadManager.error.ioerror=Erro de I/O
dialog.pause.for.period.text=Pausar download e automaticamente resumi-los em [minutos]
TrackerAvail.column.seeds={Trackers.column.seeds}
TableColumn.header.CountryFlag=Bandeira
@@ -2291,15 +2315,15 @@ menu.add.peers={dialog.add.peers.title}...
ConfigView.section.security.clearpasswords=Resetar as senhas lembradas
device.rss.port=Porta feed RSS
remote.pairing.accesscode=C\u00F3digo de acesso\:
-devices.converting=Convertendo
device.error.copyfail2=Um Ou Mais Arquivos Falharam Ao Copiar Para Dispositivo
+devices.converting=Convertendo
authenticator.title=Autentica\u00E7\u00E3o Requerida
Formats.units.bit=bit
+tag.type.ds.qfors=Enfileirado para Semeamento
label.add.tag=Adicionar Tag...
-tag.type.ds.qfors=Na Fila para Semear
plugins.init.force_enabled=O Vuze detectou que o plugin "%1" foi desativado - ele foi reativado para permitir que o Vuze trabalhe apropriadamente.
-ActivityView.legend.overhead=Taxa elevada
-TableColumn.header.trackernextaccess.info=Quando o pr\u00F3ximo acesso do rastreador ocorrer\u00E1
+TableColumn.header.trackernextaccess.info=Quando o pr\u00F3ximo acesso ao rastreador ocorrer\u00E1
+ActivityView.legend.overhead=Taxa de sobrecarga
ColumnSetup.explain=Explorar as colunas dispon\u00EDveis a esquerda e adicion\u00E1-las a lista de colunas vis\u00EDveis a direita. Expandir ou retrair a lista de colunas dispon\u00EDveis usando a se\u00E7\u00E3o dos Filtros no parte de baixo a esquerda. Arrastar e Soltar e os atalhos do teclado tamb\u00E9m s\u00E3o suportados.
platform.win32.baddll.imon=nod32
MainWindow.upgrade.section.manual=Atualiza\u00E7\u00E3o Manual
@@ -2308,19 +2332,20 @@ window.updateswt.status.finding=Procurando a \u00FAltima vers\u00E3o da SWT
MagnetPlugin.current.port=Porta usada para URI
PeersView.state.connecting=Conectando
v3.filter-bar=T\u00EDtulo do Filtro\:
-tag.type.ds.qford=Na Fila para Download
+tag.type.ds.qford=Enfileirado para Download
MainWindow.menu.file.share.dir=P&asta...
ConfigView.section.invalid.value=Valor inv\u00E1lido '%1' digitado para '%2'\: %3
-br.backup.manual.info=Configura\u00E7\u00E3o manual do backup
MyTorrentsView.menu.manual=&Manual...
-TorrentOptionsView.title.full=Op\u00E7\u00F5es
+br.backup.manual.info=Configura\u00E7\u00E3o manual do backup
+azbuddy.dchat.ui.hide.ratings=Ocultar automaticamente as avalia\u00E7\u00F5es, coment\u00E1rios e mensagens de fus\u00E3o na multid\u00E3o geradas.
azbuddy.dchat.anon.beta=Bate-papo an\u00F4nimo beta (I2P)
+TorrentOptionsView.title.full=Op\u00E7\u00F5es
SpeedTestWizard.stage.message.preparing=preparando teste...
FilesView.numberofpieces=\# de peda\u00E7os
upnp.alertsuccess=Relatar mapeamentos bem-sucedidos
fileplugininstall.duplicate.desc=O Plugin '%1', vers\u00E3o %2 j\u00E1 est\u00E1 instalado
DHTView.activity.status.false=Rodando
-pairing.group.srp=Op\u00E7\u00F5es de emparelhamento seguro
+pairing.group.srp=Op\u00E7\u00F5es de Pareamento Seguro
plugin.init.load.failed.classmissing=Desisntale o plugin via 'Ferramentas->Plugins->Assistente de Desisntala\u00E7\u00E3o' e ent\u00E3o reistanle elel
ConfigView.section.security.resetcerts=Restaurar armazenagem de certificados (ir\u00E1 reiniciar o Vuze)
platform.win32.baddll.nl_lsp=Netlimiter
@@ -2336,7 +2361,7 @@ ConfigView.label.movecompleted=Mover arquivos completados (ap\u00F3s o download)
PiecesView.reservedby=Reservado
dialog.pause.for.period.text2=Auto-resumir ativo\: %1 restante...
splash.unloadingTorrents=Descarregando Torrents
-OpenTorrentWindow.tlf.rename=Renomear Torrent com mudan\u00E7a na pasta de n\u00EDvel superior
+OpenTorrentWindow.tlf.rename=Renomear o Torrent na Mudan\u00E7a da Pasta de N\u00EDvel Superior
Peers.column.DLedFromOthers.info=Quantidade de dados recebidos de outros enquanto conectados a voc\u00EA
azbuddy.dchat.copy.magnet=Copiar Magnet Para \u00C1rea de Transfer\u00EAncia
devices.always.cache=Cache de arquivos n\u00E3o-transcodificado
@@ -2361,7 +2386,8 @@ ClientStats.column.received={DHTView.transport.received}
beta.wizard.info=Se inscrevendo para o uso das vers\u00F5es beta do Vuze, voc\u00EA ter\u00E1 acesso a recursos que est\u00E3o por vir para ele.\n\nIsso lhe d\u00E1 a chance de experimentar esses recursos e nos ajudar a melhorar a sua implementa\u00E7\u00E3o - seu retorno \u00E9 de grande ajuda para n\u00F3s\!\n\nPor ser uma vers\u00E3o beta, pode ser inst\u00E1vel, de qualquer forma, selecionando essa op\u00E7\u00E3o dar\u00E1 a voc\u00EA o acesso a vers\u00F5es relativamente est\u00E1v [...]
security.crypto.password=Senha
popup.download.added="%1" foi adicionado a sua lista de downloads.
-iconBar.remove.tooltip=Remover
+privacy.view.check.bw=Checar Configura\u00E7\u00F5es da Conex\u00E3o...
+iconBar.remove.tooltip=Remover item(ns) selecionado(s)
TableColumn.header.tag.name=Nome da Tag
Peers.column.UpRatio=Propor\u00E7\u00E3o de Upload
dlg.stream.plus.text=Atualizar para o Vuze Plus e reproduza seus v\u00EDdeos que est\u00E3o baixando.
@@ -2387,7 +2413,7 @@ devices.cat.show=Exibir Categorias
MyLibrary.bigView.header={sidebar.Library}
configureWizard.finish.title=Completado
ConfigTransferAutoSpeed.adjustment.interval=Intervalo do ajuste\:
-ConfigView.label.peers=peers
+ConfigView.label.peers=pares
jvm.show.file=As op\u00E7\u00F5es locais do arquivo JVM \u00E9 '%1' - Somente edite diretamente para prop\u00F3sitos de recupera\u00E7\u00E3o
MyTorrentsView.menu.setSpeed.unlimited=Ilimitado
TableColumn.header.downspeed.info=Velocidade de download atual
@@ -2399,7 +2425,7 @@ MyTorrentsView.\#=\#
TableColumn.header.RateIt=Taxa
label.show.selected.rates=Exibir Propor\u00E7\u00E3o dos Itens Selecionados
label.tracker.selection=Sele\u00E7\u00E3o de Rastreador
-ConfigView.label.seeding.rankType.peer.tooltip=mais peers e menos seeds \= higher rank\nEste ranking minimiza o n\u00FAmero de torrents que precisam ser mantidos ativos para maximizar o upload
+ConfigView.label.seeding.rankType.peer.tooltip=mais pares e menos sementes \= alto rank\nEste ranking minimiza o n\u00FAmero de torrents que precisam ser mantidos ativos para maximizar o upload
subs.prop.enabled={azbuddy.enabled}
Main.parameter.maxUploads=N\u00BA m\u00E1ximo de uploads simult\u00E2neos
ConfigView.label.downloading.info=Automaticamente ajusta a posi\u00E7\u00E3o da fila de downloads para que trabalhe da melhor forma para que voc\u00EA tenha uma melhor m\u00E9dia geral de download baseado na ativade de sua rede
@@ -2410,7 +2436,7 @@ wizard.invalidurl=Esta URL n\u00E3o \u00E9 v\u00E1lida
ConfigView.section.tracker.client.scrapestoppedenable=Scrape torrents que n\u00E3o est\u00E3o rodando
SpeedView.stats.con_details=total\=%1, desobstru\u00EDdo\=%2, enfilerado\=%3, bloqueado\=%4
speedtest.wizard.select.group=Tipo de teste
-PeersView.T.R.tooltip=O peer estabeleceu a conex\u00E3o
+PeersView.T.R.tooltip=O par estabeleceu a conex\u00E3o
config.external.browser=Navegador Externo
v3.deviceview.infobar.line2.ps3=Transmitir v\u00EDdeos, indo para o seu PS3 e selecionando V\u00EDdeos -> Vuze.
ConfigView.section.transfer.lan.uploadrate=Velocidade m\u00E1xima de upload na LAN em KB/s [0\: ilimitada]
@@ -2423,11 +2449,11 @@ devices.choose.profile.title={devices.choose.device.title}
StartStopRules.waiting=Aguardando
ConfigView.label.seeding.rankType.peerSeed.tooltip=Maior Propor\u00E7\u00E3o \= Maior Rank
cat.upload.priority=Prioridade de Upload
-ConfigView.section.transfer.autospeed.enableauto=Ativar quando baixando e ficando de seed
-PeersView.menu.kickandban.reason=Peer banido manualmente
+ConfigView.section.transfer.autospeed.enableauto=Ativar quando baixando e semeando
+PeersView.menu.kickandban.reason=Par banido manualmente
FancyMenu.Header.Social=Social
label.uptime_coarse=Tempo de Up%1%2
-ConfigView.section.transfer.lan.downloadrate.tooltip=Conex\u00F5es com os peers dentro da mesma LAN interna tem um limite de taxa de download separado.
+ConfigView.section.transfer.lan.downloadrate.tooltip=Conex\u00F5es com os pares dentro da mesma LAN interna tem um limite de taxa de download separado.
ConfigView.label.userequestlimiting=Usar pedido de throttling em vez de leituras atrasadas para limitar a velocidade de download [sem efeito quando a velocidade de download \u00E9 ilimitada]
MyTorrentsView.dialog.NumberError.text=O n\u00FAmero que voc\u00EA inseriu \u00E9 inv\u00E1lido ou n\u00E3o reconhecido.
security.crypto.encrypt=Por favor insira uma senha para proteger sua chave de encripta\u00E7\u00E3o gerada recentemente. Por favor n\u00E3o esque\u00E7a esta senha, n\u00E3o h\u00E1 meio de recuper\u00E1-loa se voc\u00EA esquecer\!
@@ -2482,10 +2508,10 @@ ConfigView.section.connection.advanced.write_select=Gravar o tempo pra encerrar
splash.initializeGui=Inicializando a Janela Principal
upnp.ignorebaddevices.info=Dispositivos atualmente ignorados\: %1
ConfigView.label.showuptime=Exibir Tempo de Upload
-ConfigView.label.seeding.ignore0Peers=Ignorar torrents com 0 peers
+ConfigView.label.seeding.ignore0Peers=Ignorar torrents com 0 pares
devices.cancel_xcode_del=Cancelar Convers\u00E3o/Remover
manual.mode=Manual
-label.pin=Pinar
+label.pin=Fixar
ipCheckerWizard.service.url=Link\:
ConfigView.section.proxy.show_icon=Mostrar \u00EDcone SOCKS na \u00E1rea de status quando ativado
azbuddy.ui.table.loc_cat=Tags/Cats para
@@ -2493,7 +2519,7 @@ splash.of=de
OpenTorrentOptions.show.always=todas as vezes
plugins.basicview.progress=Progresso\:
resetconfig.warn=Isto ir\u00E1 resultar em que todas as modifica\u00E7\u00F5es feitas na configura\u00E7\u00E3o Vuze sendo perdida.\nProsseguir com a redefini\u00E7\u00E3o de configura\u00E7\u00E3o?
-ConfigView.section.connection.encryption.encrypt.fallback_info=Ativando-a a op\u00E7\u00E3o de retorno permitir\u00E1 conex\u00F5es com clientes incompat\u00EDveis MAS resultar\u00E1 em conex\u00F5es n\u00E3o encriptadas
+ConfigView.section.connection.encryption.encrypt.fallback_info=Ativando-a a op\u00E7\u00E3o de retorno permitir\u00E1 conex\u00F5es com clientes incompat\u00EDveis MAS resultar\u00E1 em conex\u00F5es n\u00E3o criptografadas
dlg.auth.install.subtitle.plus=Instalando Vuze Plus...
OpenTorrentOptions.show.many=Somente quando houver mais de 1 arquivo
ConfigView.pluginlist.column.version=Vers\u00E3o
@@ -2526,7 +2552,7 @@ network.enforce.ipbinding=Refor\u00E7ar as amarras ao IP mesmo quando as interfa
dlg.corewait.text=Um Momento Por Favor...\n\nSeu pedido ir\u00E1 ser processado depois do Vuze tiver completado a inicializa\u00E7\u00E3o
StartStopRules.menu.viewDebug=Ver Informa\u00E7\u00F5es de Debug
label.num.torrents=%1 {ConfigView.section.torrents}
-ConfigView.section.transfer.autospeed.enableautoseeding=Ativar apenas quando ficando de seed
+ConfigView.section.transfer.autospeed.enableautoseeding=Habilitar apenas quando semeando
FilesView.path=Caminho
br.restore.warning.title=Aviso de Perda de configura\u00E7\u00E3o\!
subscriptions.search.enable=Permitir a pesquisa de resultados da assinatura (\u00E9 necess\u00E1rio reiniciar)
@@ -2535,7 +2561,7 @@ ConfigView.label.prioritizefirstpiece.tooltip=Tenta baixar o come\u00E7o e o fim
update.now.desc=Vuze precisa para aplicar as atualiza\u00E7\u00F5es para concluir a migra\u00E7\u00E3o.\n\nDepois de fechar esta caixa de di\u00E1logo pode ser solicitado pelo Windows para completar o processo de atualiza\u00E7\u00E3o.\n\nUm rein\u00EDcio do Vuze n\u00E3o ser\u00E1 necess\u00E1rio.
iconBar.openURL.tooltip=Abrir uma URL
ConfigView.label.xfer.bias_no_limit=Tentar aplicar comportamento quando n\u00E3o houver limite de upload global eficaz
-ConfigView.label.startRatioPeers=Come\u00E7ar a ficar de seed quando houver menos de 1 seed para
+ConfigView.label.startRatioPeers=Come\u00E7ar semeamento quando houver menos 1 semente para
CacheView.general.inUse=Em Uso
#file can be a URL or a path in the jar
MainWindow.menu.help.releasenotes=Notas do Lan\u00E7amento
@@ -2551,7 +2577,7 @@ TableColumn.header.commenticon=\u00CDcone do Coment\u00E1rio
label.help=Ajuda
pairing.view.registered=Clique para exibir os detalhes do registro atual
ConfigView.dialog.choosewatchtorrentfolderpath=Por favor, escolha o diret\u00F3rio de importa\u00E7\u00E3o dos .torrents
-ConfigView.label.seeding.preferLargerSwarms.tooltip=Se voc\u00EA est\u00E1 ficando de seed principalmente com torrents com peers que est\u00E3o "travados", preferir multid\u00F5es maiores faz sentido\nQuando voc\u00EA est\u00E1 ficando de seed principalmente com torrents com alta disponibilidade, preferir multid\u00F5es menores faz sentido.
+ConfigView.label.seeding.preferLargerSwarms.tooltip=Se voc\u00EA estiver principalmente semeando torrents com pares que est\u00E3o "travados", preferir multid\u00F5es maiores faz sentido\nQuando voc\u00EA estiver principalmente semeando com torrents com alta disponibilidade, preferir multid\u00F5es menores faz sentido.
ConfigView.section.interface.cleartrackers=Limpar os rastreadores lembrados
label.bar.trans=Barra de transpar\u00EAncia [0\=opaco;100\=transparente]
device.playnow.buffer=Tamanho do buffer antes da reprodu\u00E7\u00E3o come\u00E7ar [seg]
@@ -2577,7 +2603,7 @@ FileItem.delete=Apagar
ConfigView.section.connection.pairing.url=http\://wiki.vuze.com/w/ug_options \# Emparelhamento
ConfigView.label.bindip=Prender ao endere\u00E7o IP local
MyTorrentsView.menu.exporttorrent=Torrent...
-core.shutdown.se=seeding completados
+core.shutdown.se=semeamento completo
Button.sendNow=Enviar Agora
subs.prop.auth=Autentica\u00E7\u00E3o requerida
wizard.hint.file=Dica\:\tVoc\u00EA pode escolher um \u00FAnico arquivo com Arrastar e Soltar
@@ -2598,13 +2624,13 @@ dlg.auth.enter.link.try.1=Voc\u00EA n\u00E3o tem c\u00F3digo de ativa\u00E7\u00E
chats.view.heading=Vis\u00E3o geral do bate-papo
config.dialog.shortcut.title=Configurar Atalho no Teclado
Button.clear=Limpar
-Peers.column.UpDownRatio.info=A Propor\u00E7\u00E3o "Enviado \: Baixado" do Peer
+Peers.column.UpDownRatio.info=Propor\u00E7\u00E3o "Enviado \: Baixado" por Pares
ConfigView.label.seeding.firstPriority.FP=Primeira Prioridade
subs.prop.update_period=Per\u00EDdo de atualiza\u00E7\u00F5es
tray.options=Op\u00E7\u00F5es de bandeja
GeneralView.label.swarm_average_completion=Conclus\u00E3o em M\u00E9dia\:
TableColumn.header.azsubs.ui.column.subs_link=Associa\u00E7\u00E3o
-ConfigView.label.bStartNoMoreSeedsWhenUpLimitMet=N\u00E3o inicie nenhum torrent mais para semeamento quando o limite de upload global se encontrar
+ConfigView.label.bStartNoMoreSeedsWhenUpLimitMet=N\u00E3o iniciar mais qualquer torrents para semeamento quando limite de upload ativo for alcan\u00E7ado
ConfigView.section.ipfilter.edit=Editar
device.od.error.opfailstatus=Dispositivo falhou ao processar o comando %1\: status %2
OpenTorrentWindow.fileTable.fileName=Nome do Arquivo
@@ -2619,12 +2645,12 @@ ConfigView.section.file.delete.include_files_outside_save_dir=Quando apagar dado
ConfigView.button.browse=&Procurar...
device.error.copyfail=Um Ou Mais Arquivos Falharam Ao Copiar Para Pasta
PeersView.piece=Peda\u00E7o
-download.removerules.unauthorised.seedingonly=\tApenas se ficar de seed
+download.removerules.unauthorised.seedingonly=\tApenas se semeando
dlg.auth.revoked=C\u00F3digo de Ativa\u00E7\u00E3o Revogado
br.restore.warning.info=Restaurando sua configura\u00E7\u00E3o ir\u00E1 substituir completamente o seu j\u00E1 existente.\nConsidere fazer o backup de ante-m\u00E3o\!
-security.crypto.decrypt=Por favor insira sua senha para destrancar sua chave de encripta\u00E7\u00E3o.
+security.crypto.decrypt=Por favor insira sua senha para destrancar sua chave de Criptografia.
custom.settings.import.res=Importado %1 configura\u00E7\u00F5es.%2
-label.missing=Desaparecido
+label.missing=Perdido
ConfigView.section.server=Conex\u00E3o
TrackerChangerWindow.newtracker=Digite nova url do tracker(es) - separado por v\u00EDrgula, se mais de um
config.external.browser.switch.info=Voc\u00EA pode mudar de navegador interno para externo para alguns recursos, embora algumas funcionalidades podem ser perdidas
@@ -2634,12 +2660,12 @@ security.crypto.persist_for.dont_save=N\u00E3o salvar
general.add.friends=Adicione alguns amigos\!
FilePriority.invalid.title=Prioridade inv\u00E1lida
tag.type.ds.act={FileView.BlockView.Active}
-ConfigView.label.seeding.firstPriority.ignoreIdleHours=Torrents que n\u00E3o fazem upload de nada
+ConfigView.label.seeding.firstPriority.ignoreIdleHours=Torrents que n\u00E3o enviaram qualquer coisa para
ConfigView.section.mode.advanced.wiki.main=P\u00E1gina Principal do Wiki
remote.pairing.tip.text=Vuze Remote Toolbar\: Ir para <A HREF\="http\://remote.vuze.com/download/">remote.vuze.com/download</A>\nVuze Remote Mobile\: Ir para <A HREF\="http\://remote.vuze.com/">remote.vuze.com</A> in your mobile browser.
devices.contextmenu.od=Baixando Offline
tps.status.available=Dispon\u00EDvel
-MainWindow.menu.view.allpeers=Todos os Peers
+MainWindow.menu.view.allpeers=Todos Pares
dht.advanced.group=Configura\u00E7\u00F5es avan\u00E7adas
configureWizard.nat.message=Para obter o melhor desempenho com Vuze, \u00E9 altamente recomendado ter total acesso \u00E0 internet. Est\u00E1 ferramenta deixa voc\u00EA testar e/ou mudar as portas usadas para aceitar conex\u00F5es de entrada.\n\n NOTA\: A porta TCP 6880 \u00E9 usada internamente, ent\u00E3o n\u00E3o pode ser utilizada.
PasswordWindow.passwordprotected=O Vuze est\u00E1 protegido por senha.\nPara mostrar a janela do Vuze, por favor insira a sua senha aqui \:
@@ -2656,7 +2682,7 @@ azneti2phelper.install.reason.i2ptracker=O torrent que voc\u00EA est\u00E1 adici
SpeedView.uploadSpeed.title=Velocidade de Upload
TableColumn.header.torrentpath.info=Local do Torrent no disco
fileDownloadWindow.state_error=Erro\:
-importTorrentWizard.process.outputfileexists.message=O arquivo de sa\u00EDda de dados existe - sobrescrever?
+importTorrentWizard.process.outputfileexists.message=Arquivo de sa\u00EDda j\u00E1 existe - sobrescreer?
devices.sidebar.hide.rend.generic=Ocultar dispositivos gen\u00E9ricos
v3.MainWindow.search.defaultText=Procurar no Vuze
MyTorrentsView.menu.remove=&Remover
@@ -2664,10 +2690,10 @@ v3.mb.delPublished.delete=&Apagar
wizard.newtorrent.byo.editname.title=Editar Nome do Item
dlg.player.install.description=Instalando componente adicional para reprodu\u00E7\u00E3o...
library.all.header=%1 item\: %2 ativo
-ConfigView.section.connection.group.webseed=Seeds Web/HTTP
+ConfigView.section.connection.group.webseed=Sementes Web/HTTP
speedtest.wizard.test.mode.updown=upload e download
ConfigView.section.file.writemblimit=M\u00E1ximo de pedidos de escrita requeridos (em %1)
-ConfigView.section.security.resetkey=Resetar as chaves
+ConfigView.section.security.resetkey=Restaurar chaves
devices.turnon.qos=Compartilhar estatisticas an\u00F4nimas com Vuze
stream.analysing.media=Analisando M\u00EDdia
Button.finish=Terminar
@@ -2682,13 +2708,13 @@ torrent.comment.azmsgsync.install=Plugin Mensagens Sync n\u00E3o est\u00E1 insta
azbuddy.dchat.ro=Canal s\u00F3 para leitura
devices.xcode.remove.vetoed=Transcodifica\u00E7\u00E3o de '%1' em progresso, o download n\u00E3o pode ser removido at\u00E9 a transcodifica\u00E7\u00E3o ser completada ou cancelada na p\u00E1gina de ""Dispositivos
dhttracker.alt_port=Porta [0 \: random]
-TableColumn.menu.date_added.reset=Data do Reset
+TableColumn.menu.date_added.reset=Restaurar Data
ConfigView.section.file.perf.explain=Aviso - Mudan\u00E7as inadequadas destes par\u00E2metros podem afetar adversamente o desempenho do download. Requer reiniciar.\nSe voc\u00EA tem problemas com "falta de mem\u00F3ria" considere limitar as conex\u00F5es por torrent (Veja as configura\u00E7\u00F5es das Transfer\u00EAncias)
label.showhide.tag=Mostrar / Ocultar Tag(s)
MainWindow.menu.window.minimize.keybinding=Meta+M
configureWizard.finish.message=O Vuze est\u00E1 agora configurado, divirta-se\!
importTorrentWizard.torrentfile.invalidPath=Arquivo torrent inv\u00E1lido
-PeersView.C2.info=Se voc\u00EA est\u00E1 impedindo o peer de baixar
+PeersView.C2.info=Se voc\u00EA est\u00E1 impedindo o par de baixar
ConfigView.section.tracker.scrapecacheperiod=Cache do scrape (ms)
security.crypto.persist_for.day=1 dia
v3.share.private.title=Compartilhando o Torrent
@@ -2704,18 +2730,18 @@ security.certcreate.state=Estado ou Prov\u00EDncia
platform.win32.baddll.vlsp=Venturi Firewall
ConfigView.section.logging.choosedefaultsavepath=Por favor, escolha o diret\u00F3rio para salvar
PluginDeprecation.log.start=Esta janela cont\u00E9m informa\u00E7\u00E3o sobre plugins usando funcionalidades que ser\u00E3o removidas em futuras vers\u00F5es do Vuze.\nVoc\u00EA n\u00E3o precisa desinstalar os plugins, voc\u00EA deve apenas atualizar o plugin para a \u00FAltima vers\u00E3o.\nSe voc\u00EA est\u00E1 rodando a \u00FAltima vers\u00E3o, ent\u00E3o por favor copie o conte\u00FAdo desta janela e poste-o no f\u00F3rum localizado aqui\:\n\t%1\n\n
-TableColumn.header.peakdown=Down Alcan\u00E7ado
+TableColumn.header.peakdown=Pico de Down
Column.seedspeers.notstarted=%2
-Plugin.localtracker.autoadd=Peers expl\u00EDcitos
+Plugin.localtracker.autoadd=Pares expl\u00EDcitos
TableColumn.header.Quality=Qualidade
-ConfigView.label.seeding.rankType.seed.fallback=Reverter para a Propor\u00E7\u00E3o de Peers\:Seeds ap\u00F3s\n(0 \: Nunca Reverter)
+ConfigView.label.seeding.rankType.seed.fallback=Reverter para a Propor\u00E7\u00E3o de Pares\:Seementes ap\u00F3s\n(0 \: Nunca Reverter)
ConfigView.label.use_old_speed_menus=Usar menus de velocidade do estilo antigo [requer reiniciar]
devices.contextmenu.od.enabled=Desabilitado
-TableColumn.header.totalspeed.info=Velocidade Total de todos os peers aos quais voc\u00EA est\u00E1 conectado
+TableColumn.header.totalspeed.info=Velocidade Total de todos os pares aos quais voc\u00EA est\u00E1 conectado
OpenTorrentFile.column.\#=\#
label.anon.short=A
message.confirm.delete.text=Voc\u00EA tem certeza que voc\u00EA quer apagar o '%1'?
-ConfigView.section.connection.encryption.require_encrypted_transport.tooltip=For\u00E7ar o uso de conex\u00F5es encriptadas com outros peers.
+ConfigView.section.connection.encryption.require_encrypted_transport.tooltip=For\u00E7ar o uso de conex\u00F5es criptografadas com outros peers.
azbuddy.dchat.status.nohandler=Erro\: Nenhum manipulador de mensagem dispon\u00EDvel
chats.view.infobar.text2=Esta vis\u00E3o, mostra informa\u00E7\u00E3o sobre v\u00E1rios bate-papos que voc\u00EA est\u00E1 monitorando/participando. Visite a Wiki para mais informa\u00E7\u00F5es em <a href\="{azbuddy.dchat.link.url}">clicando aqui...</a>
chats.view.infobar.text1=Vis\u00E3o geral do bate-papo
@@ -2732,15 +2758,15 @@ azbuddy.ui.menu.verify=Verificar a \u00C1rea de Transfer\u00EAncia
ConfigView.section.connection.port.rand.together=Mesma porta para TCP e UDP
v3.splash.initSkin=Inicializando a Skin da UI
OpenTorrentOptions.header.filesInfo.some=%1 de %2 Arquivos\: %3
-ConfigView.section.style.colorOverrides.reset=Redefinir Cor
+ConfigView.section.style.colorOverrides.reset=Restaurar Cor
restart.error.pnf=Path '%1' n\u00E3o encontrado
TableColumn.header.bad_avail_time=C\u00F3pia Completa Vista
ConfigView.section.security.group.crypto=Chaves P\u00FAblicas/Privadas
-PeersView.I1.info=Voc\u00EA est\u00E1 interessado no que o outro peer tem?
+PeersView.I1.info=Voc\u00EA est\u00E1 interessado no que o outro par tem?
ConfigView.section.files.move=Conclus\u00E3o da Movimenta\u00E7\u00E3o
-FileView.BlockView.Skipped=Pulado
+FileView.BlockView.Skipped=Ignorado
ConfigView.section.style.alwaysRefreshMyTorrents.tooltip=Esta op\u00E7\u00E3o atualizar\u00E1 a guia Meus Torrents mesmo se n\u00E3o exibida (\u00FAtil para alguns plugins mirc)
-TableColumn.header.SeedingRank.info=Valor do ranking de qu\u00E3o terrivelmente o torrent precisa de seeding. Valor mais alto quer dizer maior necessidade.
+TableColumn.header.SeedingRank.info=Valor do ranking de qu\u00E3o terrivelmente o torrent precisa de semeamento. Valor mais alto quer dizer maior necessidade.
MyTorrentsView.menu.setpriority=Definir &Prioridade
device.model.desc=Descri\u00E7\u00E3o do Modelo
ConfigView.label.openstatsonstart=Abrir as estat\u00EDsticas ao iniciar
@@ -2750,15 +2776,16 @@ azbuddy.os_busy=Ocupado
MainWindow.menu.file.restart=Reiniciar o Vuze
TorrentOptionsView.title.short=Op\u00E7\u00F5es
ConfigView.section.style.forceSIValues=Os valores da for\u00E7a a ser mostrado como IEC valoriza independentemente da unidade de exibi\u00E7\u00E3o para fins de legados (por exemplo, 1MB \= 1MiB \= 1048576B)
+TableColumn.header.donewithdnd=Feito sem DND
OpenTorrentWindow.startMode=Adicionar Modo
Button.selectAll=Selecionar Todos
ManagerItem.checking=Verificando
ConfigView.group.scrape=Scrape
v3.deleteContent.message=\nVoc\u00EA gostaria de apagar o '%1' do seu computador ou apenas remov\u00EA-lo da sua Biblioteca do Vuze?
-TableColumn.header.AvgAvail=M\u00E9dia de Disp/peda\u00E7os
+TableColumn.header.AvgAvail=M\u00E9dia de Disponibilidade/peda\u00E7o
popup.next=>
wizard.mode=Rastreador / Modo
-ConfigView.section.transfer.lan.uploadrate.tooltip=Conex\u00F5es com os peers dentro da mesma LAN interna tem um limite de taxa de upload separado.
+ConfigView.section.transfer.lan.uploadrate.tooltip=Conex\u00F5es com os pares dentro da mesma LAN interna tem um limite de taxa de upload separado.
azbuddy.ui.menu.ygm=Enviar o YGM
ConfigView.label.seeding.firstPriority=A primeira prioridade vai para os torrents com
SystemTray.menu.stopalltransfers=Parar &Todas as Transfer\u00EAncias
@@ -2769,7 +2796,7 @@ SpeedTestWizard.test.panel.not.accepted=Pedido de teste n\u00E3o aceito\:
ConfigView.section.security=Seguran\u00E7a
label.copy.to.clipboard=Copiar Para \u00C1rea de Transfer\u00EAncia
ConfigView.label.autoopen=Auto-Abrir
-ConfigView.label.seeding.addForSeedingDLCopyCount=Considerar para 'adicionar para ficar de seed' downloads que baixaram este n\u00FAmero de c\u00F3pias
+ConfigView.label.seeding.addForSeedingDLCopyCount=Considerar para 'adicionar para semeamento' downloads que baixaram este n\u00FAmero de c\u00F3pias
CategoryAddWindow.title=Adicionar Nova Categoria
FileProgress.stopped={ManagerItem.stopped}
ConfigView.section.transfer.autospeed.chokeping=Tempo para silenciar o ping [milisegundos]
@@ -2778,7 +2805,7 @@ FilePriority.invalid.text=Valor inv\u00E1lido digitao, inteiro requerido\: %1
installPluginsWizard.mode.title=Por favor, escolha um m\u00E9todo de instala\u00E7\u00E3o
FilesView.rename.confirm.delete.title=Confirmar Exclus\u00E3o
MyTrackerView.webui.contextmenu.copyurl=Copia a URL do torrent para a \u00C1rea de Transfer\u00EAncia
-ConfigView.section.logging.timestamp=Formato da estampa de tempo para arquivos log
+ConfigView.section.logging.timestamp=Formato do hor\u00E1rio para os arquivos de registro
TableColumn.header.up=Enviado
configureWizard.transfer2.group=Modo
ConfigView.label.seeding.ignore.header.rule=Regra
@@ -2833,7 +2860,7 @@ v3.MainWindow.tab.publish=Publicar
label.show.tag=Exibir Tag
LocaleUtil.column.text=Texto Desconhecido
v3.MainWindow.button.stop=Parar
-wizard.webseed.adding=Adicionar Seeds HTTP
+wizard.webseed.adding=Adicionando Sementes HTTP
dht.warn.user=Avisar sobre problemas de mapeamento de NAT/portas em potencial
v3.MainWindow.menu.view.asAdvancedList=Lista Avan\u00E7ada
ConfigView.section.style.ShowFancyMenu=Exibir Menu Especial (Requer Re\u00EDnicio)
@@ -2861,9 +2888,9 @@ natpmp.info=NAT-PMP \u00E9 a alternativa da Apple para o UPnP e \u00E9 suportada
webui.i2p_dest=Endere\u00E7o i2p
MyTrackerView.date_added=Adicionado
UIDebugGenerator.message.cancel.title=Gerar Info de Debug Info Cancelado
-Wizard.Subscription.subscribe.library.empty=Sem subscri\u00E7\u00F5es dispon\u00EDveis?\n \nProcure pelo bot\u00E3o para subscrever laranja brilhante na Rede HD do Vuze.\n \n<A HREF\="http\://wiki.vuze.com/w/FAQ_Subscriptions">Leia mais</A>
+Wizard.Subscription.subscribe.library.empty=Nenhuma assinaturas dispon\u00EDveis?\n \nProcure pelo bot\u00E3o para subscrever laranja brilhante na Rede HD do Vuze.\n \n<A HREF\="http\://wiki.vuze.com/w/FAQ_Subscriptions">Leia mais</A>
MyTorrentsView.menu.setSpeed.disable=Desativar Upload
-wizard.webseed=Adicionar Seeds HTTP ao torrent
+wizard.webseed=Adicionar Sementes HTTP ao torrent
ConfigView.label.priorityExtensions=Auto-priorizar os arquivos com - ex\: .txt;.nfo;.jpg
iconBar.openNoDefault.tooltip=Abrir um arquivo .torrent (sem save padr\u00E3o)
ConfigView.section.connection.advanced.url=http\://azureuswiki.com/index.php/AdvancedNetworkSettings
@@ -2877,7 +2904,7 @@ DHTView.db.divfreq=Freq. Div.
ConfigView.section.proxy.dns.info=Veja a Conex\u00E3o-> configura\u00E7\u00E3o de DNS para especificar os servidores DNS adicionais para a resolu\u00E7\u00E3o de proxy.
Peers.column.timetocomplete.info=Tempo restante at\u00E9 o peer estar completo
MainWindow.nat.status.unknown=NAT
-ConfigView.label.seeding.rankType.timedRotation.tooltip=Todos os torrents completados na fila ir\u00E3o para o modo seeding.\nA dura\u00E7\u00E3o do tempo de seeding \u00E9 definida em 'Tempo M\u00EDnimo de Seeding'
+ConfigView.label.seeding.rankType.timedRotation.tooltip=Todos os torrents completados na fila ir\u00E3o para o modo semea\u00E7\u00E3o.\nA dura\u00E7\u00E3o do tempo de semeamento \u00E9 definida em 'Tempo M\u00EDnimo de Semeamento'
OpenTorrentWindow.addFiles.URL=Adicionar &URL
azbuddy.addtorrent.msg=O amigo '%1' enviou para voc\u00EA o '%2'.\nVoc\u00EA quer adicionar este download?
MyTorrentsView.menu.thisColumn.toClipboard=Copiar o Texto para a \u00C1rea de Transfer\u00EAncia
@@ -2895,7 +2922,7 @@ ConfigView.section.file.perf=Op\u00E7\u00F5es de Performance
security.crypto.persist_for.30days=30 dias
MainWindow.dialog.select.vuze.file=Selecionar o Arquivo do Vuze
installPluginsWizard.list.description=Descri\u00E7\u00E3o do plugin
-label.right.click.for.options=Clique com bot\u00E3o direito do mouse para op\u00E7\u00F5es
+label.right.click.for.options=Clique direito para op\u00E7\u00F5es
label.out=Sa\u00EDda
ConfigView.section.transfer.autospeed.latencyfactor=Fator usado para ligar as mudan\u00E7as de lat\u00EAncia as mudan\u00E7as de velocidade (n\u00BAs maiores diminuem a sensitividade)
br.restore.folder.title=Selecione Restaurar pasta
@@ -2903,15 +2930,15 @@ ConfigView.section.mode.beginner=Iniciante
Progress.reporting.window.remove.now.tooltip=Remover todos os processos completados, falhos ou cancelados da visualiza\u00E7\u00E3o
platform.jvmopt.nolink=N\u00E3o pode gerenciar os op\u00E7\u00F5es de de JVM como proibida por de configura\u00E7\u00E3o existente
ConfigView.section.plugins.dht=Base de Dados Distribu\u00EDda
-ConfigView.section.connection.encryption.min_encryption_level=N\u00EDvel m\u00EDnimo da encripta\u00E7\u00E3o
+ConfigView.section.connection.encryption.min_encryption_level=N\u00EDvel m\u00EDnimo da criptografia
ConfigView.section.transfer.autospeed.minupload=Velocidade m\u00EDnima de upload em %1
-ConfigView.label.seeding.firstPriority.ignoreSPRatio=Torrents com uma propor\u00E7\u00E3o de Seeds para Peers de
+ConfigView.label.seeding.firstPriority.ignoreSPRatio=Torrents com uma propor\u00E7\u00E3o Sementes para Pares acima de
tag.discovery.view.options=Op\u00E7\u00F5es
label.click.to.restore=Clique para Restaurar
core.shutdown.dl=downloads completados
ConfigView.section.tracker.scrapeandcache=Scrape e cache
ConfigView.section.proxy.port=Porta
-ConfigView.label.seeding.firstPriority.ignore0Peer=Torrents com 0 Peers
+ConfigView.label.seeding.firstPriority.ignore0Peer=Torrents com 0 Pares
Button.cancel=&Cancelar
TableColumn.header.sr_prog=Progresso da Taxa de Compartilhamento
label.init.save.loc=Salvar Inicialmente no Local
@@ -2921,16 +2948,17 @@ MainWindow.menu.window.alltofront=Trazer Todos para a &Frente
MainWindow.menu.tools.speedtest=Teste de Velocidade...
azbuddy.dchat.node.status=%1%2Nodes\=%3, Pedidos\=%4
subs.ext.view.info=Voc\u00EA configurou o Vuze para usa um navegdor externo para exibir os resultados das assinaturas
+privacy.view.check.bw.info=Para downloads velozes voc\u00EA ir\u00E1 precisar configurar sua configura\u00E7\u00F5es de banda I2P
azbuddy.ui.menu.cat.set=Digite as tags/categorias
OpenTorrentWindow.addFiles.Clipboard=Adicionar da \u00C1rea de Transfer\u00EAncia
-ConfigView.label.seeding.rankType.peer=Contagem de Peers Pesados
+ConfigView.label.seeding.rankType.peer=N\u00FAmero de Pares Pesados
ConfigView.group.irctitle=Configura\u00E7\u00F5es do IRC
plugin.sharing.remove.veto=Este compartilhamento \u00E9 um sub-compartilhamento de um 'conte\u00FAdo de diret\u00F3rio' e n\u00E3o pode ser explicitamente apagado.\n Apague o compartilhamento raiz
download.removerules.updatetorrents=Remover os torrents de atualiza\u00E7\u00E3o conforme a multid\u00E3o requerir
-Torrent.create.progress.totalfilecount=Contagem total de arquivos\:
+Torrent.create.progress.totalfilecount=N\u00FAmero total de arquivos\:
plugin.aznetstatus.pingtarget=Ping/trace a rota do alvo
TableColumn.header.tag.type={MySharesView.type}
-Trackers.column.peers=Peers
+Trackers.column.peers=Pares
LoggerView.pause=Pausar Logging
ConfigView.label.usefastresume=Usar modo de Resumo R\u00E1pido
MainWindow.menu.window.minimize=&Minimizar
@@ -2941,13 +2969,13 @@ ConfigView.pluginlist.column.isOperational=Operacional?
external.browser.failed=Navegador Externo Falhou
TableColumn.header.tag_colors=Cores das Tags
GeneralView.yes=sim
-Wizard.Subscription.optin.title=Ativar Subscri\u00E7\u00F5es
+Wizard.Subscription.optin.title=Ativar Assinaturas
Formats.units.MB=MB
ConfigView.section.style.status.show_rategraphs=Mostrar gr\u00E1ficos hist\u00F3ria taxa embaixo do texto download/upload
configureWizard.file.title=Torrents / Arquivos
health.explain.grey=Significa que o seu torrent n\u00E3o est\u00E1 funcionando (baixando ou enviando)
library.incomplete.header.p=%1 items baixando, %2 aguardando para baixar
-PeersView.client.info=Tipo de cliente BT que o peer est\u00E1 usando
+PeersView.client.info=Tipo de cliente BT que o par est\u00E1 usando
label.copy.url.to.clip=Copiar URL Para \u00C1rea de Transfer\u00EAncia
DownloadManager.error.unabletostartserver=Incapaz de iniciar o servidor - verifique a configura\u00E7\u00E3o da porta de entrada / e permiss\u00F5es no firewall para que o aplicativo aja como servidor
ConfigView.label.seeding.firstPriority.DLMinutes=Um tempo decorrido desde o come\u00E7o do download
@@ -3006,17 +3034,18 @@ ConfigView.section.logging.maxsize=Tamanho m\u00E1ximo do arquivo de log
devices.view.title=Dispositivos
ConfigView.label.seeding.firstPriority.ignore.info=Esteja ciente que usar estas regras pode resultar em parar um torrent\nt\u00E3o r\u00E1pido quanto o download terminar.
authenticator.tracker=Rastreador
+label.read.more=Leia mais...
azbuddy.ui.mykey=Minha chave\:
wizard.maketorrents.init.tags=Tags iniciais (Separadas por ",")
OpenTorrentWindow.fileList=Arquivos nos torrents\:
-iconBar.queue.tooltip=Enfileirar
+iconBar.queue.tooltip=Iniciar (fila) os torrents selecionados
ConfigView.dialog.choosedefaulttorrentpath=Por favor, escolha o diret\u00F3rio padr\u00E3o dos torrents
installPluginsWizard.file.browse=Navegar...
label.complete=Completo
subs.prop.last_error=\u00DAltimo erro
tag.type.ds.inact={label.inactive}
v3.MainWindow.tab.library=Biblioteca
-health.explain.red=significa que voc\u00EA n\u00E3o est\u00E1 conectado a nenhum peer enquanto baixa
+health.explain.red=Significa que voc\u00EA n\u00E3o est\u00E1 conectado a nenhum par enquanto baixa
MainWindow.status.latestversion=Mais Recentes
configureWizard.nat.server.udp_listen_port=Escutar porta de entrada UDP
installPluginsWizard.title=Instalar Plugins
@@ -3034,11 +3063,12 @@ PeersView.port.info=Porta sendo usada
ConfigView.section.connection.network.max.simultaneous.connect.attempts=M\u00E1x. de tentativas de conex\u00F5es de sa\u00EDda simult\u00E2neas
DHTView.general.nodes=N\u00F3s\:
ConfigView.label.openconsole=Abrir o console na inicializa\u00E7\u00E3o
+privacy.view.dl.not.running=Download n\u00E3o est\u00E1 em execu\u00E7\u00E3o
MainWindow.menu.file.create.fromfile=De um &Arquivo
VivaldiView.title.fullcvs=Vivaldi CVS
-TableColumn.header.SeedingRank=Rank do Seeding
+TableColumn.header.SeedingRank=Rank do Semeamento
ConfigView.section.file.perf.cache.enable=Ativar cache de disco
-ConfigView.section.connection.encryption.encrypt.group=Encripta\u00E7\u00E3o/Ofusca\u00E7\u00E3o do Transporte
+ConfigView.section.connection.encryption.encrypt.group=Criptografar/Obufusca\u00E7\u00E3o do Transporte
SpeedTestWizard.test.panel.enc.label=Pressionar o teste com encripta\u00E7\u00E3o\:
MyTorrentsView.menu.create_personal_share=Criar Compartilhamento Pessoal
Button.sendManual=Envio Manual (criar .zip)
@@ -3060,7 +3090,7 @@ UpdateMonitor.messagebox.accept.unverified.text='%1' n\u00E3o p\u00F4de ser veri
MainWindow.status.update.tooltip=Duplo clique para informa\u00E7\u00E3o sobre o progresso
MainWindow.menu.closealldetails=Fechar &Todos os Detalhes
Progress.reporting.action.label.retry.tooltip=Tentar de novo a opera\u00E7\u00E3o
-Subscription.menu.reset=Resetar Ao Estado Inicial
+Subscription.menu.reset=Restaurar Ao Estado Inicial
MyTorrentsView.mytorrents=Meus Torrents
br.restore=Restaurar
pairing.status.pending=Atualiza\u00E7\u00E3o ir\u00E1 ser realizada em %1
@@ -3069,7 +3099,7 @@ devices.sidebar.oxc.closevuze={ConfigView.label.stop.QuitVuze}
ConfigView.section.ipfilter.end=IP Final
CacheView.reads.fromCache=Do Cache
dlg.auth.trial.title=Testar Gravador de DVD
-PeersView.T.info=L (local)\: voc\u00EA estabeleceu a conex\u00E3o, R (remota)\: o peer estabeleceu a conex\u00E3o.
+PeersView.T.info=L (local)\: voc\u00EA estabeleceu a conex\u00E3o, R (remota)\: o par estabeleceu a conex\u00E3o.
tag.sharing.enable.text=Voc\u00EA deseja compartilhar suas tags/categorias de forma an\u00F4nima com a comunidade?\n\nIsso ir\u00E1 ajudar os outros a organizar melhor seus downloads.\n\nClique direito domouse sobre tags/categorias na barra lateral para fazer configura\u00E7\u00F5es individuais se requerida.
MyTrackerView.status.published=Publicado
Formats.units.GB=GB
@@ -3081,7 +3111,7 @@ v3.MainWindow.menu.view.toolbartext=Texto da Barra de Ferramentas
ConfigView.pluginlist.broken=Quebrado
GeneralView.label.filename=Nome\:
DownloadManager.error.filetoobig=Arquivo Torrent \u00E9 muito grande
-TableColumn.header.maxuploads.info=\# m\u00E1ximo de peers aos quais faz upload simult\u00E2neamente
+TableColumn.header.maxuploads.info=\# m\u00E1ximo de pares aos quais faz upload simult\u00E2neamente
azbuddy.dchat.user.status=Online\: %1, Postado\: %2
webui.mode=Modo (*)
iconBar.open.tooltip=Abrir Torrent(s)
@@ -3091,7 +3121,7 @@ dlg.install.mlab.subtitle=Instalando
devices.info.copypending=%1 Arquivo(s) Aguardando Para Serem Copiados
device.search.auto=Automaticamente procurar dispositivos
ipCheckerWizard.progresstitle=Verificando IP
-TableColumn.header.peersources.info=Fontes peer permitidas para o estabelecimento das conex\u00F5es com peers
+TableColumn.header.peersources.info=Fontes par permitidas para o estabelecimento das conex\u00F5es com pares
ConfigView.option.dm.dblclick.show=Mostrar Arquivo
splash.openViews=Abrindo as Visualiza\u00E7\u00F5es
MainWindow.dialog.exitconfirmation.text=Voc\u00EA quer realmente sair do Vuze?
@@ -3105,7 +3135,7 @@ ConfigView.section.file.defaultdir.autorename.tooltip=Isto impede um torrent de
ConfigView.label.periodiccheck=Procurar pela \u00FAltima vers\u00E3o periodicamente
Progress.reporting.status.finished=Terminou
plus.notificaiton.ExpiredEntry.s=Sua assinatura do Vuze Plus expirou\: <A %2>Renove Agora</A>
-TableColumn.header.maxupspeed=M\u00E1x de Velocidadde de Up
+TableColumn.header.maxupspeed=M\u00E1x de Velocidade de Up
MainWindow.menu.language.refresh=&Atualizar
MessageBoxWindow.rememberdecision=Lembrar minha decis\u00E3o
plus.notificaiton.ExpiredEntry.p={plus.notificaiton.ExpiredEntry.s}
@@ -3114,29 +3144,30 @@ label.current_ip=Endere\u00E7o de IP Atual\:
ConfigView.section.logging.log0type=Informa\u00E7\u00E3o
upnp.refresh_mappings_on_bad_nat=Automaticamente atualizar os mapeamentos quando o status do NAT \u00E9 "firewalled"
splash.plugin.UIinit=Inicializando a GUI do Plugin\: %1
-DHTView.general.skew=\u00C2ngulo\:
+DHTView.general.skew=Enviesar\:
DHTView.general.users=Usu\u00E1rios\:
SpeedTestWizard.test.panel.test.countdown=o teste termina em\:
#Used by the webui plugin
MyTorrentsView.menu.removeand.deletetorrent=Apagar &Arquivo Torrent
ConfigView.label.watchtorrentfolder=Importar novos .torrents automaticamente
torrent.view.info=Exibir Info do Torrent...
-ConfigView.section.tracker.server.group.networks.info=Selecione as redes para as quais o tracker aceitar\u00E1 peers
+ConfigView.section.tracker.server.group.networks.info=Selecione as redes para as quais o rastreador aceitar\u00E1 pares
IrcView.actionnotsupported=Esta a\u00E7\u00E3o n\u00E3o \u00E9 suportada
ConfigView.section.tracker.announcecacheperiod=Anunciar o cache (ms)
DHTView.operations.findNode=Achar Node
iconBar.up.tooltip=Mover para cima
-MyTorrentsView.menu.archive=Arquivado(s)
+MyTorrentsView.menu.archive=Arquivar
label.bt.connect=Conex\u00E3o BT
+privacy.view.intro=A visualiza\u00E7\u00E3o da privacidade sumariza as informa\u00E7\u00F5es/configura\u00E7\u00F5es sobre a privacidade e permite que elas sejam ajustadas.
ConfigView.section.proxy.group.tracker=Comunica\u00E7\u00F5es do Rastreador
MainWindow.menu.vote=Sugerir um Recurso
DHTView.operations.ping=Ping
-ConfigView.label.queue.newseedsmovetop=Mover torrents completados recentemente para a frente da lista de seeding
-ConfigView.label.disconnetseed=Desconectar seeds quando estiver ficando de seed
+ConfigView.label.queue.newseedsmovetop=Mover torrents completados recentemente para a frente da lista de semeamento
+ConfigView.label.disconnetseed=Desconectar sementes quando estiver semeando
MainWindow.menu.transfers.resumetransfers.keybinding.mac=Meta+Shift+.
ConfigView.section.connection.group.http=HTTP
device.retry.copy=Repetir C\u00F3pia
-ConfigView.label.enableSystrayToolTip=Exibir estatus de download na barra
+ConfigView.label.enableSystrayToolTip=Exibir status de download na barra
ConfigView.section.tracker.maxthreads=M\u00E1x. de pedidos coincidentes
MainWindow.menu.file.create.fromdir=De um &Diret\u00F3rio
ConfigView.section.security.system.managed=Prote\u00E7\u00E3o da chave gerenciada pelo sistema
@@ -3147,7 +3178,7 @@ torrent.fix.corrupt.browse=Abrir Torrent
memmon.heap.auto.increase.warning=Mem\u00F3ria Heap foi aumentado para %1. Isso ter\u00E1 efeito quando Vuze \u00E9 reiniciado.
azbuddy.ui.menu.cat.share=Habilitar Assinaturas para Amigo(s)
Formats.units.TiB=TiB
-ConfigView.label.seeding.rankType.peerSeed=Propor\u00E7\u00E3o de Peers\:Seed
+ConfigView.label.seeding.rankType.peerSeed=Propor\u00E7\u00E3o de Pares\:Sementes
label.more.dot=Mais...
PeersView.outgoingreqcount=Reqs de Sa\u00EDda
DHTView.db.indirect=Indireto
@@ -3156,13 +3187,13 @@ DownloadManager.error.unsupportedencoding=Codifica\u00E7\u00E3o N\u00E3o Suporta
exportTorrentWizard.exportfile.message=Insira o arquivo XML para exportar para
MyTorrentsView.menu.clear_alloc_data=Limpar Estado de Aloca\u00E7\u00E3o
ConfigView.section.file.decoder.nodecoder=Nenhum
-TorrentOptionsView.multi.title.full=Op\u00E7\u00F5es do Torrent
+TorrentOptionsView.multi.title.full=Op\u00E7\u00F5es/Info do(s) Torrent(s)
device.router.is_mapping=Mapeamento autom\u00E1tico de portas
MyTorrentsView.filter=Filtro\:
configureWizard.transfer2.message=Bittorrent \u00E9 baseado em um protocolo "dar e receber"- em geral quanto mais r\u00E1pido \u00E9 o upload, mais veloz \u00E9 seu download - ent\u00E3o para baixar r\u00E1pido, e rapidamente obter uma boa taxa de compartilhamento, voc\u00EA precisa de uma boa velocidade de upload.\n\nDe qualquer forma, se seu upload for r\u00E1pido demais para sua conex\u00E3o, voc\u00EA pode sobrecarregar ela, resultando numa lentid\u00E3o greal e impactar outros aplic [...]
ConfigView.section.tracker.client.connecttimeout=A conex\u00E3o expira em (segs)
GeneralView.label.maxdownloadspeed.tooltip=Velocidade M\u00E1xima de Download [0\: ilimitada]
-azbuddy.ui.menu.enc=Encriptar a \u00C1rea de Transferencia
+azbuddy.ui.menu.enc=Criptografar \u00C1rea de Transferencia
ConfigView.label.piecereorder=Acrescentar dados a arquivos como baixados e reordenar pe\u00E7as como os avan\u00E7os download.
dial.up=Discar
device.itunes.status.notinstalled=O iTunes n\u00E3o est\u00E1 instalado
@@ -3179,9 +3210,9 @@ TableColumn.header.min_sr={min.sr.window.title}
GeneralView.label.downloadspeed=Velocidade de Download \:
v3.MainWindow.menu.view.sidebar=Barra Lateral
AlertMessageBox.unread=Voc\u00EA n\u00E3o leu as mensagens de alerta - clique aqui para exib\u00ED-las.
-Trackers.column.seeds=Seeds
+Trackers.column.seeds=Sementes
MainWindow.menu.speed_limits.profile=Digite o nome do perfil
-ConfigView.section.sharing.permitdht=Permitir tracking descentralizado quando o rastreador est\u00E1 indispon\u00EDvel
+ConfigView.section.sharing.permitdht=Permitir rastreamento descentralizado quando o rastreador estiver indispon\u00EDvel
MySeeders.bigView.header={sidebar.LibraryCD}
beta.wizard.link=Clique aqui para acessar a p\u00E1gina da Web vers\u00E3o beta
MainWindow.menu.view=&Visualizar
@@ -3198,8 +3229,8 @@ uninstallPluginsWizard.list.loaded=Por favor, escolha os plugins que voc\u00EA q
subscriptions.add.tooltip=Adicionar Assinatura
devices.sidebar.onxcodecomplete=Quando Transcode Terminar
label.in=Em
-ConfigView.label.autoSeedingIgnoreInfo=Torrents ignorados v\u00E3o para o final da fila de seeds. Eles n\u00E3o s\u00E3o automaticamente iniciados.\nIgnorar regras n\u00E3o se aplica a torrents que entrem no crit\u00E9rio da Primeira Prioridade.\nA menos que declarado de outro modo, use um valor de 0 para desativar uma regra.
-TableColumn.header.\#.info=N\u00FAmero da Posi\u00E7\u00E3o/Ordenamento
+ConfigView.label.autoSeedingIgnoreInfo=Torrents ignorados v\u00E3o para o final da fila de semeamento. Eles n\u00E3o s\u00E3o automaticamente iniciados.\nIgnorar regras n\u00E3o se aplica a torrents que entrem no crit\u00E9rio da Primeira Prioridade.\nA menos que declarado de outro modo, use um valor de 0 para desativar uma regra.
+TableColumn.header.\#.info=Prioridade/Posi\u00E7\u00E3o/N\u00FAmero de Ordenamento
search.dialog.text=Digite o texto para procurar novos torrents\:
ConfigView.section.tracker.port=Ativar rastreador na porta HTTP
azbuddy.dchat.ui.max.kb=M\u00E1ximo de caracteres por janela de bate-papo [KB]
@@ -3214,13 +3245,13 @@ ConfigView.label.xfer.bias_slack=KB/s m\u00EDnimo reservado para downloads compl
MinimizedWindow.name=Nome\:
Trackers.column.updatein.info=Tempo para pr\u00F3xima atualiza\u00E7\u00E3o
aznettorbrowser.install.text=Instalar Plugin do Navegador Tor para suportar navega\u00E7\u00E3o de conte\u00FAdo .onion e .i2p?
-PeerColumn.activationCount=Peers tentando se conectar\: %1
+PeerColumn.activationCount=Pares tentando se conectar\: %1
ConfigView.section.interface.legacy=Legado
-TableColumn.header.Rating=Classifica\u00E7\u00E3o
+TableColumn.header.Rating=Avalia\u00E7\u00E3o
ConfigView.section.sharing.usessl=Usar SSL para recursos compartilhados (requer a configura\u00E7\u00E3o do Rastreador)
IrcView.title.short=IRC
ConfigView.label.startwatchedtorrentsstopped.tooltip=Adiciona novos .torrents no estado PARADO
-GeneralView.label.swarm_average_completion.tooltip=A porcentagem da conclus\u00E3o dos peers em m\u00E9dia na multid\u00E3o
+GeneralView.label.swarm_average_completion.tooltip=A porcentagem da conclus\u00E3o dos pares em m\u00E9dia na multid\u00E3o
FileItem.low={SpeedTestWizard.name.conf.level.low}
device.odpt.enable=Incluir torrents privados
SWT.alert.erroringuithread=Um erro n\u00E3o manejado ocorreu na GUI, mais erros podem ser reportados.
@@ -3233,7 +3264,7 @@ mdi.entry.chatsoverview={chats.view.heading}
ConfigView.section.tracker.client.enabletcp=Habilitar protocolo HTTP/HTTPS para o rastreador do cliente
v3.MainWindow.search.last.tooltip=Retornar para os resultados da busca
exportTorrentWizard.process.inputfilebad.title=Arquivo Torrent Inv\u00E1lido
-ConfigView.label.closetotray=Fechar minimiza para o Tray do Sistema
+ConfigView.label.closetotray=Fechar minimiza para a Bandeja do Sistema
tag.sharing.enable.title=Compartilhar com a Comunidade
ConfigView.label.zeronewfiles=Alocar e zerar novos arquivos na cria\u00E7\u00E3o
ConfigView.filter=procurar op\u00E7\u00F5es aqui
@@ -3259,16 +3290,16 @@ wizard.hint.mode=Dica\:\tVoc\u00EA pode Arrastar e Soltar um \u00FAnico arquivo
v3.MainWindow.currentDL=Atualmente Baixando
ConfigView.section.file.decoder.label=Codifica\u00E7\u00E3o padr\u00E3o do torrent quando requerido pela sele\u00E7\u00E3o
v3.MainWindow.button.stream=Stream
-ConfigView.section.tracker.publishenablepeerdetails=Publica os detalhes do peer
+ConfigView.section.tracker.publishenablepeerdetails=Publica os detalhes dos pares
OpenTorrentWindow.fileList.changeDestination.all=Mudar Destino de %1 Arquivos Para Mesma Pasta
SpeedView.stats.total.since=Total (desde %1)
ConfigTransferAutoSpeed.set.point=definir ponto (ms)
subscriptions.listwindow.popularity=Popularidade
label.more.info.here=Clique aqui para mais informa\u00E7\u00F5es
-TableColumn.header.completed=Completados
-TableColumn.header.maxdownspeed.info=M\u00E1x de Velocidade de Download por torrent
+TableColumn.header.completed=Completado
+TableColumn.header.maxdownspeed.info=Velocidade M\u00E1xima de Download por torrent
deletedata.title=Aten\u00E7\u00E3o
-iconBar.start.tooltip=Iniciar
+iconBar.start.tooltip=Iniciar torrent(s) selecionado(s)
azmsgsync.install.text=O Plugin 'Mensagens Sync' \u00E9 requerido para o bate-papo descentralizado [desabilitado se j\u00E1 instalado]
FilesView.size=Tamanho
GeneralView.label.trackerurl=URL do rastreador \:
@@ -3283,7 +3314,7 @@ importTorrentWizard.torrentfile.path=Caminho
SpeedView.stats.upbias=Vi\u00E9s do Upload\:
exportTorrentWizard.title=Exportar um torrent XML
devices.copy.pending=C\u00F3pia de arquivo pendente
-ConfigView.label.openbar.complete=auto-abrir seeds
+ConfigView.label.openbar.complete=auto-abrir sementes
dht.reseed.ip=Endere\u00E7o IP
dlg.stream.plus.renew.text=Renove sua assinatura Vuze Plus para continuar a reproduzir os seus v\u00EDdeos que baixou.
subs.prop.version=Vers\u00E3o
@@ -3291,7 +3322,7 @@ label.trackers=Rastreadores
ConfigView.label.prioritizemostcompletedfiles=Priorizar mais os arquivos de alta prioridade de acordo com a % completada e o tamanho do arquivo
azbuddy.contextmenu=Enviar para um Amigo
webui.homepage=Home Page (*)
-Plugin.trackerpeerauth.name=Autoriza\u00E7\u00E3o do Peer do Rastreador
+Plugin.trackerpeerauth.name=Autoriza\u00E7\u00E3o do Rastrador do Par
MainWindow.upgrade.assistant=Assistente de Atualiza\u00E7\u00E3o
updater.progress.window.title=Tarefas de Instala\u00E7\u00E3o Atuais
devices.sidebar.simple=Visualiza\u00E7\u00E3o Simples
@@ -3311,7 +3342,7 @@ configureWizard.file.path=Caminho
PeersView.menu.kick=Chutar
MagnetPlugin.report.waiting_ddb=esperando pela inicializa\u00E7\u00E3o do DDB...
MyTrackerView.bytesoutave=M\u00E9dia de Sa\u00EDda
-ConfigView.label.stop.seedcomp=Quando completar o seending
+ConfigView.label.stop.seedcomp=Quando o semeamento estiver completo
azbuddy.dchat.rchans.anon=Canal An\u00F4nimo
webui.pairing.info.y=O emparelhamento \u00E9 ativado, ver a conex\u00E3o-> op\u00E7\u00F5es de emparelhamento para mais detalhes.
security.crypto.password.mismatch.title=Erro com a Senha
@@ -3326,9 +3357,9 @@ sr_prog.window.message=Digite share intervalo rela\u00E7\u00E3o grava\u00E7\u00E
TableColumn.header.completion.info=Representa\u00E7\u00E3o gr\u00E1fica dos % baixados
Button.add=Adicionar
subscript.import.fail.title=Falhou em Importar
-StartStopRules.0Peers=0 Peers
-MainWindow.menu.pairing=Emparelhamento remoto
-wizard.webseedseditor.edit.title=Editor de Seeds HTTP
+StartStopRules.0Peers=0 Pares
+MainWindow.menu.pairing=Pareamento Remoto
+wizard.webseedseditor.edit.title=Editor de Sementes HTTP
remote.pairing.instruction2={remote.pairing.instruction} Alternativamente, escaneie o c\u00F3digo QR no seu dispositivo m\u00F3vel e passe sobre a necessidade de acessar o c\u00F3digo.
xmwebui.required=Voc\u00EA precisa instalar o "Vuze Web Remote" plugin para que isto trabalhar\n\nVeja Ferramentas>Plugins>Assistente de Instala\u00E7\u00E3o...
IrcView.noticefrom=Notifica\u00E7\u00E3o \:
@@ -3339,7 +3370,7 @@ SpeedTestWizard.abort.message.scheduled.in=teste agendado em ... %1 segundos"
MyTorrentsView.menu.showdetails=Mostrar &Detalhes
window.updateswt.ignore=Ignorar
devices.xcode.autoCopy=Copiar automaticamente para a pasta
-PeersView.BlockView.Avail.NoHave=Peer tem; Voc\u00EA n\u00E3o
+PeersView.BlockView.Avail.NoHave=Par tem; Voc\u00EA n\u00E3o
pairing.ipv6=Endere\u00E7o IPv6 p\u00FAblico
pairing.ipv4=Endere\u00E7o IPv4 p\u00FAblico
Search.menu.engines=Modelos
@@ -3352,7 +3383,7 @@ azbuddy.ui.new_buddy=Nova chave do amigo\:
ConfigView.section.style.guiUpdate=Atualizar a GUI a cada
DHTOpsView.notAvailable=Gr\u00E1fico DDB n\u00E3o dispon\u00EDvel
MainWindow.menu.file.export.keybinding=Meta+E
-PiecesView.DistributionView.theyHave=Peda\u00E7os que o peer tem
+PiecesView.DistributionView.theyHave=Peda\u00E7os que o par tem
DHTView.title.full_v6=Base de Dados Distribu\u00EDda IPv6
subscriptions.listwindow.popularity.reading=Lendo...
ConfigView.label.start.onlogin=Iniciar o Vuze no login
@@ -3378,7 +3409,7 @@ OpenTorrentFile.column.priority={FilesView.priority}
tag.property.constraint=Restri\u00E7\u00E3o
dlg.stream.plus.renew.title=Vuze Plus Renova\u00E7\u00E3o
MainWindow.menu.view.beta=Programa Beta
-iconBar.bottom.tooltip=Mover para baixo
+iconBar.bottom.tooltip=Mover para o final
wizard.choosedirectory=Escolha uma diret\u00F3rio
MainWindow.menu.file.folder=&Pasta...
TableColumn.header.Country.info=O pa\u00EDs onde o par est\u00E1 localizado
@@ -3398,7 +3429,7 @@ PeersView.BlockView.NoAvail.NoHave=Ningu\u00E9m tem
ConfigView.section.connection.advanced.write_select_min=Gravar a espera m\u00EDnima selecionada (milis, padr\u00E3o %1)
ConfigView.text.neverStart=Nunca Iniciar
TableColumn.header.remaining=Restando
-TableColumn.header.swarm_average_completion=Conclus\u00E3o da M\u00E9dia dos Peers
+TableColumn.header.swarm_average_completion=Conclus\u00E3o M\u00E9dia dos Pares
config.external.browser.prog=Execut\u00E1vel do Navegador
pairing.host=Endere\u00E7o de host (nome DNS)
swt.uninstall.window.ok=Remover
@@ -3416,11 +3447,11 @@ pairing.op.fail=Falha na opera\u00E7\u00E3o de emparelhamento
DHTView.db.local=Local
MainWindow.about.section.system=Sistema
SystemTray.menu.exit=S&air
-MyTorrentsView.menu.exporthttpseeds=Export URLs de seed HTTP para a \u00C1rea de Transfer\u00EAncia
+MyTorrentsView.menu.exporthttpseeds=Expotar URLs de sementes HTTP para \u00E1rea de transfer\u00EAncia
PeersView.state=Estado
smooth.config=(v\u00E1 em config para configurar a dura\u00E7\u00E3o da janela)
ConfigView.section.mode.advanced=Avan\u00E7ado
-health.explain.blue=quando ficando de seed, significa que voc\u00EA ainda n\u00E3o est\u00E1 conectado a qualquer peer\nquando baixando, significa que voc\u00EA est\u00E1 conectado a alguns peers mas o rastreador est\u00E1 inativo
+health.explain.blue=Qando semeando, isto significa que voc\u00EA n\u00E3o est\u00E1 conectado a qualquer pares ainda\nQuando baixando, isso significa que voce est\u00E1 conectado a alguns pares mas o rastreador caiu
ConfigView.section.tracker.maxposttimemultiplier=Multiplicador de tempo para processamento POST [0\:ilimitado]
wizard.singlefile.help=Criar um torrent de um arquivo \u00FAnico
webui.access=Accesso (*)
@@ -3434,7 +3465,7 @@ ipCheckerWizard.checkFailed=Falhou, raz\u00E3o \:
TorrentOptionsView.param.max.peers=N\u00FAmero m\u00E1ximo de conex\u00F5es [0\: ilimitadas]
TrayWindow.menu.exit=S&air
PiecesView.BlockView.NoHave=N\u00E3o Tem
-wizard.maketorrents.autoopen=Abrir o torrent para ficar de seed quando completo
+wizard.maketorrents.autoopen=Abrir torrent para semeamento quando completo
MainWindow.nat.status.tooltip.ok=OK para Alcan\u00E7ar (TCP)
ConfigView.section.logging.udptransport=Ativar tra\u00E7o de transporte verboso UDP
label.no.suggestions=Sem sugest\u00F5es
@@ -3445,12 +3476,12 @@ TableColumn.header.DateTorrentLastActive=\u00DAltima Atividade
# This is the beginning of the word "View". It's right aligned under the icon bar item
v3.iconBar.view.big.tooltip=Ver como Lista Simples
label.anon.i2p=An\u00F4nimo (I2P)
-ConfigView.label.maxnumwant=Limitar o n\u00FAmero de peers que o rastreador pode retornar
-OpenTorrentWindow.startMode.seeding=Ficando de Seed
+ConfigView.label.maxnumwant=Limitar o n\u00FAmero de pares que o rastreador pode retornar
+OpenTorrentWindow.startMode.seeding=Semeando
TableColumn.header.crc32=CRC -32
label.outbound=De sa\u00EDda
ConfigView.auto=Autom\u00E1tico
-PeerSocket.bad_peer_id=ID de peer ruim
+PeerSocket.bad_peer_id=ID de par ruim
ConfigView.label.lh.ext=Extens\u00F5es
TorrentInfoView.torrent.encoding=Codifica\u00E7\u00E3o do torrent
ConfigView.section.transfer.autospeed.enabledownadj=Ativar ajuste da velocidade de download
@@ -3464,13 +3495,13 @@ azbuddy.dchat.anon.nick=Apelido an\u00F4nimo compartilhado
dialog.pause.for.period.title=Digitar Per\u00EDodo de Tempo
MyTorrentsView.menu.health=Sobre a Qualidade
SpeedTestWizard.test.panel.currinfo=Teste de banda BitTorrent.
-ConfigView.section.connection.encryption.min_encryption_level.tooltip=Simples - s\u00F3 handshake\nRC4 - corrente completa\nMaior encripta\u00E7\u00E3o requer mais CPU.
+ConfigView.section.connection.encryption.min_encryption_level.tooltip=Simples - s\u00F3 handshake\nRC4 - corrente completa\nMaior criptografia requer mais CPU.
ConfigView.label.watchtorrentfolderinterval.tooltip=Pausa at\u00E9 que a pasta seja verificada novamente
label.protocol={Peers.column.Protocol}
device.mediaserver.remove_all.desc=Voc\u00EA tem certeza que deseja remover todas os servidores de m\u00EDdias?
FilesView.menu.open=&Abrir
MainWindow.menu.file.closewindow=Fechar &Janela
-Subscription.menu.resetauth=Resetar os Detalhes da Autentica\u00E7\u00E3o
+Subscription.menu.resetauth=Restaurar os Detalhes da Autentica\u00E7\u00E3o
installPluginsWizard.list.nullversion=N\u00BA da Vers\u00E3o
OpenTorrentOptions.title=Abrir Op\u00E7\u00F5es de Torrent
v3.MainWindow.menu.contentnetworks.manage=&Gerenciar as Redes HD
@@ -3483,7 +3514,7 @@ configureWizard.transfer2.test=Executar teste
device.playnow.group=Executar Agora
Trackers.column.updatein=Pr\u00F3ximo
ipCheckerWizard.checkComplete=IP Completado\:
-PiecesView.DistributionView.SeedAvl=Contribui\u00E7\u00E3o Avl do Seed
+PiecesView.DistributionView.SeedAvl=Contribui\u00E7\u00E3o M\u00E9dia da Semente
change.url.msg.title=Mudar URL para '%1'
UpdateWindow.columns.size=Tamanho
ConfigView.label.openmytorrents=Abrir 'Meus Torrents' ao iniciar
@@ -3507,11 +3538,11 @@ TableColumn.header.tag.downlimit={TableColumn.header.maxdownspeed}
ClientStats.column.percent=%
DHTView.general.leaves=Leaves\:
ColumnSetup.availcolumns=Dispon\u00EDveis %1 colunas
-subscript.add.title=Instalar a Subscri\u00E7\u00E3o?
+subscript.add.title=Instalar Assinatura?
MainWindow.menu.plugins.installPlugins=Assistente de Instala\u00E7\u00E3o...
MyTorrentsView.menu.setSpeed.multi=%1 em %2 vagas de %3
ConfigView.section.connection.prefer.udp=Preferir conex\u00F5es UDP
-ConfigView.label.seeding.numPeersAsFullCopy=Fingir que h\u00E1 1 c\u00F3pia completa para cada\n(0 \: N\u00E3o Fingir)
+ConfigView.label.seeding.numPeersAsFullCopy=Fingir que h\u00E1 1 c\u00F3pia completa para cada\n(0 \: Sem Fingir)
ConfigView.section.ipfilter.clear.on.reload=Limpar flitros quando recarregar. Duranteo o processo recarga, os IPs n\u00E3o ser\u00E3o bloqueados. Se desmarcado, recente desbloqueios n\u00E3o ter\u00E3o efeito at\u00E9 reiniciar.
columnChooser.columnname=Nome da Coluna
OpenTorrentWindow.mb.openError.title=Erro ao Abrir
@@ -3536,7 +3567,7 @@ MainWindow.upgrade.hint2=Dica\:\tSe voc\u00EA deseja fechar o Vuze mais tarde, p
#
OpenTorrentWindow.title=Abrir Torrent(s)
MainWindow.upgrade.hint1=Dica\:\tPressionando Terminar faz tudo automaticamente
-TableColumn.header.peers=Peers
+TableColumn.header.peers=Pares
PiecesView.completed=Completos
Peers.column.network=Rede
Button.search=Procurar
@@ -3544,14 +3575,15 @@ splash.plugin.init=Inicializando o Plugin\:
platform.win32.baddll.sarah=fritz\! camada de aplica\u00E7\u00E3o firewall
MainWindow.menu.speed_limits.load=Aplicar...
device.model.num=N\u00FAmero do modelo
-Peers.column.UpRatio.info=A propor\u00E7\u00E3o "Enviado por voc\u00EA \: Enviado por outros" do Peer
+Peers.column.UpRatio.info=Propor\u00E7\u00E3o "Enviado de voc\u00EA \: Enviado de outros" por Pares
ConfigView.section.style.customDateFormat=Formato de data personalizado
ConfigView.label.mindownloads=M\u00EDn. de downloads simult\u00E2neos
mdi.entry.plus.free=Vuze Plus
Browser.popup.error.no.access=Um ocorreu enquanto tentava acessar um recurso remoto.\nPor favor tente de novo mais tarde.\n
ConfigView.label.lh.info=Por padr\u00E3o o lan\u00E7amento de um arquivo usa o aplicativo registrado para o tipo de arquivo.\nSubstituir esse comportamento, definindo aplica\u00E7\u00F5es expl\u00EDcitas para extens\u00F5es de arquivo dadas [lista separada por v\u00EDrgula].
+label.no.peers.found=Nenhum pares encontrados
ConfigView.label.openbar.incomplete=Barras de download\: auto-abrir downloads
-label.exec.on.assign=Executar Em Atribuir
+label.exec.on.assign=Executar Ao Atribuir
ConfigView.label.max_peers_total=M\u00E1ximo de conex\u00F5es globais [0\: ilimitadas]
plugin.installer.recommended.plugin=Plugin recomendado - por favor reveja e instale se requerido
dlg.try.trial.title=Testar Grava\u00E7\u00E3o de DVD
@@ -3561,7 +3593,7 @@ ConfigView.section.style.defaultSortOrder.desc=Descendente
ConfigView.section.tracker.enableudp=Ativar o protocolo do tracker UDP
ConfigView.section.plugins.magnetplugin=Gerenciador de Magnet URI
FancyMenu.Header.Other=Outros
-Trackers.column.seeds.info=Seeds na multid\u00E3o
+Trackers.column.seeds.info=Sementes na Multid\u00E3o
wizard.maketorrents.autohost=Hospedar o torrent no rastreador embutido
iconBar.editcolumns.tooltip=Configura\u00E7\u00E3o da Coluna
ConfigView.section.style.reOrderDelay.never=Nunca
@@ -3569,7 +3601,7 @@ Formats.units.MiB=Mib
ConfigTransferAutoSpeed.upload.capacity.usage=Uso da Capacidade de Upload
v3.MainWindow.text.my.account=Minha Conta
sidebar.dropdown.tooltip=Mostrar a barra lateral no formato do menu
-PeersView.timetosend=Tempo para re-enviar o Peda\u00E7o (Modo Super-Seed)
+PeersView.timetosend=Tempo para re-enviar o Peda\u00E7o (Modo Super-Semente)
MainWindow.menu.transfers.pausetransfers.keybinding.mac=Meta+.
ConfigView.text.neverIgnore=Nunca Ignorar
TableColumn.header.maxupspeed.info=M\u00E1x de Velocidade de Upload por torrent
@@ -3622,12 +3654,12 @@ MyTorrentsView.dialog.setPosition.title=Definir Posi\u00E7\u00E3o
Button.unmarkSelected=Desmarcar os Selecionados
ConfigView.label.show.cat.but=Exibir Bot\u00F5es de Categorias
ConfigView.label.checkOncompletion=Verificar novamente os peda\u00E7os quando o download for conclu\u00EDdo
-Peers.column.as.info=Detalhes do AS do PEER (Sistema Aut\u00F4nomo)
+Peers.column.as.info=Detalhes do AS do PAR (Sistema Aut\u00F4nomo)
ColumnSetup.chosencolumns=Colunas Escolhidas
PiecesView.priority.info=a prioridade da conclus\u00E3o deste peda\u00E7o, mas n\u00E3o preste muita aten\u00E7\u00E3o a ele
SpeedTestWizard.set.upload.title=Definir Limites de Upload e Download
GeneralView.label.trackerurlupdate=Atualizar o Rastreador
-ConfigView.section.connection.encryption.require_encrypted_transport=Requer transporte encriptado
+ConfigView.section.connection.encryption.require_encrypted_transport=Requer transporte criptografado
DHTTransport.report.rerequest_bit=re-requisitando %1 para %2 de %3
Progress.reporting.no.history.to.display=N\u00E3o h\u00E1 mensagens detalhadas a exibir
OpenTorrentOptions.show.label=Quando abrindo um torrent, exiba esta janela\:
@@ -3666,14 +3698,14 @@ device.mediaserver.remove_all=Remover Todos Servidores de M\u00EDdia
IPChecker.external.loadingwebpage=Carregando p\u00E1gina da web
TableColumn.header.tag.group=Grupo
subscriptions.config.autostart.min=S\u00F3 come\u00E7am se >\= MB [0\: ilimitado]
-azsubs.contextmenu.lookupassoc=Procurar as associa\u00E7\u00F5es das subscri\u00E7\u00F5es
+azsubs.contextmenu.lookupassoc=Procurar Associa\u00E7\u00F5es com Assinaturas
v3.MainWindow.button.resume=Resumir
-TorrentOptionsView.param.max.seeds=N\u00FAmero m\u00E1ximo de conex\u00F5es de seed [0\: limite de conex\u00F5es]
+TorrentOptionsView.param.max.seeds=N\u00FAmero m\u00E1ximo de conex\u00F5es de sementes [0\: limite de conex\u00F5es]
platform.win32.baddll.iFW_Xfilter=iolo Personal firewall
TableColumn.header.\#=Ordem
dhttracker.tracknormalwhenoffline=S\u00F3 rastrear torrents normais quando o tracker deles est\u00E1 indispon\u00EDvel
MainWindow.menu.file.open.url=&Local...
-Peers.column.peer_byte_id=ID do Peer
+Peers.column.peer_byte_id=ID do Par
MainWindow.menu.file.open.uri=URL, Magnet ou Hash...
torrent.comment.rat2=Coment\u00E1rio(s)\: %1
torrent.comment.rat1=Classifica\u00E7\u00E3o m\u00E9dia\: %1 (pontua\u00E7\u00F5es\: %2)
@@ -3682,12 +3714,12 @@ MainWindow.about.internet.forumdiscussion=F\u00F3runs
pairing.ui.icon.tip=Status da Conex\u00E3o do Vuze Remoto
ConfigView.label.seeding.ignore=Ignorar Regras
ConfigView.section.mode.advanced.text1=Acesso completo para todas as op\u00E7\u00F5es e recursos
-subscript.none.subscribed=Clique para ver as subscri\u00E7\u00F5es dispon\u00EDveis para este conte\u00FAdo
+subscript.none.subscribed=Clique para ver as assinaturas dispon\u00EDveis para este conte\u00FAdo
TableColumn.header.smoothup=Up Suavizado
FilesView.dialog.priority.text=0\=Normal, 1\=Alta, 2\=Alt\u00EDssima...
alert.raised.at.close=(Mensagem do fechamento anterior do Vuze)
SystemTray.menu.closealldownloadbars=Fechar &Todas as Barras de Download
-SpeedTestWizard.finish.panel.max.seeding.upload=M\u00E1x. de upload enquanto ficando de seed \:
+SpeedTestWizard.finish.panel.max.seeding.upload=Velocidade M\u00E1xima de upload enquanto semeando\:
ConfigView.section.ipfilter.persistblocking=Salvar detalhes dos IPs bloqueados durante os rein\u00EDcios
PiecesView.type=Tipo
ConfigView.section.plugins.TrackerWeb=Rastreador de Web
@@ -3739,7 +3771,7 @@ Wizard.Subscription.search.subtitle2.sub1=Filmes em HD, Shows da TV, Filmes, Tra
iconBar.comment=Coment\u00E1rio
azbuddy.chat.title=Chat do Vuze
MainWindow.menu.tools.netstat={Views.plugins.aznetstatus.title}...
-TableColumn.header.DateFileCompleted=Arquivos completos
+TableColumn.header.DateFileCompleted=Arquivo Conclu\u00EDdo
GeneralView.label.updatein=Atualizar em \:
TorrentOptionsView.param.max.uploads=N\u00FAmero m\u00E1ximo de slots de upload [m\u00EDnimo\: 2]
TableColumn.header.device=Dispositivo
@@ -3754,44 +3786,44 @@ azbuddy.addtorrent.title=Confirmar Download?
MyShares.column.category=Categoria
label.fave=Favorito
DHTView.transport.out=Saiu \:
-subs.prop.is_auto=Auto-baixar os novos resultados
+subs.prop.is_auto=Baixar automaticamente os novos resultados
PeersView.menu.snubbed=&Desprezado
ConfigView.section.style.defaultSortOrder=Ordem de Organiza\u00E7\u00E3o Padr\u00E3o
-ConfigView.section.proxy.enable_socks.peer=Ativar o proxying das comunica\u00E7\u00F5es com os peers (apenas para conex\u00F5es de sa\u00EDda) [requer reiniciar]
+ConfigView.section.proxy.enable_socks.peer=Ativar o proxying das comunica\u00E7\u00F5es com os pares (apenas para conex\u00F5es de sa\u00EDda) [requer reiniciar]
Progress.reporting.no.reports.to.display=N\u00E3o h\u00E1 Relat\u00F3rios de Progresso para exibir desta vez
ConfigView.label.xfs.allocation=Alocar novos arquivos usando um m\u00E9todo espec\u00EDfico para o sistema de arquivos XFS
-TableColumn.header.download.info=Quantia de dados recebida do peer
+TableColumn.header.download.info=Quantia de dados recebida do par
label.browser=Navegador
cat.rss.gen=Criar feed local RSS
config.internal.browser=Navegador Interno
SpeedView.stats.currentPing=Ping Atual\:
DownloadManager.error.badsize=Tamanho incorreto
TableColumn.menu.maxuploads=\# Uploads no M\u00E1x.
-TableColumn.header.date_added=Data adicionada
+TableColumn.header.date_added=Data da Adi\u00E7\u00E3o
TableColumn.header.class=Classe
ConfigView.section.connection.advanced.socket.group=Op\u00E7\u00F5es do Socket
ConfigView.section.logging=Registro
speedtest.wizard.title=Teste de Velocidade
ConfigView.section.proxy=Op\u00E7\u00F5es do Proxy
TableColumn.header.tag.uprate={TableColumn.header.upspeed}
-MainWindow.menu.community.wiki=Wiki da &Comunidade
+MainWindow.menu.community.wiki=Comunidade &Wiki && FAQ
ActivityView.legend.peeraverage=M\u00E9dia
subscriptions.rss.enable=Criar Feeds RSS de assinaturas
-MyTrackerView.badnat.info=Seeds/Peers que falharam a uma checagem do NAT, se ativados
+MyTrackerView.badnat.info=Sementes/Pares que tiveram falha na checagem NET, se habilitado
ConfigView.label.bindip.details=Exemplo\: 192.168.1.5;eth0;eth1[2] prender\u00E1 o IP especificado a todos os IPs da 1\u00AA interface e ao 3\u00BA IP da 2\u00AA interface.\nO 1\u00BA IP ser\u00E1 usado para todos os servi\u00E7os, todos os outros s\u00E3o usados s\u00F3 para o balan\u00E7o da carga.\nAs seguintes interfaces est\u00E3o dispon\u00EDveis\:\n%1
ConfigView.section.ipfilter.list.notinrange=n\u00E3o estava em qualquer intervalo
-TableColumn.header.seeds=Seeds
+TableColumn.header.seeds=Sementes
button.columnsetup.tooltip=Configura\u00E7\u00E3o da Coluna
security.crypto.persist_for.session=Esta sess\u00E3o
-wizard.webseed.configuration=Configur\u00E3\u00E7\u00E3o de Seed HTTP
+wizard.webseed.configuration=Configura\u00E7\u00E3o de Semente HTTP
OpenTorrentWindow.mb.notTorrent.text=N\u00E3o p\u00F4de abrir '%1'. N\u00E3o aparenta ser um arquivo .torrent.\n\nAlguns dos dados recebidos\:\n%2
azbuddy.dchat.decentralized=Bate-papo Descentralizado
GeneralView.label.comment=Coment\u00E1rio sobre o Torrent \:
ConfigView.label.save_list.clear=Remover hist\u00F3rico
label.wrap.text=Quebrar texto
remote.pairing.test.unavailable=Oops, n\u00E3o foi poss\u00EDvel determinar sua conex\u00E3o remota. <A HREF\="retry">Try again</A>
-iconBar.switch.tooltip=Escolher a Interface de Usu\u00E1rio do Vuze
-TableColumn.header.seeds.fullcopycalc=%2 c\u00F3pias completas assumidas para %1 peers
+iconBar.switch.tooltip=Escolher a Interface do Vuze
+TableColumn.header.seeds.fullcopycalc=%2 c\u00F3pias completas assumidas para %1 pares
v3.topbar.menu.show.plugin=\u00C1rea dos Plugins
v3.menu.device.exploreTranscodes._windows=Mostrar arquivos no Explorer
devices.contextmenu.od.auto=<Autom\u00E1tico>
@@ -3800,9 +3832,9 @@ ConfigView.section.style.xulRunnerPath=Especificar o caminho do XulRunner / Fire
MyTrackerView.announces=An\u00FAncios
metasearch.template.version.bad=O modelo da busca '%1' n\u00E3o pode ser instalado at\u00E9 que voc\u00EA atualize o Vuze
azbuddy.dchat.copy.channel.url=URL do Canal
-ConfigView.label.minSeedingTime=Tempo m\u00EDnimo para ficar de seed em segundos
+ConfigView.label.minSeedingTime=Tempo m\u00EDnimo de semeamento em segundos
OpenTorrentWindow.torrent.options=As seguintes configura\u00E7\u00F5es se aplicar\u00E3o aos torrents selecionados abaixo\:
-PeersView.upload.info=Seu upload total para o peer.
+PeersView.upload.info=Seu upload total para o par.
MyTrackerView.bytesinave=M\u00E9dia de Entrada
TableColumn.header.CountryFlagSmall.info=Pequena bandeira do pa\u00EDs do par
ConfigView.label.stop.Sleep=Computador em espera
@@ -3814,9 +3846,9 @@ play.select.content=Selecionar Conte\u00FAdo para Reproduzir
menu.plus=Vuze Plus
# %1 = "in kbps" or ""; %2 = "upload" or "download"
MyTorrentsView.dialog.setNumber.text=Insira um n\u00FAmero %1 para mudar %2 para\:
-Plugin.localtracker.autoadd.info=Automaticamente adicionar estes peers locais [';' endere\u00E7os separados, ex\: 1.2.3.4]
+Plugin.localtracker.autoadd.info=Automaticamente adicionar estes pares locais [';' endere\u00E7os separados, ex\: 1.2.3.4]
Trackers.column.status=Status
-PeersView.uploadspeed.info=A sua velocidade de upload para o peer
+PeersView.uploadspeed.info=A sua velocidade de upload para o par
TableColumn.header.down.info=Quantia de dados atuais recebida dos outros usu\u00E1rios
MainWindow.dht.status.tooltip=Quando a Base de Dados Distribu\u00EDda est\u00E1 rodando isto mostra o n\u00BA estimado de usu\u00E1rios atualmente online
azinstancehandler.alert.portclash=Conflito de portas detectado na LAN\: %1 j\u00E1 em uso por outro usu\u00E1rio do Vuze, selecione nova(s) porta(s) aleat\u00F3ria(s) para a escuta TCP / UDP de entrada [entre %2 e %3].
@@ -3828,12 +3860,12 @@ label.n.will.be.downloaded=%1 ir\u00E1 ser baixado
external.browser.manual=Manual
metasearch.addtemplate.dup.title=Modelo Duplicado
ConfigView.section.interface.enabletray=Ativar o Tray do sistema [requer reiniciar]
-PeersView.BlockView.AvailCount=Contagem da Disponibilidade
+PeersView.BlockView.AvailCount=N\u00FAmero de Disponibilidade
iconBar.openFolder.tooltip=Abrir uma Pasta
-Plugin.localtracker.name=Descobridor de Peers em LAN
+Plugin.localtracker.name=Descobridor de Pares em LAN
restart.error.bad=Arquivo de formato ruim para '%1'
CacheView.writes.title=Escritas E/S
-TableColumn.header.peakup=Up Alcan\u00E7ado
+TableColumn.header.peakup=Pico de Up
v3.MainWindow.menu.publish=&Publicar
MainWindow.menu.view.show=Mostrar
configureWizard.transfer2.test.info=Selecione para executar um teste de velocidade abrangente
@@ -3846,18 +3878,19 @@ beta.wizard.forum.url=http\://www.vuze.com/forum_beta.start
ConfigView.section.connection.tcp.enable=Ativar TCP
label.reset.piece=Restaurar Peda\u00E7o
ArchivedFilesView.title.short={FilesView.title.short}
-subscriptions.listwindow.title=Descobridor de Subscri\u00E7\u00F5es
+subscriptions.listwindow.title=Localizador de Assinaturas
splash.initializeGM=Inicializando o Gerenciador Global de Torrents
Peers.column.%=%
MainWindow.menu.tools=&Ferramentas
Peers.column.\#=\#
ConfigView.section.connection.http.enable=Ativar
+label.invalid=Inv\u00E1lido
diagnostics.log_found=O Vuze n\u00E3o fechou apropriadamente. Verifique por quaisquer <A HREF\="%1">arquivos log de diagn\u00F3stico</A>. Tamb\u00E9m leia o artigo do wiki <A HREF\="http\://www.azureuswiki.com/index.php/Vuze_disappears"> Vuze Disappears</A> para mais informa\u00E7\u00E3o.
plugins.basicview.activity=Atividade\:
ArchivedDownloadsView.header={archivedlsview.view.heading}
dlg.auth.denied.line1=Seu C\u00F3digo de Ativa\u00E7\u00E3o do Vuze Plus foi negado. Por favor clique abaixo para obter mais informa\u00E7\u00F5es
natpmp.routeraddress=Endere\u00E7o da esta\u00E7\u00E3o [em branco\: auto]
-Button.availableSubscriptions=Subscri\u00E7\u00F5es Dispon\u00EDveis
+Button.availableSubscriptions=Assinaturas Dispon\u00EDveis
MyTorrentsView.menu.moveDown=&Para Baixo
UpdateWindow.quit=Sair
PeersView.host.info=O nome do servidor do peer, quando dispon\u00EDvel (pode afetar a performance)
@@ -3867,7 +3900,7 @@ DHTView.general.uptime=Tempo de Upload\:
MainWindow.menu.help.support=&Ajuda e Suporte
MyTorrentsView.menu.moveTop=&Topo
ConfigView.label.xfs.allocation.tooltip=Por favor tenha certeza /usr/sbin/xfs_io est\u00E1 apropriadamente instalado no seu sistema. Na maioria das distribui\u00E7\u00F5es Linux, est\u00E1 inclu\u00EDdo no pacote "xfsprogs".
-MyTorrentsView.menu.manual.shared_peers=Manual (pelos peers)
+MyTorrentsView.menu.manual.shared_peers=Manual (pelos pares)
TorrentOptionsView.param.reset.button=Resetar
wizard.multitracker.edit.newtracker=Novo Rastreador
PiecesView.title.full=Peda\u00E7os
@@ -3877,8 +3910,8 @@ ConfigView.section.connection.networks.Public=Rede de IP p\u00FAblica (n\u00E3o
MyTorrentsView.menu.editTracker=&Editar URL(s) do Rastreador
IrcView.privatefrom=De
ConfigView.section.mode.resetdefaults=Redefinir configura\u00E7\u00E3o para valores padr\u00E3o (reiniciar recomendado)
-TableColumn.header.peersources=Fontes Peer
-DHTView.general.live=Ao vivo\:
+TableColumn.header.peersources=Fontes de Par
+DHTView.general.live=Vivo\:
ConfigView.label.moveifsamedrive=Mas somente fa\u00E7a isso quando a fonte e o destino s\u00E3o sistema de arquivos diferentes
configureWizard.file.message3=O Vuze baixar\u00E1 os arquivos em uma pasta espec\u00EDfica, voc\u00EA pode escolher esta pasta aqui\:
subs.prop.is_public=P\u00FAblico
@@ -3899,13 +3932,13 @@ SystemTray.menu.open_global_transfer_bar=Mostrar a Barra de Transfer\u00EAncias
devices.downloading=Baixando
ConfigView.section.stats.graph_update_dividers=Exibir linha vertical a cada 60 segundos
Formats.units.Gbit=Gbit
-TableColumn.header.timesincedownload=Inativo pra Baixo
+TableColumn.header.timesincedownload=Down Ocioso
ConfigView.section.queue.seeding.ignore=Ignorar Regras
-azsubs.contextmenu.addassoc=Adicionar a associa\u00E7\u00E3o de subscri\u00E7\u00E3o
+azsubs.contextmenu.addassoc=Adicionar Associa\u00E7\u00E3o com Assinaturas
ConfigView.section.connection.advanced.mtu=Unidade de Transmiss\u00E3o M\u00E1xima da Linha (MTU)
-Peers.column.Encryption.info=N\u00EDvel da encripta\u00E7\u00E3o em uso
+Peers.column.Encryption.info=N\u00EDvel da criptografia em uso
ConfigView.section.connection.advanced.bind_port=Prender a porta local [0\: desativado]
-tps.tracker.cache1=Peer cache\: usado\=%1
+tps.tracker.cache1=Cache de par\: usado\=%1
aznettorbrowser.install.subtitle=Instalando Plugin do Navegador Tor
MainWindow.dialog.restartconfirmation.title=Reiniciar o Vuze?
ConfigView.section.ipfilter.enable.descriptionCache.tooltip=Quando desatida, as descri\u00E7\u00F5es n\u00E3o ser\u00E3o lembradas
@@ -3916,10 +3949,12 @@ tag.show.stats=Exibir Est\u00E1tisticas das Tags...
MagnetURLHandler.report.error=erro %1
ConfigTransferAutoSpeed.mode=Modo\:
v3.devicesview.infobar.text2=Para transcodificar conte\u00FAdo para um dispositivo, basta arrastar o conte\u00FAdo de sua biblioteca para os dispositivos na barra lateral. Para ver transcodifica conclu\u00EDdas, clique no dispositivo individual na direita.
+label.show.in.tab=Exibir em uma Aba
tag.type.ds.err={ManagerItem.error}
azbuddy.os_not_avail=N\u00E3o Dispon\u00EDvel
MyTorrentsView.menu.torrent.dl=Link de Download do Torrent
-TableColumn.header.downloadspeedoverall.info=Taxa de download estimada do peer
+privacy.view.public.anon=P\u00FAblico/An\u00F4nimo Misturado
+TableColumn.header.downloadspeedoverall.info=Taxa de download estimada do par
OpenTorrentWindow.mb.existingFiles.partialList=(Lista Parcial. Mais arquivos j\u00E1 existem)
wizard.maketorrent.filesize=Tamanho do(s) Arquivo(s)
DHTView.operations.store=Armazenar
@@ -3954,21 +3989,21 @@ importTorrentWizard.torrentfile.browse=Navegar
label.force.piece=For\u00E7ar Peda\u00E7o
Peers.column.%.info=Porcentagem do torrent que o peer baixou at\u00E9 agora
upnp.info=Universal Plug and Play (UPnP) permite o mapeamento autom\u00E1tico de portas nos roteadores com UPnP ativado.
-TableColumn.header.chat.msg.count.info=Contagem de mensagens de outros usu\u00E1rios (tirando as suas)
+TableColumn.header.chat.msg.count.info=N\u00FAmero de mensagens de outros usu\u00E1rios (as suas n\u00E3o contam)
ConfigView.section.file.hashchecking.smallestfirst=Re-verificar os downloads menores primeiro
TableColumn.header.profile=Dispositivo
label.popups=Popups
config.external.browser.switch.feature=Recurso
label.clickone=Clique em um
-PeersView.title.short=Peers
-ConfigView.label.seeding.rankType.tooltip=Torrents mais altos no ranking s\u00E3o iniciados automaticamente.\nQuando outro torrent obt\u00EAm um rank maior, o de menor rank para e volta pra fila.\n\nApenas torrents em um estado Na Fila est\u00E3o dispon\u00EDveis para in\u00EDcio autom\u00E1tico.\nTorrents parados nunca s\u00E3o iniciados automaticamente.
+PeersView.title.short=Pares
+ConfigView.label.seeding.rankType.tooltip=Torrents com raking mais altos s\u00E3o iniciados automaticamente.\nQuando outro torrent obt\u00EAm um rank maior, o de menor rank para e volta pra fila.\n\nApenas torrents em um estado Na Fila est\u00E3o dispon\u00EDveis para in\u00EDcio autom\u00E1tico.\nTorrents parados nunca s\u00E3o iniciados automaticamente.
OpenTorrentWindow.torrentLocation=Arquivos Torrent\:
network.admin.binding.state=Liga\u00E7\u00F5es\: %1, for\u00E7adas\=%2
-ConfigView.section.tracker.maxpeersreturned=M\u00E1ximo de peers retornados [0\: ilimitados]
+ConfigView.section.tracker.maxpeersreturned=M\u00E1ximo de pares retornados [0\: ilimitados]
label.none={PeersView.uniquepiece.none}
v3.MainWindow.xofx=%1 de %2
MyTorrentsView.menu.setpriority.high=&Alta
-ConfigView.label.seeding.autoReposition.tooltip=Se ativado, a ordem dos torrents (a coluna '\#') ser\u00E1 alterada para combinar com aquela do Rank do Seeding\nIsto \u00E9 \u00FAtil se voc\u00EA n\u00E3o gosta de ver os n\u00FAmeros do Rank de Seeding, mas ainda quer saber a ordem na qual os torrents completados ser\u00E3o iniciados.
+ConfigView.label.seeding.autoReposition.tooltip=Se ativado, a ordem dos torrents (a coluna '\#') ser\u00E1 alterada para combinar com aquela do Rank de Semeamento\nIsto \u00E9 \u00FAtil se voc\u00EA n\u00E3o gosta de ver os n\u00FAmeros do Rank de Semeamento, mas ainda quer saber a ordem na qual os torrents completados ser\u00E3o iniciados.
MyTorrentsView.menu.open=&Abrir Arquivo
label.routing=Roteamento
GeneralView.label.updatein.querying=Requisitando...
@@ -3994,13 +4029,13 @@ MagnetPlugin.decentral_backup_disabled=<backup descentralizado desativado>
v3.MainWindow.menu.home=&Painel
MainWindow.nat.status.tooltip.probok=Para alcan\u00E7ar foi OK, contudo sem conex\u00F5es de entrada TCP recentes
device.config.xcode.workdir=Padr\u00E3o diret\u00F3rio de trabalho para arquivos transcodificados
-ConfigView.label.queue.maxactivetorrentswhenseeding=M\u00E1x. s\u00F3 quando ficando de seed [0\:ilimitados]
+ConfigView.label.queue.maxactivetorrentswhenseeding=M\u00E1x. quando s\u00F3 ficar semeando [0\:ilimitados]
DHTView.activity.type=Tipo
button.add.container=Adic. Container
ConfigView.section.ipfilter.blockedinfo=IPs que foram bloqueados pelos filtros de IP
-ConfigView.section.Pairing=Emparelhamento
+ConfigView.section.Pairing=Pareando
TableColumn.header.azsubs.ui.column.subs.info=Bot\u00E3o que permite a voc\u00EA subscrever ao feed contendo os torrents relacionados
-security.crypto.badpw=A senha suprima estava incorreta
+security.crypto.badpw=A senha fornecida estava incorreta
MyTorrentsView.menu.thisColumn.autoTooltip=Sempre exibir dicas
Button.bar.hide=Esconder
alert.copy.on.comp.done=Download %1\nArquivos copiados com sucesso para '%2'
@@ -4023,29 +4058,29 @@ device.quit.transcoding.title=Transcodificar em andamento
dht.status.disabled=Desabilitado, distributed database n\u00E3o est\u00E1 dispon\u00EDvel
DHTView.operations.failed=Falhou
Views.plugins.IRC.title=IRC - Suporte T\u00E9cnico Online
-TableColumn.header.Thumbnail.info=A imagem do thumbnail para o conte\u00FAdo do Vuze; para todos os outros conte\u00FAdos o sistema operacional est\u00E1 fornecendo estes \u00EDcones.
+TableColumn.header.Thumbnail.info=A imagem miniatura para o conte\u00FAdo do VUZE; para todos os outros conte\u00FAdos o sistema operacional ir\u00E1 prover esses \u00EDcones
UpdateMonitor.messagebox.verification.failed.text=Verifica\u00E7\u00E3o da '%1' falhou\: %2
DownloadActivityView.title.short={TableColumn.header.Speed}
-subscriptions.column.name=Subscri\u00E7\u00E3o
+subscriptions.column.name=Assinatura
subscriptions.column.new.info=Indica se h\u00E1 um ou mais resultados novos
azbuddy.ui.menu.dec=Decriptar a \u00C1rea de Transfer\u00EAncia
-Peers.column.peer_id=ID do Peer
+Peers.column.peer_id=ID do Par
MyTorrentsView.menu.restore.and=Restaurar e...
ManagerItem.allocating=Alocando
core.shutdown.alert=Ac\u00E7\u00E3o '%1' desencadeada como %2
TableColumn.header.max_sr={max.sr.window.title}
Sidebar.beta.title=Programa Beta
-seedmore.uploadmore=Ter uma propor\u00E7\u00E3o de compartilhamento inferior a 100% n\u00E3o \u00E9 uma boa coisa para a rede BitTorrent.\nVoc\u00EA deveria deixar este torrente ficar de seed um pouco mais.\nVoc\u00EA tem certeza que voc\u00EA quer prosseguir?
+seedmore.uploadmore=Ter uma propor\u00E7\u00E3o de compartilhamento inferior a 100% n\u00E3o \u00E9 uma boa coisa para a rede BitTorrent.\nVoc\u00EA deveria deixar este torrent semeando um pouco mais.\nVoc\u00EA tem certeza que voc\u00EA quer prosseguir?
MyTorrentsView.dialog.setNumber.inKbps=em %1
device.hide=Ocultar Dispositivo
priority.normal=Prioridade normal
MyTorrents.items.UpSpeedLimit.unlimited=Ilimitado
MainWindow.about.section.internet=Internet
TableColumn.header.smootheta.info=Velocidade TEC Suavizado {smooth.config}
-Plugin.localtracker.enable=Ativar o descobridor de peers na LAN
-ConfigView.section.tracker.separatepeerids=Usar diferentes identidades de peer para o rastreador e para a comunica\u00E7\u00E3o de dados
+Plugin.localtracker.enable=Ativar o descobridor de pares na LAN
+ConfigView.section.tracker.separatepeerids=Usar diferentes identidades de pares para o rastreador e para a comunica\u00E7\u00E3o de dados
ipCheckerWizard.service=Servi\u00E7o
-OpenTorrentWindow.mb.notValid.text=N\u00E3o p\u00F4de abrir o torrent '%1'. Se voc\u00EA est\u00E1 abrindo no modo ficar de seed, por favor tenha certeza de que os arquivos de dados do torrent existem.
+OpenTorrentWindow.mb.notValid.text=N\u00E3o p\u00F4de abrir o torrent '%1'. Se voc\u00EA est\u00E1 abrindo no modo de semeamento, por favor tenha certeza de que os arquivos de dados do torrent existem.
ConfigView.section.interface.resetassoc=Redefinir associa\u00E7\u00F5es de arquivos do explorer (.torrent)
SpeedView.stats.session.tooltip=Total (Protocolo)
security.certcreate.city=Cidade ou Localidade
@@ -4058,11 +4093,11 @@ TableColumn.header.smoothdown.info=Velocidade de Download Suavizado {smooth.conf
SpeedTestWizard.finish.panel.max.upload=Upload m\u00E1x\:
ConfigView.label.allowsameip.tooltip=S\u00F3 marque se voc\u00EA PRECISA.\nEsta \u00E9 uma prote\u00E7\u00E3o contra leechers (quando desativado).
device.error.xcodefail=Convers\u00E3o Falhou
-TableColumn.header.timesinceupload=Inativo pra Cima
+TableColumn.header.timesinceupload=Up Ocioso
ConfigView.label.seeding.rankType.none.tooltip=Ordem baseada na coluna \#
device.od.error.notfound=Dispositivo parece estar offline
ConfigView.section.transfer.autospeed.info=A auto-velocidade ajusta automaticamente o limite da velocidade de upload para evitar sobrecarregar a conex\u00E3o de rede.\n\nEstes limites s\u00F3 ser\u00E3o aplicados quando a velocidade autom\u00E1tica de upload estiver ativada e tamb\u00E9m requer que a base de dados distribu\u00EDda esteja ativada.\n
-sidebar.LibraryCD.tooltip=Tem %1 completo torrent(s), %2 dos quais est\u00E1/est\u00E3o semeando
+sidebar.LibraryCD.tooltip=Tem %1 completo torrent(s), %2 dos quais atualmente est\u00E1/est\u00E3o semeando
dlg.auth.success.subtitle=Parab\u00E9ns\!
exportTorrentWizard.exportfile.path=Caminho
pairing.srp.setpw.doit=Mudar
@@ -4074,12 +4109,13 @@ ConfigView.label.maxuploadswhenbusymin=Velocidade m\u00E1xima de upload por torr
MainWindow.menu.beta.off=Deixe Programa Beta ...
ConfigView.section.style.alwaysRefreshMyTorrents=Sempre atualizar Meus Torrents
FancyMenu.Header.Control=Controle
-TableColumn.header.lan.info=Bandeira indicando se o peer est\u00E1 na sua LAN
+TableColumn.header.lan.info=Bandeira indicando se o par est\u00E1 na sua LAN
PeersView.port=Porta
Button.set=Alterar
webui.group.access=Controle de Acesso
dlg.auth.install.failed.title=Falha na Ativa\u00E7\u00E3o
ConfigView.label.password=Proteger o Vuze usando uma senha\n- Ser\u00E1 perguntado(a) quando des-iconificar e quando iniciado.
+label.show.icon.area=Exibir na \u00E1rea do \u00EDcone
configureWizard.transfer2.current=<Configura\u00E7\u00E3o Atual>
wizard.multitracker.edit.deletegroup=Apagar
Button.close=Fechar
@@ -4104,7 +4140,7 @@ security.certcreate.firstlastname=Primeiro e \u00FAltimo nome
ConfigView.section.style.colorOverride.progressBar=Barra de Progresso
MyTorrentsView.menu.host=&Servidor...
SpeedView.stats.downloaded=Baixado (Protocolo)
-SpeedTestWizard.abort.message.not.unchoked=N\u00E3o p\u00F4de baixar de quaisquer dos peers como nunca foi desobstru\u00EDdo por eles
+SpeedTestWizard.abort.message.not.unchoked=N\u00E3o p\u00F4de baixar de quaisquer dos pares como nunca foi desobstru\u00EDdo por eles
Subscription.menu.remove=Apagar
ConfigView.label.maxdownloads.tooltip=Voc\u00EA sempre ser\u00E1 capaz de baixar ativamente o n\u00FAmero que voc\u00EA p\u00F4r aqui, com uma exce\u00E7\u00E3o.\nUma combina\u00E7\u00E3o de Primeira Prioridade do torrent completado pode tomar o controle de um slot de download ativo se absolutamente necess\u00E1rio.
ConfigView.section.tracker.extensions=Extens\u00F5es
@@ -4113,16 +4149,18 @@ DiskManager.error.nospace=Espa\u00E7o em disco insuficiente
OpenTorrentWindow.torrentTable.name=Nome
ConfigView.label.seeding.firstPriority.following=os/dos seguintes\:
ConfigView.section.security.toolsinfo=Arquivos JAR assinados s\u00E3o usados para ajudar alguns plugins, por exemplo o Swing Web Interface (quando configurado para faz\u00EA-lo).\nPara assinar arquivos JAR \u00E9 necess\u00E1rio ter accesso ao arquivo 'tools.jar' que vem com a instala\u00E7\u00E3o do Sun JDK (n\u00E3o do JRE).\nSe voc\u00EA s\u00F3 tiver instalado o JRE ent\u00E3o por favor instale o JDK.\nNormalmente o Vuze pode achar o arquivo para voc\u00EA. Entretanto, se isto falhar [...]
+label.enable=Habilitar
+privacy.view.non.local.peer=Conex\u00E3o n\u00E3o-local de entrada foi detectada
ConfigView.label.watchtorrentfolder.tooltip=Procurar por novos .torrents regularmente
TableColumn.header.sizewithdnd=Tamanho do Torrent
ConfigView.section.file.resume.recheck.all=Quando der pau-reiniciar verificar o arquivo inteiro por peda\u00E7os completados (De outro modo apenas peda\u00E7os ativos do \u00FAltimo salvamento s\u00E3o verificados)
-ConfigView.section.connection.peersource.PeerExchange=Supridas por outro peer
+ConfigView.section.connection.peersource.PeerExchange=Supridas por outro par
v3.MainWindow.button.viewdetails=Ver Detalhes
ConfigView.label.xfer.bias_up=Aumentar velocidades de download pela polariza\u00E7\u00E3o de upload capacidade de downloads incompletos
general.na.short=N/A
label.copy.on.comp=Copiar Quando Completo
ColumnSetup.title=Configura\u00E7\u00E3o das Colunas para '%1'
-ConfigView.section.stats.hours=h
+ConfigView.section.stats.hours=hr
ConfigTransferAutoSpeed.log.button=Log
TableColumn.header.torrentfileindex.info=\u00CDndice do arquivo no torrent
ConfigView.label.seeding.firstPriority.ignore=Ignorar as regras de Primeira Prioridade acima para\:
@@ -4135,12 +4173,12 @@ MainWindow.menu.file.closetab.keybinding=Meta+W
platform.win32.baddll.SBLSP=Speedbit Acelerador de v\u00EDdeo
updater.cant.write.to.app.details=A pasta "%1" n\u00E3o pode ser escrita.\n\nIsto impedir\u00E1 que atualiza\u00E7\u00F5es futuras do software sejam aplicadas.\n\nPor favor <a href\="http\://www.azureuswiki.com/index.php/Failed_Update">veja o wiki para detalhes</a>.
ClientStats.title.full=Estatus do Cliente
-Trackers.column.peers.info=Peers retornado pelo tracker
+Trackers.column.peers.info=Pares retornado pelo rastreador
splash.loadIpFilters=Carregando os Filtros de IP..
-MyTorrentsView.menu.peersource=Fontes Peer
+MyTorrentsView.menu.peersource=Fontes de Pares
dht.diagnostics.group=Diagn\u00F3sticos
OpenTorrentFileView.header={ConfigView.section.files}
-ManagerItem.seeding=Ficando de seed
+ManagerItem.seeding=Semeando
ConfigView.label.autoopen.dl={ManagerItem.downloading}
pairing.last.error=\u00DAltimo erro
SpeedView.stats.ratio=Propor\u00E7\u00E3o
@@ -4148,6 +4186,7 @@ FilesView.click=Clicar...
ConfigView.section.connection.serverport.wiki=Escolhas de boas portas
MagnetPlugin.decentral_disabled=<rastreamento descentralizado desativado>
SystemTray.menu.resumetransfers=Resumir Transfer\u00EAncias
+label.incoming={tps.type.incoming}
devices.od.idle=Ocioso
IPChecker.external.analysingresponse=Analisando resposta
upnp.ignorebaddevices.alert=O dispositivo UPnP no local %1 est\u00E1 sendo ignorado devido a repetidas falhas. Veja a configura\u00E7\u00E3o do plugin UPnP para op\u00E7\u00F5es com respeit a esta a\u00E7\u00E3o.
@@ -4180,9 +4219,9 @@ installPluginsWizard.mode.list=Pela lista do sourceforge.net
MyTorrentsView.menu.rename.displayed.enter.title=Renomear o Nome Exibido
external.browser.system=Padr\u00E3o do Computador
ConfigView.section.style.status.show_nat=Status do NAT
-ConfigView.section.tracker.seedretention=M\u00E1ximo de seeds retidos por torrent [0\: ilimitados]
+ConfigView.section.tracker.seedretention=M\u00E1ximo de sementes retidos por torrent [0\: ilimitados]
ConfigView.label.ratio=propor\u00E7\u00E3o
-OpenTorrentWindow.mb.badSize.text='%1' n\u00E3o \u00E9 '%2' e n\u00E3o pode ser usado para ficar de seed
+OpenTorrentWindow.mb.badSize.text='%1' n\u00E3o \u00E9 '%2' e n\u00E3o pode ser usado para semeamento
OpenTorrentWindow.addPosition=Posi\u00E7\u00E3o na Fila
ConfigView.section.tracker.nonblockingconcmax=M\u00E1x. de conex\u00F5es coincidentes [0\: ilimitadas]
TableColumn.header.up.info=Quantia de dados atuais enviada para outros usu\u00E1rios
@@ -4192,7 +4231,7 @@ label.tracker.templates=Modelos de Rastreador
SpeedTestWizard.set.upload.bytes.per.sec=kBytes/seg
ConfigView.label.saveresumeinterval=Atualizar os dados de resumo a cada
ConfigView.section.interface.enabletray._mac=Ativar o \u00CDcone da Barra de Status [requer reiniciar]
-TableColumn.header.downloadspeed.info=Taxa da qual n\u00F3s estamos recebendo do peer
+TableColumn.header.downloadspeed.info=Taxa da qual n\u00F3s estamos recebendo do par
OpenTorrentWindow.pastearea=Digite a URL, magnet link, ou hash\:
label.udp_probe=Examinar UDP
MainWindow.upgrade.downloadingfrom=Baixando de \:
@@ -4200,14 +4239,14 @@ exportTorrentWizard.torrentfile.message=Selecione o arquivo torrent para exporta
ConfigView.section.dns.url=http\://wiki.vuze.com/w/ug_options \# DNS
pairing.server.warning.title=Mensagem do Servidor de emparelhamento
TableColumn.header.swarm_average_speed=Velocidade M\u00E9dia da Multid\u00E3o
-PeersView.ip.info=IP do peer
+PeersView.ip.info=IP do par
DevicesOD.column.od_completion=Progresso da Tranfer\u00EAncia
OpenTorrentWindow.mb.alreadyExists.title=O torrent j\u00E1 existe
MyTorrentsView.menu.restore={br.restore}
MyTorrents.column.ColumnProgressETA.compon=Completado em %1
azbuddy.enable_cat_pub=Tags/Categorias P\u00FAblicas para TODOS seus amigos possam assinar para (Separado por ",")
MainWindow.menu.speed_limits.wiki.url=http\://wiki.vuze.com/w/speed_limit_scheduler
-importTorrentWizard.process.inputfilebad.title=Arquivo de Importa\u00E7\u00E3o Inv\u00E1lido
+importTorrentWizard.process.inputfilebad.title=Importar Arquivo Inv\u00E1lido
TableColumn.header.torrentspeed=Velocidade
MainWindow.dialog.restartconfirmation.text=Voc\u00EA realmente quer reiniciar o Vuze?
PluginDeprecation.view=Debug do Plugin
@@ -4219,14 +4258,14 @@ label.no.connections=Sem conex\u00F5es
MyTorrentsView.menu.forceStart=&For\u00E7ar In\u00EDcio
MainWindow.menu.speed_limits.info.curr=Configura\u00E7\u00F5es atuais
devices.turnon.title=Ativar Suporte \u00E0 Dispositivo
-TableColumn.header.secondsseeding=Fazendo Seed Por
+TableColumn.header.secondsseeding=Semeando Por
MainWindow.about.internet.sourceforge=P\u00E1gina do Projeto no Sourceforge
-v3.mb.delPublished.title=Parar de Ficar de Seed com este Conte\u00FAdo
+v3.mb.delPublished.title=Parar Conte\u00FAdo de Semeamento
configureWizard.transfer2.rate.unchanged=Configura\u00E7\u00F5es atuais ser\u00E3o usadas
ConfigView.pluginlist.column.type.builtIn=Embutido
sharing.progress.title=Progresso do Compartilhamento
SpeedTestWizard.name.conf.level.high=Alta
-label.outgoing=Sa\u00EDda
+label.outgoing=Saindo
PluginDeprecation.log.details=---------\nIDENTIFICADOR\: %1\nCONTE\u00DADO\: %2\n\n*** COME\u00C7AR A RASTREAR ***\n%3*** FINALIZAR O RASTREAMENTO ***\n\n
TableColumn.header.fileext.info=Tipo de arquivo/extens\u00E3o de arquivo prim\u00E1rio do download
platform.win32.baddll.mclsp=Mcafee privacy service
@@ -4245,6 +4284,13 @@ dlg.install.azemp.description={dlg.player.install.description}
azbuddy.dchat.pc.enable=Habilitar bate-papo privado
v3.MainWindow.text.log.in=Assinar pra entrar
upnp.trace_to_log=Informa\u00E7\u00E3o de debug completa da sa\u00EDda de dados no log
-label.tag=Etiqueta
+label.tag=Tag
# Used for peers which we can't determine.
PeerSocket.unknown=Desconhecido
+azbuddy.dchat.hasquit=%1 saiu
+label.anon.medium=Anon
+label.public.medium=Pub
+MyTorrentsView.menu.set.resume.complete=Configurar Resumo Completo (Pular Rechecagem)
+msgbox.force.close.text=Outra c\u00F3pia do Vuze parece estar em execu\u00E7\u00E3o\: falhou ao travar arquivo\n\n\u00A0\u00A0\u00A0\u00A0%1\n\nVeja <a href\="http\://wiki.vuze.com/w/Multiple_Copies_Of_Vuze_Running">o wiki</a> para mais informa\u00E7\u00F5es.\n\nVuze ir\u00E1 fechar agora.
+msgbox.force.close.title=Vuze Falhou ao Iniciar
+azbuddy.dchat.welcome.general=Este \u00E9 um canal geral de ajuda e discuss\u00E3o, n\u00E3o direcionado para download espec\u00EDfico.\nN\u00C3O poste sobre downloads espec\u00EDficos aqui - NENHUM pedido de seed, NENHUM problemas de velocidade relacionado a download etc.
diff --git a/azureus2/src/org/gudy/azureus2/plugins/network/IncomingMessageQueue.java b/azureus2/src/org/gudy/azureus2/plugins/network/IncomingMessageQueue.java
index 0584874..5487ac5 100644
--- a/azureus2/src/org/gudy/azureus2/plugins/network/IncomingMessageQueue.java
+++ b/azureus2/src/org/gudy/azureus2/plugins/network/IncomingMessageQueue.java
@@ -19,6 +19,8 @@
package org.gudy.azureus2.plugins.network;
+import java.io.IOException;
+
import org.gudy.azureus2.plugins.messaging.*;
@@ -51,7 +53,7 @@ public interface IncomingMessageQueue {
* Notifty the queue (and its listeners) of a message received externally on the queue's behalf.
* @param message received externally
*/
- public void notifyOfExternalReceive( Message message );
+ public void notifyOfExternalReceive( Message message ) throws IOException;
public int getPercentDoneOfCurrentMessage();
diff --git a/azureus2/src/org/gudy/azureus2/pluginsimpl/local/network/IncomingMessageQueueImpl.java b/azureus2/src/org/gudy/azureus2/pluginsimpl/local/network/IncomingMessageQueueImpl.java
index 2d87091..733ebad 100644
--- a/azureus2/src/org/gudy/azureus2/pluginsimpl/local/network/IncomingMessageQueueImpl.java
+++ b/azureus2/src/org/gudy/azureus2/pluginsimpl/local/network/IncomingMessageQueueImpl.java
@@ -19,6 +19,7 @@
package org.gudy.azureus2.pluginsimpl.local.network;
+import java.io.IOException;
import java.util.HashMap;
import org.gudy.azureus2.plugins.messaging.*;
@@ -100,7 +101,7 @@ public class IncomingMessageQueueImpl implements IncomingMessageQueue {
}
- public void notifyOfExternalReceive( Message message ) {
+ public void notifyOfExternalReceive( Message message ) throws IOException{
if( message instanceof MessageAdapter ) {
//the message must have been originally created by core and wrapped
//so just use original core message...i.e. unwrap out of MessageAdapter
diff --git a/azureus2/src/org/gudy/azureus2/pluginsimpl/local/peers/PeerForeignDelegate.java b/azureus2/src/org/gudy/azureus2/pluginsimpl/local/peers/PeerForeignDelegate.java
index 2b4f5c7..1af0802 100644
--- a/azureus2/src/org/gudy/azureus2/pluginsimpl/local/peers/PeerForeignDelegate.java
+++ b/azureus2/src/org/gudy/azureus2/pluginsimpl/local/peers/PeerForeignDelegate.java
@@ -669,6 +669,12 @@ PeerForeignDelegate
return( true );
}
+ public String
+ getNetwork()
+ {
+ return( AENetworkClassifier.categoriseAddress( getIp()));
+ }
+
public PEPeerStats
getStats()
{
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/Alerts.java b/azureus2/src/org/gudy/azureus2/ui/swt/Alerts.java
index 71969b5..7e32ec7 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/Alerts.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/Alerts.java
@@ -22,7 +22,6 @@ import java.util.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
-
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.logging.ILogAlertListener;
@@ -32,6 +31,7 @@ import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.ui.swt.mainwindow.SWTThread;
import org.gudy.azureus2.ui.swt.shells.MessageSlideShell;
+import com.aelitis.azureus.core.util.CopyOnWriteList;
import com.aelitis.azureus.util.MapUtils;
/**
@@ -55,13 +55,13 @@ public class Alerts
private static AEMonitor alert_history_mon = new AEMonitor("Alerts:H");
- private static ArrayList<AlertHistoryListener> listMessageHistoryListeners = new ArrayList<AlertHistoryListener>(1);
+ private static CopyOnWriteList<AlertHistoryListener> listMessageHistoryListeners = new CopyOnWriteList<AlertHistoryListener>(1);
private static boolean initialisation_complete = false;
private static volatile boolean stopping;
- private static List<AlertListener> listeners = new ArrayList<AlertListener>();
+ private static CopyOnWriteList<AlertListener> listeners = new CopyOnWriteList<AlertListener>();
private Alerts() {
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapper.java b/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapper.java
index 0c5234b..376c1d2 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapper.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapper.java
@@ -20,6 +20,7 @@
package org.gudy.azureus2.ui.swt;
+import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.CloseWindowListener;
import org.eclipse.swt.browser.LocationListener;
import org.eclipse.swt.browser.OpenWindowListener;
@@ -54,11 +55,17 @@ BrowserWrapper
if ( use_fake ){
- return( new BrowserWrapperFake( composite, style ));
+ return( new BrowserWrapperFake( composite, style, null ));
}else{
- return( new BrowserWrapperSWT( composite, style ));
+ try{
+ return( new BrowserWrapperSWT( composite, style ));
+
+ }catch( SWTError error ){
+
+ return( new BrowserWrapperFake( composite, style, error ));
+ }
}
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapperFake.java b/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapperFake.java
index 2392ee8..18a59d1 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapperFake.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/BrowserWrapperFake.java
@@ -25,6 +25,7 @@ package org.gudy.azureus2.ui.swt;
import java.util.*;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.CloseWindowListener;
import org.eclipse.swt.browser.LocationEvent;
import org.eclipse.swt.browser.LocationListener;
@@ -38,13 +39,17 @@ import org.eclipse.swt.browser.WindowEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
+import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.ui.swt.mainwindow.ClipboardCopy;
@@ -71,7 +76,8 @@ BrowserWrapperFake
protected
BrowserWrapperFake(
Composite _parent,
- int style )
+ int style,
+ SWTError _failure )
{
parent = _parent;
@@ -79,24 +85,61 @@ BrowserWrapperFake
browser.setBackground( Colors.white );
GridLayout layout = new GridLayout();
- layout.numColumns = 1;
+ layout.numColumns = 3;
browser.setLayout(layout);
- Label label = new Label(browser, SWT.WRAP);
- Messages.setLanguageText(label, "browser.internal.disabled.info");
- label.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ));
- label.setBackground( Colors.white );
-
+ if ( _failure == null ){
+
+ Label label = new Label(browser, SWT.WRAP);
+ Messages.setLanguageText(label, "browser.internal.disabled.info");
+ GridData grid_data = new GridData( GridData.FILL_HORIZONTAL );
+ grid_data.horizontalSpan = 3;
+ label.setLayoutData( grid_data );
+ label.setBackground( Colors.white );
+
+ label = new Label(browser, SWT.NULL);
+ Messages.setLanguageText(label, "browser.internal.disabled.reenable");
+
+ final Button button = new Button( browser, SWT.NULL );
+ Messages.setLanguageText(button, "label.enable");
+
+ button.addSelectionListener(
+ new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ button.setEnabled( false );
+ COConfigurationManager.setParameter( "browser.internal.disable", false );
+ }
+ });
+
+ label = new Label(browser, SWT.NULL);
+ grid_data = new GridData( GridData.FILL_HORIZONTAL );
+ label.setLayoutData( grid_data );
+
+ }else{
+
+ Label label = new Label(browser, SWT.WRAP);
+ Messages.setLanguageText(label, "browser.internal.failed.info", new String[]{ Debug.getNestedExceptionMessage( _failure )});
+ GridData grid_data = new GridData( GridData.FILL_HORIZONTAL );
+ grid_data.horizontalSpan = 3;
+ label.setLayoutData( grid_data );
+ label.setBackground( Colors.white );
+ }
+
+ // details
+
Composite details = new Composite( browser, SWT.BORDER );
layout = new GridLayout();
layout.numColumns = 2;
details.setLayout(layout);
- details.setLayoutData( new GridData( GridData.FILL_BOTH ));
+ GridData grid_data = new GridData( GridData.FILL_BOTH );
+ grid_data.horizontalSpan = 3;
+ details.setLayoutData( grid_data);
details.setBackground( Colors.white );
// url
- label = new Label(details, SWT.NULL );
+ Label label = new Label(details, SWT.NULL );
label.setText( "URL" );
label.setLayoutData( new GridData());
label.setBackground( Colors.white );
@@ -122,7 +165,7 @@ BrowserWrapperFake
}
});
- GridData grid_data = new GridData(GridData.FILL_HORIZONTAL);
+ grid_data = new GridData(GridData.FILL_HORIZONTAL);
grid_data.horizontalIndent = 10;
link_label.setLayoutData(grid_data);
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/Main.java b/azureus2/src/org/gudy/azureus2/ui/swt/Main.java
index 45e90b0..38d272a 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/Main.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/Main.java
@@ -263,10 +263,16 @@ Main
StartSocket ss = new StartSocket(args);
- if( !ss.sendArgs() ) { //arg passing attempt failed, so start core anyway
+ if ( !ss.sendArgs()){
+
+ //arg passing attempt failed, so start core anyway
+
another_instance = false;
- String msg = "There appears to be another program process already listening on socket [127.0.0.1: "+Constants.INSTANCE_PORT+"].\nLoading of torrents via command line parameter will fail until this is fixed.";
- System.out.println( msg );
+
+ String msg = "There appears to be another process already listening on socket [127.0.0.1:"+Constants.INSTANCE_PORT+"].\n\nLocate and terminate the other program or change the control port - <a href=\"http://wiki.vuze.com/w/Commandline_options#Changing_the_Control_Port\">see the wiki for details</a>.\n\nIf you don't then bad things will happen!";
+
+ System.err.println( msg );
+
Logger.log(new LogAlert(LogAlert.REPEATABLE, LogAlert.AT_WARNING, msg));
}
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/OpenTorrentWindow.java b/azureus2/src/org/gudy/azureus2/ui/swt/OpenTorrentWindow.java
deleted file mode 100644
index 70ce3da..0000000
--- a/azureus2/src/org/gudy/azureus2/ui/swt/OpenTorrentWindow.java
+++ /dev/null
@@ -1,3381 +0,0 @@
-/*
- * OpenTorrentWindow.java
- *
- * Created on February 23, 2004, 4:09 PM
- *
- * Copyright (C) Azureus Software, Inc, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details ( see the LICENSE file ).
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package org.gudy.azureus2.ui.swt;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.*;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.gudy.azureus2.core3.config.COConfigurationManager;
-import org.gudy.azureus2.core3.config.StringIterator;
-import org.gudy.azureus2.core3.config.StringList;
-import org.gudy.azureus2.core3.disk.DiskManagerFileInfo;
-import org.gudy.azureus2.core3.download.DownloadManager;
-import org.gudy.azureus2.core3.download.DownloadManagerInitialisationAdapter;
-import org.gudy.azureus2.core3.download.DownloadManagerState;
-import org.gudy.azureus2.core3.global.GlobalManager;
-import org.gudy.azureus2.core3.global.GlobalManagerEvent;
-import org.gudy.azureus2.core3.internat.LocaleTorrentUtil;
-import org.gudy.azureus2.core3.internat.MessageText;
-import org.gudy.azureus2.core3.ipfilter.IpFilterManagerFactory;
-import org.gudy.azureus2.core3.torrent.TOTorrent;
-import org.gudy.azureus2.core3.torrent.TOTorrentException;
-import org.gudy.azureus2.core3.torrent.TOTorrentFile;
-import org.gudy.azureus2.core3.torrentdownloader.TorrentDownloader;
-import org.gudy.azureus2.core3.torrentdownloader.TorrentDownloaderCallBackInterface;
-import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.plugins.PluginInterface;
-import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;
-import org.gudy.azureus2.ui.swt.mainwindow.Colors;
-import org.gudy.azureus2.ui.swt.mainwindow.TorrentOpener;
-import org.gudy.azureus2.ui.swt.shells.MessageBoxShell;
-import org.gudy.azureus2.ui.swt.shells.MessageSlideShell;
-
-import com.aelitis.azureus.core.AzureusCore;
-import com.aelitis.azureus.core.AzureusCoreFactory;
-import com.aelitis.azureus.core.vuzefile.VuzeFile;
-import com.aelitis.azureus.core.vuzefile.VuzeFileComponent;
-import com.aelitis.azureus.core.vuzefile.VuzeFileHandler;
-import com.aelitis.azureus.ui.UserPrompterResultListener;
-import com.aelitis.azureus.ui.common.updater.UIUpdatable;
-import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
-import com.aelitis.azureus.ui.swt.imageloader.ImageLoader;
-import com.aelitis.azureus.ui.swt.uiupdater.UIUpdaterSWT;
-
-/**
- * Torrent Opener Window.
- *
- * @author TuxPaper
- *
- * TODO Category Option
- */
-public class OpenTorrentWindow
- implements TorrentDownloaderCallBackInterface, UIUpdatable
-{
-
- /**
- * We prevent users from unselecting small files to prevent them missing
- * out "signature" files from trackers (.nfo file, readme file etc)
- *
- * We define two constants to control this - one defines what a small file
- * is, and the other defines whether we believe a torrent has signature
- * files or not - we do this by seeing how many small files the torrent has.
- *
- * If it has several small files, then it would be silly for us to assume
- * that the torrent consists of multiple signature files.
- *
- * Note: I (amc1) have disabled this now, because it can force users who may want
- * to only download one file to download those small files, which may not be in
- * an overlapping piece. Since I've now seen comments from people who've complained
- * about this, I'm disabling it.
- */
- //private final static int MIN_NODOWNLOAD_SIZE = 64 * 1024;
- //private final static int MAX_NODOWNLOAD_COUNT = 3;
- private final static int MIN_BUTTON_HEIGHT = -1;
-
- private final static String PARAM_DEFSAVEPATH = "Default save path";
-
- private final static String PARAM_MOVEWHENDONE = "Move Completed When Done";
-
- private static final String PARAM_VIEWMODE = "OpenTorrentWindow.viewMode";
-
- private final static String MSG_ALREADY_EXISTS = "OpenTorrentWindow.mb.alreadyExists";
-
- private final static String MSG_ALREADY_EXISTS_NAME = MSG_ALREADY_EXISTS
- + ".default.name";
-
- private final static int STARTMODE_QUEUED = 0;
-
- private final static int STARTMODE_STOPPED = 1;
-
- private final static int STARTMODE_FORCESTARTED = 2;
-
- private final static int STARTMODE_SEEDING = 3;
-
- private final static int QUEUELOCATION_TOP = 0;
-
- private final static int QUEUELOCATION_BOTTOM = 1;
-
- private final static String[] startModes = {
- "queued",
- "stopped",
- "forceStarted",
- "seeding"
- };
-
- private final static String[] queueLocations = {
- "first",
- "last"
- };
-
- /** Only one window, since it can handle multiple torrents */
- private static OpenTorrentWindow stOpenTorrentWindow = null;
-
- // SWT Stuff
- private Shell shell;
-
- private Table dataFileTable;
- private TableEditor dataFileTableEditor;
-
- private Table torrentTable;
-
- private Button ok;
-
- private Combo cmbDataDir;
-
- private Composite cSaveTo;
-
- private Combo cmbStartMode = null;
-
- private Combo cmbQueueLocation = null;
-
- // Link to the outside
- private GlobalManager gm;
-
- // Internal Stuff
-
- /** TorrentFileInfo list. All dataFiles currently in table, same order */
- private ArrayList dataFiles = new ArrayList();
-
- /** TorrentInfo list. All torrents to open, same order as table */
- private ArrayList torrentList = new ArrayList();
-
- /** List of torrents being downloaded. Stored so we don't close window
- * until they are done/aborted.
- */
- private ArrayList<TorrentDownloader> downloaders = new ArrayList<TorrentDownloader>();
-
- private boolean bOverrideStartModeToStopped = false;
-
- private boolean bDefaultForSeeding;
-
- /** Things to be disposed of when window closes */
- private ArrayList disposeList = new ArrayList();
-
- private boolean bClosed = false;
-
- /** Shell to use to open children (FileDialog, etc) */
- private Shell shellForChildren;
-
- private String sDestDir;
-
- protected boolean bSkipDataDirModify = false;
-
- private StringList dirList;
-
- private Label dataFileTableLabel;
-
- private Composite diskspaceComp;
-
- /**
- * A counter to track torrent file downloads that are still active;
- * this is purely used to enable/disable the OK button
- */
- private int activeTorrentCount = 0;
-
- /**
- *
- * @param parent
- * @param gm
- * @param sPathOfFilesToOpen
- * @param sFilesToOpen
- * @param bDefaultStopped
- * @param bForSeeding
- * @param bPopupOpenURL
- */
- private synchronized static final void invoke(Shell parent, GlobalManager gm,
- String sPathOfFilesToOpen, String[] sFilesToOpen,
- boolean bDefaultStopped, boolean bForSeeding,
- boolean bPopupOpenURL, boolean forceOpen ){
-
- String saveSilentlyDir = null;
-
- if (stOpenTorrentWindow == null) {
- boolean bMustOpen = (sPathOfFilesToOpen == null && sFilesToOpen == null)
- || bForSeeding || forceOpen;
- if (!bMustOpen) {
- saveSilentlyDir = getSaveSilentlyDir();
- bMustOpen = saveSilentlyDir == null;
- }
-
- stOpenTorrentWindow = new OpenTorrentWindow(parent, gm, bMustOpen);
- } else {
- if (stOpenTorrentWindow.shell != null)
- stOpenTorrentWindow.shell.forceActive();
- }
-
- if (stOpenTorrentWindow != null) {
- // local var because static may get set o null
- OpenTorrentWindow openTorrentWindow = stOpenTorrentWindow;
- openTorrentWindow.bOverrideStartModeToStopped = bDefaultStopped;
- openTorrentWindow.bDefaultForSeeding = bForSeeding;
- if (sFilesToOpen != null || sPathOfFilesToOpen != null) {
- // If none of the files sent to us were valid files, don't open the
- // window
- if (!bPopupOpenURL
- && openTorrentWindow.addTorrents(sPathOfFilesToOpen, sFilesToOpen) == 0
- && openTorrentWindow.torrentList.size() == 0
- && openTorrentWindow.downloaders.size() == 0) {
- openTorrentWindow.close(true, true);
- return;
- }
- }
-
- if (bPopupOpenURL)
- openTorrentWindow.browseURL( false );
-
- if (saveSilentlyDir != null) {
- openTorrentWindow.sDestDir = saveSilentlyDir;
- for (int i = 0; i < openTorrentWindow.torrentList.size(); i++) {
- final TorrentInfo info = (TorrentInfo) openTorrentWindow.torrentList.get(i);
- info.renameDuplicates();
- }
-
- openTorrentWindow.openTorrents();
- openTorrentWindow.close(true, false);
- }
- }
- }
-
- /**
- *
- * @param parent
- * @param gm
- */
- private synchronized static final void invoke(final Shell parent,
- GlobalManager gm) {
- invoke(parent, gm, null, null, false, false, false, false);
- }
-
- private synchronized static final void invokeURLPopup(final Shell parent,
- GlobalManager gm) {
- invoke(parent, gm, null, null, false, false, true, false );
- }
-
- /**
- *
- * @param parent
- * @param gm
- * @param bOpenWindow
- */
- private OpenTorrentWindow(final Shell parent, GlobalManager gm,
- boolean bOpenWindow) {
- this.gm = gm;
-
- sDestDir = COConfigurationManager.getStringParameter(PARAM_DEFSAVEPATH);
-
- if (bOpenWindow)
- openWindow(parent);
- else
- shellForChildren = parent;
- }
-
- private void openWindow(Shell parent) {
- boolean bTorrentInClipboard = false;
- GridData gridData;
- Label label;
- Composite cArea;
-
- shell = ShellFactory.createShell(parent, SWT.RESIZE | SWT.DIALOG_TRIM);
-
- shellForChildren = shell;
-
- shell.setText(MessageText.getString("OpenTorrentWindow.title"));
- Utils.setShellIcon(shell);
-
- GridLayout layout = FixupLayout(new GridLayout(), false);
- shell.setLayout(layout);
- shell.addListener(SWT.Resize, new Listener() {
- public void handleEvent(Event e) {
- resizeTables(3);
- }
- });
-
- Clipboard clipboard = new Clipboard(shell.getDisplay());
-
- String sClipText = (String) clipboard.getContents(TextTransfer.getInstance());
- if (sClipText != null)
- bTorrentInClipboard = addTorrentsFromTextList(sClipText, true) > 0;
-
- // label = new Label(shell, SWT.BORDER | SWT.WRAP);
- // Messages.setLanguageText(label, "OpenTorrentWindow.message");
- // gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- // label.setLayoutData(gridData);
-
- // Torrents
- // ========
-
- Composite cButtons = new Composite(shell, SWT.NONE);
- RowLayout rLayout = new RowLayout(SWT.HORIZONTAL);
- rLayout.marginBottom = 0;
- rLayout.marginLeft = 0;
- rLayout.marginRight = 0;
- rLayout.marginTop = 0;
- cButtons.setLayout(rLayout);
-
- // Buttons for tableTorrents
-
- Button browseTorrent = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(browseTorrent, "OpenTorrentWindow.addFiles");
- browseTorrent.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- FileDialog fDialog = new FileDialog(shell, SWT.OPEN | SWT.MULTI);
- fDialog.setFilterExtensions(new String[] {
- "*.torrent",
- "*.tor",
- Constants.FILE_WILDCARD
- });
- fDialog.setFilterNames(new String[] {
- "*.torrent",
- "*.tor",
- Constants.FILE_WILDCARD
- });
- fDialog.setFilterPath(TorrentOpener.getFilterPathTorrent());
- fDialog.setText(MessageText.getString("MainWindow.dialog.choose.file"));
- String fileName = TorrentOpener.setFilterPathTorrent(fDialog.open());
- if (fileName != null) {
- addTorrents(fDialog.getFilterPath(), fDialog.getFileNames());
- }
- }
- });
-
- Utils.setGridData(cButtons, GridData.FILL_HORIZONTAL, browseTorrent,
- MIN_BUTTON_HEIGHT);
-
- Button browseURL = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(browseURL, "OpenTorrentWindow.addFiles.URL");
- browseURL.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- browseURL( false );
- }
- });
-
- Button browseMagnet = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(browseMagnet, "OpenTorrentWindow.addFiles.magnet");
- browseMagnet.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- browseURL( true );
- }
- });
-
- Button browseFolder = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(browseFolder, "OpenTorrentWindow.addFiles.Folder");
- browseFolder.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- DirectoryDialog fDialog = new DirectoryDialog(shell, SWT.NULL);
- fDialog.setFilterPath(TorrentOpener.getFilterPathTorrent());
- fDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.folder"));
- String path = TorrentOpener.setFilterPathTorrent(fDialog.open());
- if (path != null) {
- addTorrents(path, null);
- }
- }
- });
-
- if (bTorrentInClipboard) {
- Button pasteOpen = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(pasteOpen,
- "OpenTorrentWindow.addFiles.Clipboard");
- pasteOpen.setToolTipText(sClipText);
- pasteOpen.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- Clipboard clipboard = new Clipboard(shell.getDisplay());
-
- String sClipText = (String) clipboard.getContents(TextTransfer.getInstance());
- if (sClipText != null) {
- addTorrentsFromTextList(sClipText.trim(), false);
- }
- }
- });
- }
-
- Group gTorrentsArea = new Group(shell, SWT.NONE);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- gTorrentsArea.setLayoutData(gridData);
- layout = FixupLayout(new GridLayout(), true);
- gTorrentsArea.setLayout(layout);
- Messages.setLanguageText(gTorrentsArea, "OpenTorrentWindow.torrentLocation");
-
- Composite cTorrentList = new Composite(gTorrentsArea, SWT.NONE);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cTorrentList.setLayoutData(gridData);
-
- createTorrentListArea(cTorrentList);
-
- Composite cTorrentOptions = new Composite(gTorrentsArea, SWT.NONE);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cTorrentOptions.setLayoutData(gridData);
- layout = FixupLayout(new GridLayout(), true);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- cTorrentOptions.setLayout(layout);
-
- label = new Label(cTorrentOptions, SWT.NONE);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- label.setLayoutData(gridData);
- Messages.setLanguageText(label, "OpenTorrentWindow.torrent.options");
-
- int userMode = COConfigurationManager.getIntParameter("User Mode");
- if (userMode > 0) {
- Composite cTorrentModes = new Composite(cTorrentOptions, SWT.NONE);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cTorrentModes.setLayoutData(gridData);
- layout = new GridLayout();
- layout.numColumns = 4;
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- cTorrentModes.setLayout(layout);
-
- label = new Label(cTorrentModes, SWT.NONE);
- gridData = new GridData(GridData.VERTICAL_ALIGN_CENTER);
- label.setLayoutData(gridData);
- Messages.setLanguageText(label, "OpenTorrentWindow.startMode");
-
- cmbStartMode = new Combo(cTorrentModes, SWT.BORDER | SWT.READ_ONLY);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cmbStartMode.setLayoutData(gridData);
- updateStartModeCombo();
- cmbStartMode.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setSelectedStartMode(cmbStartMode.getSelectionIndex());
- }
- });
-
- label = new Label(cTorrentModes, SWT.NONE);
- gridData = new GridData(GridData.VERTICAL_ALIGN_CENTER);
- label.setLayoutData(gridData);
- Messages.setLanguageText(label, "OpenTorrentWindow.addPosition");
-
- cmbQueueLocation = new Combo(cTorrentModes, SWT.BORDER | SWT.READ_ONLY);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cmbQueueLocation.setLayoutData(gridData);
- updateQueueLocationCombo();
- cmbQueueLocation.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setSelectedQueueLocation(cmbQueueLocation.getSelectionIndex());
- }
- });
- }
-
- // Save To..
- // =========
-
- cSaveTo = new Composite(cTorrentOptions, SWT.NONE);
- layout = FixupLayout(new GridLayout(), false);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.verticalSpacing = 0;
- layout.numColumns = 2;
- cSaveTo.setLayout(layout);
-
- Label lblDataDir = new Label(cSaveTo, SWT.NONE);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.horizontalSpan = 2;
- lblDataDir.setLayoutData(gridData);
- Messages.setLanguageText(lblDataDir, "OpenTorrentWindow.dataLocation");
-
- cmbDataDir = new Combo(cSaveTo, SWT.BORDER);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cmbDataDir.setLayoutData(gridData);
-
- cmbDataDir.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- cmbDataDirChanged();
- }
- });
- cmbDataDir.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- cmbDataDirChanged();
- }
- });
-
- updateDataDirCombo();
- dirList = COConfigurationManager.getStringListParameter("saveTo_list");
- StringIterator iter = dirList.iterator();
- while (iter.hasNext()) {
- String s = iter.next();
- if (!s.equals(sDestDir)) {
- cmbDataDir.add(s);
- }
- }
-
- Button browseData = new Button(cSaveTo, SWT.PUSH);
- Messages.setLanguageText(browseData, "ConfigView.button.browse");
-
- browseData.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- String sSavePath;
- String sDefPath = cmbDataDir.getText();
-
- File f = new File(sDefPath);
- if (sDefPath.length() > 0) {
- while (!f.exists()) {
- f = f.getParentFile();
- if (f == null) {
- f = new File(sDefPath);
- break;
- }
- }
- }
-
- DirectoryDialog dDialog = new DirectoryDialog(shell, SWT.SYSTEM_MODAL);
- dDialog.setFilterPath(f.getAbsolutePath());
- dDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.savepath_forallfiles"));
- sSavePath = dDialog.open();
-
- if (sSavePath != null) {
- cmbDataDir.setText(sSavePath);
- }
- }
- });
-
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cSaveTo.setLayoutData(gridData);
-
- // File List
- // =========
-
- Group gFilesArea = new Group(shell, SWT.NONE);
- gridData = new GridData(GridData.FILL_BOTH);
- gFilesArea.setLayoutData(gridData);
- layout = FixupLayout(new GridLayout(), true);
- gFilesArea.setLayout(layout);
- Messages.setLanguageText(gFilesArea, "OpenTorrentWindow.fileList");
-
- createTableDataFiles(gFilesArea);
-
- // Ok, cancel
-
- cArea = new Composite(shell, SWT.NULL);
- layout = new GridLayout();
- layout.marginHeight = 0;
- layout.numColumns = 2;
- cArea.setLayout(layout);
-
- ok = new Button(cArea, SWT.PUSH);
- Messages.setLanguageText(ok, "Button.ok");
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
- gridData.widthHint = 70;
- ok.setLayoutData(gridData);
- shell.setDefaultButton(ok);
- ok.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- okPressed();
- }
- });
-
- checkSeedingMode();
-
- Button cancel = new Button(cArea, SWT.PUSH);
- Messages.setLanguageText(cancel, "Button.cancel");
- gridData = new GridData();
- gridData.widthHint = 70;
- cancel.setLayoutData(gridData);
- cancel.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- close(true, true);
- }
- });
-
- Utils.setGridData(cArea, GridData.HORIZONTAL_ALIGN_END, ok,
- MIN_BUTTON_HEIGHT);
-
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- if (!bClosed)
- close(false, true);
- }
- });
-
- shell.addListener(SWT.Traverse, new Listener() {
- public void handleEvent(Event e) {
- if (e.detail == SWT.TRAVERSE_ESCAPE) {
- close(true, true);
- }
- }
- });
-
- KeyListener pasteKeyListener = new org.eclipse.swt.events.KeyAdapter() {
- public void keyPressed(KeyEvent e) {
- int key = e.character;
- if ((e.stateMask & SWT.MOD1) != 0 && e.character <= 26
- && e.character > 0)
- key += 'a' - 1;
-
- if ((key == 'v' && (e.stateMask & SWT.MOD1) != 0)
- || (e.keyCode == SWT.INSERT && (e.stateMask & SWT.SHIFT) != 0)) {
- e.doit = false;
-
- // Paste
- Clipboard clipboard = new Clipboard(shell.getDisplay());
-
- String sClipText = (String) clipboard.getContents(TextTransfer.getInstance());
- if (sClipText != null) {
- addTorrentsFromTextList(sClipText, false);
- }
- }
- }
- };
-
- setPasteKeyListener(shell, pasteKeyListener);
-
- Utils.createTorrentDropTarget(shell, false);
- shell.pack();
-
- if (!Utils.linkShellMetricsToConfig(shell, "OpenTorrentWindow")) {
- Utils.centreWindow(shell);
- }
- resizeTables(3);
- shell.open();
-
- if (cSaveTo != null && !cSaveTo.isDisposed()) {
- cSaveTo.setFocus();
- }
-
- try {
- UIUpdaterSWT.getInstance().addUpdater(this);
- } catch (Exception e) {
- Debug.out(e);
- }
- }
-
- protected void cmbDataDirChanged() {
- if (bSkipDataDirModify) {
- return;
- }
- sDestDir = cmbDataDir.getText();
-
- int[] indexes = torrentTable.getSelectionIndices();
- for (int i = 0; i < indexes.length; i++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[i]);
- //if (!info.allFilesMoving())
- info.sDestDir = sDestDir;
- }
-
- torrentTable.clearAll();
-
- checkSeedingMode();
-
- if (!Utils.isCocoa || SWT.getVersion() > 3600) { // See Eclipse Bug 292449
- File file = new File(sDestDir);
- if (!file.isDirectory()) {
- cmbDataDir.setBackground(Colors.colorErrorBG);
- } else {
- cmbDataDir.setBackground(null);
- }
- cmbDataDir.redraw();
- cmbDataDir.update();
- }
- diskFreeInfoRefreshPending = true;
- }
-
- protected void okPressed() {
- if (bClosed) {
- return;
- }
-
- if ((torrentList.size() == 0 && downloaders.size() == 0)) {
- close(true, false);
- return;
- }
-
- File file = new File(cmbDataDir.getText());
-
- File fileDefSavePath = new File(
- COConfigurationManager.getStringParameter(PARAM_DEFSAVEPATH));
-
- if (file.equals(fileDefSavePath) && !fileDefSavePath.isDirectory()) {
- FileUtil.mkdirs(fileDefSavePath);
- }
-
- boolean isPathInvalid = cmbDataDir.getText().length() == 0 || file.isFile();
- if (!isPathInvalid && !file.isDirectory()) {
- MessageBoxShell mb = new MessageBoxShell(SWT.YES | SWT.NO
- | SWT.ICON_QUESTION, "OpenTorrentWindow.mb.askCreateDir",
- new String[] {
- file.toString()
- });
- mb.open(null);
- int doCreate = mb.waitUntilClosed();
-
- if (doCreate == SWT.YES)
- isPathInvalid = !FileUtil.mkdirs(file);
- else {
- cmbDataDir.setFocus();
- return;
- }
- }
-
- if (isPathInvalid) {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK | SWT.ICON_ERROR,
- "OpenTorrentWindow.mb.noGlobalDestDir", new String[] {
- file.toString()
- });
- mb.open(null);
- cmbDataDir.setFocus();
- return;
- }
-
- String sExistingFiles = "";
- int iNumExistingFiles = 0;
- for (int i = 0; i < torrentList.size(); i++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(i);
-
- file = new File(info.getDataDir());
-
- // Need to make directory now, or single file torrent will take the
- // "dest dir" as their filename. ie:
- // 1) Add single file torrent with named "hi.exe"
- // 2) type a non-existant directory c:\test\moo
- // 3) unselect the torrent
- // 4) change the global def directory to a real one
- // 5) click ok. "hi.exe" will be written as moo in c:\test
- if (!file.isDirectory() && !FileUtil.mkdirs(file)) {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK | SWT.ICON_ERROR,
- "OpenTorrentWindow.mb.noDestDir", new String[] {
- file.toString(),
- info.getTorrentName()
- });
- mb.open(null);
- return;
- }
-
- if (!info.isValid) {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK | SWT.ICON_ERROR,
- "OpenTorrentWindow.mb.notValid", new String[] {
- info.getTorrentName()
- });
- mb.open(null);
- return;
- }
-
- TorrentFileInfo[] files = info.getFiles();
- for (int j = 0; j < files.length; j++) {
- TorrentFileInfo fileInfo = files[j];
- if (fileInfo.getDestFileFullName().exists()) {
- sExistingFiles += fileInfo.orgFullName + " - " + info.getTorrentName()
- + "\n";
- iNumExistingFiles++;
- if (iNumExistingFiles > 5) {
- // this has the potential effect of adding 5 files from the first
- // torrent and then 1 file from each of the remaining torrents
- break;
- }
- }
- }
- }
-
- if (sExistingFiles.length() > 0) {
- if (iNumExistingFiles > 5) {
- sExistingFiles += MessageText.getString(
- "OpenTorrentWindow.mb.existingFiles.partialList", new String[] {
- "" + iNumExistingFiles
- })
- + "\n";
- }
-
- MessageBoxShell mb = new MessageBoxShell(SWT.OK | SWT.CANCEL
- | SWT.ICON_WARNING, "OpenTorrentWindow.mb.existingFiles",
- new String[] {
- sExistingFiles
- });
- mb.open(null);
- if (mb.waitUntilClosed() != SWT.OK) {
- return;
- }
- }
-
- String sDefaultPath = COConfigurationManager.getStringParameter(PARAM_DEFSAVEPATH);
-
- if (!sDestDir.equals(sDefaultPath)) {
-
- int limit = COConfigurationManager.getIntParameter( "saveTo_list.max_entries" );
-
- if ( limit >= 0 ){
-
- // Move sDestDir to top of list
-
- // First, check to see if sDestDir is already in the list
- File fDestDir = new File(sDestDir);
- int iDirPos = -1;
- for (int i = 0; i < dirList.size(); i++) {
- String sDirName = dirList.get(i);
- File dir = new File(sDirName);
- if (dir.equals(fDestDir)) {
- iDirPos = i;
- break;
- }
- }
-
- // If already in list, remove it
- if (iDirPos > 0 && iDirPos < dirList.size())
- dirList.remove(iDirPos);
-
- // and add it to the top
- dirList.add(0, sDestDir);
-
-
- // Limit
- if (limit > 0 && dirList.size() > limit){
- dirList.remove(dirList.size() - 1);
- }
-
- // Temporary list cleanup
- try {
- for (int j = 0; j < dirList.size(); j++) {
- File dirJ = new File(dirList.get(j));
- for (int i = 0; i < dirList.size(); i++) {
- try {
- if (i == j)
- continue;
-
- File dirI = new File(dirList.get(i));
-
- if (dirI.equals(dirJ)) {
- dirList.remove(i);
- // dirList shifted up, fix indexes
- if (j > i)
- j--;
- i--;
- }
- } catch (Exception e) {
- // Ignore
- }
- }
- }
- } catch (Exception e) {
- // Ignore
- }
-
- COConfigurationManager.setParameter("saveTo_list", dirList);
- COConfigurationManager.save();
- }
- }
-
- if (COConfigurationManager.getBooleanParameter("DefaultDir.AutoUpdate")){
-
- COConfigurationManager.setParameter(PARAM_DEFSAVEPATH, sDestDir);
- }
-
- openTorrents();
- close(true, false);
- }
-
- /**
- * @param layout
- * @return
- */
- private GridLayout FixupLayout(GridLayout layout, boolean bFixMargin) {
- if (Constants.isOSX) {
- layout.horizontalSpacing = 0;
- layout.verticalSpacing = 0;
-
- if (bFixMargin) {
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- }
- }
-
- return layout;
- }
-
- private void updateDataDirCombo() {
- if (cmbDataDir == null) {
- return;
- }
-
- try {
- bSkipDataDirModify = true;
-
- int[] indexes = torrentTable.getSelectionIndices();
-
- if (indexes.length == 0) {
- if (cmbDataDir.getItemCount() == 0) {
- cmbDataDir.add(sDestDir);
- }
- cmbDataDir.setText(sDestDir);
- return;
- }
-
- boolean allSame = true;
- String lastDir = null;
- for (int i = 0; i < indexes.length; i++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[i]);
- if (lastDir != null && !info.sDestDir.equals(lastDir)) {
- allSame = false;
- break;
- }
- lastDir = info.sDestDir;
- }
-
- if (allSame && lastDir != null) {
- cmbDataDir.setText(lastDir);
- sDestDir = lastDir;
- } else {
- cmbDataDir.setText("");
- }
- } finally {
- bSkipDataDirModify = false;
- }
- }
-
- private void updateStartModeCombo() {
- if (cmbStartMode == null)
- return;
-
- int[] indexes = torrentTable.getSelectionIndices();
- String[] sItemsText = new String[startModes.length];
- int iMaxMatches = 0;
- int iIndexToSelect = getDefaultStartMode();
- for (int i = 0; i < startModes.length; i++) {
- int iMatches = 0;
- for (int j = 0; j < indexes.length; j++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[j]);
- if (info.iStartID == i)
- iMatches++;
- }
-
- if (iMatches > iMaxMatches) {
- iMaxMatches = iMatches;
- iIndexToSelect = i;
- }
-
- String sText = MessageText.getString("OpenTorrentWindow.startMode."
- + startModes[i]);
- if (iMatches > 0)
- sText += " "
- + MessageText.getString("OpenTorrentWindow.xOfTotal", new String[] {
- Integer.toString(iMatches),
- Integer.toString(indexes.length)
- });
- sItemsText[i] = sText;
- }
- cmbStartMode.setItems(sItemsText);
- cmbStartMode.select(iIndexToSelect);
- cmbStartMode.layout(true);
- }
-
- private void updateQueueLocationCombo() {
- if (cmbQueueLocation == null)
- return;
-
- int[] indexes = torrentTable.getSelectionIndices();
- String[] sItemsText = new String[queueLocations.length];
- int iMaxMatches = 0;
- int iIndexToSelect = QUEUELOCATION_BOTTOM;
- for (int i = 0; i < queueLocations.length; i++) {
- int iMatches = 0;
- for (int j = 0; j < indexes.length; j++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[j]);
- if (info.iQueueLocation == i)
- iMatches++;
- }
-
- if (iMatches > iMaxMatches) {
- iMaxMatches = iMatches;
- iIndexToSelect = i;
- }
-
- String sText = MessageText.getString("OpenTorrentWindow.addPosition."
- + queueLocations[i]);
- if (iMatches > 0)
- sText += " "
- + MessageText.getString("OpenTorrentWindow.xOfTotal", new String[] {
- Integer.toString(iMatches),
- Integer.toString(indexes.length)
- });
- sItemsText[i] = sText;
- }
- cmbQueueLocation.setItems(sItemsText);
- cmbQueueLocation.select(iIndexToSelect);
- }
-
- /**
- * @param c
- * @param keyListener
- */
- private void setPasteKeyListener(Control c, KeyListener keyListener) {
- if (!(c instanceof Text) && !(c instanceof Combo)
- && !(c instanceof Composite) || (c instanceof Table)) {
- c.addKeyListener(keyListener);
- }
- if (c instanceof Composite) {
- Control[] controls = ((Composite) c).getChildren();
- for (int i = 0; i < controls.length; i++) {
- setPasteKeyListener(controls[i], keyListener);
- }
- }
- }
-
- private void browseURL( boolean default_magnet ) {
- new OpenUrlWindow(shellForChildren, null, default_magnet, null,
- OpenTorrentWindow.this);
- }
-
- private void close(boolean dispose, boolean bCancel) {
- stOpenTorrentWindow = null;
- // Can't rely on (stOpenTorrentWindow == null) to check if we are closed
- // since another thread may create another OpenTorrentWindow while
- // we are closing this one.
- bClosed = true;
-
- try {
- UIUpdaterSWT.getInstance().removeUpdater(this);
- } catch (Exception e) {
- Debug.out(e);
- }
-
- if (dispose && shell != null && !shell.isDisposed()) {
- // We won't be recalled by disposal hook because we set bClosed
- shell.dispose();
- }
-
- Utils.disposeSWTObjects(disposeList);
-
- if (bCancel) {
-
- List<TorrentDownloader> to_cancel;
-
- synchronized( downloaders ){
-
- to_cancel = new ArrayList<TorrentDownloader>( downloaders );
-
- downloaders.clear();
- }
-
- if (to_cancel.size() > 0){
- for (Iterator iter = to_cancel.iterator(); iter.hasNext();) {
- TorrentDownloader element = (TorrentDownloader) iter.next();
- element.cancel();
- }
- }
-
- for (Iterator iter = torrentList.iterator(); iter.hasNext();) {
- TorrentInfo info = (TorrentInfo) iter.next();
- if (info.bDeleteFileOnCancel) {
- File file = new File(info.sFileName);
- if (file.exists())
- file.delete();
- }
- }
- torrentList.clear();
- }
- }
-
- private void createTorrentListArea(Composite cArea) {
- GridData gridData;
- TableColumn tc;
-
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.numColumns = 2;
- cArea.setLayout(layout);
-
- torrentTable = new Table(cArea, SWT.MULTI | SWT.BORDER
- | SWT.FULL_SELECTION | SWT.VIRTUAL);
- gridData = new GridData(GridData.FILL_HORIZONTAL
- | GridData.VERTICAL_ALIGN_FILL);
- gridData.heightHint = 50;
- gridData.widthHint = 450;
- torrentTable.setLayoutData(gridData);
-
- tc = new TableColumn(torrentTable, SWT.NULL);
- Messages.setLanguageText(tc, "OpenTorrentWindow.torrentTable.name");
- tc.setWidth(150);
- tc = new TableColumn(torrentTable, SWT.NULL);
- Messages.setLanguageText(tc, "OpenTorrentWindow.torrentTable.saveLocation");
- tc.setWidth(150);
- tc = new TableColumn(torrentTable, SWT.NULL);
- Messages.setLanguageText(tc, "OpenTorrentWindow.startMode");
- tc.setWidth(70);
- tc = new TableColumn(torrentTable, SWT.NULL);
- Messages.setLanguageText(tc, "OpenTorrentWindow.addPosition");
- tc.setWidth(80);
-
- if (Utils.LAST_TABLECOLUMN_EXPANDS)
- tc.setData("Width", new Long(80));
-
- torrentTable.addListener(SWT.SetData, new Listener() {
- public void handleEvent(Event event) {
- if (bClosed)
- return;
-
- TableItem item = (TableItem) event.item;
- int index = torrentTable.indexOf(item);
- if (index < 0)
- return;
-
- TorrentInfo info = (TorrentInfo) torrentList.get(index);
-
- item.setText(new String[] {
- info.getTorrentName(),
- info.getDataDir(),
- MessageText.getString("OpenTorrentWindow.startMode."
- + startModes[info.iStartID]),
- MessageText.getString("OpenTorrentWindow.addPosition."
- + queueLocations[info.iQueueLocation])
- });
- if (!info.isValid) {
- item.setForeground(Colors.red);
- Font font = item.getFont();
- FontData[] fd = font.getFontData();
- for (int i = 0; i < fd.length; i++) {
- fd[i].setStyle(SWT.ITALIC);
- }
- font = new Font(item.getDisplay(), fd);
- disposeList.add(font);
- item.setFont(font);
- }
- Utils.alternateRowBackground(item);
- }
- });
-
- torrentTable.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- dataFiles.clear();
- int[] indexes = torrentTable.getSelectionIndices();
- for (int i = 0; i < indexes.length; i++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[i]);
- TorrentFileInfo[] files = info.getFiles();
- dataFiles.addAll(Arrays.asList(files));
- }
-
- updateDataDirCombo();
- updateStartModeCombo();
- updateQueueLocationCombo();
-
- dataFileTable.setItemCount(dataFiles.size());
- dataFileTable.clearAll();
- editCell(-1);
- updateSize();
- resizeTables(2);
- }
- });
-
- torrentTable.addKeyListener(new KeyAdapter() {
- public void keyPressed(KeyEvent e) {
- if (e.character == SWT.DEL) {
- deleteSelected(torrentTable, torrentList);
- e.doit = false;
- }
- }
- });
-
- torrentTable.setHeaderVisible(true);
-
- // Menu for tableTorrents
-
- String sTitle;
- Menu menu = new Menu(torrentTable.getShell());
- MenuItem item;
- sTitle = MessageText.getString("OpenTorrentWindow.startMode");
-
- int userMode = COConfigurationManager.getIntParameter("User Mode");
- for (int i = 0; i < startModes.length; i++) {
- if (i == STARTMODE_FORCESTARTED && userMode == 0)
- continue;
-
- item = new MenuItem(menu, SWT.PUSH);
- item.setData("Value", new Long(i));
- item.setText(sTitle
- + ": "
- + MessageText.getString("OpenTorrentWindow.startMode."
- + startModes[i]));
-
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Long l = (Long) e.widget.getData("Value");
- if (l != null) {
- setSelectedStartMode(l.intValue());
- checkSeedingMode();
- }
- }
- });
- }
-
- item = new MenuItem(menu, SWT.SEPARATOR);
- sTitle = MessageText.getString("OpenTorrentWindow.addPosition");
-
- for (int i = 0; i < queueLocations.length; i++) {
- item = new MenuItem(menu, SWT.PUSH);
- item.setData("Value", new Long(i));
- item.setText(sTitle
- + ": "
- + MessageText.getString("OpenTorrentWindow.addPosition."
- + queueLocations[i]));
-
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Long l = (Long) e.widget.getData("Value");
- if (l != null) {
- setSelectedQueueLocation(l.intValue());
- }
- }
- });
- }
-
- item = new MenuItem(menu, SWT.SEPARATOR);
-
- // ip filter mode
-
- final MenuItem ipf_enable = new MenuItem(menu, SWT.CHECK );
- // steal text
- Messages.setLanguageText(ipf_enable, "MyTorrentsView.menu.ipf_enable");
- ipf_enable.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int[] indexes = torrentTable.getSelectionIndices();
- for (int i = 0; i < indexes.length; i++){
-
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[i]);
-
- info.disableIPFilter = !ipf_enable.getSelection();
- }
- }
- });
-
- menu.addListener(
- SWT.Show,
- new Listener()
- {
- public void
- handleEvent(Event e)
- {
- int[] indexes = torrentTable.getSelectionIndices();
-
- boolean bEnabled = indexes.length > 0 &&
- IpFilterManagerFactory.getSingleton().getIPFilter().isEnabled();
-
- if ( bEnabled ){
- boolean allChecked = true;
- boolean allUnchecked = true;
-
- for (int i = 0; i < indexes.length; i++){
-
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[i]);
-
- boolean b = info.disableIPFilter;
-
- if ( b ){
- allUnchecked = false;
- }else{
- allChecked = false;
- }
- }
-
- boolean bChecked;
-
- if ( allUnchecked ){
- bChecked = true;
- }else if ( allChecked ){
- bChecked = false;
- }else{
- bChecked = false;
- }
-
- ipf_enable.setSelection(bChecked);
- }
-
- ipf_enable.setEnabled(bEnabled);
- }
- });
-
- item = new MenuItem(menu, SWT.PUSH);
- // steal text
- Messages.setLanguageText(item, "MyTorrentsView.menu.remove");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- deleteSelected(torrentTable, torrentList);
- }
- });
-
- item = new MenuItem(menu, SWT.PUSH);
- Messages.setLanguageText(item,
- "OpenTorrentWindow.fileList.changeDestination");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int[] indexes = torrentTable.getSelectionIndices();
- String sDefPath = sDestDir;
-
- for (int i = 0; i < indexes.length; i++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indexes[i]);
-
- TorrentFileInfo[] files = info.getFiles();
- if (files.length == 1 && info.torrent.isSimpleTorrent()) {
- changeFileDestination(new int[] {
- 0
- });
- } else {
- DirectoryDialog dDialog = new DirectoryDialog(shellForChildren,
- SWT.SYSTEM_MODAL);
-
- dDialog.setFilterPath(sDefPath);
- dDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.savepath")
- + " (" + info.getTorrentName() + ")");
- String sNewDir = dDialog.open();
-
- if (sNewDir == null)
- return;
-
- File newDir = new File(sNewDir).getAbsoluteFile();
-
- if(newDir.isDirectory())
- sDefPath = sNewDir;
-
- info.sDestDir = newDir.getParent();
- if (info.sDestDir == null)
- info.sDestDir = newDir.getPath();
- info.sDestSubDir = newDir.getName();
-
- for (int j = 0; j < files.length; j++) {
- TorrentFileInfo fileInfo = files[j];
- fileInfo.setDestFileName(null);
- }
- }
-
- } // for i
-
- checkSeedingMode();
- updateDataDirCombo();
- diskFreeInfoRefreshPending = true;
- }
- });
-
- torrentTable.setMenu(menu);
-
- Composite cTorrentListRight = new Composite(cArea, SWT.NONE);
- gridData = new GridData();
- cTorrentListRight.setLayoutData(gridData);
- RowLayout rLayout = new RowLayout(SWT.VERTICAL);
- rLayout.marginBottom = 0;
- rLayout.marginLeft = 0;
- rLayout.marginRight = 0;
- rLayout.marginTop = 0;
- if (!Constants.isOSX)
- rLayout.spacing = 0;
- rLayout.fill = true;
- cTorrentListRight.setLayout(rLayout);
-
- ImageLoader imageLoader = ImageLoader.getInstance();
-
- Button torMoveUp = new Button(cTorrentListRight, SWT.PUSH);
- imageLoader.setButtonImage(torMoveUp, "up");
- torMoveUp.setToolTipText(MessageText.getString("Button.moveUp"));
- torMoveUp.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- int[] indices = torrentTable.getSelectionIndices();
- if (indices.length == 0)
- return;
-
- Arrays.sort(indices);
- if (indices[0] == 0)
- return;
-
- for (int i = 0; i < indices.length; i++) {
- int pos = indices[i];
- Object save = torrentList.get(pos - 1);
- torrentList.set(pos - 1, torrentList.get(pos));
- torrentList.set(pos, save);
-
- indices[i]--;
- }
- torrentTable.setSelection(indices);
- torrentTable.clearAll();
- }
- });
-
- Button torMoveDown = new Button(cTorrentListRight, SWT.PUSH);
- imageLoader.setButtonImage(torMoveDown, "down");
- torMoveDown.setToolTipText(MessageText.getString("Button.moveDown"));
- torMoveDown.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- int[] indices = torrentTable.getSelectionIndices();
- if (indices.length == 0)
- return;
-
- Arrays.sort(indices);
- int max = indices.length - 1;
- if (indices[max] == torrentList.size() - 1)
- return;
-
- for (int i = max; i >= 0; i--) {
- int pos = indices[i];
- Object save = torrentList.get(pos + 1);
- torrentList.set(pos + 1, torrentList.get(pos));
- torrentList.set(pos, save);
-
- indices[i]++;
- }
- torrentTable.setSelection(indices);
- torrentTable.clearAll();
- }
- });
-
- Button torMoveRemove = new Button(cTorrentListRight, SWT.PUSH);
- torMoveRemove.setToolTipText(MessageText.getString("OpenTorrentWindow.torrent.remove"));
- imageLoader.setButtonImage(torMoveRemove, "delete");
- torMoveRemove.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- deleteSelected(torrentTable, torrentList);
- }
- });
-
- }
-
- /**
- * @param iLocation
- */
- protected void setSelectedQueueLocation(int iLocation) {
- int[] indices = torrentTable.getSelectionIndices();
- for (int i = 0; i < indices.length; i++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indices[i]);
- info.iQueueLocation = iLocation;
- }
- updateQueueLocationCombo();
- torrentTable.clear(indices);
- }
-
- /**
- * @param iStartID
- */
- protected void setSelectedStartMode(int iStartID) {
- int[] indices = torrentTable.getSelectionIndices();
- for (int i = 0; i < indices.length; i++) {
- TorrentInfo info = (TorrentInfo) torrentList.get(indices[i]);
- info.iStartID = iStartID;
- }
-
- checkSeedingMode();
- updateStartModeCombo();
- torrentTable.clear(indices);
- }
-
- private void checkSeedingMode() {
- // Check for seeding
- for (int i = 0; i < torrentList.size(); i++) {
- boolean bTorrentValid = true;
- TorrentInfo info = (TorrentInfo) torrentList.get(i);
-
- if (info.iStartID == STARTMODE_SEEDING) {
- // check if all selected files exist
- TorrentFileInfo[] files = info.getFiles();
- for (int j = 0; j < files.length; j++) {
- TorrentFileInfo fileInfo = files[j];
- if (!fileInfo.bDownload)
- continue;
-
- File file = fileInfo.getInitialLink();
-
- if ( file == null ){
-
- file = fileInfo.getDestFileFullName();
- }
-
- if (!file.exists()) {
- fileInfo.isValid = false;
- bTorrentValid = false;
- } else if (!fileInfo.isValid) {
- fileInfo.isValid = true;
- }
- }
- }
-
- info.isValid = bTorrentValid;
- }
-
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- if (torrentTable != null && !torrentTable.isDisposed()) {
- torrentTable.clearAll();
- }
- if (dataFileTable != null && !dataFileTable.isDisposed()) {
- dataFileTable.clearAll();
- editCell(-1);
- }
- }
- });
- }
-
- private void deleteSelected(Table table, ArrayList list) {
- int[] indexes = table.getSelectionIndices();
- Arrays.sort(indexes);
- for (int i = indexes.length - 1; i >= 0; i--) {
- if (list.get(indexes[i]) instanceof TorrentInfo) {
- TorrentInfo info = (TorrentInfo) list.get(indexes[i]);
- if (info.bDeleteFileOnCancel) {
- File file = new File(info.sFileName);
- if (file.exists())
- file.delete();
- }
- }
- list.remove(indexes[i]);
- }
- table.setItemCount(list.size());
- table.clearAll();
- table.notifyListeners(SWT.Selection, new Event());
- }
-
-
- private void editCell(final int row)
- {
- Text oldEditor = (Text)dataFileTableEditor.getEditor();
- if(row < 0 || row >= dataFileTable.getItemCount())
- {
- if(oldEditor != null && !oldEditor.isDisposed())
- oldEditor.dispose();
- return;
- }
-
-
- final Text newEditor = oldEditor == null || oldEditor.isDisposed() ? new Text(dataFileTable,SWT.BORDER) : oldEditor;
- final TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(row);
- final String uneditedName = file.getDestFileName();
- TableItem item = dataFileTable.getItem(row);
- TableColumn column = dataFileTable.getColumn(EDIT_COLUMN_INDEX);
-
- newEditor.setText(uneditedName);
- newEditor.selectAll();
- newEditor.forceFocus();
- Rectangle leftAlignedBounds = item.getBounds(EDIT_COLUMN_INDEX);
- leftAlignedBounds.width = dataFileTableEditor.minimumWidth = newEditor.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
- if(leftAlignedBounds.intersection(dataFileTable.getClientArea()).equals(leftAlignedBounds))
- dataFileTableEditor.horizontalAlignment = SWT.LEFT;
- else
- dataFileTableEditor.horizontalAlignment = SWT.RIGHT;
-
- dataFileTable.deselectAll();
- dataFileTable.select(row);
- dataFileTable.showItem(item);
- dataFileTable.showColumn(column);
-
- class QuickEditListener implements ModifyListener, SelectionListener, KeyListener, TraverseListener {
- public void modifyText(ModifyEvent e) {
- file.setDestFileName(newEditor.getText());
- try
- {
- file.getDestFileFullName().getCanonicalFile();
- newEditor.setBackground(null);
- } catch (IOException e1)
- {
- newEditor.setBackground(Colors.colorErrorBG);
- }
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- try
- {
- file.getDestFileFullName().getCanonicalFile();
- } catch (IOException e1)
- {
- file.setDestFileName(uneditedName);
- }
- move(row,1,(Text)e.widget);
- }
-
- public void widgetSelected(SelectionEvent e) {}
- public void keyReleased(KeyEvent e) {}
-
- public void keyPressed(KeyEvent e) {
- if(e.keyCode == SWT.ARROW_DOWN || e.keyCode == SWT.ARROW_UP)
- {
- e.doit = false;
- move(row,e.keyCode == SWT.ARROW_DOWN ? 1 : -1,(Text)e.widget);
- }
- }
-
- public void keyTraversed(TraverseEvent e) {
- if(e.detail == SWT.TRAVERSE_ESCAPE || e.detail == SWT.TRAVERSE_RETURN)
- e.doit = false;
- if(e.detail == SWT.TRAVERSE_ESCAPE)
- editCell(-1);
- }
-
- private void move(int oldRow, int offset, Text current)
- {
- current.removeModifyListener(QuickEditListener.this);
- current.removeSelectionListener(QuickEditListener.this);
- current.removeKeyListener(QuickEditListener.this);
- current.removeTraverseListener(QuickEditListener.this);
- editCell(oldRow+offset);
- dataFileTable.clear(oldRow);
- }
-
- }
-
- QuickEditListener listener = new QuickEditListener();
-
- newEditor.addModifyListener(listener);
- newEditor.addSelectionListener(listener);
- newEditor.addKeyListener(listener);
- newEditor.addTraverseListener(listener);
-
- dataFileTableEditor.setEditor(newEditor, dataFileTable.getItem(row), EDIT_COLUMN_INDEX);
- }
-
- private static final int EDIT_COLUMN_INDEX = 1;
-
-
- private void createTableDataFiles(Composite cArea) {
- GridData gridData;
- TableColumn tc;
-
- dataFileTable = new Table(cArea, SWT.BORDER | SWT.CHECK
- | SWT.FULL_SELECTION | SWT.VIRTUAL | SWT.MULTI);
- dataFileTableEditor = new TableEditor(dataFileTable);
- dataFileTableEditor.grabHorizontal = true;
- dataFileTableEditor.minimumWidth = 50;
-
- gridData = new GridData(GridData.FILL_BOTH);
- gridData.heightHint = 80;
- gridData.widthHint = 100;
- dataFileTable.setLayoutData(gridData);
-
-
-
- tc = new TableColumn(dataFileTable, SWT.NULL);
- Messages.setLanguageText(tc, "OpenTorrentWindow.fileTable.fileName");
- tc.setWidth(150);
- tc = new TableColumn(dataFileTable, SWT.NULL);
- Messages.setLanguageText(tc, "OpenTorrentWindow.fileTable.destinationName");
- tc.setWidth(140);
- tc = new TableColumn(dataFileTable, SWT.NULL);
- Messages.setLanguageText(tc, "OpenTorrentWindow.fileTable.size");
- tc.setAlignment(SWT.TRAIL);
- tc.setWidth(90);
-
- if (Utils.LAST_TABLECOLUMN_EXPANDS)
- tc.setData("Width", new Long(90));
-
- final Button[] f_btnSwarmIt = { null };
-
- dataFileTable.addListener(SWT.SetData, new Listener() {
- public void handleEvent(Event event) {
- if (bClosed)
- return;
-
- final TableItem item = (TableItem) event.item;
-
- int index = dataFileTable.indexOf(item);
- final TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(index);
-
- item.setText(new String[] {
- file.orgFullName,
- file.isLinked() ? file.getDestFileFullName().toString() : file.getDestFileName(),
- DisplayFormatters.formatByteCountToKiBEtc(file.lSize)
- });
- if (!file.isValid) {
- item.setForeground(Colors.red);
- Font font = item.getFont();
- FontData[] fd = font.getFontData();
- for (int i = 0; i < fd.length; i++) {
- fd[i].setStyle(SWT.ITALIC);
- }
- font = new Font(item.getDisplay(), fd);
- disposeList.add(font);
- item.setFont(font);
- }
- Utils.alternateRowBackground(item);
- Utils.setCheckedInSetData(item, file.bDownload);
-
- item.setGrayed(!file.okToDisable());
- }
- });
-
- dataFileTable.addSelectionListener(new SelectionAdapter() {
-
- public void widgetSelected(SelectionEvent event) {
- if (event.detail == SWT.CHECK) {
- TableItem item = (TableItem) event.item;
- int index = dataFileTable.indexOf(item);
- TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(index);
- // don't allow disabling of small files
- // XXX Maybe warning prompt instead?
- if (!item.getChecked() && !file.okToDisable())
- item.setChecked(true);
- else
- file.bDownload = item.getChecked();
-
- updateSize();
- }else{
- TableItem[] selected = dataFileTable.getSelection();
-
- boolean enable = selected != null && selected.length == 1;
-
- if ( enable ){
- int index = dataFileTable.indexOf(selected[0]);
- TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(index);
- enable = file.lSize >= 50*1024*1024;
- }
-
- f_btnSwarmIt[0].setEnabled( enable );
- }
- }
-
- });
-
- dataFileTable.addMouseListener(new MouseAdapter() {
- public void mouseDown(MouseEvent e) {
- editCell(-1); // cleanup
- if(e.button != 1)
- return;
-
- TableItem[] items = dataFileTable.getItems();
- boolean found = false;
- int i;
- outer: for (i = 0; i < items.length; i++)
- {
- TableItem item = items[i];
- Rectangle rect = item.getBounds();
- if (e.y < rect.y || (rect.y + rect.height) < e.y)
- continue;
- for (int j = 0; j < dataFileTable.getColumnCount(); j++)
- {
- if (!item.getBounds(j).contains(e.x, e.y))
- continue;
- found = j == EDIT_COLUMN_INDEX;
- break outer;
- }
- }
- if(found)
- editCell(i);
- }
- });
-
-
-
- dataFileTable.setHeaderVisible(true);
-
- Menu menu = new Menu(dataFileTable);
- dataFileTable.setMenu(menu);
-
- MenuItem item;
-
- item = new MenuItem(menu, SWT.PUSH);
- Messages.setLanguageText(item,
- "OpenTorrentWindow.fileList.changeDestination");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int[] indexes = dataFileTable.getSelectionIndices();
- changeFileDestination(indexes);
- }
- });
-
- Composite cBottomArea = new Composite(cArea, SWT.NONE);
- GridLayout gLayout = new GridLayout();
- gLayout.marginHeight = 0;
- gLayout.marginWidth = 0;
- gLayout.numColumns = 2;
- gLayout.verticalSpacing = 0;
- cBottomArea.setLayout(gLayout);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- cBottomArea.setLayoutData(gridData);
-
- Composite cButtons = new Composite(cBottomArea, SWT.NONE);
- RowLayout rLayout = new RowLayout(SWT.HORIZONTAL);
- rLayout.wrap = false;
- rLayout.marginBottom = 0;
- rLayout.marginLeft = 0;
- rLayout.marginRight = 0;
- rLayout.marginTop = 0;
- cButtons.setLayout(rLayout);
- gridData = new GridData(SWT.END, SWT.BEGINNING, false, false);
- gridData.verticalSpan = 2;
- cButtons.setLayoutData(gridData);
-
- Button btnSelectAll = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(btnSelectAll, "Button.selectAll");
- btnSelectAll.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- dataFileTable.selectAll();
- }
- });
-
- Button btnMarkSelected = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(btnMarkSelected, "Button.markSelected");
- btnMarkSelected.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- int[] indexes = dataFileTable.getSelectionIndices();
- for (int i = 0; i < indexes.length; i++) {
- TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(indexes[i]);
- file.bDownload = true;
- }
- dataFileTable.clearAll();
- updateSize();
- }
- });
-
- Button btnUnmarkSelected = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(btnUnmarkSelected, "Button.unmarkSelected");
- btnUnmarkSelected.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- int[] indexes = dataFileTable.getSelectionIndices();
- for (int i = 0; i < indexes.length; i++) {
- TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(indexes[i]);
- if (file.okToDisable())
- file.bDownload = false;
- }
- dataFileTable.clearAll();
- updateSize();
- }
- });
-
- try{
- if ( COConfigurationManager.getBooleanParameter( "rcm.overall.enabled", true )){
- final PluginInterface pi = AzureusCoreFactory.getSingleton().getPluginManager().getPluginInterfaceByID( "aercm" );
-
- if ( pi != null &&
- pi.getPluginState().isOperational() &&
- pi.getIPC().canInvoke( "lookupBySize", new Object[]{ new Long(0)})){
-
-
- Label pad = new Label( cButtons, SWT.NONE );
- pad.setLayoutData( new RowData( 50,0 ));
-
- Button btnSwarmIt = f_btnSwarmIt[0] = new Button(cButtons, SWT.PUSH);
- Messages.setLanguageText(btnSwarmIt, "Button.swarmit");
-
- btnSwarmIt.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- int[] indexes = dataFileTable.getSelectionIndices();
- for (int i = 0; i < indexes.length && i < 32; i++) {
- TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(indexes[i]);
-
- try{
- pi.getIPC().invoke( "lookupBySize", new Object[]{ new Long( file.lSize )});
-
- }catch( Throwable e ){
-
- Debug.out( e );
-
- break;
- }
- }
- }
- });
-
- btnSwarmIt.setEnabled( false );
- }
- }
- }catch( Throwable e ){
-
- }
-
- dataFileTableLabel = new Label(cBottomArea, SWT.WRAP);
- dataFileTableLabel.setAlignment(SWT.RIGHT);
- gridData = new GridData(SWT.END, SWT.BEGINNING, true, false);
- dataFileTableLabel.setLayoutData(gridData);
-
- diskspaceComp = new Composite(cBottomArea, SWT.NONE);
- gLayout = new GridLayout(2, false);
- gLayout.marginHeight = gLayout.marginWidth = 1;
- gLayout.verticalSpacing = 0;
- gLayout.horizontalSpacing = 15;
- diskspaceComp.setLayout(gLayout);
- gridData = new GridData(SWT.END, SWT.BEGINNING, true, false);
- diskspaceComp.setLayoutData(gridData);
-
- }
-
- /**
- * @param indexes
- */
- protected void changeFileDestination(int[] indexes) {
- for (int i = 0; i < indexes.length; i++) {
- TorrentFileInfo fileInfo = (TorrentFileInfo) dataFiles.get(indexes[i]);
- int style = (fileInfo.parent.iStartID == STARTMODE_SEEDING) ? SWT.OPEN
- : SWT.SAVE;
- FileDialog fDialog = new FileDialog(shellForChildren, SWT.SYSTEM_MODAL
- | style);
-
- String sFilterPath = fileInfo.getDestPathName();
- String sFileName = fileInfo.orgFileName;
-
- File f = new File(sFilterPath);
- if (!f.isDirectory()) {
- // Move up the tree until we have an existing path
- while (sFilterPath != null) {
- String parentPath = f.getParent();
- if (parentPath == null)
- break;
-
- sFilterPath = parentPath;
- f = new File(sFilterPath);
- if (f.isDirectory())
- break;
- }
- }
-
- if (sFilterPath != null)
- fDialog.setFilterPath(sFilterPath);
- fDialog.setFileName(sFileName);
- fDialog.setText(MessageText.getString("MainWindow.dialog.choose.savepath")
- + " (" + fileInfo.orgFullName + ")");
- String sNewName = fDialog.open();
-
- if (sNewName == null)
- return;
-
- if (fileInfo.parent.iStartID == STARTMODE_SEEDING) {
- File file = new File(sNewName);
- if (file.length() == fileInfo.lSize)
- fileInfo.setFullDestName(sNewName);
- else {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK,
- "OpenTorrentWindow.mb.badSize", new String[] {
- file.getName(),
- fileInfo.orgFullName
- });
- mb.open(null);
- }
- } else
- fileInfo.setFullDestName(sNewName);
-
- } // for i
-
- checkSeedingMode();
- updateDataDirCombo();
- diskFreeInfoRefreshPending = true;
- }
-
- /**
- * Add Torrent(s) to Window using a text list of files/urls/torrents
- *
- * @param sClipText Text to parse
- * @param bVerifyOnly Only check if there's potential torrents in the text,
- * do not try to add the torrents.
- *
- * @return Number of torrents added or found. When bVerifyOnly, this number
- * may not be exact.
- */
- private int addTorrentsFromTextList(String sClipText, boolean bVerifyOnly) {
- String[] lines = null;
- int iNumFound = 0;
- // # of consecutive non torrent lines
- int iNoTorrentLines = 0;
- // no use checking the whole clipboard (which may be megabytes)
- final int MAX_CONSECUTIVE_NONTORRENT_LINES = 100;
-
- final String[] splitters = {
- "\r\n",
- "\n",
- "\r",
- "\t"
- };
-
- for (int i = 0; i < splitters.length; i++)
- if (sClipText.indexOf(splitters[i]) >= 0) {
- lines = sClipText.split(splitters[i]);
- break;
- }
-
- if (lines == null)
- lines = new String[] {
- sClipText
- };
-
- // Check if URL, 20 byte hash, Dir, or file
- for (int i = 0; i < lines.length; i++) {
- String line = lines[i].trim();
- if (line.startsWith("\"") && line.endsWith("\"")) {
- if (line.length() < 3) {
- line = "";
- } else {
- line = line.substring(1, line.length() - 2);
- }
- }
-
- boolean ok;
-
- if (line.length() == 0 ) {
- ok = false;
- } else if (UrlUtils.isURL(line)) {
- ok = true;
- } else {
- File file = new File(line);
-
- if (!file.exists()) {
- ok = false;
- } else if (file.isDirectory()) {
- if (bVerifyOnly) {
- // XXX Could do a file count here, but the number found is not
- // expected to be an exact number anyway, since we aren't
- // event verifying if they are torrents.
- ok = true;
- } else {
- iNumFound += addTorrents(lines[i], null);
- ok = false;
- }
- } else {
- ok = true;
- }
- }
-
- if (!ok) {
- iNoTorrentLines++;
- lines[i] = null;
- if (iNoTorrentLines > MAX_CONSECUTIVE_NONTORRENT_LINES)
- break;
- } else {
- iNumFound++;
- iNoTorrentLines = 0;
- }
- }
-
- if (bVerifyOnly) {
- return iNumFound;
- }
-
- return addTorrents(null, lines);
- }
-
- /**
- * Add Torrent(s) to window
- *
- * @param sTorrentFilePath
- * @param sTorrentFilenames
- * @return # torrents actually added to list (or downloading)
- */
- private int addTorrents(String sTorrentFilePath, String[] sTorrentFilenames) {
- sTorrentFilePath = ensureTrailingSeparator(sTorrentFilePath);
-
- // Process Directory
- if (sTorrentFilePath != null && sTorrentFilenames == null) {
- File dir = new File(sTorrentFilePath);
- if (!dir.isDirectory())
- return 0;
-
- final File[] files = dir.listFiles(new FileFilter() {
- public boolean accept(File arg0) {
- if (FileUtil.getCanonicalFileName(arg0.getName()).endsWith(".torrent"))
- return true;
- if (FileUtil.getCanonicalFileName(arg0.getName()).endsWith(".tor"))
- return true;
- return false;
- }
- });
-
- if (files.length == 0)
- return 0;
-
- sTorrentFilenames = new String[files.length];
- for (int i = 0; i < files.length; i++)
- sTorrentFilenames[i] = files[i].getName();
- }
-
- int numAdded = 0;
- for (int i = 0; i < sTorrentFilenames.length; i++) {
- if (sTorrentFilenames[i] == null || sTorrentFilenames[i].length() == 0)
- continue;
-
- // Process File
- String sFileName = ((sTorrentFilePath == null) ? "" : sTorrentFilePath)
- + sTorrentFilenames[i];
-
- if (!new File(sFileName).exists()) {
- // Process URL
- String sURL = UrlUtils.parseTextForURL(sTorrentFilenames[i], true);
- if (sURL != null) {
- if (COConfigurationManager.getBooleanParameter("Add URL Silently")) {
- new FileDownloadWindow(shellForChildren, sURL, null, null, null, this);
- } else {
- new OpenUrlWindow(shellForChildren, sURL, false, null, this);
- }
- numAdded++;
- continue;
- }
- }
-
- if (addTorrent(sFileName, sFileName) != null)
- numAdded++;
- }
-
- if (numAdded > 0 && shell != null && torrentTable != null
- && !shell.isDisposed()) {
- int iTotal = torrentList.size();
- torrentTable.setItemCount(iTotal);
- // select the ones we just added
- torrentTable.select(iTotal - numAdded, iTotal - 1);
- torrentTable.clearAll();
- // select doesn't notify listeners? Do it manually.
- torrentTable.notifyListeners(SWT.Selection, new Event());
-
- resizeTables(1);
- checkSeedingMode();
- }
- return numAdded;
- }
-
- private TorrentInfo addTorrent(String sFileName,
- final String sOriginatingLocation) {
- TorrentInfo info = null;
- TOTorrent torrent = null;
- File torrentFile;
- boolean bDeleteFileOnCancel = false;
-
- // Make a copy if user wants that. We'll delete it when we cancel, if we
- // actually made a copy.
- try {
- if (sFileName.startsWith("file://localhost/")) {
- sFileName = UrlUtils.decode(sFileName.substring(16));
- }
-
- final File fOriginal = new File(sFileName);
-
- if (!fOriginal.isFile() || !fOriginal.exists()) {
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- if (shell == null)
- new MessageSlideShell(Display.getCurrent(), SWT.ICON_ERROR,
- "OpenTorrentWindow.mb.openError", fOriginal.toString(), new String[] {
- UrlUtils.decode(sOriginatingLocation),
- "Not a File"
- }, -1 );
- else {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK,
- "OpenTorrentWindow.mb.openError", new String[] {
- sOriginatingLocation,
- "Not a File"
- });
- mb.open(null);
- }
- }
- });
- return null;
- }
-
- if (fOriginal.length() > (sFileName.toLowerCase(Locale.US).endsWith(".vuze")?50*1024*1024L:20*1024*1024L )) {
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- if (shell == null)
- new MessageSlideShell(Display.getCurrent(), SWT.ICON_ERROR,
- "OpenTorrentWindow.mb.openError", fOriginal.toString(), new String[] {
- UrlUtils.decode(sOriginatingLocation),
- "Too large to be a torrent"
- }, -1 );
- else {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK,
- "OpenTorrentWindow.mb.openError", new String[] {
- sOriginatingLocation,
- "Too large to be a torrent"
- });
- mb.open(null);
- }
- }
- });
- return null;
- }
-
- torrentFile = TorrentUtils.copyTorrentFileToSaveDir(fOriginal, true);
- bDeleteFileOnCancel = !fOriginal.equals(torrentFile);
- // TODO if the files are still equal, and it isn't in the save
- // dir, we should copy it to a temp file in case something
- // re-writes it. No need to copy a torrent coming from the
- // downloader though..
- } catch (IOException e1) {
- // Use torrent in wherever it is and hope for the best
- // XXX Should error instead?
- torrentFile = new File(sFileName);
- }
-
- VuzeFileHandler vfh = VuzeFileHandler.getSingleton();
-
- VuzeFile vf = vfh.loadVuzeFile( torrentFile );
-
- if ( vf != null ){
-
- vfh.handleFiles( new VuzeFile[]{ vf }, VuzeFileComponent.COMP_TYPE_NONE );
-
- return null;
- }
-
- // Do a quick check to see if it's a torrent
- if (!TorrentUtil.isFileTorrent(torrentFile, torrentFile.getName(), true )) {
- if (bDeleteFileOnCancel) {
- torrentFile.delete();
- }
- return null;
- }
-
- // Load up the torrent, see it it's real
- try {
- torrent = TorrentUtils.readFromFile(torrentFile, false);
- } catch (final TOTorrentException e) {
-
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- if (shell == null)
- new MessageSlideShell(Display.getCurrent(), SWT.ICON_ERROR,
- "OpenTorrentWindow.mb.openError", Debug.getStackTrace(e),
- new String[] {
- sOriginatingLocation,
- e.getMessage()
- }, -1 );
- else {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK,
- "OpenTorrentWindow.mb.openError", new String[] {
- sOriginatingLocation,
- e.getMessage()
- });
- mb.open(null);
- }
- }
- });
-
- if (bDeleteFileOnCancel)
- torrentFile.delete();
-
- return null;
- }
-
- try {
- HashWrapper hash = torrent.getHashWrapper();
- if (hash != null) {
- for (int i = 0; i < torrentList.size(); i++) {
- try {
- TorrentInfo existing = (TorrentInfo) torrentList.get(i);
- if (existing.torrent.getHashWrapper().equals(hash)) {
- //sExistingName = existing.sOriginatingLocation;
-
- // Exit without warning when it already exists in list
- if (bDeleteFileOnCancel)
- torrentFile.delete();
-
- return null;
- }
- } catch (Exception e) {
- }
- }
- }
- } catch (Exception e) {
- }
-
- String existingName = null;
- DownloadManager existingDownload = null;
-
- // Check if torrent already exists in gm, and add if not
- existingDownload = (gm == null) ? null : gm.getDownloadManager(torrent);
-
- if (existingDownload != null) {
- existingName = existingDownload.getDisplayName();
- }
-
- if (existingName == null) {
- info = new TorrentInfo(torrentFile.getAbsolutePath(), torrent,
- bDeleteFileOnCancel);
- info.sOriginatingLocation = sOriginatingLocation;
- torrentList.add(info);
-
- } else {
-
- final TOTorrent fTorrent = torrent;
- final String fExistingName = existingName;
- final DownloadManager fExistingDownload = existingDownload;
-
- fExistingDownload.fireGlobalManagerEvent( GlobalManagerEvent.ET_REQUEST_ATTENTION );
-
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- boolean can_merge = TorrentUtils.canMergeAnnounceURLs( fTorrent, fExistingDownload.getTorrent());
-
- Shell mainShell = UIFunctionsManagerSWT.getUIFunctionsSWT().getMainShell();
-
- if ( ( Display.getDefault().getActiveShell() == null || !mainShell.isVisible() || mainShell.getMinimized() ) &&
- (!can_merge )){
-
- new MessageSlideShell(Display.getCurrent(), SWT.ICON_INFORMATION,
- MSG_ALREADY_EXISTS, null, new String[] {
- ":" + sOriginatingLocation,
- fExistingName,
- MessageText.getString(MSG_ALREADY_EXISTS_NAME),
- }, new Object[] {
- fExistingDownload
- }, -1 );
- }else{
-
-
- if ( can_merge ){
-
- String text = MessageText.getString(
- MSG_ALREADY_EXISTS + ".text",
- new String[] {
- ":" + sOriginatingLocation,
- fExistingName,
- MessageText.getString(MSG_ALREADY_EXISTS_NAME),
- });
-
- text += "\n\n" + MessageText.getString( "openTorrentWindow.mb.alreadyExists.merge" );
-
- MessageBoxShell mb =
- new MessageBoxShell(
- SWT.YES | SWT.NO,
- MessageText.getString( MSG_ALREADY_EXISTS+".title" ),
- text );
-
- mb.open(
- new UserPrompterResultListener()
- {
- public void
- prompterClosed(
- int result)
- {
- if ( result == SWT.YES ){
-
- TorrentUtils.mergeAnnounceURLs( fTorrent, fExistingDownload.getTorrent());
- }
- }
- });
- }else{
- MessageBoxShell mb =
- new MessageBoxShell(
- SWT.OK,
- MSG_ALREADY_EXISTS,
- new String[] {
- ":" + sOriginatingLocation,
- fExistingName,
- MessageText.getString(MSG_ALREADY_EXISTS_NAME),
- });
- mb.open(null);
- }
- }
- }
- });
-
- if (bDeleteFileOnCancel)
- torrentFile.delete();
- }
-
- return info;
- }
-
- /**
- * Resize the columns of the tables to fit without horizontal scrollbar
- *
- * @param which bitwise field of which table to recalc
- * Bit 0: torrents table
- * Bit 1: Data Files Table
- */
- private void resizeTables(int which) {
- try {
- TableColumn[] tcs;
- if ((which & 1) > 0 && torrentTable != null
- && !torrentTable.isDisposed()) {
- tcs = torrentTable.getColumns();
- int newSize = torrentTable.getClientArea().width - 20;
- int iLength = tcs.length;
- if (Utils.LAST_TABLECOLUMN_EXPANDS) {
- iLength--;
- newSize -= ((Long) tcs[iLength].getData("Width")).intValue();
- }
-
- final int columnToExpand = 1;
-
- for (int i = 0; i < iLength; i++)
- if (i != columnToExpand)
- newSize -= tcs[i].getWidth();
-
- if (newSize > 10)
- tcs[columnToExpand].setWidth(newSize);
- }
-
- // Adjust only first column
- if ((which & 2) > 0 && dataFileTable != null
- && !dataFileTable.isDisposed()) {
- tcs = dataFileTable.getColumns();
- int newSize = dataFileTable.getClientArea().width - 20;
- int iLength = tcs.length;
- if (Utils.LAST_TABLECOLUMN_EXPANDS) {
- iLength--;
- newSize -= ((Long) tcs[iLength].getData("Width")).intValue();
- }
-
- final int columnToExpand = 0;
-
- for (int i = 0; i < iLength; i++)
- if (i != columnToExpand)
- newSize -= tcs[i].getWidth();
-
- if (newSize > 10)
- tcs[columnToExpand].setWidth(newSize);
- }
- } catch (Exception e) {
- // ignore
- e.printStackTrace();
- }
- }
-
- /**
- * Open the torrents already added based on user choices
- *
- * @param sDataDir
- */
- private void openTorrents() {
- Utils.getOffOfSWTThread(new AERunnable() {
- public void runSupport() {
- _openTorrents();
- }
- });
- }
-
- private void _openTorrents() {
- ArrayList addedTorrentsTop = new ArrayList();
-
- for (int i = 0; i < torrentList.size(); i++) {
- final TorrentInfo info = (TorrentInfo) torrentList.get(i);
- try {
- if (info.torrent == null)
- continue;
-
- int iStartState = (info.iStartID == STARTMODE_STOPPED)
- ? DownloadManager.STATE_STOPPED : DownloadManager.STATE_QUEUED;
-
- final TorrentFileInfo[] files = info.getFiles();
-
- byte[] hash = null;
- try {
- hash = info.torrent.getHash();
- } catch (TOTorrentException e1) {
- }
-
- DownloadManager dm = gm.addDownloadManager(info.sFileName, hash, info.sDestDir, info.sDestSubDir, iStartState, true, info.iStartID == STARTMODE_SEEDING, new DownloadManagerInitialisationAdapter()
- {
- public int
- getActions()
- {
- return( ACT_NONE );
- }
-
- public void initialised(DownloadManager dm, boolean for_seeding ) {
- DiskManagerFileInfo[] fileInfos = dm.getDiskManagerFileInfo();
-
- boolean reorder_mode = COConfigurationManager.getBooleanParameter( "Enable reorder storage mode" );
- int reorder_mode_min_mb = COConfigurationManager.getIntParameter( "Reorder storage mode min MB" );
-
- try
- {
- dm.getDownloadState().suppressStateSave(true);
-
- boolean[] toSkip = new boolean[fileInfos.length];
- boolean[] toCompact = new boolean[fileInfos.length];
- boolean[] toReorderCompact = new boolean[fileInfos.length];
-
- int comp_num = 0;
- int reorder_comp_num = 0;
-
- for (int iIndex = 0; iIndex < fileInfos.length; iIndex++)
- {
- DiskManagerFileInfo fileInfo = fileInfos[iIndex];
- if (iIndex >= 0 && iIndex < files.length && files[iIndex].lSize == fileInfo.getLength())
- {
- // Always pull destination file from fileInfo and not from
- // TorrentFileInfo because the destination may have changed
- // by magic code elsewhere
- File fDest = fileInfo.getFile(true);
- if (files[iIndex].isLinked()){
-
- fDest = files[iIndex].getDestFileFullName();
-
- // Can't use fileInfo.setLink(fDest) as it renames
- // the existing file if there is one
-
- dm.getDownloadState().setFileLink( iIndex, fileInfo.getFile(false), fDest);
- }
-
- if (!files[iIndex].bDownload){
-
- toSkip[iIndex] = true;
-
- if (!fDest.exists()){
-
- if ( reorder_mode && ( fileInfo.getLength()/(1024*1024)) >= reorder_mode_min_mb ){
-
- toReorderCompact[iIndex] = true;
-
- reorder_comp_num++;
-
- }else{
-
- toCompact[iIndex] = true;
-
- comp_num++;
- }
- }
- }
- }
- }
-
- if ( comp_num > 0 ){
-
- dm.getDiskManagerFileInfoSet().setStorageTypes(toCompact, DiskManagerFileInfo.ST_COMPACT);
- }
-
- if ( reorder_comp_num > 0 ){
-
- dm.getDiskManagerFileInfoSet().setStorageTypes(toReorderCompact, DiskManagerFileInfo.ST_REORDER_COMPACT );
- }
-
- dm.getDiskManagerFileInfoSet().setSkipped(toSkip, true);
-
- if ( info.disableIPFilter ){
-
- dm.getDownloadState().setFlag( DownloadManagerState.FLAG_DISABLE_IP_FILTER, true );
- }
-
- }finally{
-
- dm.getDownloadState().suppressStateSave(false);
- }
- }
- });
-
- // If dm is null, most likely there was an error printed.. let's hope
- // the user was notified and skip the error quietly.
- // We don't have to worry about deleting the file (info.bDelete..)
- // since gm.addDown.. will handle it.
- if (dm == null)
- continue;
-
- if (info.iQueueLocation == QUEUELOCATION_TOP)
- addedTorrentsTop.add(dm);
-
- if (info.iStartID == STARTMODE_FORCESTARTED) {
- dm.setForceStart(true);
- }
-
- } catch (Exception e) {
- if (shell == null)
- new MessageSlideShell(Display.getCurrent(), SWT.ICON_ERROR,
- "OpenTorrentWindow.mb.openError", Debug.getStackTrace(e),
- new String[] {
- info.sOriginatingLocation,
- e.getMessage()
- }, -1 );
- else {
- MessageBoxShell mb = new MessageBoxShell(SWT.OK, "OpenTorrentWindow.mb.openError",
- new String[] {
- info.sOriginatingLocation,
- e.getMessage()
- });
- mb.open(null);
- }
- }
- }
-
- if (addedTorrentsTop.size() > 0) {
- DownloadManager[] dms = (DownloadManager[]) addedTorrentsTop.toArray(new DownloadManager[0]);
- gm.moveTop(dms);
- }
-
- torrentList.clear();
- }
-
- private int getDefaultStartMode() {
- if (bDefaultForSeeding)
- return STARTMODE_SEEDING;
- return (bOverrideStartModeToStopped || COConfigurationManager.getBooleanParameter("Default Start Torrents Stopped"))
- ? STARTMODE_STOPPED : STARTMODE_QUEUED;
- }
-
- // TorrentDownloaderCallBackInterface
- public void TorrentDownloaderEvent(int state, final TorrentDownloader inf) {
- // This method is run even if the window is closed.
-
- // The default is to delete file on cancel
- // We set this flag to false if we detected the file was not a torrent
- if (!inf.getDeleteFileOnCancel()
- && (state == TorrentDownloader.STATE_CANCELLED
- || state == TorrentDownloader.STATE_ERROR
- || state == TorrentDownloader.STATE_DUPLICATE || state == TorrentDownloader.STATE_FINISHED)) {
-
- activeTorrentCount--;
- enableControl(ok, activeTorrentCount < 1);
-
- // PARG - yes, this code sucks, added some sync here to prvent some errors but obviously
- // it needs a complete rewrite
-
- synchronized( downloaders ){
- if (!downloaders.contains(inf))
- return;
- downloaders.remove(inf);
- }
-
- File file = inf.getFile();
- // we already know it isn't a torrent.. we are just using the call
- // to popup the message
- TorrentUtil.isFileTorrent(file, inf.getURL(), true );
- if (file.exists()) {
- file.delete();
- }
- return;
- }
-
- if (state == TorrentDownloader.STATE_INIT) {
- activeTorrentCount++;
- enableControl(ok, activeTorrentCount < 1);
- synchronized( downloaders ){
- downloaders.add(inf);
- }
- } else if (state == TorrentDownloader.STATE_FINISHED) {
- activeTorrentCount--;
- enableControl(ok, activeTorrentCount < 1);
-
- // This can be called more than once for each inf..
- synchronized( downloaders ){
- if (!downloaders.contains(inf))
- return;
- downloaders.remove(inf);
- }
-
- File file = inf.getFile();
- if (addTorrent(file.getAbsolutePath(), inf.getURL()) == null) {
- // addTorrent may not delete it on error if the downloader saved it
- // to the place where user wants to store torrents (which is most
- // likely)
- if (file.exists())
- file.delete();
-
- } else {
- if (shell != null && !shell.isDisposed()) {
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- torrentTable.setItemCount(torrentList.size());
- torrentTable.clearAll();
-
- // select the one we just added
- torrentTable.select(torrentList.size() - 1);
- // select doesn't notify listeners? Do it manually.
- torrentTable.notifyListeners(SWT.Selection, new Event());
-
- resizeTables(1);
- }
- });
- } else {
- String saveSilentlyDir = getSaveSilentlyDir();
- if (saveSilentlyDir != null) {
- sDestDir = saveSilentlyDir;
- for (int i = 0; i < torrentList.size(); i++) {
- final TorrentInfo info = (TorrentInfo) torrentList.get(i);
- info.renameDuplicates();
- }
-
- openTorrents();
- }
- }
- }
-
- checkSeedingMode();
- } else if (state == TorrentDownloader.STATE_CANCELLED
- || state == TorrentDownloader.STATE_ERROR
- || state == TorrentDownloader.STATE_DUPLICATE) {
- activeTorrentCount--;
- enableControl(ok, activeTorrentCount < 1);
- synchronized( downloaders ){
- downloaders.remove(inf);
- }
- } else if (state == TorrentDownloader.STATE_DOWNLOADING) {
- int count = inf.getLastReadCount();
- int numRead = inf.getTotalRead();
-
- if (!inf.getDeleteFileOnCancel() && numRead >= 16384) {
- inf.cancel();
- } else if (numRead == count && count > 0) {
- final byte[] bytes = inf.getLastReadBytes();
- if (bytes[0] != 'd') {
- inf.setDeleteFileOnCancel(false);
- }
- }
- } else {
- return;
- }
- }
-
- /**
- * Class to store one Torrent file's info. Used to populate table and store
- * user's choices.
- */
- private class TorrentInfo
- {
- /** Where the torrent came from. Could be a file, URL, or some other text */
- String sOriginatingLocation;
-
- /** Filename the .torrent is saved to */
- String sFileName;
-
- String sDestDir;
-
- /** for multifiletorrents and change location */
- String sDestSubDir;
-
- TOTorrent torrent;
-
- int iStartID;
-
- int iQueueLocation;
-
- boolean isValid;
-
- boolean bDeleteFileOnCancel;
-
- private TorrentFileInfo[] files = null;
-
- boolean disableIPFilter = false;
-
- Map<Integer,File> initial_linkage_map;
-
- /**
- * Init
- *
- * @param sFileName
- * @param torrent
- * @param bDeleteFileOnCancel
- */
- public TorrentInfo(String sFileName, TOTorrent torrent,
- boolean bDeleteFileOnCancel) {
- this.bDeleteFileOnCancel = bDeleteFileOnCancel;
- this.sFileName = sFileName;
- this.sOriginatingLocation = sFileName;
- this.torrent = torrent;
- this.sDestDir = OpenTorrentWindow.this.sDestDir;
-
- initial_linkage_map = TorrentUtils.getInitialLinkage( torrent );
-
- iStartID = getDefaultStartMode();
- iQueueLocation = QUEUELOCATION_BOTTOM;
- isValid = true;
-
- // Force a check on the encoding, will prompt user if we dunno
- try {
- LocaleTorrentUtil.getTorrentEncoding(TorrentInfo.this.torrent);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- if (getSaveSilentlyDir() == null
- && COConfigurationManager.getBooleanParameter("DefaultDir.BestGuess")
- && !COConfigurationManager.getBooleanParameter(PARAM_MOVEWHENDONE)) {
- this.sDestDir = getSmartDestDir();
- }
- }
-
- public File
- getInitialLinkage(
- int index )
- {
- return( initial_linkage_map.get( index ));
- }
-
- public String getParentDir() {
- return sDestDir;
- }
-
- public void setParentDir(String parentDir)
- {
- sDestDir = parentDir;
- }
-
- public String getDataDir() {
- if (torrent.isSimpleTorrent())
- return sDestDir;
- return new File(sDestDir, sDestSubDir == null ? FileUtil.convertOSSpecificChars(getTorrentName(), true)
- : sDestSubDir).getPath();
- }
-
- public String getSmartDestDir() {
- String sSmartDir = sDestDir;
- try {
- String name = getTorrentName();
- String torrentFileName = new File(sFileName).getName().replaceFirst(
- "\\.torrent$", "");
- int totalSegmentsLengths = 0;
-
- String[][] segments = {
- name.split("[^a-zA-Z]+"),
- torrentFileName.split("[^a-zA-Z]+")
- };
- List downloadManagers = gm.getDownloadManagers();
-
- for (int x = 0; x < segments.length; x++) {
- String[] segmentArray = segments[x];
- for (int i = 0; i < segmentArray.length; i++) {
- int l = segmentArray[i].length();
- if (l <= 1) {
- continue;
- }
- segmentArray[i] = segmentArray[i].toLowerCase();
- totalSegmentsLengths += l;
- }
- }
-
- int maxMatches = 0;
- DownloadManager match = null;
- for (Iterator iter = downloadManagers.iterator(); iter.hasNext();) {
- DownloadManager dm = (DownloadManager) iter.next();
-
- if (dm.getState() == DownloadManager.STATE_ERROR) {
- continue;
- }
-
- int numMatches = 0;
-
- String dmName = dm.getDisplayName().toLowerCase();
-
- for (int x = 0; x < segments.length; x++) {
- String[] segmentArray = segments[x];
- for (int i = 0; i < segmentArray.length; i++) {
- int l = segmentArray[i].length();
- if (l <= 1) {
- continue;
- }
-
- String segment = segmentArray[i];
-
- if (dmName.indexOf(segment) >= 0) {
- numMatches += l;
- }
- }
- }
-
- if (numMatches > maxMatches) {
- maxMatches = numMatches;
- match = dm;
- }
- }
- if (match != null) {
- //System.out.println(match + ": " + (maxMatches * 100 / totalSegmentsLengths) + "%\n");
- int iMatchLevel = (maxMatches * 100 / totalSegmentsLengths);
- if (iMatchLevel >= 30) {
- File f = match.getSaveLocation();
- if (!f.isDirectory() || match.getDiskManagerFileInfo().length > 1) {
- // don't place data within another torrent's data dir
- f = f.getParentFile();
- }
-
- if (f != null && f.isDirectory()) {
- sSmartDir = f.getAbsolutePath();
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- if ( sSmartDir == null || sSmartDir.trim().length() == 0 ){
-
- String def = COConfigurationManager.getStringParameter( "DefaultDir.BestGuess.Default" );
-
- if ( def != null ){
-
- sSmartDir = def.trim();
- }
- }
-
- return sSmartDir;
- }
-
- public TorrentFileInfo[] getFiles() {
- if (files == null && torrent != null) {
- TOTorrentFile[] tfiles = torrent.getFiles();
- files = new TorrentFileInfo[tfiles.length];
- for (int i = 0; i < files.length; i++) {
- files[i] = new TorrentFileInfo(this, tfiles[i], i);
- }
- }
-
- return files;
- }
-
- public String getTorrentName() {
- return TorrentUtils.getLocalisedName(torrent);
- }
-
- public boolean allFilesMoving() {
- TorrentFileInfo[] files = getFiles();
- for (int j = 0; j < files.length; j++) {
- if (files[j].isLinked()) {
- return false;
- }
- }
- return true;
- }
-
- public boolean allFilesExist() {
- // check if all selected files exist
- TorrentFileInfo[] files = getFiles();
- for (int i = 0; i < files.length; i++) {
- TorrentFileInfo fileInfo = files[i];
- if (!fileInfo.bDownload)
- continue;
-
- File file = fileInfo.getDestFileFullName();
- if (!file.exists() || file.length() != fileInfo.lSize) {
- return false;
- }
- }
- return true;
- }
-
- public void renameDuplicates() {
- if (iStartID == STARTMODE_SEEDING
- || !COConfigurationManager.getBooleanParameter("DefaultDir.AutoSave.AutoRename")
- || allFilesExist()) {
- return;
- }
-
- if (!torrent.isSimpleTorrent()) {
- if (new File(getDataDir()).isDirectory()) {
- File f;
- int idx = 0;
- do {
- idx++;
- f = new File(getDataDir() + "-" + idx);
- } while (f.isDirectory());
-
- sDestSubDir = f.getName();
- }
- } else {
- // should only be one file
- TorrentFileInfo[] fileInfos = getFiles();
- for (int i = 0; i < fileInfos.length; i++) {
- TorrentFileInfo info = fileInfos[i];
-
- File file = info.getDestFileFullName();
- int idx = 0;
- while (file.exists()) {
- idx++;
- file = new File(info.getDestPathName(), idx + "-" + info.getDestFileName());
- }
-
- info.setDestFileName(file.getName());
- }
- }
- }
-
- /*
- private Boolean has_multiple_small_files = null;
- private boolean hasMultipleSmallFiles() {
- TorrentFileInfo[] tfi_files = getFiles();
- if (tfi_files.length <= MAX_NODOWNLOAD_COUNT)
- return false;
-
- int small_files_counted = 0;
- for (int i=0; i<tfi_files.length; i++) {
- if (tfi_files[i].lSize < MIN_NODOWNLOAD_SIZE) {
- small_files_counted++;
- if (small_files_counted > MAX_NODOWNLOAD_COUNT) {
- return true;
- }
- }
- }
-
- return false;
- }
- */
-
- // Indicates whether all files in this torrent can be deselected
- // (if not, then it occurs on a per-file basis).
- public boolean okToDisableAll() {
- return true;
-
- /*
- if (iStartID == STARTMODE_SEEDING)
- return true;
-
- // Do we have multiple small files? We'll allow all of them to
- // be disabled if we do.
- if (has_multiple_small_files == null) {
- has_multiple_small_files = new Boolean(hasMultipleSmallFiles());
- }
-
- // You can disable all files if there are lots of small files.
- return has_multiple_small_files.booleanValue();
- */
- }
-
- }
-
- /**
- * Class to store the file list of a Torrent. Used to populate table and
- * store user's choices
- */
- private static class TorrentFileInfo
- {
- /** relative path + full file name as specified by the torrent */
- final String orgFullName;
-
- final String orgFileName;
-
- long lSize;
-
- boolean bDownload;
-
- private String destFileName;
- private String destPathName;
-
- int iIndex;
-
- boolean isValid;
-
- final TorrentInfo parent;
-
- /**
- * Init
- *
- * @param parent
- * @param torrentFile
- * @param iIndex
- */
- public TorrentFileInfo(TorrentInfo parent, TOTorrentFile torrentFile,
- int iIndex) {
- this.parent = parent;
- lSize = torrentFile.getLength();
- this.iIndex = iIndex;
- bDownload = true;
- isValid = true;
-
- orgFullName = torrentFile.getRelativePath(); // translated to locale
- orgFileName = new File(orgFullName).getName();
- }
-
- public void setFullDestName(String newFullName)
- {
- if(newFullName == null)
- {
- setDestPathName(null);
- setDestFileName(null);
- return;
- }
-
- File newPath = new File(newFullName);
- setDestPathName(newPath.getParent());
- setDestFileName(newPath.getName());
- }
-
- public void setDestPathName(String newPath)
- {
- if(parent.torrent.isSimpleTorrent())
- parent.setParentDir(newPath);
- else
- destPathName = newPath;
- }
-
- public void setDestFileName (String newFileName)
- {
- if(orgFileName.equals(newFileName))
- destFileName = null;
- else
- destFileName = newFileName;
- }
-
- public String getDestPathName() {
- if (destPathName != null)
- return destPathName;
-
- if (parent.torrent.isSimpleTorrent())
- return parent.getParentDir();
-
- return new File(parent.getDataDir(), orgFullName).getParent();
- }
-
- public String getDestFileName() {
- return destFileName == null ? orgFileName : destFileName;
- }
-
- public File getDestFileFullName() {
- String path = getDestPathName();
- String file = getDestFileName();
- return new File(path,file);
- }
-
- public boolean okToDisable() {
- return /* lSize >= MIN_NODOWNLOAD_SIZE || */parent.okToDisableAll();
- }
-
- public File
- getInitialLink()
- {
- return( parent.getInitialLinkage( iIndex ));
- }
-
- public boolean isLinked()
- {
- return destFileName != null || destPathName != null;
- }
- }
-
- private String ensureTrailingSeparator(String sPath) {
- if (sPath == null || sPath.length() == 0 || sPath.endsWith(File.separator))
- return sPath;
- return sPath + File.separator;
- }
-
- /**
- *
- * @return Null if user doesn't want to save silently, or if no path set
- */
- private static String getSaveSilentlyDir() {
-
- String sDefDir = "";
- try {
- sDefDir = COConfigurationManager.getDirectoryParameter(PARAM_DEFSAVEPATH);
- } catch (IOException e) {
- return null;
- }
-
- return (sDefDir.length() == 0) ? null : sDefDir;
- }
-
- private final static class Partition
- {
- public Partition(File root) {
- this.root = root;
- }
-
- long bytesToConsume = 0;
-
- long freeSpace = 0;
-
- final File root;
- }
-
- private final static class FileStatsCacheItem
- {
- public FileStatsCacheItem(final File f) {
- exists = f.exists();
- if (exists)
- freeSpace = FileUtil.getUsableSpace(f);
- else
- freeSpace = -1;
- }
-
- boolean exists;
-
- long freeSpace;
- }
-
- private long getCachedDirFreeSpace(File directory) {
- FileStatsCacheItem item = (FileStatsCacheItem) fileStatCache.get(directory);
- if (item == null)
- fileStatCache.put(directory, item = new FileStatsCacheItem(directory));
- return item.freeSpace;
- }
-
- private boolean getCachedExistsStat(File directory) {
- FileStatsCacheItem item = (FileStatsCacheItem) fileStatCache.get(directory);
- if (item == null)
- fileStatCache.put(directory, item = new FileStatsCacheItem(directory));
- return item.exists;
- }
-
- private final Map fileStatCache = new WeakHashMap(20);
-
- private final Map parentToRootCache = new WeakHashMap(20);
-
- private volatile boolean diskFreeInfoRefreshPending = false;
-
- private volatile boolean diskFreeInfoRefreshRunning = false;
-
- // @see com.aelitis.azureus.ui.swt.uiupdater.UIUpdatable#getUpdateUIName()
- public String getUpdateUIName() {
- return "OpenTorrentWindow";
- }
-
- // @see com.aelitis.azureus.ui.swt.uiupdater.UIUpdatable#updateUI()
- public void updateUI() {
- if (bClosed) {
- try {
- UIUpdaterSWT.getInstance().removeUpdater(this);
- } catch (Exception e) {
- Debug.out(e);
- }
- return;
- }
-
- if (diskFreeInfoRefreshPending && !diskFreeInfoRefreshRunning
- && FileUtil.getUsableSpaceSupported()) {
- diskFreeInfoRefreshRunning = true;
- diskFreeInfoRefreshPending = false;
-
- final HashSet FSroots = new HashSet(Arrays.asList(File.listRoots()));
- final HashMap partitions = new HashMap();
-
- for (int i = 0; i < torrentList.size(); i++) {
- TorrentInfo tor = (TorrentInfo) torrentList.get(i);
- TorrentFileInfo[] files = tor.getFiles();
- for (int j = 0; j < files.length; j++) {
- TorrentFileInfo file = files[j];
- if (!file.bDownload)
- continue;
-
- // reduce each file to its partition root
- File root = file.getDestFileFullName().getAbsoluteFile();
-
- Partition part = (Partition) partitions.get((File) parentToRootCache.get(root.getParentFile()));
-
- if (part == null) {
- File next;
- while (true) {
- root = root.getParentFile();
- next = root.getParentFile();
- if (next == null)
- break;
-
- // bubble up until we hit an existing directory
- if (!getCachedExistsStat(root) || !root.isDirectory())
- continue;
-
- // check for mount points (different free space) or simple loops in the directory structure
- if (FSroots.contains(root) || root.equals(next)
- || getCachedDirFreeSpace(next) != getCachedDirFreeSpace(root))
- break;
- }
-
- parentToRootCache.put(
- file.getDestFileFullName().getAbsoluteFile().getParentFile(), root);
-
- part = (Partition) partitions.get(root);
-
- if (part == null) {
- part = new Partition(root);
- part.freeSpace = getCachedDirFreeSpace(root);
- partitions.put(root, part);
- }
- }
-
- part.bytesToConsume += file.lSize;
- }
- }
- // clear child objects
- Control[] labels = diskspaceComp.getChildren();
- for (int i = 0; i < labels.length; i++)
- labels[i].dispose();
-
- // build labels
- Iterator it = partitions.values().iterator();
- while (it.hasNext()) {
- Partition part = (Partition) it.next();
-
- boolean filesTooBig = part.bytesToConsume > part.freeSpace;
-
- Label l;
- l = new Label(diskspaceComp, SWT.NONE);
- l.setForeground(filesTooBig ? Colors.colorError : null);
- l.setText(part.root.getPath());
- l.setLayoutData(new GridData(SWT.END, SWT.TOP, false, false));
- l = new Label(diskspaceComp, SWT.NONE);
- l.setForeground(filesTooBig ? Colors.colorError : null);
- l.setText(MessageText.getString("OpenTorrentWindow.diskUsage",
- new String[] {
- DisplayFormatters.formatByteCountToKiBEtc(part.bytesToConsume),
- DisplayFormatters.formatByteCountToKiBEtc(part.freeSpace)
- }));
- l.setLayoutData(new GridData(SWT.END, SWT.TOP, false, false));
- }
-
- diskspaceComp.update();
- diskspaceComp.getParent().getParent().getParent().layout(true, true);
-
- diskFreeInfoRefreshRunning = false;
- }
-
- }
-
- private void updateSize() {
-
- /*
- * determine info for selected torrents only
- */
- long totalSize = 0;
- long checkedSize = 0;
-
- for (int i = 0; i < dataFiles.size(); i++) {
- TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(i);
-
- totalSize += file.lSize;
-
- if (file.bDownload) {
- checkedSize += file.lSize;
- }
- }
-
- // build string and set label
- if (totalSize == 0) {
- dataFileTableLabel.setText("");
- } else {
- dataFileTableLabel.setText(MessageText.getString(
- "OpenTorrentWindow.filesInfo", new String[] {
- DisplayFormatters.formatByteCountToKiBEtc(checkedSize),
- DisplayFormatters.formatByteCountToKiBEtc(totalSize)
- }));
- }
- dataFileTableLabel.update();
- dataFileTableLabel.getParent().getParent().layout(true, true);
-
- diskFreeInfoRefreshPending = true;
-
- }
-
- /**
- * Convenience method for setting the enabled state of a control
- * <P>This method may be called from any thread</p>
- * @param control
- * @param enabledState
- */
- private void enableControl(final Control control, final boolean enabledState) {
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- if (control != null && false == control.isDisposed()) {
- control.setEnabled(enabledState);
- }
- }
- });
- }
-
- public static void main(String[] args) {
- AzureusCore core = AzureusCoreFactory.create();
- core.start();
- Display display = Display.getDefault();
-
- Colors.getInstance();
-
- invoke(null, core.getGlobalManager());
- //OpenTorrentWindow window = new OpenTorrentWindow(null, null, true);
- while (stOpenTorrentWindow != null && !stOpenTorrentWindow.bClosed) {
- if (!display.readAndDispatch())
- display.sleep();
- }
-
- core.stop();
- }
-}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/OpenUrlWindow.java b/azureus2/src/org/gudy/azureus2/ui/swt/OpenUrlWindow.java
deleted file mode 100644
index 5260311..0000000
--- a/azureus2/src/org/gudy/azureus2/ui/swt/OpenUrlWindow.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * File : OpenUrlWindow.java
- * Created : 3 nov. 2003 15:30:46
- * By : Olivier
- *
- * Azureus - a Java Bittorrent client
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details ( see the LICENSE file ).
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package org.gudy.azureus2.ui.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-import org.gudy.azureus2.core3.config.COConfigurationManager;
-import org.gudy.azureus2.core3.config.StringIterator;
-import org.gudy.azureus2.core3.config.StringList;
-import org.gudy.azureus2.core3.internat.MessageText;
-import org.gudy.azureus2.core3.torrentdownloader.TorrentDownloaderCallBackInterface;
-import org.gudy.azureus2.core3.util.UrlUtils;
-import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;
-
-/**
- * @todo REMOVE THIS CLASS after removing {@link OpenTorrentWindow}
- *
- */
-public class
-OpenUrlWindow
-{
- protected static String CONFIG_REFERRER_DEFAULT = "openUrl.referrer.default";
-
- protected static String last_referrer = null;
-
- static{
- last_referrer = COConfigurationManager.getStringParameter( CONFIG_REFERRER_DEFAULT, "" );
- }
-
- /**
- * Init
- *
- * @param azureus_core
- * @param parent
- * @param linkURL
- * @param referrer
- */
- public OpenUrlWindow(final Shell parent,
- String linkURL, final String referrer) {
- this(parent, linkURL, false, referrer, null);
- }
-
- /**
- * Init with listener
- *
- * @param azureus_core
- * @param parent
- * @param linkURL
- * @param referrer
- * @param listener
- */
- public OpenUrlWindow(final Shell parent,
- String linkURL, boolean default_magnet, final String referrer,
- final TorrentDownloaderCallBackInterface listener) {
-
- final Shell shell = ShellFactory.createShell(parent, SWT.DIALOG_TRIM
- | SWT.APPLICATION_MODAL | SWT.RESIZE);
- shell.setText(MessageText.getString("openUrl.title"));
- Utils.setShellIcon(shell);
-
- GridData gridData;
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- shell.setLayout(layout);
-
- // URL field
-
- Label label = new Label(shell, SWT.NULL);
- label.setText(MessageText.getString("openUrl.url"));
- gridData = new GridData();
- label.setLayoutData(gridData);
-
- final Text url = new Text(shell, SWT.BORDER);
-
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.widthHint=400;
- gridData.horizontalSpan = 2;
- url.setLayoutData(gridData);
- if(linkURL == null)
- Utils.setTextLinkFromClipboard(shell, url, true, default_magnet );
- else
- url.setText(linkURL);
- url.setSelection(url.getText().length());
-
-
-
- // help field
- Label help_label = new Label(shell, SWT.NULL);
- help_label.setText(MessageText.getString("openUrl.url.info"));
- gridData = new GridData();
- gridData.horizontalSpan = 3;
- help_label.setLayoutData(gridData);
-
- Label space = new Label(shell, SWT.NULL);
- gridData = new GridData();
- gridData.horizontalSpan = 3;
- space.setLayoutData(gridData);
-
- // referrer field
-
- Label referrer_label = new Label(shell, SWT.NULL);
- referrer_label.setText(MessageText.getString("openUrl.referrer"));
- gridData = new GridData();
- referrer_label.setLayoutData(gridData);
-
- final Combo referrer_combo = new Combo(shell, SWT.BORDER);
-
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.widthHint=150;
- gridData.grabExcessHorizontalSpace = true;
- referrer_combo.setLayoutData(gridData);
-
- final StringList referrers = COConfigurationManager.getStringListParameter("url_open_referrers");
- StringIterator iter = referrers.iterator();
- while(iter.hasNext()) {
- referrer_combo.add(iter.next());
- }
-
- if ( referrer != null && referrer.length() > 0 ){
-
- referrer_combo.setText( referrer );
-
- }else if ( last_referrer != null ){
-
- referrer_combo.setText( last_referrer );
- }
-
- Label referrer_info = new Label(shell, SWT.NULL);
- referrer_info.setText(MessageText.getString("openUrl.referrer.info"));
-
- // line
-
- Label labelSeparator = new Label(shell,SWT.SEPARATOR | SWT.HORIZONTAL);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_END);
- gridData.horizontalSpan = 3;
- labelSeparator.setLayoutData(gridData);
-
- // buttons
-
- Composite panel = new Composite(shell, SWT.NULL);
- layout = new GridLayout();
- layout.numColumns = 3;
- panel.setLayout(layout);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_END);
- gridData.horizontalSpan = 3;
- gridData.grabExcessHorizontalSpace = true;
- panel.setLayoutData(gridData);
-
- new Label(panel, SWT.NULL);
-
- Button ok = new Button(panel,SWT.PUSH);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_END);
- gridData.widthHint = 70;
- gridData.grabExcessHorizontalSpace = true;
- ok.setLayoutData(gridData);
- ok.setText(MessageText.getString("Button.ok"));
- ok.addListener(SWT.Selection,new Listener() {
- public void handleEvent(Event e) {
- last_referrer = referrer_combo.getText().trim();
-
- if(! referrers.contains(last_referrer)) {
- referrers.add(last_referrer);
- COConfigurationManager.setParameter("url_open_referrers",referrers);
- COConfigurationManager.save();
- }
-
- COConfigurationManager.setParameter( CONFIG_REFERRER_DEFAULT, last_referrer );
- COConfigurationManager.save();
-
- String url_str = url.getText();
-
- url_str = UrlUtils.parseTextForURL( url_str, true );
-
- if (url_str == null) {
- url_str = UrlUtils.parseTextForMagnets(url.getText());
- }
-
- if ( url_str == null ){
-
- url_str = url.getText();
- }
-
- new FileDownloadWindow(parent,url_str, last_referrer, null, null, listener );
- shell.dispose();
- }
- });
-
- shell.setDefaultButton (ok);
-
- Button cancel = new Button(panel,SWT.PUSH);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
- gridData.grabExcessHorizontalSpace = false;
- gridData.widthHint = 70;
- cancel.setLayoutData(gridData);
- cancel.setText(MessageText.getString("Button.cancel"));
- cancel.addListener(SWT.Selection,new Listener() {
- public void handleEvent(Event e) {
- shell.dispose();
- }
- });
-
- shell.addListener(SWT.Traverse, new Listener() {
-
- public void handleEvent(Event e) {
-
- if ( e.character == SWT.ESC){
- shell.dispose();
- }
- }
- });
-
-
- Point p = shell.computeSize( SWT.DEFAULT, SWT.DEFAULT );
-
- if ( p.x > 800 ){
-
- p.x = 800;
- }
-
- shell.setSize( p );
-
- Utils.createURLDropTarget(shell, url);
-
- Utils.centreWindow( shell );
-
- shell.open();
- }
-}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/StartServer.java b/azureus2/src/org/gudy/azureus2/ui/swt/StartServer.java
index 46e29bf..d605737 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/StartServer.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/StartServer.java
@@ -20,6 +20,7 @@ package org.gudy.azureus2.ui.swt;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
@@ -136,6 +137,9 @@ StartServer
BufferedReader br = null;
try {
Socket sck = socket.accept();
+
+ AzureusCoreSingleInstanceClient.sendReply( sck );
+
String address = sck.getInetAddress().getHostAddress();
if (address.equals("localhost") || address.equals("127.0.0.1")) {
br = new BufferedReader(new InputStreamReader(sck.getInputStream(),Constants.DEFAULT_ENCODING));
@@ -158,6 +162,7 @@ StartServer
}
}
}
+
sck.close();
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/StartSocket.java b/azureus2/src/org/gudy/azureus2/ui/swt/StartSocket.java
index a47c6c5..dfa0af3 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/StartSocket.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/StartSocket.java
@@ -70,6 +70,11 @@ public class StartSocket {
pw.println(buffer.toString());
pw.flush();
+ if ( !AzureusCoreSingleInstanceClient.receiveReply( sck )){
+
+ return( false );
+ }
+
return true;
}
catch(Exception e) {
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/TorrentMenuFancy.java b/azureus2/src/org/gudy/azureus2/ui/swt/TorrentMenuFancy.java
index 191021c..a4ca7a5 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/TorrentMenuFancy.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/TorrentMenuFancy.java
@@ -1233,7 +1233,8 @@ public class TorrentMenuFancy
boolean allScanSelected = true;
boolean allScanNotSelected = true;
boolean fileMove = true;
-
+ boolean allResumeIncomplete = true;
+
for (DownloadManager dm : dms) {
boolean stopped = ManagerUtils.isStopped(dm);
@@ -1250,6 +1251,10 @@ public class TorrentMenuFancy
allScanSelected = incomplete && allScanSelected && scan;
allScanNotSelected = incomplete && allScanNotSelected && !scan;
+
+ if (dm.getDownloadState().isResumeDataComplete()){
+ allResumeIncomplete = false;
+ }
}
boolean fileRescan = allScanSelected || allScanNotSelected;
@@ -1306,6 +1311,20 @@ public class TorrentMenuFancy
});
itemFileClearResume.setEnabled(allStopped);
+ // set resume complete
+
+ MenuItem itemFileSetResumeComplete = new MenuItem(menu, SWT.PUSH);
+ Messages.setLanguageText(itemFileSetResumeComplete,
+ "MyTorrentsView.menu.set.resume.complete");
+ itemFileSetResumeComplete.addListener(SWT.Selection, new ListenerDMTask(dms) {
+ public void run(DownloadManager dm) {
+ TorrentUtils.setResumeDataCompletelyValid( dm.getDownloadState());
+ }
+ });
+ itemFileSetResumeComplete.setEnabled(allStopped&&allResumeIncomplete);
+
+
+
if (userMode > 1 && isSeedingView) {
boolean canSetSuperSeed = false;
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/TorrentUtil.java b/azureus2/src/org/gudy/azureus2/ui/swt/TorrentUtil.java
index 3216dea..00c8be8 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/TorrentUtil.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/TorrentUtil.java
@@ -155,8 +155,9 @@ public class TorrentUtil
boolean allScanSelected = true;
boolean allScanNotSelected = true;
- boolean allStopped = true;
-
+ boolean allStopped = true;
+ boolean allResumeIncomplete = true;
+
if (hasSelection) {
for (int i = 0; i < dms.length; i++) {
DownloadManager dm = (DownloadManager) dms[i];
@@ -275,6 +276,10 @@ public class TorrentUtil
superSeedAllYes = false;
superSeedAllNo = false;
}
+
+ if (dm.getDownloadState().isResumeDataComplete()){
+ allResumeIncomplete = false;
+ }
}
fileRescan = allScanSelected || allScanNotSelected;
@@ -562,6 +567,18 @@ public class TorrentUtil
});
itemFileClearResume.setEnabled(allStopped);
+ // set resume complete
+
+ MenuItem itemFileSetResumeComplete = new MenuItem(menuFiles, SWT.PUSH);
+ Messages.setLanguageText(itemFileSetResumeComplete,
+ "MyTorrentsView.menu.set.resume.complete");
+ itemFileSetResumeComplete.addListener(SWT.Selection, new ListenerDMTask(dms) {
+ public void run(DownloadManager dm) {
+ TorrentUtils.setResumeDataCompletelyValid( dm.getDownloadState());
+ }
+ });
+ itemFileSetResumeComplete.setEnabled(allStopped&&allResumeIncomplete);
+
// Advanced -> archive
final List<Download> ar_dms = new ArrayList<Download>();
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/UIConfigDefaultsSWT.java b/azureus2/src/org/gudy/azureus2/ui/swt/UIConfigDefaultsSWT.java
index 11183cf..faab9d3 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/UIConfigDefaultsSWT.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/UIConfigDefaultsSWT.java
@@ -75,6 +75,7 @@ public class UIConfigDefaultsSWT
def.addParameter("window.rectangle", "");
def.addParameter("Start Minimized", false);
def.addParameter("Open Transfer Bar On Start", false);
+ def.addParameter("Transfer Bar Show Icon Area", true );
def.addParameter("Stats Graph Dividers", false);
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/config/FloatParameter.java b/azureus2/src/org/gudy/azureus2/ui/swt/config/FloatParameter.java
index a996585..37eaf1b 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/config/FloatParameter.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/config/FloatParameter.java
@@ -55,7 +55,7 @@ public class FloatParameter {
public void initialize(Composite composite, final String name) {
sParamName = name;
- inputField = new Text(composite, SWT.BORDER);
+ inputField = new Text(composite, SWT.BORDER | SWT.RIGHT);
float value = COConfigurationManager.getFloatParameter(name);
inputField.setText(String.valueOf(value));
inputField.addListener(SWT.Verify, new Listener() {
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/config/generic/GenericIntParameter.java b/azureus2/src/org/gudy/azureus2/ui/swt/config/generic/GenericIntParameter.java
index c9828ad..9ccb6c2 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/config/generic/GenericIntParameter.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/config/generic/GenericIntParameter.java
@@ -109,7 +109,7 @@ public class GenericIntParameter
int value = adapter.getIntValue(name, iDefaultValue);
- spinner = new Spinner(composite, SWT.BORDER);
+ spinner = new Spinner(composite, SWT.BORDER | SWT.RIGHT);
setMinimumValue(iMinValue);
setMaximumValue(iMaxValue);
spinner.setSelection(value);
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/help/AboutWindow.java b/azureus2/src/org/gudy/azureus2/ui/swt/help/AboutWindow.java
index 1de7ff8..2cab80f 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/help/AboutWindow.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/help/AboutWindow.java
@@ -28,6 +28,7 @@ import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
+
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.*;
@@ -187,23 +188,27 @@ public class AboutWindow {
"!Vuze Wiki Hidden Service (Tor)",
"contributors",
"!EULA",
- "!Privacy Policy"
+ "!Privacy Policy",
+ "!Legal",
+ "!FOSS Licenses"
},
{
- "http://www.vuze.com",
- "http://forum.vuze.com/forum.jspa?forumID=124",
+ "https://www.vuze.com",
+ "http://www.vuze.com/forums/open-development",
"http://forum.vuze.com",
Constants.AZUREUS_WIKI,
"http://que23xpe7o3lzq6auv6stb4bha7ddavrlgqdv2cuhgd36fgfmp6q.b32.i2p/",
"http://dr5aamfveql2b34p.onion/",
Constants.AZUREUS_WIKI + "Contributors",
- "http://www.vuze.com/corp/terms.php",
- "http://www.vuze.com/corp/privacy.php"
+ "https://www.vuze.com/corp/terms.php",
+ "https://www.vuze.com/corp/privacy.php",
+ "https://www.vuze.com/corp/legal",
+ Constants.AZUREUS_WIKI + "Vuze_Client_FOSS_Licenses"
}
};
for (int i = 0; i < link[0].length; i++) {
- final CLabel linkLabel = new CLabel(gInternet, SWT.NULL);
+ final CLabel linkLabel = new CLabel(gInternet, SWT.NONE);
if (link[0][i].startsWith("!")) {
linkLabel.setText(link[0][i].substring(1));
} else {
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/MainStatusBar.java b/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/MainStatusBar.java
index 157d879..e4e54ac 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/MainStatusBar.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/MainStatusBar.java
@@ -82,7 +82,8 @@ public class MainStatusBar
private UpdateWindow updateWindow;
- private Composite statusBar;
+ private Composite parent;
+ private Composite statusBar;
private CLabel statusText;
@@ -207,7 +208,8 @@ public class MainStatusBar
*
* @return composite holding the statusbar
*/
- public Composite initStatusBar(final Composite parent) {
+ public Composite initStatusBar(final Composite _parent) {
+ this.parent = _parent;
this.display = parent.getDisplay();
this.uiFunctions = UIFunctionsManager.getUIFunctions();
ImageLoader imageLoader = ImageLoader.getInstance();
@@ -876,6 +878,12 @@ public class MainStatusBar
});
}
+ public void
+ relayout()
+ {
+ parent.layout( true, true );
+ }
+
private void addFeedBack() {
AzureusCoreFactory.addCoreRunningListener(new AzureusCoreRunningListener() {
public void azureusCoreRunning(AzureusCore core) {
@@ -1600,14 +1608,22 @@ public class MainStatusBar
{
@Override
public void mouseEnter(MouseEvent e) {
- CLabelPadding.super.setToolTipText( tooltip_text );
+ //CLabelPadding.super.setToolTipText( tooltip_text );
hovering = true;
}
@Override
public void mouseExit(MouseEvent e) {
+ //CLabelPadding.super.setToolTipText( "" );
hovering = false;
}
+ @Override
+ public void mouseHover(MouseEvent e) {
+ String existing = CLabelPadding.super.getToolTipText();
+ if ( existing == null || !existing.equals( tooltip_text )){
+ CLabelPadding.super.setToolTipText( tooltip_text );
+ }
+ }
});
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/TorrentOpener.java b/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/TorrentOpener.java
index 624477e..0a35e0d 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/TorrentOpener.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/mainwindow/TorrentOpener.java
@@ -625,7 +625,7 @@ public class TorrentOpener {
} catch (TOTorrentException e1) {
}
- int iStartState = (torrentOptions.iStartID == TorrentOpenOptions.STARTMODE_STOPPED)
+ int iStartState = (torrentOptions.getStartMode() == TorrentOpenOptions.STARTMODE_STOPPED)
? DownloadManager.STATE_STOPPED : DownloadManager.STATE_QUEUED;
GlobalManager gm = core.getGlobalManager();
@@ -633,7 +633,7 @@ public class TorrentOpener {
DownloadManager dm = gm.addDownloadManager(torrentOptions.sFileName,
hash, torrentOptions.getParentDir(), torrentOptions.getSubDir(),
iStartState, true,
- torrentOptions.iStartID == TorrentOpenOptions.STARTMODE_SEEDING, dmia);
+ torrentOptions.getStartMode() == TorrentOpenOptions.STARTMODE_SEEDING, dmia);
// If dm is null, most likely there was an error printed.. let's hope
// the user was notified and skip the error quietly.
@@ -649,7 +649,7 @@ public class TorrentOpener {
});
}
- if (torrentOptions.iStartID == TorrentOpenOptions.STARTMODE_FORCESTARTED) {
+ if (torrentOptions.getStartMode() == TorrentOpenOptions.STARTMODE_FORCESTARTED) {
dm.setForceStart(true);
}
@@ -705,7 +705,7 @@ public class TorrentOpener {
return false;
}
- if (fOriginal.length() > (sFileName.toLowerCase(Locale.US).endsWith(".vuze")?50*1024*1024L:20*1024*1024L )) {
+ if (fOriginal.length() > TorrentUtils.MAX_TORRENT_FILE_SIZE ) {
UIFunctionsManager.getUIFunctions().showErrorMessage(
"OpenTorrentWindow.mb.openError", fOriginal.toString(),
new String[] {
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/minibar/AllTransfersBar.java b/azureus2/src/org/gudy/azureus2/ui/swt/minibar/AllTransfersBar.java
index 8f670c4..3d199ce 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/minibar/AllTransfersBar.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/minibar/AllTransfersBar.java
@@ -26,9 +26,9 @@ import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.events.MenuEvent;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Shell;
-
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.global.GlobalManager;
@@ -45,6 +45,8 @@ import org.gudy.azureus2.ui.swt.views.utils.ManagerUtils;
import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.core.AzureusCoreRunningListener;
+import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
+import com.aelitis.azureus.ui.swt.UIFunctionsSWT;
/**
* @author Allan Crooks
@@ -93,6 +95,7 @@ public class AllTransfersBar extends MiniBar {
private DoubleBufferedLabel down_speed;
private DoubleBufferedLabel up_speed;
private DoubleBufferedLabel next_eta;
+ private Label icon_label;
private AllTransfersBar(GlobalManager gmanager, Shell main) {
super(manager);
@@ -150,6 +153,36 @@ public class AllTransfersBar extends MiniBar {
this.createFixedTextLabel("TableColumn.header.eta_next", true, false);
this.next_eta = this.createDataLabel(65);
+
+ // options icon area
+
+ if ( COConfigurationManager.getBooleanParameter( "Transfer Bar Show Icon Area" )){
+
+ icon_label = createFixedLabel(16);
+ }
+ }
+
+ public void
+ setIconImage(
+ Image image )
+ {
+ if ( icon_label != null &&
+ image != icon_label.getImage()){
+
+ icon_label.setImage( image );
+ icon_label.pack();
+ icon_label.redraw();
+ }
+ }
+
+ @Override
+ protected void
+ doubleClick()
+ {
+ UIFunctionsSWT functionsSWT = UIFunctionsManagerSWT.getUIFunctionsSWT();
+ if (functionsSWT != null) {
+ functionsSWT.bringToFront();
+ }
}
public void buildMenu(Menu menu, MenuEvent menuEvent) {
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/minibar/DownloadBar.java b/azureus2/src/org/gudy/azureus2/ui/swt/minibar/DownloadBar.java
index 6e8d762..784182d 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/minibar/DownloadBar.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/minibar/DownloadBar.java
@@ -19,6 +19,7 @@ package org.gudy.azureus2.ui.swt.minibar;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.download.DownloadManagerStats;
+import org.gudy.azureus2.core3.global.GlobalManagerEvent;
import org.gudy.azureus2.core3.util.DisplayFormatters;
import org.gudy.azureus2.plugins.download.Download;
import org.gudy.azureus2.plugins.download.DownloadException;
@@ -31,13 +32,15 @@ import org.gudy.azureus2.ui.swt.views.utils.ManagerUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MenuEvent;
import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Shell;
+import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
+import com.aelitis.azureus.ui.swt.UIFunctionsSWT;
+
/**
* @author Allan Crooks
*
@@ -148,6 +151,14 @@ public class DownloadBar extends MiniBar {
}
}
+ @Override
+ protected void doubleClick() {
+ UIFunctionsSWT functionsSWT = UIFunctionsManagerSWT.getUIFunctionsSWT();
+ if (functionsSWT != null) {
+ functionsSWT.bringToFront();
+ }
+ download.fireGlobalManagerEvent( GlobalManagerEvent.ET_REQUEST_ATTENTION );
+ }
public String[] getPluginMenuIdentifiers(Object[] context) {
if (context == null) {return null;}
return new String[] {"downloadbar", MenuManager.MENU_DOWNLOAD_CONTEXT};
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/minibar/MiniBar.java b/azureus2/src/org/gudy/azureus2/ui/swt/minibar/MiniBar.java
index 158ccca..faadf84 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/minibar/MiniBar.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/minibar/MiniBar.java
@@ -141,6 +141,25 @@ public abstract class MiniBar implements MenuBuildUtils.MenuBuilder {
return( result );
}
+ protected final Label createFixedLabel(int width) {
+ assertConstructing();
+ Label result = new Label(splash, SWT.NONE);
+ result.setBackground(Colors.white);
+ result.setSize(width, SWT.DEFAULT );
+ result.setLocation(this.xSize, 0);
+ result.addMouseListener(this.mListener);
+ result.addMouseMoveListener(this.mMoveListener);
+ result.setMenu(this.menu);
+ if (this.hSize == -1) {
+ int hSizeText = result.getSize().y;
+ int hSizeImage = this.lDrag.getSize().y;
+ this.hSize = hSizeText > hSizeImage ? hSizeText : hSizeImage;
+ }
+ this.xSize += width;
+
+ return( result );
+ }
+
protected final DoubleBufferedLabel createDataLabel(int width, boolean centered) {
width = (int)(width * width_multiplier );
assertConstructing();
@@ -327,6 +346,11 @@ public abstract class MiniBar implements MenuBuildUtils.MenuBuilder {
splash.setAlpha( old_alpha );
}
}
+
+ @Override
+ public void mouseDoubleClick(MouseEvent e) {
+ doubleClick();
+ }
};
this.mMoveListener = new MouseMoveListener() {
@@ -590,6 +614,11 @@ public abstract class MiniBar implements MenuBuildUtils.MenuBuilder {
return null;
}
+ protected void
+ doubleClick()
+ {
+ }
+
protected void storeLastLocation(Point point) {
// Do nothing.
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/shells/MessageBoxShell.java b/azureus2/src/org/gudy/azureus2/ui/swt/shells/MessageBoxShell.java
index a85b25f..6d3fcb4 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/shells/MessageBoxShell.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/shells/MessageBoxShell.java
@@ -135,6 +135,8 @@ public class MessageBoxShell
private String instanceID;
+ private boolean modal;
+
private static Map<String, MessageBoxShell> mapInstances = new HashMap<String, MessageBoxShell>(1);
public static void open(Shell parent, String title, String text,
@@ -359,7 +361,15 @@ public class MessageBoxShell
// Example: 5 windows open in APPLICATION MODAL mode,
// and somehow none of them show until you do a "Window->Bring To Front"
// which only makes ONE visible
- shell = ShellFactory.createShell(parent, SWT.DIALOG_TRIM | SWT.RESIZE);
+
+ int shell_style = SWT.DIALOG_TRIM | SWT.RESIZE;
+
+ if ( modal ){
+
+ shell_style |= SWT.APPLICATION_MODAL;
+ }
+
+ shell = ShellFactory.createShell(parent, shell_style);
if (title != null) {
shell.setText(title);
}
@@ -964,6 +974,19 @@ public class MessageBoxShell
public boolean isAutoClosed() {
return autoClosed;
}
+
+ /**
+ * Only use this if you REALLY know what you're doing as in general it is a bad thing - check
+ * comments in this class
+ * @param m
+ */
+
+ public void
+ setModal(
+ boolean m )
+ {
+ modal = m;
+ }
// @see com.aelitis.azureus.ui.UIFunctionsUserPrompter#setRelatedObject(java.lang.Object)
public void setRelatedObject(Object relatedObject) {
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/FilesView.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/FilesView.java
index 7d65480..f65f662 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/FilesView.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/FilesView.java
@@ -633,7 +633,7 @@ public class FilesView
dragSource.dispose();
}
- dragSource = tv.createDragSource(DND.DROP_COPY);
+ dragSource = tv.createDragSource(DND.DROP_COPY | DND.DROP_MOVE);
if (dragSource != null) {
dragSource.setTransfer(types);
dragSource.addDragListener(new DragSourceAdapter() {
@@ -670,11 +670,12 @@ public class FilesView
}
}
}
+
+
public void dragSetData(DragSourceEvent event) {
if (FileTransfer.getInstance().isSupportedType(event.dataType)) {
event.data = eventData2;
- event.detail = DND.DROP_COPY;
} else {
event.data = eventData1;
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/MyTorrentsView.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/MyTorrentsView.java
index 296d768..38c8810 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/MyTorrentsView.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/MyTorrentsView.java
@@ -471,7 +471,12 @@ public class MyTorrentsView
tag.addTagListener(MyTorrentsView.this, false);
}
}
- TagManagerFactory.getTagManager().getTagType( TagType.TT_DOWNLOAD_MANUAL ).addTagTypeListener(MyTorrentsView.this,false);
+ TagManager tagManager = TagManagerFactory.getTagManager();
+ TagType ttManual = tagManager.getTagType(TagType.TT_DOWNLOAD_MANUAL);
+ TagType ttCat = tagManager.getTagType(TagType.TT_DOWNLOAD_CATEGORY);
+ ttManual.addTagTypeListener(MyTorrentsView.this, false);
+ ttCat.addTagTypeListener(MyTorrentsView.this, false);
+
globalManager.addListener(MyTorrentsView.this, false);
globalManager.addEventListener( gm_event_listener );
DownloadManager[] dms = globalManager.getDownloadManagers().toArray(new DownloadManager[0]);
@@ -604,7 +609,11 @@ public class MyTorrentsView
tag.removeTagListener(this);
}
}
- TagManagerFactory.getTagManager().getTagType( TagType.TT_DOWNLOAD_MANUAL ).removeTagTypeListener(MyTorrentsView.this);
+ TagManager tagManager = TagManagerFactory.getTagManager();
+ TagType ttManual = tagManager.getTagType(TagType.TT_DOWNLOAD_MANUAL);
+ TagType ttCat = tagManager.getTagType(TagType.TT_DOWNLOAD_CATEGORY);
+ ttManual.removeTagTypeListener(MyTorrentsView.this);
+ ttCat.removeTagTypeListener(MyTorrentsView.this);
globalManager.removeListener(this);
globalManager.removeEventListener( gm_event_listener );
@@ -2177,21 +2186,6 @@ public class MyTorrentsView
return false;
}
-
- // categorymanagerlistener Functions
- public void downloadManagerAdded(Category category, final DownloadManager manager)
- {
- if (isOurDownloadManager(manager)) {
- tv.addDataSource(manager);
- }
- }
-
- public void downloadManagerRemoved(Category category, DownloadManager removed)
- {
- tv.removeDataSource(removed);
- }
-
-
// DownloadManagerListener Functions
public void stateChanged(DownloadManager manager, int state) {
final TableRowCore row = tv.getRow(manager);
@@ -2506,15 +2500,19 @@ public class MyTorrentsView
// globalmanagerlistener Functions
+ // @see org.gudy.azureus2.core3.global.GlobalManagerListener#downloadManagerAdded(org.gudy.azureus2.core3.download.DownloadManager)
public void downloadManagerAdded( DownloadManager dm ) {
dm.addListener( this );
- downloadManagerAdded(null, dm);
+ if (isOurDownloadManager(dm)) {
+ tv.addDataSource(dm);
+ }
}
+ // @see org.gudy.azureus2.core3.global.GlobalManagerListener#downloadManagerRemoved(org.gudy.azureus2.core3.download.DownloadManager)
public void downloadManagerRemoved( DownloadManager dm ) {
dm.removeListener( this );
DownloadBar.close(dm);
- downloadManagerRemoved(null, dm);
+ tv.removeDataSource(dm);
}
public void destroyInitiated() { }
@@ -2525,7 +2523,7 @@ public class MyTorrentsView
-
+ // @see org.gudy.azureus2.ui.swt.views.table.impl.TableViewTab#updateLanguage()
public void updateLanguage() {
super.updateLanguage();
getComposite().layout(true, true);
@@ -2578,7 +2576,8 @@ public class MyTorrentsView
DownloadActivityView.MSGID_PREFIX,
PieceInfoView.MSGID_PREFIX,
FilesView.MSGID_PREFIX,
- TaggingView.MSGID_PREFIX
+ TaggingView.MSGID_PREFIX,
+ PrivacyView.MSGID_PREFIX
));
// sub-tab hacks
@@ -2647,7 +2646,8 @@ public class MyTorrentsView
if (hasTags) {
pluginUI.addView( id, TaggingView.MSGID_PREFIX, TaggingView.class, null);
}
-
+ pluginUI.addView( id, PrivacyView.MSGID_PREFIX, PrivacyView.class, null);
+
if (Logger.isEnabled()) {
pluginUI.addView( id, LoggerView.MSGID_PREFIX, LoggerView.class, null);
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/PrivacyView.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/PrivacyView.java
new file mode 100644
index 0000000..2f7a6d2
--- /dev/null
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/PrivacyView.java
@@ -0,0 +1,1727 @@
+/**
+ * Copyright (C) Azureus Software, Inc, All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details ( see the LICENSE file ).
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+package org.gudy.azureus2.ui.swt.views;
+
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
+import java.net.URL;
+import java.util.*;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.*;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+import org.gudy.azureus2.core3.config.COConfigurationManager;
+import org.gudy.azureus2.core3.download.DownloadManager;
+import org.gudy.azureus2.core3.download.DownloadManagerState;
+import org.gudy.azureus2.core3.download.DownloadManagerStateAttributeListener;
+import org.gudy.azureus2.core3.download.impl.DownloadManagerController;
+import org.gudy.azureus2.core3.internat.MessageText;
+import org.gudy.azureus2.core3.peer.PEPeer;
+import org.gudy.azureus2.core3.peer.PEPeerManager;
+import org.gudy.azureus2.core3.peer.PEPeerSource;
+import org.gudy.azureus2.core3.peer.util.PeerUtils;
+import org.gudy.azureus2.core3.torrent.TOTorrent;
+import org.gudy.azureus2.core3.torrent.TOTorrentAnnounceURLGroup;
+import org.gudy.azureus2.core3.torrent.TOTorrentAnnounceURLSet;
+import org.gudy.azureus2.core3.util.AENetworkClassifier;
+import org.gudy.azureus2.core3.util.AERunnable;
+import org.gudy.azureus2.core3.util.Constants;
+import org.gudy.azureus2.core3.util.DisplayFormatters;
+import org.gudy.azureus2.core3.util.HostNameToIPResolver;
+import org.gudy.azureus2.core3.util.SystemTime;
+import org.gudy.azureus2.core3.util.TorrentUtils;
+import org.gudy.azureus2.plugins.PluginInterface;
+import org.gudy.azureus2.plugins.ipc.IPCException;
+import org.gudy.azureus2.plugins.ipc.IPCInterface;
+import org.gudy.azureus2.pluginsimpl.local.PluginCoreUtils;
+import org.gudy.azureus2.ui.swt.Messages;
+import org.gudy.azureus2.ui.swt.TextViewerWindow;
+import org.gudy.azureus2.ui.swt.Utils;
+import org.gudy.azureus2.ui.swt.components.BufferedLabel;
+import org.gudy.azureus2.ui.swt.components.LinkLabel;
+import org.gudy.azureus2.ui.swt.mainwindow.Colors;
+import org.gudy.azureus2.ui.swt.plugins.UISWTView;
+import org.gudy.azureus2.ui.swt.plugins.UISWTViewEvent;
+import org.gudy.azureus2.ui.swt.pluginsimpl.UISWTViewCoreEventListener;
+
+import com.aelitis.azureus.core.AzureusCoreFactory;
+import com.aelitis.azureus.core.networkmanager.admin.NetworkAdmin;
+import com.aelitis.azureus.core.proxy.AEProxySelector;
+import com.aelitis.azureus.core.proxy.AEProxySelectorFactory;
+import com.aelitis.azureus.core.tracker.TrackerPeerSource;
+import com.aelitis.azureus.plugins.I2PHelpers;
+import com.aelitis.azureus.plugins.extseed.ExternalSeedPlugin;
+import com.aelitis.azureus.plugins.extseed.ExternalSeedReader;
+import com.aelitis.azureus.ui.UIFunctions;
+import com.aelitis.azureus.ui.UIFunctionsManager;
+
+
+
+public class PrivacyView
+ implements UISWTViewCoreEventListener, DownloadManagerStateAttributeListener
+{
+ public static final String MSGID_PREFIX = "PrivacyView";
+
+ private UISWTView swtView;
+
+ private Composite cMainComposite;
+
+ private ScrolledComposite sc;
+
+ private Composite parent;
+
+ private static final int PL_PUBLIC = 0;
+ private static final int PL_MIX = 1;
+ private static final int PL_ANONYMOUS = 2;
+ private static final int PL_INVALID = 3;
+
+ private int privacy_level;
+ private Scale privacy_scale;
+
+ private boolean i2p_install_prompted;
+
+ private Composite i2p_lookup_comp;
+ private Button i2p_install_button;
+ private Button i2p_lookup_button;
+ private Label i2p_options_link;
+
+ private BufferedLabel i2p_result_summary;
+ private Text i2p_result_list;
+
+ private Button[] network_buttons;
+ private Button[] source_buttons;
+
+ private Button ipfilter_enabled;
+
+ private BufferedLabel peer_info;
+
+ private BufferedLabel torrent_info;
+ private BufferedLabel tracker_info;
+ private BufferedLabel webseed_info;
+
+ private BufferedLabel vpn_info;
+
+ private BufferedLabel socks_state;
+ private BufferedLabel socks_current, socks_fails;
+ private Label socks_more;
+
+ private DownloadManager current_dm;
+
+ private Set<String> enabled_networks = new HashSet<String>();
+ private Set<String> enabled_sources = new HashSet<String>();
+
+ public
+ PrivacyView()
+ {
+ }
+
+ private String
+ getFullTitle()
+ {
+ return( MessageText.getString("label.privacy"));
+ }
+
+ public boolean eventOccurred(UISWTViewEvent event) {
+ switch (event.getType()) {
+ case UISWTViewEvent.TYPE_CREATE:
+ swtView = (UISWTView) event.getData();
+ swtView.setTitle(getFullTitle());
+ break;
+
+ case UISWTViewEvent.TYPE_DESTROY:
+ delete();
+ break;
+
+ case UISWTViewEvent.TYPE_INITIALIZE:
+ parent = (Composite) event.getData();
+ break;
+
+ case UISWTViewEvent.TYPE_LANGUAGEUPDATE:
+ Messages.updateLanguageForControl(cMainComposite);
+ swtView.setTitle(getFullTitle());
+ break;
+
+ case UISWTViewEvent.TYPE_DATASOURCE_CHANGED:
+ Object ds = event.getData();
+ dataSourceChanged(ds);
+ break;
+
+ case UISWTViewEvent.TYPE_FOCUSGAINED:
+ initialize();
+ if (current_dm == null) {
+ dataSourceChanged(swtView.getDataSource());
+ }
+ break;
+
+ case UISWTViewEvent.TYPE_FOCUSLOST:
+ delete();
+ break;
+
+ case UISWTViewEvent.TYPE_REFRESH:
+ refresh();
+ break;
+ }
+
+ return true;
+ }
+
+ private void
+ delete()
+ {
+ Utils.disposeComposite( sc );
+
+ dataSourceChanged( null );
+ }
+
+ private void
+ refresh()
+ {
+ updatePeersEtc( current_dm );
+ }
+
+ private void
+ dataSourceChanged(
+ Object ds )
+ {
+ synchronized( this ){
+
+ final DownloadManager old_dm = current_dm;
+
+ if ( ds != current_dm ){
+
+ if ( ds == null ){
+
+ current_dm = null;
+
+ }else if ( ds instanceof DownloadManager ){
+
+ current_dm = (DownloadManager)ds;
+
+ }else if ( ds instanceof Object[] ){
+
+ Object[] objs = (Object[])ds;
+
+ if ( objs.length == 1 && objs[0] instanceof DownloadManager ){
+
+ current_dm = (DownloadManager)objs[0];
+
+ }else{
+
+ current_dm = null;
+ }
+ }else{
+
+ current_dm = null;
+ }
+ }
+
+ if ( old_dm == current_dm ){
+
+ return;
+ }
+
+ final DownloadManager new_dm = current_dm;
+
+ Utils.execSWTThread(new AERunnable() {
+ public void runSupport() {
+ swt_updateFields( old_dm, new_dm );
+ }
+ });
+ }
+ }
+
+ private void
+ initialize()
+ {
+ if (cMainComposite == null || cMainComposite.isDisposed()){
+
+ if ( parent == null || parent.isDisposed()){
+ return;
+ }
+
+ sc = new ScrolledComposite(parent, SWT.V_SCROLL);
+ sc.setExpandHorizontal(true);
+ sc.setExpandVertical(true);
+ sc.getVerticalBar().setIncrement(16);
+
+ Layout parentLayout = parent.getLayout();
+
+ if ( parentLayout instanceof GridLayout ){
+
+ GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
+
+ sc.setLayoutData(gd);
+
+ }else if ( parentLayout instanceof FormLayout ){
+
+ sc.setLayoutData(Utils.getFilledFormData());
+ }
+
+ cMainComposite = new Composite(sc, SWT.NONE);
+
+ sc.setContent(cMainComposite);
+
+ }else{
+
+ Utils.disposeComposite(cMainComposite, false);
+ }
+
+ GridLayout layout = new GridLayout(1, false);
+ layout.horizontalSpacing = 0;
+ layout.verticalSpacing = 0;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ cMainComposite.setLayout(layout);
+
+ GridData gd;
+
+ // overview
+
+ Composite overview_comp = new Composite( cMainComposite, SWT.NULL );
+ overview_comp.setLayout( new GridLayout(3, false ));
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ overview_comp.setLayoutData( gd);
+
+ Label label = new Label( overview_comp, SWT.NULL );
+ label.setText( MessageText.getString( "privacy.view.intro" ));
+
+ LinkLabel link = new LinkLabel( overview_comp, "label.read.more", MessageText.getString( "privacy.view.wiki.url" ));
+
+ // slider component
+
+ Composite slider_comp = new Composite( cMainComposite, SWT.NULL );
+ layout = new GridLayout(3, false );
+ layout.horizontalSpacing = 0;
+ layout.verticalSpacing = 0;
+ layout.marginHeight = 0;
+ //layout.marginWidth = 0;
+ slider_comp.setLayout( layout);
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ slider_comp.setLayoutData( gd);
+
+ label = new Label( slider_comp, SWT.NULL );
+ label.setText( MessageText.getString( "privacy.view.level" ) + ":" );
+
+ Composite slider2_comp = new Composite( slider_comp, SWT.NULL );
+ slider2_comp.setLayout( new GridLayout(6, true ));
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ slider2_comp.setLayoutData( gd);
+
+ label = new Label( slider2_comp, SWT.NULL );
+ label.setText( MessageText.getString( "privacy.view.public.only" ));
+
+ label = new Label( slider2_comp, SWT.NULL );
+ label.setText( MessageText.getString( "privacy.view.public.anon" ));
+ label.setAlignment( SWT.CENTER );
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ label.setLayoutData( gd);
+
+ label = new Label( slider2_comp, SWT.NULL );
+ label.setText( MessageText.getString( "privacy.view.anon.only" ));
+ label.setAlignment( SWT.CENTER );
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ label.setLayoutData( gd);
+
+ label = new Label( slider2_comp, SWT.NULL );
+ label.setText( MessageText.getString( "label.invalid" ));
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = SWT.END;
+ label.setLayoutData( gd);
+
+ privacy_scale = new Scale(slider2_comp, SWT.HORIZONTAL);
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ gd.horizontalSpan = 6;
+ privacy_scale.setLayoutData( gd);
+
+ privacy_scale.setMinimum( 0 );
+ privacy_scale.setMaximum( 30 );
+
+
+
+ final boolean[] slider_mouse_down = { false };
+
+ privacy_scale.addMouseListener(
+ new MouseAdapter()
+ {
+ public void
+ mouseUp(
+ MouseEvent e )
+ {
+ int pos = privacy_scale.getSelection();
+
+ int level = ((pos+5)/10);
+
+ if ( level*10 != pos ){
+
+ privacy_scale.setSelection( level*10 );
+ }
+
+ setPrivacyLevel( level );
+
+ slider_mouse_down[0] = false;
+ }
+
+ public void
+ mouseDown(
+ MouseEvent e )
+ {
+ slider_mouse_down[0] = true;
+ }
+ });
+
+ privacy_scale.addListener(
+ SWT.Selection,
+ new Listener()
+ {
+ public void
+ handleEvent(Event event)
+ {
+ if ( !slider_mouse_down[0]){
+
+ int pos = privacy_scale.getSelection();
+
+ int level = ((pos+5)/10);
+
+ setPrivacyLevel( level );
+ }
+ }
+ });
+
+ // network selection
+
+ Composite network_comp = new Composite( slider_comp, SWT.NULL );
+
+ gd = new GridData();
+ network_comp.setLayoutData( gd );
+
+ network_buttons = new Button[AENetworkClassifier.AT_NETWORKS.length];
+
+ network_comp.setLayout( new GridLayout( 1, false ));
+
+ label = new Label( network_comp, SWT.NULL );
+ label.setText( MessageText.getString( "ConfigView.section.connection.group.networks") + ":" );
+
+ for ( int i=0; i<network_buttons.length; i++){
+
+ final String nn = AENetworkClassifier.AT_NETWORKS[i];
+
+ String msg_text = "ConfigView.section.connection.networks." + nn;
+
+ Button button = new Button(network_comp, SWT.CHECK);
+ Messages.setLanguageText(button, msg_text);
+
+ network_buttons[i] = button;
+
+ button.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ boolean selected = ((Button)e.widget).getSelection();
+
+ if ( current_dm != null ){
+ current_dm.getDownloadState().setNetworkEnabled(nn, selected);
+ }
+ }
+ });
+
+ GridData gridData = new GridData();
+ button.setLayoutData(gridData);
+ }
+
+
+ label = new Label( slider_comp, SWT.NULL );
+
+ final Composite tracker_webseed_comp = new Composite( slider_comp, SWT.NULL );
+
+ layout = new GridLayout( 2, true );
+ layout.marginTop = layout.marginBottom = layout.marginLeft = layout.marginRight = 1;
+ tracker_webseed_comp.setLayout( layout);
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ gd.horizontalSpan = 2;
+ tracker_webseed_comp.setLayoutData( gd );
+
+ tracker_webseed_comp.addPaintListener(
+ new PaintListener(){
+ public void
+ paintControl(PaintEvent e)
+ {
+ Rectangle client_area = tracker_webseed_comp.getClientArea();
+
+ Rectangle rect = new Rectangle(0,0, client_area.width-1, client_area.height-1);
+
+ e.gc.setAlpha(50);
+
+ e.gc.drawRectangle(rect);
+ }
+ });
+
+ // Tracker Info
+
+ Composite tracker_comp = new Composite( tracker_webseed_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ tracker_comp.setLayoutData( gd );
+ tracker_comp.setLayout( new GridLayout( 2, false ));
+
+ label = new Label( tracker_comp, SWT.NULL );
+ label.setText( MessageText.getString( "label.trackers" ) + ":" );
+
+ tracker_info = new BufferedLabel(tracker_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ tracker_info.setLayoutData( gd );
+
+ // Webseed Info
+
+ Composite webseed_comp = new Composite( tracker_webseed_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ webseed_comp.setLayoutData( gd );
+
+ webseed_comp.setLayout( new GridLayout( 2, false ));
+
+ label = new Label( webseed_comp, SWT.NULL );
+ label.setText( MessageText.getString( "label.webseeds" ) + ":" );
+
+ webseed_info = new BufferedLabel(webseed_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ webseed_info.setLayoutData( gd );
+
+ // Peer Info
+
+ //label = new Label( slider_comp, SWT.NULL );
+
+ Composite peer_comp = new Composite( tracker_webseed_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ peer_comp.setLayoutData( gd );
+ peer_comp.setLayout( new GridLayout( 2, false ));
+
+ label = new Label( peer_comp, SWT.NULL );
+ label.setText( MessageText.getString( "TableColumn.header.peers" ) + ":" );
+
+ peer_info = new BufferedLabel(peer_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ peer_info.setLayoutData( gd );
+
+
+
+ // I2P install state
+
+ Group i2p_group = new Group( cMainComposite, SWT.NULL );
+ i2p_group.setText( "I2P" );
+
+ //Composite i2p_group = new Composite( cMainComposite, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ i2p_group.setLayoutData( gd );
+
+ i2p_group.setLayout( new GridLayout(4, false ));
+
+ label = new Label( i2p_group, SWT.NULL );
+ label.setText( MessageText.getString( "privacy.view.lookup.info" ));
+ gd = new GridData();
+ gd.horizontalSpan = 2;
+ label.setLayoutData( gd );
+
+ label = new Label( i2p_group, SWT.NULL );
+ label.setText( MessageText.getString( "label.lookup.status" ) + ":" );
+
+
+ i2p_result_summary = new BufferedLabel(i2p_group,SWT.DOUBLE_BUFFERED);
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ //gd.horizontalIndent = 4;
+ i2p_result_summary.setLayoutData( gd );
+
+ Composite i2p_button_comp = new Composite( i2p_group, SWT.NULL );
+ i2p_button_comp.setLayout( new GridLayout(2, false ));
+
+ gd = new GridData( GridData.FILL_VERTICAL );
+ i2p_button_comp.setLayoutData( gd );
+
+ label = new Label( i2p_button_comp, SWT.NULL );
+ label.setText( MessageText.getString( "GeneralView.section.availability" ));
+
+ i2p_install_button = new Button( i2p_button_comp, SWT.PUSH );
+
+ i2p_install_button.addSelectionListener(
+ new SelectionAdapter() {
+
+ public void
+ widgetSelected(
+ SelectionEvent event )
+ {
+ final boolean[] result = { false };
+
+ I2PHelpers.installI2PHelper(
+ null, result,
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ updateI2PState();
+ }
+ });
+ }
+ });
+ }
+ });
+
+ // I2P peer lookup
+
+ i2p_lookup_comp = new Composite( i2p_group, SWT.BORDER );
+
+ gd = new GridData();
+ gd.widthHint = 300;
+ gd.heightHint = 150;
+ i2p_lookup_comp.setLayoutData( gd );
+
+ i2p_lookup_comp.setBackground( Colors.white );
+
+ // i2p results
+
+
+ i2p_result_list = new Text( i2p_group, SWT.BORDER | SWT.READ_ONLY | SWT.V_SCROLL | SWT.WRAP | SWT.NO_FOCUS );
+ gd = new GridData( GridData.FILL_BOTH );
+ gd.horizontalSpan = 2;
+ i2p_result_list.setLayoutData( gd );
+
+ i2p_result_list.setEditable( false );
+
+ // i2p lookup button
+
+ label = new Label( i2p_button_comp, SWT.NULL );
+ label.setText( MessageText.getString( "button.lookup.peers" ));
+
+ i2p_lookup_button = new Button( i2p_button_comp, SWT.PUSH );
+
+ i2p_lookup_button.setText( MessageText.getString( "button.search.dht" ));
+
+ i2p_lookup_button.addSelectionListener(
+ new SelectionAdapter(){
+
+ private int search_count;
+
+ public void
+ widgetSelected(
+ SelectionEvent event )
+ {
+ Utils.disposeComposite( i2p_lookup_comp, false );
+
+ i2p_result_summary.setText( "" );
+
+ i2p_result_list.setText( "" );
+
+ PluginInterface i2p_pi = AzureusCoreFactory.getSingleton().getPluginManager().getPluginInterfaceByID( "azneti2phelper", true );
+
+ if ( i2p_pi != null ){
+
+ IPCInterface ipc = i2p_pi.getIPC();
+
+ Map<String,Object> options = new HashMap<String, Object>();
+
+ options.put( "server_id", "Scraper" );
+ options.put( "server_id_transient", true );
+ options.put( "ui_composite", i2p_lookup_comp );
+
+ final byte[] hash = (byte[])i2p_lookup_button.getData( "hash" );
+
+ search_count++;
+
+ final int search_id = search_count;
+
+ IPCInterface callback =
+ new IPCInterface()
+ {
+ public Object
+ invoke(
+ String methodName,
+ final Object[] params)
+
+ throws IPCException
+ {
+ if ( search_id != search_count ){
+
+ return( null );
+ }
+
+ if ( methodName.equals( "statusUpdate" )){
+
+ final int status = (Integer)params[0];
+
+ if ( status != TrackerPeerSource.ST_INITIALISING &&
+ status != TrackerPeerSource.ST_UPDATING ){
+
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ if ( i2p_lookup_button.isDisposed() || hash != i2p_lookup_button.getData( "hash" )){
+
+ return;
+ }
+
+ i2p_lookup_button.setEnabled( true );
+
+ if ( i2p_result_list.getText().length() == 0 &&
+ status != TrackerPeerSource.ST_UNAVAILABLE){
+
+ i2p_result_summary.setText( MessageText.getString( "label.no.peers.found" ));
+ }
+ }
+ });
+ }
+
+ if ( params.length == 4 ){
+
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ if ( i2p_result_summary.isDisposed() || hash != i2p_lookup_button.getData( "hash" )){
+
+ return;
+ }
+
+ int seeds = (Integer)params[1];
+ int leechers = (Integer)params[2];
+ int peers = (Integer)params[3];
+
+ i2p_result_summary.setText(
+ MessageText.getString(
+ "privacy.view.lookup.msg",
+ new String[]{
+ String.valueOf( seeds ),
+ String.valueOf( leechers ),
+ String.valueOf( peers )}));
+ }
+ });
+ }
+
+ }else if ( methodName.equals( "msgUpdate" )){
+
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ if ( i2p_result_summary.isDisposed() || hash != i2p_lookup_button.getData( "hash" )){
+
+ return;
+ }
+
+ String msg = (String)params[0];
+
+ i2p_result_summary.setText( msg );
+ }
+ });
+
+ }else if ( methodName.equals( "peerFound")){
+
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ if ( i2p_result_list.isDisposed() || hash != i2p_lookup_button.getData( "hash" )){
+
+ return;
+ }
+
+ String host = (String)params[0];
+ int peer_type = (Integer)params[1];
+
+ i2p_result_list.append( host + "\r\n" );
+ }
+ });
+
+ }
+
+ return( null );
+ }
+
+ public boolean
+ canInvoke(
+ String methodName,
+ Object[] params )
+ {
+ return( true );
+ }
+ };
+
+
+ i2p_lookup_button.setEnabled( false );
+
+ i2p_result_summary.setText( MessageText.getString( "label.searching" ));
+
+ try{
+ ipc.invoke(
+ "lookupTorrent",
+ new Object[]{
+ "",
+ hash,
+ options,
+ callback
+ });
+
+ }catch( Throwable e ){
+
+ i2p_lookup_button.setEnabled( true );
+
+ e.printStackTrace();
+ }
+ }
+ }
+ });
+
+ Label i2p_options_info = new Label( i2p_button_comp, SWT.WRAP );
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ gd.horizontalSpan = 2;
+ gd.widthHint = 150;
+ i2p_options_info.setLayoutData( gd );
+
+ i2p_options_info.setText( MessageText.getString( "privacy.view.check.bw.info" ));
+
+ if ( !COConfigurationManager.getBooleanParameter( "privacy.view.check.bw.clicked", false )){
+
+ FontData fontData = i2p_options_info.getFont().getFontData()[0];
+ final Font bold_font = new Font( i2p_options_info.getDisplay(), new FontData( fontData.getName(), fontData.getHeight(), SWT.BOLD ));
+ i2p_options_info.setFont( bold_font);
+
+ i2p_options_info.addDisposeListener(
+ new DisposeListener() {
+ public void widgetDisposed(DisposeEvent e) {
+ bold_font.dispose();
+ }
+ });
+ }
+
+ i2p_options_link = new Label( i2p_button_comp, SWT.NULL );
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ gd.horizontalSpan = 2;
+ i2p_options_link.setLayoutData( gd );
+ i2p_options_link.setText( MessageText.getString( "privacy.view.check.bw" ));
+
+ i2p_options_link.setCursor(i2p_options_link.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
+ i2p_options_link.setForeground(Colors.blue);
+ i2p_options_link.addMouseListener(new MouseAdapter() {
+ public void mouseDoubleClick(MouseEvent arg0) {
+ openOptions();
+ }
+ public void mouseUp(MouseEvent arg0) {
+ openOptions();
+ }
+
+ private void
+ openOptions()
+ {
+ COConfigurationManager.setParameter( "privacy.view.check.bw.clicked", true );
+
+ UIFunctions uif = UIFunctionsManager.getUIFunctions();
+
+ if ( uif != null ){
+
+ uif.openView( UIFunctions.VIEW_CONFIG, "azi2phelper.name" );
+ }
+ }
+ });
+
+ updateI2PState();
+
+ Utils.makeButtonsEqualWidth( Arrays.asList( new Button[]{ i2p_install_button, i2p_lookup_button }));
+
+ label = new Label( i2p_button_comp, SWT.NULL );
+ gd = new GridData( GridData.FILL_BOTH );
+ gd.horizontalSpan = 2;
+ label.setLayoutData( gd );
+
+
+ Group bottom_comp = new Group( cMainComposite, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ bottom_comp.setLayoutData( gd );
+
+ bottom_comp.setLayout( new GridLayout( 2, false ));
+
+ // Torrent Info
+
+ label = new Label( bottom_comp, SWT.NULL );
+ label.setText( MessageText.getString( "authenticator.torrent" ) + ":" );
+
+ Composite torrent_comp = new Composite( bottom_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ torrent_comp.setLayoutData( gd );
+ torrent_comp.setLayout( removeMarginsAndSpacing( new GridLayout( 2, false )));
+
+ torrent_info = new BufferedLabel(torrent_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ torrent_info.setLayoutData( gd );
+
+ // source selection
+
+ label = new Label( bottom_comp, SWT.NULL );
+ label.setText( MessageText.getString( "ConfigView.section.connection.group.peersources" ) + ":" );
+
+ Composite sources_comp = new Composite( bottom_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ sources_comp.setLayoutData( gd );
+
+ source_buttons = new Button[PEPeerSource.PS_SOURCES.length];
+
+ sources_comp.setLayout( removeMargins( new GridLayout( source_buttons.length + 1, false )));
+
+
+ for ( int i=0; i<source_buttons.length; i++){
+
+ final String src = PEPeerSource.PS_SOURCES[i];
+
+ String msg_text = "ConfigView.section.connection.peersource." + src;
+
+ Button button = new Button(sources_comp, SWT.CHECK);
+ Messages.setLanguageText(button, msg_text);
+
+ source_buttons[i] = button;
+
+ button.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ boolean selected = ((Button)e.widget).getSelection();
+
+ if ( current_dm != null ){
+ current_dm.getDownloadState().setPeerSourceEnabled(src,selected);
+ }
+ }
+ });
+
+ GridData gridData = new GridData();
+ button.setLayoutData(gridData);
+ }
+
+ // IP Filter
+
+ label = new Label( bottom_comp, SWT.NULL );
+ label.setText( MessageText.getString( "label.ip.filter" ) + ":");
+
+ Composite ipfilter_comp = new Composite( bottom_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ ipfilter_comp.setLayoutData( gd );
+ ipfilter_comp.setLayout( removeMargins( new GridLayout( 2, false )));
+
+
+ ipfilter_enabled = new Button( ipfilter_comp, SWT.CHECK );
+ ipfilter_enabled.setText( MessageText.getString( "devices.contextmenu.od.enabled" ));
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ ipfilter_enabled.setLayoutData( gd );
+
+ // VPN Info
+
+ label = new Label( bottom_comp, SWT.NULL );
+ label.setText( MessageText.getString( "label.vpn.status" ) + ":" );
+
+ Composite vpn_comp = new Composite( bottom_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ vpn_comp.setLayoutData( gd );
+ vpn_comp.setLayout( removeMargins( new GridLayout( 2, false )));
+
+ vpn_info = new BufferedLabel(vpn_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ vpn_info.setLayoutData( gd );
+
+ // SOCKS Info
+
+ label = new Label( bottom_comp, SWT.NULL );
+ label.setText( MessageText.getString( "label.socks.status" ) + ":" );
+
+ Composite socks_comp = new Composite( bottom_comp, SWT.NULL );
+
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ socks_comp.setLayoutData( gd );
+ socks_comp.setLayout( removeMargins( new GridLayout( 10, false )));
+
+ label = new Label(socks_comp,SWT.NULL);
+ label.setText( MessageText.getString( "label.proxy" ) + ":" );
+
+ socks_state = new BufferedLabel(socks_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData();
+ gd.widthHint = 120;
+ socks_state.setLayoutData(gd);
+
+ // current details
+
+ label = new Label(socks_comp,SWT.NULL);
+ label.setText( MessageText.getString( "PeersView.state" ) + ":" );
+
+ socks_current = new BufferedLabel(socks_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData();
+ gd.widthHint = 120;
+ socks_current.setLayoutData(gd);
+
+ // fail details
+
+ label = new Label(socks_comp,SWT.NULL);
+ label.setText( MessageText.getString( "label.fails" ) + ":" );
+
+ socks_fails = new BufferedLabel(socks_comp,SWT.DOUBLE_BUFFERED);
+ gd = new GridData();
+ gd.widthHint = 120;
+ socks_fails.setLayoutData(gd);
+
+ // more info
+
+ label = new Label(socks_comp,SWT.NULL);
+
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ socks_more = new Label(socks_comp, SWT.NULL );
+ socks_more.setText( MessageText.getString( "label.more") + "..." );
+ socks_more.setLayoutData( gd );
+ socks_more.setCursor(socks_more.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
+ socks_more.setForeground(Colors.blue);
+ socks_more.addMouseListener(new MouseAdapter() {
+ public void mouseDoubleClick(MouseEvent arg0) {
+ showSOCKSInfo();
+ }
+ public void mouseUp(MouseEvent arg0) {
+ showSOCKSInfo();
+ }
+ });
+
+ // the rest
+
+ sc.addControlListener(new ControlAdapter() {
+ public void controlResized(ControlEvent e) {
+ Rectangle r = sc.getClientArea();
+ Point size = cMainComposite.computeSize(r.width, SWT.DEFAULT);
+ sc.setMinSize(size);
+ }
+ });
+
+ swt_updateFields( null, current_dm );
+
+ updatePeersEtc( current_dm );
+
+ updateVPNSocks();
+
+ Rectangle r = sc.getClientArea();
+ Point size = cMainComposite.computeSize(r.width, SWT.DEFAULT);
+ sc.setMinSize(size);
+
+ Utils.relayout(cMainComposite);
+ }
+
+ private void
+ setPrivacyLevel(
+ final int level )
+ {
+ if ( level != privacy_level ){
+
+ Utils.execSWTThread(new AERunnable() {
+ public void
+ runSupport()
+ {
+ if ( level == privacy_level ){
+
+ return;
+ }
+
+ privacy_level = level;
+
+ DownloadManager dm = current_dm;
+
+ if ( dm == null ){
+
+ return;
+ }
+
+ DownloadManagerState state = dm.getDownloadState();
+
+ String[] new_nets;
+
+ if ( level == PL_PUBLIC ){
+
+ new_nets = new String[]{ AENetworkClassifier.AT_PUBLIC };
+
+ }else if ( level == PL_MIX ){
+
+ new_nets = AENetworkClassifier.AT_NETWORKS;
+
+ }else if ( level == PL_ANONYMOUS ){
+
+ new_nets = AENetworkClassifier.AT_NON_PUBLIC;
+
+ }else{
+
+ new_nets = new String[0];
+ }
+
+ // this will result in setupNetworksAndSources being called
+
+ state.setNetworks( new_nets );
+
+ if ( level != PL_PUBLIC ){
+
+ if ( !I2PHelpers.isI2PInstalled()){
+
+ if ( !i2p_install_prompted ){
+
+ i2p_install_prompted = true;
+
+ I2PHelpers.installI2PHelper(
+ null, null,
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ updateI2PState();
+ }
+ });
+ }
+ }
+ }
+ }
+ });
+ }
+ }
+
+ private void
+ swt_updateFields(
+ DownloadManager old_dm,
+ DownloadManager new_dm )
+ {
+ if ( cMainComposite == null || cMainComposite.isDisposed()){
+
+ return;
+ }
+
+ byte[] hash = null;
+
+ if ( new_dm != null ){
+
+ TOTorrent torrent = new_dm.getTorrent();
+
+ if ( torrent != null ){
+
+ try{
+ hash = torrent.getHash();
+
+ }catch( Throwable e ){
+
+ }
+ }
+ }
+
+ i2p_lookup_button.setData( "hash", hash );
+
+ updateI2PState();
+
+ Utils.disposeComposite( i2p_lookup_comp, false );
+
+ i2p_result_summary.setText( "" );
+ i2p_result_list.setText( "" );
+
+ if ( old_dm != null ){
+
+ DownloadManagerState state = old_dm.getDownloadState();
+
+ state.removeListener( this, DownloadManagerState.AT_NETWORKS, DownloadManagerStateAttributeListener.WRITTEN );
+ state.removeListener( this, DownloadManagerState.AT_PEER_SOURCES, DownloadManagerStateAttributeListener.WRITTEN );
+ state.removeListener( this, DownloadManagerState.AT_FLAGS, DownloadManagerStateAttributeListener.WRITTEN );
+ }
+
+ if ( new_dm != null ){
+
+ DownloadManagerState state = new_dm.getDownloadState();
+
+ state.addListener( this, DownloadManagerState.AT_NETWORKS, DownloadManagerStateAttributeListener.WRITTEN );
+ state.addListener( this, DownloadManagerState.AT_PEER_SOURCES, DownloadManagerStateAttributeListener.WRITTEN );
+ state.addListener( this, DownloadManagerState.AT_FLAGS, DownloadManagerStateAttributeListener.WRITTEN );
+
+ setupNetworksAndSources( new_dm );
+
+ setupTorrentTracker( new_dm );
+
+ }else{
+
+ setupNetworksAndSources( null );
+
+ setupTorrentTracker( null );
+ }
+ }
+
+ private void
+ setupNetworksAndSources(
+ final DownloadManager dm )
+ {
+ Utils.execSWTThread(new AERunnable() {
+ public void runSupport(){
+
+ enabled_networks.clear();
+ enabled_sources.clear();
+
+ if ( network_buttons == null || network_buttons[0].isDisposed()){
+
+ return;
+ }
+
+ DownloadManagerState state = null;
+
+ String[] networks = null;
+ String[] sources = null;
+
+ if ( dm != null ){
+
+ state = dm.getDownloadState();
+
+ networks = state.getNetworks();
+ sources = state.getPeerSources();
+ }
+
+ privacy_scale.setEnabled( networks != null );
+
+ if ( networks != null ){
+
+ enabled_networks.addAll( Arrays.asList( networks ));
+
+ int pl;
+
+ if ( enabled_networks.contains( AENetworkClassifier.AT_PUBLIC )){
+
+ if ( enabled_networks.size() == 1 ){
+
+ pl = PL_PUBLIC;
+ }else{
+
+ pl = PL_MIX;
+ }
+ }else{
+
+ if ( enabled_networks.size() == 0 ){
+
+ pl = PL_INVALID;
+
+ }else{
+
+ pl = PL_ANONYMOUS;
+ }
+ }
+
+ privacy_level = pl;
+
+ privacy_scale.setSelection( pl*10 );
+ }
+
+ for ( int i=0; i<AENetworkClassifier.AT_NETWORKS.length; i++){
+
+ final String net = AENetworkClassifier.AT_NETWORKS[i];
+
+ network_buttons[i].setEnabled( networks != null );
+
+ network_buttons[i].setSelection( enabled_networks.contains ( net ));
+ }
+
+
+ if ( sources != null ){
+
+ enabled_sources.addAll( Arrays.asList( sources ));
+ }
+
+ for ( int i=0; i<PEPeerSource.PS_SOURCES.length; i++){
+
+ final String source = PEPeerSource.PS_SOURCES[i];
+
+ source_buttons[i].setEnabled( sources != null && state.isPeerSourcePermitted( source ));
+
+ source_buttons[i].setSelection( enabled_sources.contains ( source ));
+ }
+
+ if ( state != null ){
+
+ ipfilter_enabled.setEnabled( true );
+
+ ipfilter_enabled.setSelection( !state.getFlag( DownloadManagerState.FLAG_DISABLE_IP_FILTER ));
+
+ }else{
+
+ ipfilter_enabled.setEnabled( false );
+ }
+ // update info about which trackers etc are enabled
+
+ setupTorrentTracker( dm );
+ }
+ });
+ }
+
+ private void
+ setupTorrentTracker(
+ final DownloadManager dm )
+ {
+ Utils.execSWTThread(new AERunnable() {
+ public void runSupport(){
+ if ( torrent_info == null || torrent_info.isDisposed()){
+
+ return;
+ }
+
+ TOTorrent torrent = dm==null?null:dm.getTorrent();
+
+ if ( torrent == null ){
+
+ torrent_info.setText( "" );
+ tracker_info.setText( "" );
+ webseed_info.setText( "" );
+
+ return;
+ }
+
+ boolean private_torrent = torrent.getPrivate();
+
+ torrent_info.setText( MessageText.getString( private_torrent?"label.private":"subs.prop.is_public" ));
+
+ boolean decentralised = false;
+
+ Set<String> tracker_nets = new HashSet<String>();
+
+ URL announce_url = torrent.getAnnounceURL();
+
+ if ( announce_url != null ){
+
+ if ( TorrentUtils.isDecentralised(announce_url)){
+
+ decentralised = true;
+
+ }else{
+
+ String net = AENetworkClassifier.categoriseAddress( announce_url.getHost());
+
+ tracker_nets.add( net );
+ }
+ }
+
+ TOTorrentAnnounceURLGroup group = torrent.getAnnounceURLGroup();
+
+ TOTorrentAnnounceURLSet[] sets = group.getAnnounceURLSets();
+
+ for ( TOTorrentAnnounceURLSet set: sets ){
+
+ URL[] urls = set.getAnnounceURLs();
+
+ for ( URL u: urls ){
+
+ if ( TorrentUtils.isDecentralised( u)){
+
+ decentralised = true;
+
+ }else{
+
+ String net = AENetworkClassifier.categoriseAddress( u.getHost());
+
+ tracker_nets.add( net );
+ }
+ }
+ }
+
+ boolean tracker_source_enabled = enabled_sources.contains( PEPeerSource.PS_BT_TRACKER );
+ boolean dht_source_enabled = enabled_sources.contains( PEPeerSource.PS_DHT );
+
+ String tracker_str = "";
+
+ tracker_str = MessageText.getString( "label.decentralised" );
+
+ String disabled_str = MessageText.getString( "MyTorrentsView.menu.setSpeed.disabled" );
+
+ String net_string = "";
+
+ if ( dht_source_enabled && !private_torrent ){
+
+ // dht only applicable to non-private torrents
+
+ for ( String net: new String[]{ AENetworkClassifier.AT_PUBLIC, AENetworkClassifier.AT_I2P }){
+
+ if ( enabled_networks.contains( net )){
+
+ net_string += (net_string.length()==0?"":", ") + net;
+ }
+ }
+ }
+
+ if ( net_string.length() == 0 ){
+
+ tracker_str += " (" + disabled_str + ")";
+
+ }else{
+
+ tracker_str += " [" + net_string + "]";
+ }
+
+ for ( String net: tracker_nets ){
+
+ if ( !tracker_source_enabled || !enabled_networks.contains( net )){
+
+ net += " (" + disabled_str + ")";
+ }
+
+ tracker_str += (tracker_str.length()==0?"":", " ) + net;
+ }
+
+ tracker_info.setText( tracker_str );
+
+ // web seeds
+
+ Set<String> webseed_nets = new HashSet<String>();
+
+ ExternalSeedPlugin esp = DownloadManagerController.getExternalSeedPlugin();
+
+ if ( esp != null ){
+
+ ExternalSeedReader[] seeds = esp.getManualWebSeeds( PluginCoreUtils.wrap( torrent ));
+
+ if ( seeds != null ){
+
+ for ( ExternalSeedReader seed: seeds ){
+
+ URL u = seed.getURL();
+
+ String net = AENetworkClassifier.categoriseAddress( u.getHost());
+
+ webseed_nets.add( net );
+ }
+ }
+ }
+
+ String webseeds_str = "";
+
+ if ( webseed_nets.isEmpty()){
+
+ webseeds_str = MessageText.getString( "PeersView.uniquepiece.none" );
+
+ }else{
+
+ for ( String net: webseed_nets ){
+
+ if ( !enabled_networks.contains( net )){
+
+ net += " (" + disabled_str + ")";
+ }
+
+ webseeds_str += (webseeds_str.length()==0?"":", " ) + net;
+ }
+ }
+
+ webseed_info.setText( webseeds_str );
+ }
+ });
+ }
+
+ private void
+ updatePeersEtc(
+ final DownloadManager dm )
+ {
+ final PEPeerManager pm;
+
+ if ( dm != null ){
+
+ pm = dm.getPeerManager();
+
+ }else{
+
+ pm = null;
+ }
+
+ Utils.execSWTThread(new AERunnable(){
+ public void runSupport()
+ {
+ if ( peer_info == null || peer_info.isDisposed()){
+
+ return;
+ }
+
+ if ( pm == null ){
+
+ peer_info.setText( dm==null?"":MessageText.getString( "privacy.view.dl.not.running" ));
+
+ }else{
+
+ AEProxySelector proxy_selector = AEProxySelectorFactory.getSelector();
+
+ Proxy proxy = proxy_selector.getActiveProxy();
+
+ boolean socks_bad_incoming = false;
+
+ List<PEPeer> peers = pm.getPeers();
+
+ String[] all_nets = AENetworkClassifier.AT_NETWORKS;
+
+ int[] counts = new int[ all_nets.length];
+
+ int incoming = 0;
+ int outgoing = 0;
+ int outgoing_connected = 0;
+
+ for ( PEPeer peer: peers ){
+
+ String net = PeerUtils.getNetwork( peer );
+
+ for ( int i=0;i<all_nets.length;i++ ){
+
+ if ( all_nets[i] == net ){
+
+ counts[i]++;
+
+ break;
+ }
+ }
+
+ boolean is_incoming = peer.isIncoming();
+
+ if ( is_incoming ){
+
+ incoming++;
+
+ }else{
+
+ outgoing++;
+
+ if ( peer.getPeerState() == PEPeer.TRANSFERING ){
+
+ outgoing_connected++;
+ }
+ }
+
+ if ( proxy != null ){
+
+ if ( is_incoming ){
+
+ if ( !peer.isLANLocal()){
+
+ try{
+ if ( InetAddress.getByAddress( HostNameToIPResolver.hostAddressToBytes( peer.getIp())).isLoopbackAddress()){
+
+ continue;
+ }
+ }catch( Throwable e ){
+ }
+
+ socks_bad_incoming = true;
+
+ break;
+ }
+ }
+ }
+ }
+
+ String str = "";
+
+ for ( int i=0;i<all_nets.length;i++ ){
+
+ int num = counts[i];
+
+ if ( num > 0 ){
+
+ str += (str.length()==0?"":", ") + all_nets[i] + "=" + num;
+ }
+ }
+
+ if ( str.length() == 0 ){
+
+ str = MessageText.getString( "privacy.view.no.peers" );
+
+ }else{
+
+ str += ", " + MessageText.getString( "label.incoming" ) + "=" + incoming +
+ ", " + MessageText.getString( "label.outgoing" ) + "=" + outgoing_connected + "/" + outgoing;
+ }
+
+ if ( socks_bad_incoming ){
+
+ str += " (" + MessageText.getString( "privacy.view.non.local.peer" ) + ")";
+ }
+
+ peer_info.setText( str );
+ }
+
+ updateVPNSocks();
+ }
+ });
+ }
+
+ private void
+ updateVPNSocks()
+ {
+ AEProxySelector proxy_selector = AEProxySelectorFactory.getSelector();
+
+ Proxy proxy = proxy_selector.getActiveProxy();
+
+ socks_more.setEnabled( proxy != null );
+
+ if ( Constants.isOSX ){
+
+ socks_more.setForeground(proxy==null?Colors.light_grey:Colors.blue);
+ }
+
+ socks_state.setText( proxy==null?MessageText.getString( "label.inactive" ): ((InetSocketAddress)proxy.address()).getHostName());
+
+ if ( proxy == null ){
+
+ socks_current.setText( "" );
+
+ socks_fails.setText( "" );
+
+ }else{
+
+ long last_con = proxy_selector.getLastConnectionTime();
+ long last_fail = proxy_selector.getLastFailTime();
+ int total_cons = proxy_selector.getConnectionCount();
+ int total_fails = proxy_selector.getFailCount();
+
+ long now = SystemTime.getMonotonousTime();
+
+ long con_ago = now - last_con;
+ long fail_ago = now - last_fail;
+
+ String state_str;
+
+ if ( last_fail < 0 ){
+
+ state_str = "PeerManager.status.ok";
+
+ }else{
+
+ if ( fail_ago > 60*1000 ){
+
+ if ( con_ago < fail_ago ){
+
+ state_str = "PeerManager.status.ok";
+
+ }else{
+
+ state_str = "SpeedView.stats.unknown";
+ }
+ }else{
+
+ state_str = "ManagerItem.error";
+ }
+ }
+
+ socks_current.setText( MessageText.getString( state_str ) + ", con=" + total_cons );
+
+ long fail_ago_secs = fail_ago/1000;
+
+ if ( fail_ago_secs == 0 ){
+
+ fail_ago_secs = 1;
+ }
+
+ socks_fails.setText( last_fail<0?"":(DisplayFormatters.formatETA( fail_ago_secs, false ) + " " + MessageText.getString( "label.ago" ) + ", tot=" + total_fails ));
+ }
+
+ vpn_info.setText( NetworkAdmin.getSingleton().getBindStatus());
+ }
+
+ private void
+ updateI2PState()
+ {
+ Utils.execSWTThread(new AERunnable(){
+ public void runSupport()
+ {
+ boolean i2p_installed = I2PHelpers.isI2PInstalled();
+
+ i2p_install_button.setText( MessageText.getString( i2p_installed?"devices.installed":"privacy.view.install.i2p" ));
+
+ i2p_install_button.setEnabled( !i2p_installed );
+
+ i2p_lookup_button.setEnabled( i2p_installed && i2p_lookup_button.getData( "hash" ) != null );
+
+ i2p_options_link.setEnabled( i2p_installed );
+ }
+ });
+ }
+
+ public void
+ attributeEventOccurred(
+ DownloadManager download,
+ String attribute,
+ int event_type )
+ {
+ setupNetworksAndSources( download );
+ }
+
+ private void
+ showSOCKSInfo()
+ {
+ AEProxySelector proxy_selector = AEProxySelectorFactory.getSelector();
+
+ String info = proxy_selector.getInfo();
+
+ TextViewerWindow viewer = new TextViewerWindow(
+ MessageText.getString( "proxy.info.title" ),
+ null,
+ info, false );
+
+ }
+
+ private GridLayout
+ removeMarginsAndSpacing(
+ GridLayout layout )
+ {
+ layout.horizontalSpacing = 0;
+ layout.verticalSpacing = 0;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+
+ return( layout );
+ }
+
+ private GridLayout
+ removeMargins(
+ GridLayout layout )
+ {
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+
+ return( layout );
+ }
+}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/TagSettingsView.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/TagSettingsView.java
index a0b59c3..0dd73bb 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/TagSettingsView.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/TagSettingsView.java
@@ -169,8 +169,20 @@ public class TagSettingsView
initialize(null);
}
-
- private void initialize(Composite parent) {
+
+ private void initialize(final Composite parent) {
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ swt_initialize( parent );
+ }
+ });
+ }
+
+ private void swt_initialize(Composite parent) {
if (cMainComposite == null || cMainComposite.isDisposed()) {
if (parent == null || parent.isDisposed()) {
return;
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/columnsetup/ColumnTC_NameInfo.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/columnsetup/ColumnTC_NameInfo.java
index 1256ea8..5432ca1 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/columnsetup/ColumnTC_NameInfo.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/columnsetup/ColumnTC_NameInfo.java
@@ -75,7 +75,8 @@ public class ColumnTC_NameInfo
// @see org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener#cellPaint(org.eclipse.swt.graphics.GC, org.gudy.azureus2.ui.swt.views.table.TableCellSWT)
public void cellPaint(GC gc, TableCellSWT cell) {
TableColumnCore column = (TableColumnCore) cell.getDataSource();
- String key = column.getTitleLanguageKey();
+ String raw_key = column.getTitleLanguageKey( false );
+ String current_key = column.getTitleLanguageKey( true );
Rectangle bounds = cell.getBounds();
if (bounds == null || bounds.isEmpty()) {
return;
@@ -94,14 +95,21 @@ public class ColumnTC_NameInfo
bounds.y += 3;
bounds.x += 7;
bounds.width -= 14;
- String name = MessageText.getString(key, column.getName());
+ String name = MessageText.getString(raw_key, column.getName());
+
+ if ( !raw_key.equals( current_key )){
+ String rename = MessageText.getString(current_key, "");
+ if ( rename.length() > 0 ){
+ name += " (->" + rename + ")";
+ }
+ }
GCStringPrinter sp = new GCStringPrinter(gc, name, bounds, GCStringPrinter.FLAG_SKIPCLIP, SWT.TOP);
sp.printString();
Point titleSize = sp.getCalculatedSize();
gc.setFont(fontDefault);
- String info = MessageText.getString(key + ".info", "");
+ String info = MessageText.getString(raw_key + ".info", "");
Rectangle infoBounds = new Rectangle(bounds.x + 10, bounds.y + titleSize.y
+ 5, bounds.width - 15, bounds.height - 20);
GCStringPrinter.printString(gc, info, infoBounds, true, false);
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionInterface.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionInterface.java
index fdd45c7..eb321ed 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionInterface.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionInterface.java
@@ -129,7 +129,7 @@ public class ConfigSectionInterface implements UISWTConfigSection {
new BooleanParameter(cDisplay, "Remember transfer bar location", LBLKEY_PREFIX + "transferbar.remember_location");
Composite gBarTrans = new Composite(cDisplay, SWT.NULL);
- layout = new GridLayout(2, false);
+ layout = new GridLayout(4, false);
layout.marginWidth = 0;
layout.marginHeight = 0;
gBarTrans.setLayout(layout);
@@ -142,6 +142,14 @@ public class ConfigSectionInterface implements UISWTConfigSection {
new IntParameter(gBarTrans, "Bar Transparency", 0, 100 );
+ label = new Label(gBarTrans, SWT.NULL);
+ Messages.setLanguageText(label, "label.show.icon.area");
+
+ new BooleanParameter(gBarTrans, "Transfer Bar Show Icon Area" );
+
+
+
+
Group gSysTray = new Group(cDisplay, SWT.NULL);
Messages.setLanguageText(gSysTray, LBLKEY_PREFIX + "systray");
layout = new GridLayout();
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionPlugins.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionPlugins.java
index 54a1006..431672e 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionPlugins.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/configsections/ConfigSectionPlugins.java
@@ -544,6 +544,9 @@ public class ConfigSectionPlugins implements UISWTConfigSection, ParameterListen
public void
run()
{
+ if (table == null || table.isDisposed()) {
+ return;
+ }
pluginIFs = rebuildPluginIFs();
table.setItemCount(pluginIFs.size());
Collections.sort(pluginIFs, comparator);
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/stats/DHTOpsPanel.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/stats/DHTOpsPanel.java
index 69322f4..a9ac84a 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/stats/DHTOpsPanel.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/stats/DHTOpsPanel.java
@@ -64,6 +64,8 @@ DHTOpsPanel
Canvas canvas;
Scale scale;
+ private int min_slots = 8;
+
private boolean unavailable;
private boolean mouseLeftDown = false;
@@ -77,7 +79,9 @@ DHTOpsPanel
private boolean autoAlpha = false;
- private DHT current_dht;
+ private DHT current_dht;
+ private ActivityFilter filter;
+
private Map<DHTControlActivity,ActivityDetail> activity_map = new HashMap<DHTControlActivity,ActivityDetail>();
private TimerEventPeriodic timeout_timer;
@@ -311,6 +315,11 @@ DHTOpsPanel
DHTControlActivity activity,
int type )
{
+ if ( filter != null && !filter.accept( activity )){
+
+ return;
+ }
+
//System.out.println( activity.getString() + "/" + type + "/" + activity.getCurrentState().getString());
if ( activity.isQueued()){
@@ -380,7 +389,40 @@ DHTOpsPanel
refresh();
}
+
+ public void
+ setFilter(
+ ActivityFilter f )
+ {
+ filter = f;
+ }
+ /**
+ * @param min things don't work well for < 4...
+ */
+
+ public void
+ setMinimumSlots(
+ int min )
+ {
+ min_slots = min;
+ }
+
+ public void
+ setScaleAndRotation(
+ float min_x,
+ float max_x,
+ float min_y,
+ float max_y,
+ double rot )
+ {
+ scale.minX = min_x;
+ scale.maxX = max_x;
+ scale.minY = min_y;
+ scale.maxY = max_y;
+ scale.rotation = rot;
+ }
+
public void
refresh()
{
@@ -429,7 +471,7 @@ DHTOpsPanel
long now = SystemTime.getMonotonousTime();
- int max_slot = Math.max( activities.size(), 8 ); // always have at least 8 slots
+ int max_slot = Math.max( activities.size(), min_slots );
for ( ActivityDetail details: activities ){
@@ -707,15 +749,17 @@ DHTOpsPanel
int text_x = scale.getX(x_end, y_end);
int text_y = scale.getY(x_end, y_end);
+ String desc = activity.getDescription();
+
if ( complete_time >= 0 && result_str.length() == 0 ){
if ( state_maybe_null != null ){
- result_str = ": " + state_maybe_null.getResult();
+ result_str = ( desc.length()==0?"":": " ) + state_maybe_null.getResult();
}
}
- gc.drawText( activity.getDescription() + result_str, text_x, text_y );
+ gc.drawText( desc + result_str, text_x, text_y );
//gc.drawLine(x_origin, y_origin, (int)x_end, (int)y_end );
@@ -759,4 +803,12 @@ DHTOpsPanel
}
}
}
+
+ public interface
+ ActivityFilter
+ {
+ public boolean
+ accept(
+ DHTControlActivity activity );
+ }
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/table/utils/TableColumnCreator.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/table/utils/TableColumnCreator.java
index 880f678..4d9274f 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/table/utils/TableColumnCreator.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/table/utils/TableColumnCreator.java
@@ -174,6 +174,7 @@ public class TableColumnCreator
c.put(SizeItem.COLUMN_ID, new cInfo(SizeItem.class, SizeItem.DATASOURCE_TYPE));
c.put(ColumnSizeWithDND.COLUMN_ID, new cInfo(ColumnSizeWithDND.class, ColumnSizeWithDND.DATASOURCE_TYPE));
c.put(DoneItem.COLUMN_ID, new cInfo(DoneItem.class, DoneItem.DATASOURCE_TYPE));
+ c.put(ColumnDoneWithDND.COLUMN_ID, new cInfo(ColumnDoneWithDND.class, ColumnDoneWithDND.DATASOURCE_TYPE));
c.put(StatusItem.COLUMN_ID, new cInfo(StatusItem.class, StatusItem.DATASOURCE_TYPE));
c.put(ETAItem.COLUMN_ID, new cInfo(ETAItem.class, ETAItem.DATASOURCE_TYPE));
c.put(HealthItem.COLUMN_ID, new cInfo(HealthItem.class, HealthItem.DATASOURCE_TYPE));
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/mytorrents/ColumnDoneWithDND.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/mytorrents/ColumnDoneWithDND.java
new file mode 100644
index 0000000..7c1596b
--- /dev/null
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/mytorrents/ColumnDoneWithDND.java
@@ -0,0 +1,86 @@
+/*
+ * File : DoneItem.java
+ * Created : 24 nov. 2003
+ * By : Olivier
+ *
+ * Copyright (C) Azureus Software, Inc, All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details ( see the LICENSE file ).
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+package org.gudy.azureus2.ui.swt.views.tableitems.mytorrents;
+
+import org.gudy.azureus2.core3.disk.DiskManagerFileInfo;
+import org.gudy.azureus2.core3.download.DownloadManager;
+import org.gudy.azureus2.core3.download.DownloadManagerStats;
+import org.gudy.azureus2.core3.util.DisplayFormatters;
+
+import org.gudy.azureus2.plugins.download.Download;
+import org.gudy.azureus2.plugins.ui.tables.*;
+import org.gudy.azureus2.ui.swt.views.table.CoreTableColumnSWT;
+
+
+
+/** % Done column in My Torrents
+ *
+ * @author Olivier
+ * @author TuxPaper (2004/Apr/17: modified to TableCellAdapter)
+ */
+public class ColumnDoneWithDND
+ extends CoreTableColumnSWT
+ implements TableCellRefreshListener
+{
+ public static final Class DATASOURCE_TYPE = Download.class;
+
+ public static final String COLUMN_ID = "donewithdnd";
+
+ /** Default Constructor */
+ public ColumnDoneWithDND(String sTableID) {
+ super(DATASOURCE_TYPE, COLUMN_ID, ALIGN_TRAIL, 55, sTableID);
+ addDataSourceType(DiskManagerFileInfo.class);
+ setRefreshInterval(INTERVAL_LIVE);
+ setPosition(POSITION_INVISIBLE);
+ setMinWidthAuto(true);
+ }
+
+ public void fillTableColumnInfo(TableColumnInfo info) {
+ info.addCategories(new String[] { CAT_PROGRESS });
+ info.setProficiency(TableColumnInfo.PROFICIENCY_ADVANCED);
+ }
+
+ public void refresh(TableCell cell) {
+ int value;
+ Object ds = cell.getDataSource();
+ if (ds instanceof DownloadManager) {
+ // show amount completed of non-dnd files as makes more sense
+ DownloadManager dm = (DownloadManager) ds;
+ DownloadManagerStats stats = dm.getStats();
+ value = stats.getDownloadCompleted(true);
+ } else if (ds instanceof DiskManagerFileInfo) {
+ DiskManagerFileInfo fileInfo = (DiskManagerFileInfo) ds;
+ long length = fileInfo.getLength();
+ if (length == 0) {
+ value = 1000;
+ } else {
+ value = (int) (fileInfo.getDownloaded() * 1000 / length);
+ }
+ } else {
+ return;
+ }
+ if (!cell.setSortValue(value) && cell.isValid())
+ return;
+ cell.setText(DisplayFormatters.formatPercentFromThousands(value));
+ }
+}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/mytorrents/ETAItem.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/mytorrents/ETAItem.java
index 7030de1..7325d87 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/mytorrents/ETAItem.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/mytorrents/ETAItem.java
@@ -43,7 +43,7 @@ public class ETAItem
extends CoreTableColumnSWT
implements TableCellRefreshListener
{
- public static final Class DATASOURCE_TYPE = DownloadTypeIncomplete.class;
+ public static final Class<?> DATASOURCE_TYPE = DownloadTypeIncomplete.class;
public static final String COLUMN_ID = "eta";
@@ -65,8 +65,9 @@ public class ETAItem
public void refresh(TableCell cell) {
DownloadManager dm = (DownloadManager)cell.getDataSource();
long value = (dm == null) ? 0 : dm.getStats().getETA();
+ Long sortVal = value < 0 ? null : value;
- if (!cell.setSortValue(value) && cell.isValid()){
+ if (!cell.setSortValue(sortVal) && cell.isValid()){
return;
}
diff --git a/azureus2/src/org/gudy/azureus2/ui/swt/views/utils/TagUIUtils.java b/azureus2/src/org/gudy/azureus2/ui/swt/views/utils/TagUIUtils.java
index 48a6123..c6812cb 100644
--- a/azureus2/src/org/gudy/azureus2/ui/swt/views/utils/TagUIUtils.java
+++ b/azureus2/src/org/gudy/azureus2/ui/swt/views/utils/TagUIUtils.java
@@ -25,7 +25,6 @@ import java.util.*;
import java.util.List;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
@@ -592,490 +591,20 @@ public class TagUIUtils
boolean needs_separator_next = false;
- if ( tag_type.hasTagTypeFeature( TagFeature.TF_RATE_LIMIT )) {
+ int countBefore = menu.getItemCount();
- final TagFeatureRateLimit tf_rate_limit = (TagFeatureRateLimit)tag;
-
- boolean has_up = tf_rate_limit.supportsTagUploadLimit();
- boolean has_down = tf_rate_limit.supportsTagDownloadLimit();
-
- if ( has_up || has_down ){
-
- needs_separator_next = true;
-
- long maxDownload = COConfigurationManager.getIntParameter(
- "Max Download Speed KBs", 0) * 1024L;
- long maxUpload = COConfigurationManager.getIntParameter(
- "Max Upload Speed KBs", 0) * 1024L;
-
- int down_speed = tf_rate_limit.getTagDownloadLimit();
- int up_speed = tf_rate_limit.getTagUploadLimit();
-
- Map<String,Object> menu_properties = new HashMap<String,Object>();
-
- if ( tag_type.getTagType() == TagType.TT_PEER_IPSET || tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL ){
-
- if ( has_up ){
- menu_properties.put( ViewUtils.SM_PROP_PERMIT_UPLOAD_DISABLE, true );
- }
- if ( has_down ){
- menu_properties.put( ViewUtils.SM_PROP_PERMIT_DOWNLOAD_DISABLE, true );
- }
- }
-
- ViewUtils.addSpeedMenu(
- menu.getShell(), menu, has_up, has_down, true, true,
- down_speed == -1, down_speed == 0, down_speed, down_speed, maxDownload,
- up_speed == -1, up_speed == 0, up_speed, up_speed, maxUpload,
- 1, menu_properties,
- new SpeedAdapter() {
- public void setDownSpeed(int val) {
- tf_rate_limit.setTagDownloadLimit(val);
- }
-
- public void setUpSpeed(int val) {
- tf_rate_limit.setTagUploadLimit(val);
- }
- });
- }
-
- if ( userMode > 0 ){
-
- if ( tf_rate_limit.getTagUploadPriority() >= 0 ){
-
- needs_separator_next = true;
-
- final MenuItem upPriority = new MenuItem(menu, SWT.CHECK );
-
- upPriority.setSelection( tf_rate_limit.getTagUploadPriority() > 0 );
-
- Messages.setLanguageText(upPriority, "cat.upload.priority");
- upPriority.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- boolean set = upPriority.getSelection();
- tf_rate_limit.setTagUploadPriority( set?1:0 );
- }
- });
- }
-
- if ( tf_rate_limit.getTagMinShareRatio() >= 0 ){
-
- needs_separator_next = true;
-
- MenuItem itemSR = new MenuItem(menu, SWT.PUSH);
-
- final String existing = String.valueOf( tf_rate_limit.getTagMinShareRatio()/1000.0f);
-
- Messages.setLanguageText(itemSR, "menu.min.share.ratio", new String[]{existing} );
-
- itemSR.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
- "min.sr.window.title", "min.sr.window.message");
-
- entryWindow.setPreenteredText( existing, false );
- entryWindow.selectPreenteredText( true );
-
- entryWindow.prompt();
-
- if ( entryWindow.hasSubmittedInput()){
-
- try{
- String text = entryWindow.getSubmittedInput().trim();
-
- int sr = 0;
-
- if ( text.length() > 0 ){
-
- try{
- float f = Float.parseFloat( text );
-
- sr = (int)(f * 1000 );
-
- if ( sr < 0 ){
-
- sr = 0;
-
- }else if ( sr == 0 && f > 0 ){
-
- sr = 1;
- }
-
- }catch( Throwable e ){
-
- Debug.out( e );
- }
-
- tf_rate_limit.setTagMinShareRatio( sr );
-
- }
- }catch( Throwable e ){
-
- Debug.out( e );
- }
- }
- }
- });
- }
-
- if ( tf_rate_limit.getTagMaxShareRatio() >= 0 ){
-
- needs_separator_next = true;
-
- MenuItem itemSR = new MenuItem(menu, SWT.PUSH);
-
- final String existing = String.valueOf( tf_rate_limit.getTagMaxShareRatio()/1000.0f);
-
- Messages.setLanguageText(itemSR, "menu.max.share.ratio", new String[]{existing} );
-
- itemSR.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
- "max.sr.window.title", "max.sr.window.message");
-
- entryWindow.setPreenteredText( existing, false );
- entryWindow.selectPreenteredText( true );
-
- entryWindow.prompt();
-
- if ( entryWindow.hasSubmittedInput()){
-
- try{
- String text = entryWindow.getSubmittedInput().trim();
-
- int sr = 0;
-
- if ( text.length() > 0 ){
-
- try{
- float f = Float.parseFloat( text );
-
- sr = (int)(f * 1000 );
-
- if ( sr < 0 ){
-
- sr = 0;
-
- }else if ( sr == 0 && f > 0 ){
-
- sr = 1;
- }
-
- }catch( Throwable e ){
-
- Debug.out( e );
- }
-
- tf_rate_limit.setTagMaxShareRatio( sr );
-
- }
- }catch( Throwable e ){
-
- Debug.out( e );
- }
- }
- }
- });
- }
- }
+ if ( tag_type.hasTagTypeFeature( TagFeature.TF_RATE_LIMIT )) {
+ createTF_RateLimitMenuItems(menu, tag, tag_type, userMode);
}
if ( tag_type.hasTagTypeFeature( TagFeature.TF_RUN_STATE )) {
-
- final TagFeatureRunState tf_run_state = (TagFeatureRunState)tag;
-
- int caps = tf_run_state.getRunStateCapabilities();
-
- int[] op_set = {
- TagFeatureRunState.RSC_START, TagFeatureRunState.RSC_STOP,
- TagFeatureRunState.RSC_PAUSE, TagFeatureRunState.RSC_RESUME };
-
- boolean[] can_ops_set = tf_run_state.getPerformableOperations( op_set );
-
- if ((caps & TagFeatureRunState.RSC_START ) != 0 ){
-
- needs_separator_next = true;
-
- final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
- Messages.setLanguageText(itemOp, "MyTorrentsView.menu.queue");
- Utils.setMenuItemImage(itemOp, "start");
- itemOp.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- tf_run_state.performOperation( TagFeatureRunState.RSC_START );
- }
- });
- itemOp.setEnabled(can_ops_set[0]);
- }
-
- if ((caps & TagFeatureRunState.RSC_STOP ) != 0 ){
-
- needs_separator_next = true;
-
- final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
- Messages.setLanguageText(itemOp, "MyTorrentsView.menu.stop");
- Utils.setMenuItemImage(itemOp, "stop");
- itemOp.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- tf_run_state.performOperation( TagFeatureRunState.RSC_STOP );
- }
- });
- itemOp.setEnabled(can_ops_set[1]);
- }
-
- if ((caps & TagFeatureRunState.RSC_PAUSE ) != 0 ){
-
- needs_separator_next = true;
-
- final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
- Messages.setLanguageText(itemOp, "v3.MainWindow.button.pause");
- Utils.setMenuItemImage(itemOp, "pause");
- itemOp.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- tf_run_state.performOperation( TagFeatureRunState.RSC_PAUSE );
- }
- });
- itemOp.setEnabled(can_ops_set[2]);
- }
-
- if ((caps & TagFeatureRunState.RSC_RESUME ) != 0 ){
-
- needs_separator_next = true;
-
- final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
- Messages.setLanguageText(itemOp, "v3.MainWindow.button.resume");
- Utils.setMenuItemImage(itemOp, "start");
- itemOp.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- tf_run_state.performOperation( TagFeatureRunState.RSC_RESUME );
- }
- });
- itemOp.setEnabled(can_ops_set[3]);
- }
+ createTF_RunState(menu, tag);
}
if ( tag_type.hasTagTypeFeature( TagFeature.TF_FILE_LOCATION )) {
-
- final TagFeatureFileLocation fl = (TagFeatureFileLocation)tag;
-
- if ( fl.supportsTagInitialSaveFolder() || fl.supportsTagMoveOnComplete() || fl.supportsTagCopyOnComplete()){
-
- needs_separator_next = true;
-
- Menu files_menu = new Menu( menu.getShell(), SWT.DROP_DOWN);
-
- MenuItem files_item = new MenuItem( menu, SWT.CASCADE);
-
- Messages.setLanguageText( files_item, "ConfigView.section.files" );
-
- files_item.setMenu( files_menu );
-
- if ( fl.supportsTagInitialSaveFolder()){
-
- final Menu moc_menu = new Menu( files_menu.getShell(), SWT.DROP_DOWN);
-
- MenuItem isl_item = new MenuItem( files_menu, SWT.CASCADE);
-
- Messages.setLanguageText( isl_item, "label.init.save.loc" );
-
- isl_item.setMenu( moc_menu );
-
- MenuItem clear_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( clear_item, "Button.clear" );
-
- clear_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- fl.setTagInitialSaveFolder( null );
- }});
-
- // apply
-
- final File existing = fl.getTagInitialSaveFolder();
-
- MenuItem apply_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( apply_item, "apply.to.current" );
-
- apply_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- applyLocationToCurrent( tag, existing );
- }});
-
- new MenuItem( moc_menu, SWT.SEPARATOR);
-
- if ( existing != null ){
-
- MenuItem current_item = new MenuItem( moc_menu, SWT.RADIO );
- current_item.setSelection( true );
-
- current_item.setText( existing.getAbsolutePath());
-
- new MenuItem( moc_menu, SWT.SEPARATOR);
-
- }else{
-
- apply_item.setEnabled( false );
- clear_item.setEnabled( false );
- }
-
- MenuItem set_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( set_item, "label.set" );
-
- set_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- DirectoryDialog dd = new DirectoryDialog(moc_menu.getShell());
-
- dd.setFilterPath( TorrentOpener.getFilterPathData());
-
- dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
-
- String path = dd.open();
-
- if ( path != null ){
-
- TorrentOpener.setFilterPathData( path );
-
- fl.setTagInitialSaveFolder( new File( path ));
- }
- }});
- }
-
- if ( fl.supportsTagMoveOnComplete()){
-
- final Menu moc_menu = new Menu( files_menu.getShell(), SWT.DROP_DOWN);
-
- MenuItem moc_item = new MenuItem( files_menu, SWT.CASCADE);
-
- Messages.setLanguageText( moc_item, "label.move.on.comp" );
-
- moc_item.setMenu( moc_menu );
-
- MenuItem clear_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( clear_item, "Button.clear" );
-
- clear_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- fl.setTagMoveOnCompleteFolder( null );
- }});
-
-
- // apply
-
- final File existing = fl.getTagMoveOnCompleteFolder();
-
- MenuItem apply_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( apply_item, "apply.to.current" );
-
- apply_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- applyLocationToCurrent( tag, existing );
- }});
-
- new MenuItem( moc_menu, SWT.SEPARATOR);
-
- if ( existing != null ){
-
- MenuItem current_item = new MenuItem( moc_menu, SWT.RADIO );
- current_item.setSelection( true );
-
- current_item.setText( existing.getAbsolutePath());
-
- new MenuItem( moc_menu, SWT.SEPARATOR);
-
- }else{
-
- apply_item.setEnabled( false );
- clear_item.setEnabled( false );
- }
-
- MenuItem set_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( set_item, "label.set" );
-
- set_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- DirectoryDialog dd = new DirectoryDialog(moc_menu.getShell());
-
- dd.setFilterPath( TorrentOpener.getFilterPathData());
-
- dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
-
- String path = dd.open();
-
- if ( path != null ){
-
- TorrentOpener.setFilterPathData( path );
-
- fl.setTagMoveOnCompleteFolder( new File( path ));
- }
- }});
- }
-
- if ( fl.supportsTagCopyOnComplete()){
-
- final Menu moc_menu = new Menu( files_menu.getShell(), SWT.DROP_DOWN);
-
- MenuItem moc_item = new MenuItem( files_menu, SWT.CASCADE);
-
- Messages.setLanguageText( moc_item, "label.copy.on.comp" );
-
- moc_item.setMenu( moc_menu );
-
- MenuItem clear_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( clear_item, "Button.clear" );
-
- clear_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- fl.setTagCopyOnCompleteFolder( null );
- }});
-
- new MenuItem( moc_menu, SWT.SEPARATOR);
-
- File existing = fl.getTagCopyOnCompleteFolder();
-
- if ( existing != null ){
-
- MenuItem current_item = new MenuItem( moc_menu, SWT.RADIO );
- current_item.setSelection( true );
-
- current_item.setText( existing.getAbsolutePath());
-
- new MenuItem( moc_menu, SWT.SEPARATOR);
-
- }else{
-
- clear_item.setEnabled( false );
- }
-
- MenuItem set_item = new MenuItem( moc_menu, SWT.CASCADE);
-
- Messages.setLanguageText( set_item, "label.set" );
-
- set_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- DirectoryDialog dd = new DirectoryDialog(moc_menu.getShell());
-
- dd.setFilterPath( TorrentOpener.getFilterPathData());
-
- dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
-
- String path = dd.open();
-
- if ( path != null ){
-
- TorrentOpener.setFilterPathData( path );
-
- fl.setTagCopyOnCompleteFolder( new File( path ));
- }
- }});
- }
- }
+ createTF_FileLocationMenuItems(menu, tag);
}
-
+
if ( tag_type.hasTagTypeFeature( TagFeature.TF_EXEC_ON_ASSIGN )){
final TagFeatureExecOnAssign tf_eoa = (TagFeatureExecOnAssign)tag;
@@ -1139,168 +668,880 @@ public class TagUIUtils
}
}
- if ( userMode > 0 ){
+ if ( userMode > 0 ){
if ( tag_type.hasTagTypeFeature( TagFeature.TF_PROPERTIES )){
-
- TagFeatureProperties props = (TagFeatureProperties)tag;
-
- TagProperty[] tps = props.getSupportedProperties();
-
- if ( tps.length > 0 ){
-
- needs_separator_next = true;
+
+ createTFProperitesMenuItems(menu, tag);
+ }
+ }
+
+ if (menu.getItemCount() > countBefore) {
+ needs_separator_next = true;
+ }
+
+ if ( needs_separator_next ){
+
+ new MenuItem( menu, SWT.SEPARATOR);
+
+ needs_separator_next = false;
+ }
+
+
+ /* Seldom Used: Can be set in Tags Overview
+ // sharing
+ if ( tag.canBePublic()){
+
+ needs_separator_next = true;
+
+ final MenuItem itemPublic = new MenuItem(menu, SWT.CHECK );
+
+ itemPublic.setSelection( tag.isPublic());
+
+ Messages.setLanguageText(itemPublic, "tag.share");
+
+ itemPublic.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+
+ tag.setPublic( itemPublic.getSelection());
+ }});
+ }
+ */
+
+ if ( tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL ){
+
+ needs_separator_next = true;
+
+ MenuItem search = new MenuItem(menu, SWT.PUSH);
+ Messages.setLanguageText(search, "tag.search");
+ search.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ UIFunctionsManager.getUIFunctions().doSearch( "tag:" + tag.getTagName( true ));
+ }});
+ }
+
+ // share with friends
+ addShareWithFriendsMenuItems(menu, tag, tag_type);
+
+
+ // rss feed
+
+ if ( tag_type.hasTagTypeFeature( TagFeature.TF_RSS_FEED )) {
+
+ final TagFeatureRSSFeed tfrss = (TagFeatureRSSFeed)tag;
+
+ // rss feed
+
+ final MenuItem rssOption = new MenuItem(menu, SWT.CHECK );
+
+ rssOption.setSelection( tfrss.isTagRSSFeedEnabled());
+
+ Messages.setLanguageText(rssOption, "cat.rss.gen");
+ rssOption.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ boolean set = rssOption.getSelection();
+ tfrss.setTagRSSFeedEnabled( set );
+ }
+ });
+ }
+
+ if ( tag_type.hasTagTypeFeature( TagFeature.TF_XCODE )) {
+ createXCodeMenuItems(menu, tag);
+ }
+
+ needs_separator_next = true;
+
+ if ( tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL ){
+
+ MenuBuildUtils.addChatMenu( menu, "label.chat", getChatKey( tag ));
+ }
+
+ MenuItem itemShowStats = new MenuItem(menu, SWT.PUSH);
+
+ Messages.setLanguageText(itemShowStats, "tag.show.stats");
+ itemShowStats.addListener(SWT.Selection, new Listener() {
+ public void handleEvent( Event event ){
+ UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
+ uiFunctions.getMDI().loadEntryByID(StatsView.VIEW_ID, true, false, "TagStatsView");
+ }
+ });
+
+ if ( needs_separator_next ){
+
+ new MenuItem( menu, SWT.SEPARATOR);
+
+ needs_separator_next = false;
+ }
+
+ boolean auto = tag_type.isTagTypeAuto();
+
+ boolean closable = auto;
+
+ if ( tag.getTaggableTypes() == Taggable.TT_DOWNLOAD ){
+
+ closable = true; // extended closable tags to include manual ones due to user request
+ }
+
+ Menu[] menuShowHide = { null };
+
+ if ( closable ){
+ createCloseableMenuItems(menu, tag, tag_type, menuShowHide, needs_separator_next);
+ }
+
+ if ( !auto ){
+ createNonAutoMenuItems(menu, tag, tag_type, menuShowHide);
+ }
+
+ MenuItem menuSettings = new MenuItem(menu, SWT.PUSH);
+ Messages.setLanguageText(menuSettings, "TagSettingsView.title");
+ menuSettings.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
+ uiFunctions.getMDI().showEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_TAGS, tag);
+ }
+ });
+
+ org.gudy.azureus2.plugins.ui.menus.MenuItem[] items = MenuItemManager.getInstance().getAllAsArray(
+ MenuManager.MENU_TAG_CONTEXT);
+
+ if (items.length > 0) {
+ MenuFactory.addSeparatorMenuItem(menu);
+
+ // TODO: Don't send Tag.. send a yet-to-be-created plugin interface version of Tag
+ MenuBuildUtils.addPluginMenuItems(items, menu, true, true,
+ new MenuBuildUtils.MenuItemPluginMenuControllerImpl(new Tag[] { tag }));
+ }
+ }
+
+ private static void createTF_RunState(Menu menu, Tag tag) {
+
+ final TagFeatureRunState tf_run_state = (TagFeatureRunState)tag;
+
+ int caps = tf_run_state.getRunStateCapabilities();
+
+ int[] op_set = {
+ TagFeatureRunState.RSC_START, TagFeatureRunState.RSC_STOP,
+ TagFeatureRunState.RSC_PAUSE, TagFeatureRunState.RSC_RESUME };
+
+ boolean[] can_ops_set = tf_run_state.getPerformableOperations( op_set );
+
+ if ((caps & TagFeatureRunState.RSC_START ) != 0 ){
+
+ final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
+ Messages.setLanguageText(itemOp, "MyTorrentsView.menu.queue");
+ Utils.setMenuItemImage(itemOp, "start");
+ itemOp.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ tf_run_state.performOperation( TagFeatureRunState.RSC_START );
+ }
+ });
+ itemOp.setEnabled(can_ops_set[0]);
+ }
+
+ if ((caps & TagFeatureRunState.RSC_STOP ) != 0 ){
+
+ final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
+ Messages.setLanguageText(itemOp, "MyTorrentsView.menu.stop");
+ Utils.setMenuItemImage(itemOp, "stop");
+ itemOp.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ tf_run_state.performOperation( TagFeatureRunState.RSC_STOP );
+ }
+ });
+ itemOp.setEnabled(can_ops_set[1]);
+ }
+
+ if ((caps & TagFeatureRunState.RSC_PAUSE ) != 0 ){
+
+ final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
+ Messages.setLanguageText(itemOp, "v3.MainWindow.button.pause");
+ Utils.setMenuItemImage(itemOp, "pause");
+ itemOp.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ tf_run_state.performOperation( TagFeatureRunState.RSC_PAUSE );
+ }
+ });
+ itemOp.setEnabled(can_ops_set[2]);
+ }
+
+ if ((caps & TagFeatureRunState.RSC_RESUME ) != 0 ){
+
+ final MenuItem itemOp = new MenuItem(menu, SWT.PUSH);
+ Messages.setLanguageText(itemOp, "v3.MainWindow.button.resume");
+ Utils.setMenuItemImage(itemOp, "start");
+ itemOp.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ tf_run_state.performOperation( TagFeatureRunState.RSC_RESUME );
+ }
+ });
+ itemOp.setEnabled(can_ops_set[3]);
+ }
+ }
+
+ private static void
+ createTF_RateLimitMenuItems(
+ Menu menu,
+ Tag tag,
+ TagType tag_type,
+ int userMode)
+ {
+
+ final TagFeatureRateLimit tf_rate_limit = (TagFeatureRateLimit)tag;
+
+ boolean has_up = tf_rate_limit.supportsTagUploadLimit();
+ boolean has_down = tf_rate_limit.supportsTagDownloadLimit();
+
+ if ( has_up || has_down ){
+
+ long maxDownload = COConfigurationManager.getIntParameter(
+ "Max Download Speed KBs", 0) * 1024L;
+ long maxUpload = COConfigurationManager.getIntParameter(
+ "Max Upload Speed KBs", 0) * 1024L;
+
+ int down_speed = tf_rate_limit.getTagDownloadLimit();
+ int up_speed = tf_rate_limit.getTagUploadLimit();
+
+ Map<String,Object> menu_properties = new HashMap<String,Object>();
+
+ if ( tag_type.getTagType() == TagType.TT_PEER_IPSET || tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL ){
+
+ if ( has_up ){
+ menu_properties.put( ViewUtils.SM_PROP_PERMIT_UPLOAD_DISABLE, true );
+ }
+ if ( has_down ){
+ menu_properties.put( ViewUtils.SM_PROP_PERMIT_DOWNLOAD_DISABLE, true );
+ }
+ }
+
+ ViewUtils.addSpeedMenu(
+ menu.getShell(), menu, has_up, has_down, true, true,
+ down_speed == -1, down_speed == 0, down_speed, down_speed, maxDownload,
+ up_speed == -1, up_speed == 0, up_speed, up_speed, maxUpload,
+ 1, menu_properties,
+ new SpeedAdapter() {
+ public void setDownSpeed(int val) {
+ tf_rate_limit.setTagDownloadLimit(val);
+ }
+
+ public void setUpSpeed(int val) {
+ tf_rate_limit.setTagUploadLimit(val);
+ }
+ });
+ }
+
+ if ( userMode > 0 ){
+
+ if ( tf_rate_limit.getTagUploadPriority() >= 0 ){
+
+
+ final MenuItem upPriority = new MenuItem(menu, SWT.CHECK );
+
+ upPriority.setSelection( tf_rate_limit.getTagUploadPriority() > 0 );
+
+ Messages.setLanguageText(upPriority, "cat.upload.priority");
+ upPriority.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ boolean set = upPriority.getSelection();
+ tf_rate_limit.setTagUploadPriority( set?1:0 );
+ }
+ });
+ }
+
+ /* Usually set once: Can be set in Tags Overview*/
+ if ( tf_rate_limit.getTagMinShareRatio() >= 0 ){
+
+ MenuItem itemSR = new MenuItem(menu, SWT.PUSH);
+
+ final String existing = String.valueOf( tf_rate_limit.getTagMinShareRatio()/1000.0f);
+
+ Messages.setLanguageText(itemSR, "menu.min.share.ratio", new String[]{existing} );
+
+ itemSR.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
+ "min.sr.window.title", "min.sr.window.message");
+
+ entryWindow.setPreenteredText( existing, false );
+ entryWindow.selectPreenteredText( true );
+
+ entryWindow.prompt();
+
+ if ( entryWindow.hasSubmittedInput()){
+
+ try{
+ String text = entryWindow.getSubmittedInput().trim();
+
+ int sr = 0;
+
+ if ( text.length() > 0 ){
+
+ try{
+ float f = Float.parseFloat( text );
+
+ sr = (int)(f * 1000 );
+
+ if ( sr < 0 ){
+
+ sr = 0;
+
+ }else if ( sr == 0 && f > 0 ){
+
+ sr = 1;
+ }
+
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+
+ tf_rate_limit.setTagMinShareRatio( sr );
+
+ }
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+ }
+ }
+ });
+ }
+
+ if ( tf_rate_limit.getTagMaxShareRatio() >= 0 ){
+
+ MenuItem itemSR = new MenuItem(menu, SWT.PUSH);
+
+ final String existing = String.valueOf( tf_rate_limit.getTagMaxShareRatio()/1000.0f);
+
+ Messages.setLanguageText(itemSR, "menu.max.share.ratio", new String[]{existing} );
+
+ itemSR.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
+ "max.sr.window.title", "max.sr.window.message");
+
+ entryWindow.setPreenteredText( existing, false );
+ entryWindow.selectPreenteredText( true );
+
+ entryWindow.prompt();
+
+ if ( entryWindow.hasSubmittedInput()){
+
+ try{
+ String text = entryWindow.getSubmittedInput().trim();
+
+ int sr = 0;
+
+ if ( text.length() > 0 ){
+
+ try{
+ float f = Float.parseFloat( text );
+
+ sr = (int)(f * 1000 );
+
+ if ( sr < 0 ){
+
+ sr = 0;
+
+ }else if ( sr == 0 && f > 0 ){
+
+ sr = 1;
+ }
+
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+
+ tf_rate_limit.setTagMaxShareRatio( sr );
+
+ }
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+ }
+ }
+ });
+ }
+ /**/
+ }
+ }
+
+ private static void createTF_FileLocationMenuItems(Menu menu, final Tag tag) {
+
+ final TagFeatureFileLocation fl = (TagFeatureFileLocation)tag;
+
+ if ( fl.supportsTagInitialSaveFolder() || fl.supportsTagMoveOnComplete() || fl.supportsTagCopyOnComplete()){
+
+ Menu files_menu = new Menu( menu.getShell(), SWT.DROP_DOWN);
+
+ MenuItem files_item = new MenuItem( menu, SWT.CASCADE);
+
+ Messages.setLanguageText( files_item, "ConfigView.section.files" );
+
+ files_item.setMenu( files_menu );
+
+ if ( fl.supportsTagInitialSaveFolder()){
+
+ final Menu moc_menu = new Menu( files_menu.getShell(), SWT.DROP_DOWN);
+
+ MenuItem isl_item = new MenuItem( files_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( isl_item, "label.init.save.loc" );
+
+ isl_item.setMenu( moc_menu );
+
+ MenuItem clear_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( clear_item, "Button.clear" );
+
+ clear_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ fl.setTagInitialSaveFolder( null );
+ }});
+
+ // apply
+
+ final File existing = fl.getTagInitialSaveFolder();
+
+ MenuItem apply_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( apply_item, "apply.to.current" );
+
+ apply_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ applyLocationToCurrent( tag, existing );
+ }});
+
+ new MenuItem( moc_menu, SWT.SEPARATOR);
+
+ if ( existing != null ){
+
+ MenuItem current_item = new MenuItem( moc_menu, SWT.RADIO );
+ current_item.setSelection( true );
+
+ current_item.setText( existing.getAbsolutePath());
+
+ new MenuItem( moc_menu, SWT.SEPARATOR);
+
+ }else{
+
+ apply_item.setEnabled( false );
+ clear_item.setEnabled( false );
+ }
+
+ MenuItem set_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( set_item, "label.set" );
+
+ set_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ DirectoryDialog dd = new DirectoryDialog(moc_menu.getShell());
+
+ dd.setFilterPath( TorrentOpener.getFilterPathData());
+
+ dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
+
+ String path = dd.open();
+
+ if ( path != null ){
+
+ TorrentOpener.setFilterPathData( path );
+
+ fl.setTagInitialSaveFolder( new File( path ));
+ }
+ }});
+ }
+
+ if ( fl.supportsTagMoveOnComplete()){
+
+ final Menu moc_menu = new Menu( files_menu.getShell(), SWT.DROP_DOWN);
+
+ MenuItem moc_item = new MenuItem( files_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( moc_item, "label.move.on.comp" );
+
+ moc_item.setMenu( moc_menu );
+
+ MenuItem clear_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( clear_item, "Button.clear" );
+
+ clear_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ fl.setTagMoveOnCompleteFolder( null );
+ }});
+
+
+ // apply
+
+ final File existing = fl.getTagMoveOnCompleteFolder();
+
+ MenuItem apply_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( apply_item, "apply.to.current" );
+
+ apply_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ applyLocationToCurrent( tag, existing );
+ }});
+
+ new MenuItem( moc_menu, SWT.SEPARATOR);
+
+ if ( existing != null ){
+
+ MenuItem current_item = new MenuItem( moc_menu, SWT.RADIO );
+ current_item.setSelection( true );
+
+ current_item.setText( existing.getAbsolutePath());
+
+ new MenuItem( moc_menu, SWT.SEPARATOR);
+
+ }else{
+
+ apply_item.setEnabled( false );
+ clear_item.setEnabled( false );
+ }
+
+ MenuItem set_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( set_item, "label.set" );
+
+ set_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ DirectoryDialog dd = new DirectoryDialog(moc_menu.getShell());
+
+ dd.setFilterPath( TorrentOpener.getFilterPathData());
+
+ dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
+
+ String path = dd.open();
+
+ if ( path != null ){
+
+ TorrentOpener.setFilterPathData( path );
+
+ fl.setTagMoveOnCompleteFolder( new File( path ));
+ }
+ }});
+ }
+
+ if ( fl.supportsTagCopyOnComplete()){
+
+ final Menu moc_menu = new Menu( files_menu.getShell(), SWT.DROP_DOWN);
+
+ MenuItem moc_item = new MenuItem( files_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( moc_item, "label.copy.on.comp" );
+
+ moc_item.setMenu( moc_menu );
+
+ MenuItem clear_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( clear_item, "Button.clear" );
+
+ clear_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ fl.setTagCopyOnCompleteFolder( null );
+ }});
+
+ new MenuItem( moc_menu, SWT.SEPARATOR);
+
+ File existing = fl.getTagCopyOnCompleteFolder();
+
+ if ( existing != null ){
- final Menu props_menu = new Menu( menu.getShell(), SWT.DROP_DOWN);
+ MenuItem current_item = new MenuItem( moc_menu, SWT.RADIO );
+ current_item.setSelection( true );
- MenuItem props_item = new MenuItem( menu, SWT.CASCADE);
+ current_item.setText( existing.getAbsolutePath());
- Messages.setLanguageText( props_item, "label.properties" );
+ new MenuItem( moc_menu, SWT.SEPARATOR);
- props_item.setMenu( props_menu );
-
- for ( final TagProperty tp: tps ){
-
- if ( tp.getType() == TagFeatureProperties.PT_STRING_LIST ){
+ }else{
+
+ clear_item.setEnabled( false );
+ }
+
+ MenuItem set_item = new MenuItem( moc_menu, SWT.CASCADE);
+
+ Messages.setLanguageText( set_item, "label.set" );
+
+ set_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ DirectoryDialog dd = new DirectoryDialog(moc_menu.getShell());
+
+ dd.setFilterPath( TorrentOpener.getFilterPathData());
+
+ dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
+
+ String path = dd.open();
+
+ if ( path != null ){
- String tp_name = tp.getName( false );
+ TorrentOpener.setFilterPathData( path );
- if ( tp_name.equals( TagFeatureProperties.PR_CONSTRAINT )){
+ fl.setTagCopyOnCompleteFolder( new File( path ));
+ }
+ }});
+ }
+ }
+ }
+
+ private static void createTFProperitesMenuItems(Menu menu, Tag tag) {
+
+ TagFeatureProperties props = (TagFeatureProperties)tag;
+
+ TagProperty[] tps = props.getSupportedProperties();
+
+ if ( tps.length > 0 ){
+
+ final Menu props_menu = new Menu( menu.getShell(), SWT.DROP_DOWN);
+
+ MenuItem props_item = new MenuItem( menu, SWT.CASCADE);
+
+ Messages.setLanguageText( props_item, "label.properties" );
+
+ props_item.setMenu( props_menu );
+
+ for ( final TagProperty tp: tps ){
+
+ if ( tp.getType() == TagFeatureProperties.PT_STRING_LIST ){
+
+ String tp_name = tp.getName( false );
+
+ if ( tp_name.equals( TagFeatureProperties.PR_CONSTRAINT )){
+
+ MenuItem const_item = new MenuItem( props_menu, SWT.PUSH);
+
+ Messages.setLanguageText( const_item, "label.contraints" );
+
+ const_item.addListener(SWT.Selection, new Listener() {
+ public void
+ handleEvent(Event event)
+ {
+ String[] val = tp.getStringList();
- MenuItem const_item = new MenuItem( props_menu, SWT.PUSH);
+ String def_val;
+
+ if ( val != null && val.length > 0 ){
+
+ def_val = val[0];
+
+ }else{
+
+ def_val = "";
+ }
- Messages.setLanguageText( const_item, "label.contraints" );
+ String msg = MessageText.getString( "UpdateConstraint.message" );
- const_item.addListener(SWT.Selection, new Listener() {
- public void
- handleEvent(Event event)
- {
- String[] val = tp.getStringList();
-
- String def_val;
+ SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow( "UpdateConstraint.title", "!" + msg + "!" );
+
+ entryWindow.setPreenteredText( def_val, false );
+ entryWindow.selectPreenteredText( true );
+
+ entryWindow.prompt();
+
+ if ( entryWindow.hasSubmittedInput()){
+
+ try{
+ String text = entryWindow.getSubmittedInput().trim();
- if ( val != null && val.length > 0 ){
+ if ( text.length() == 0 ){
- def_val = val[0];
+ tp.setStringList( null );
}else{
- def_val = "";
+ tp.setStringList( new String[]{ text });
}
+ }catch( Throwable e ){
- String msg = MessageText.getString( "UpdateConstraint.message" );
+ Debug.out( e );
+ }
+ }
+ }});
+
+ }else if ( tp_name.equals( TagFeatureProperties.PR_TRACKER_TEMPLATES )){
+
+ final TrackersUtil tut = TrackersUtil.getInstance();
+
+ List<String> templates = new ArrayList<String>( tut.getMultiTrackers().keySet());
+
+ String str_merge = MessageText.getString("label.merge" );
+ String str_replace = MessageText.getString("label.replace" );
+ String str_remove = MessageText.getString("Button.remove" );
+
+ String[] val = tp.getStringList();
+
+ String def_str;
+
+ final List<String> selected = new ArrayList<String>();
+
+ if ( val == null || val.length == 0 ){
+
+ def_str = "";
+
+ }else{
+
+ def_str = "";
+
+ for ( String v: val ){
+
+ String[] bits = v.split( ":" );
+
+ if ( bits.length == 2 ){
+
+ String tn = bits[1];
+
+ if ( templates.contains( tn )){
+
+ String type = bits[0];
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow( "UpdateConstraint.title", "!" + msg + "!" );
+ if ( type.equals( "m" )){
+
+ tn += ": " + str_merge;
+
+ }else if ( type.equals( "r" )){
- entryWindow.setPreenteredText( def_val, false );
- entryWindow.selectPreenteredText( true );
+ tn += ": " + str_replace;
+
+ }else{
+ tn += ": " + str_remove;
+ }
+
+ selected.add( v );
- entryWindow.prompt();
+ def_str += (def_str.length()==0?"":", ") + tn;
+ }
+ }
+ }
+ }
+
+ Collections.sort( templates );
+
+ // deliberately hanging this off the main menu, not properties...
+
+ Menu ttemp_menu = new Menu( menu.getShell(), SWT.DROP_DOWN);
+
+ MenuItem ttemp_item = new MenuItem( menu, SWT.CASCADE);
+
+ ttemp_item.setText( MessageText.getString( "label.tracker.templates" ) + (def_str.length()==0?"":(" (" + def_str + ") ")));
+
+ ttemp_item.setMenu( ttemp_menu );
+
+ MenuItem new_item = new MenuItem( ttemp_menu, SWT.PUSH);
+
+ Messages.setLanguageText( new_item, "wizard.multitracker.new" );
+
+ new_item.addListener(SWT.Selection, new Listener() {
+ public void
+ handleEvent(Event event)
+ {
+ List<List<String>> group = new ArrayList<List<String>>();
+ List<String> tracker = new ArrayList<String>();
+ group.add(tracker);
+
+ new MultiTrackerEditor(
+ props_menu.getShell(),
+ null,
+ group,
+ new TrackerEditorListener() {
- if ( entryWindow.hasSubmittedInput()){
-
- try{
- String text = entryWindow.getSubmittedInput().trim();
-
- if ( text.length() == 0 ){
-
- tp.setStringList( null );
-
- }else{
-
- tp.setStringList( new String[]{ text });
- }
- }catch( Throwable e ){
+ public void
+ trackersChanged(
+ String oldName,
+ String newName,
+ List<List<String>> trackers)
+ {
+ if ( trackers != null ){
- Debug.out( e );
+ tut.addMultiTracker(newName , trackers );
}
}
- }});
+ });
+ }});
+
+ MenuItem reapply_item = new MenuItem( ttemp_menu, SWT.PUSH);
+
+ Messages.setLanguageText( reapply_item, "label.reapply" );
+
+ reapply_item.addListener(SWT.Selection, new Listener() {
+ public void
+ handleEvent(Event event)
+ {
+ tp.syncListeners();
+ }});
+
+ reapply_item.setEnabled( def_str.length() > 0 );
+
+ if ( templates.size() > 0 ){
+
+ new MenuItem( ttemp_menu, SWT.SEPARATOR);
+
+ for ( final String template_name: templates ){
- }else if ( tp_name.equals( TagFeatureProperties.PR_TRACKER_TEMPLATES )){
+ Menu t_menu = new Menu( ttemp_menu.getShell(), SWT.DROP_DOWN);
- final TrackersUtil tut = TrackersUtil.getInstance();
+ MenuItem t_item = new MenuItem( ttemp_menu, SWT.CASCADE);
- List<String> templates = new ArrayList<String>( tut.getMultiTrackers().keySet());
+ t_item.setText( template_name );
+
+ t_item.setMenu( t_menu );
- String str_merge = MessageText.getString("label.merge" );
- String str_replace = MessageText.getString("label.replace" );
- String str_remove = MessageText.getString("Button.remove" );
+ boolean r_selected = false;
- String[] val = tp.getStringList();
-
- String def_str;
-
- final List<String> selected = new ArrayList<String>();
-
- if ( val == null || val.length == 0 ){
+ for ( int i=0;i<3;i++){
- def_str = "";
+ final MenuItem sel_item = new MenuItem( t_menu, SWT.CHECK);
- }else{
+ final String key = (i==0?"m":(i==1?"r":"x")) + ":" + template_name;
+
+ sel_item.setText( i==0?str_merge:(i==1?str_replace:str_remove));
- def_str = "";
+ boolean is_sel = selected.contains( key );
- for ( String v: val ){
-
- String[] bits = v.split( ":" );
-
- if ( bits.length == 2 ){
-
- String tn = bits[1];
-
- if ( templates.contains( tn )){
-
- String type = bits[0];
+ r_selected |= is_sel;
+
+ sel_item.setSelection( is_sel );
+
+ sel_item.addListener(SWT.Selection, new Listener() {
+ public void
+ handleEvent(Event event)
+ {
+ if ( sel_item.getSelection()){
- if ( type.equals( "m" )){
-
- tn += ": " + str_merge;
-
- }else if ( type.equals( "r" )){
+ selected.add( key );
- tn += ": " + str_replace;
-
- }else{
- tn += ": " + str_remove;
- }
-
- selected.add( v );
+ }else{
- def_str += (def_str.length()==0?"":", ") + tn;
+ selected.remove( key );
}
- }
- }
+
+ tp.setStringList( selected.toArray( new String[ selected.size()]));
+
+ }});
}
-
- Collections.sort( templates );
-
- // deliberately hanging this off the main menu, not properties...
-
- Menu ttemp_menu = new Menu( menu.getShell(), SWT.DROP_DOWN);
-
- MenuItem ttemp_item = new MenuItem( menu, SWT.CASCADE);
- ttemp_item.setText( MessageText.getString( "label.tracker.templates" ) + (def_str.length()==0?"":(" (" + def_str + ") ")));
+ if ( r_selected ){
+
+ Utils.setMenuItemImage( t_item, "graytick" );
+ }
- ttemp_item.setMenu( ttemp_menu );
+ new MenuItem( t_menu, SWT.SEPARATOR);
- MenuItem new_item = new MenuItem( ttemp_menu, SWT.PUSH);
+ MenuItem edit_item = new MenuItem( t_menu, SWT.PUSH);
- Messages.setLanguageText( new_item, "wizard.multitracker.new" );
+ Messages.setLanguageText( edit_item, "wizard.multitracker.edit" );
- new_item.addListener(SWT.Selection, new Listener() {
+ edit_item.addListener(SWT.Selection, new Listener() {
public void
handleEvent(Event event)
{
- List<List<String>> group = new ArrayList<List<String>>();
- List<String> tracker = new ArrayList<String>();
- group.add(tracker);
-
new MultiTrackerEditor(
props_menu.getShell(),
- null,
- group,
+ template_name,
+ tut.getMultiTrackers().get( template_name ),
new TrackerEditorListener() {
public void
@@ -1309,294 +1550,159 @@ public class TagUIUtils
String newName,
List<List<String>> trackers)
{
- if ( trackers != null ){
+ if ( oldName != null && !oldName.equals( newName )){
+
+ tut.removeMultiTracker( oldName );
+ }
- tut.addMultiTracker(newName , trackers );
- }
+ tut.addMultiTracker(newName , trackers );
}
});
}});
-
- MenuItem reapply_item = new MenuItem( ttemp_menu, SWT.PUSH);
- Messages.setLanguageText( reapply_item, "label.reapply" );
+ MenuItem del_item = new MenuItem( t_menu, SWT.PUSH);
+
+ Messages.setLanguageText( del_item, "FileItem.delete" );
- reapply_item.addListener(SWT.Selection, new Listener() {
+ Utils.setMenuItemImage( del_item, "delete" );
+
+ del_item.addListener(SWT.Selection, new Listener() {
public void
handleEvent(Event event)
{
- tp.syncListeners();
+ MessageBoxShell mb =
+ new MessageBoxShell(
+ MessageText.getString("message.confirm.delete.title"),
+ MessageText.getString("message.confirm.delete.text",
+ new String[] { template_name }),
+ new String[] {
+ MessageText.getString("Button.yes"),
+ MessageText.getString("Button.no")
+ },
+ 1 );
+
+ mb.open(new UserPrompterResultListener() {
+ public void prompterClosed(int result) {
+ if (result == 0) {
+ tut.removeMultiTracker( template_name );
+ }
+ }
+ });
}});
+ }
+ }
+ }else{
+ String[] val = tp.getStringList();
+
+ String def_str;
+
+ if ( val == null || val.length == 0 ){
+
+ def_str = "";
+
+ }else{
+
+ def_str = "";
+
+ for ( String v: val ){
- reapply_item.setEnabled( def_str.length() > 0 );
+ def_str += (def_str.length()==0?"":", ") + v;
+ }
+ }
+
+ MenuItem set_item = new MenuItem( props_menu, SWT.PUSH);
+
+ set_item.setText( tp.getName( true ) + (def_str.length()==0?"":(" (" + def_str + ") ")) + "..." );
+
+ final String f_def_str = def_str;
+
+ set_item.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
- if ( templates.size() > 0 ){
+ String msg = MessageText.getString( "UpdateProperty.list.message", new String[]{ tp.getName( true ) } );
- new MenuItem( ttemp_menu, SWT.SEPARATOR);
-
- for ( final String template_name: templates ){
-
- Menu t_menu = new Menu( ttemp_menu.getShell(), SWT.DROP_DOWN);
-
- MenuItem t_item = new MenuItem( ttemp_menu, SWT.CASCADE);
-
- t_item.setText( template_name );
+ SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow( "UpdateProperty.title", "!" + msg + "!" );
+
+ entryWindow.setPreenteredText( f_def_str, false );
+ entryWindow.selectPreenteredText( true );
+
+ entryWindow.prompt();
+
+ if ( entryWindow.hasSubmittedInput()){
+
+ try{
+ String text = entryWindow.getSubmittedInput().trim();
- t_item.setMenu( t_menu );
-
- boolean r_selected = false;
-
- for ( int i=0;i<3;i++){
-
- final MenuItem sel_item = new MenuItem( t_menu, SWT.CHECK);
-
- final String key = (i==0?"m":(i==1?"r":"x")) + ":" + template_name;
-
- sel_item.setText( i==0?str_merge:(i==1?str_replace:str_remove));
+ if ( text.length() == 0 ){
- boolean is_sel = selected.contains( key );
+ tp.setStringList( null );
- r_selected |= is_sel;
-
- sel_item.setSelection( is_sel );
+ }else{
+ text = text.replace( ';', ',');
+ text = text.replace( ' ', ',');
+ text = text.replaceAll( "[,]+", "," );
- sel_item.addListener(SWT.Selection, new Listener() {
- public void
- handleEvent(Event event)
- {
- if ( sel_item.getSelection()){
-
- selected.add( key );
-
- }else{
-
- selected.remove( key );
- }
-
- tp.setStringList( selected.toArray( new String[ selected.size()]));
-
- }});
- }
-
- if ( r_selected ){
+ String[] bits = text.split( "," );
- Utils.setMenuItemImage( t_item, "graytick" );
- }
-
- new MenuItem( t_menu, SWT.SEPARATOR);
-
- MenuItem edit_item = new MenuItem( t_menu, SWT.PUSH);
-
- Messages.setLanguageText( edit_item, "wizard.multitracker.edit" );
-
- edit_item.addListener(SWT.Selection, new Listener() {
- public void
- handleEvent(Event event)
- {
- new MultiTrackerEditor(
- props_menu.getShell(),
- template_name,
- tut.getMultiTrackers().get( template_name ),
- new TrackerEditorListener() {
-
- public void
- trackersChanged(
- String oldName,
- String newName,
- List<List<String>> trackers)
- {
- if ( oldName != null && !oldName.equals( newName )){
-
- tut.removeMultiTracker( oldName );
- }
-
- tut.addMultiTracker(newName , trackers );
- }
- });
- }});
-
- MenuItem del_item = new MenuItem( t_menu, SWT.PUSH);
-
- Messages.setLanguageText( del_item, "FileItem.delete" );
-
- Utils.setMenuItemImage( del_item, "delete" );
-
- del_item.addListener(SWT.Selection, new Listener() {
- public void
- handleEvent(Event event)
- {
- MessageBoxShell mb =
- new MessageBoxShell(
- MessageText.getString("message.confirm.delete.title"),
- MessageText.getString("message.confirm.delete.text",
- new String[] { template_name }),
- new String[] {
- MessageText.getString("Button.yes"),
- MessageText.getString("Button.no")
- },
- 1 );
-
- mb.open(new UserPrompterResultListener() {
- public void prompterClosed(int result) {
- if (result == 0) {
- tut.removeMultiTracker( template_name );
- }
- }
- });
- }});
- }
- }
- }else{
- String[] val = tp.getStringList();
-
- String def_str;
-
- if ( val == null || val.length == 0 ){
-
- def_str = "";
-
- }else{
-
- def_str = "";
-
- for ( String v: val ){
-
- def_str += (def_str.length()==0?"":", ") + v;
- }
- }
-
- MenuItem set_item = new MenuItem( props_menu, SWT.PUSH);
-
- set_item.setText( tp.getName( true ) + (def_str.length()==0?"":(" (" + def_str + ") ")) + "..." );
-
- final String f_def_str = def_str;
-
- set_item.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
-
- String msg = MessageText.getString( "UpdateProperty.list.message", new String[]{ tp.getName( true ) } );
-
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow( "UpdateProperty.title", "!" + msg + "!" );
-
- entryWindow.setPreenteredText( f_def_str, false );
- entryWindow.selectPreenteredText( true );
-
- entryWindow.prompt();
-
- if ( entryWindow.hasSubmittedInput()){
+ List<String> vals = new ArrayList<String>();
- try{
- String text = entryWindow.getSubmittedInput().trim();
-
- if ( text.length() == 0 ){
-
- tp.setStringList( null );
-
- }else{
- text = text.replace( ';', ',');
- text = text.replace( ' ', ',');
- text = text.replaceAll( "[,]+", "," );
-
- String[] bits = text.split( "," );
-
- List<String> vals = new ArrayList<String>();
-
- for ( String bit: bits ){
-
- bit = bit.trim();
-
- if ( bit.length() > 0 ){
-
- vals.add( bit );
- }
- }
+ for ( String bit: bits ){
+
+ bit = bit.trim();
+
+ if ( bit.length() > 0 ){
- if ( vals.size() == 0 ){
-
- tp.setStringList( null );
- }else{
-
- tp.setStringList( vals.toArray( new String[ vals.size()]));
- }
+ vals.add( bit );
}
- }catch( Throwable e ){
+ }
+
+ if ( vals.size() == 0 ){
+
+ tp.setStringList( null );
+ }else{
- Debug.out( e );
+ tp.setStringList( vals.toArray( new String[ vals.size()]));
}
}
- }});
- }
- }else if ( tp.getType() == TagFeatureProperties.PT_BOOLEAN ){
-
- final MenuItem set_item = new MenuItem( props_menu, SWT.CHECK);
-
- set_item.setText( tp.getName( true ));
-
- Boolean val = tp.getBoolean();
-
- set_item.setSelection( val != null && val );
-
- set_item.addListener(
- SWT.Selection,
- new Listener()
- {
- public void
- handleEvent(
- Event event)
- {
- tp.setBoolean( set_item.getSelection());
+ }catch( Throwable e ){
+
+ Debug.out( e );
}
- });
-
- }else{
-
- Debug.out( "Unknown property" );
- }
+ }
+ }});
}
- }
- }
- }
-
- if ( needs_separator_next ){
-
- new MenuItem( menu, SWT.SEPARATOR);
-
- needs_separator_next = false;
- }
-
- // sharing
-
- if ( tag.canBePublic()){
-
- needs_separator_next = true;
-
- final MenuItem itemPublic = new MenuItem(menu, SWT.CHECK );
-
- itemPublic.setSelection( tag.isPublic());
-
- Messages.setLanguageText(itemPublic, "tag.share");
+ }else if ( tp.getType() == TagFeatureProperties.PT_BOOLEAN ){
+
+ final MenuItem set_item = new MenuItem( props_menu, SWT.CHECK);
- itemPublic.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
+ set_item.setText( tp.getName( true ));
- tag.setPublic( itemPublic.getSelection());
- }});
- }
-
- if ( tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL ){
+ Boolean val = tp.getBoolean();
+
+ set_item.setSelection( val != null && val );
- needs_separator_next = true;
-
- MenuItem search = new MenuItem(menu, SWT.PUSH);
- Messages.setLanguageText(search, "tag.search");
- search.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- UIFunctionsManager.getUIFunctions().doSearch( "tag:" + tag.getTagName( true ));
- }});
- }
-
- // share with friends
+ set_item.addListener(
+ SWT.Selection,
+ new Listener()
+ {
+ public void
+ handleEvent(
+ Event event)
+ {
+ tp.setBoolean( set_item.getSelection());
+ }
+ });
+
+ }else{
+
+ Debug.out( "Unknown property" );
+ }
+ }
+ }
+ }
+ private static void addShareWithFriendsMenuItems(Menu menu, Tag tag,
+ TagType tag_type) {
PluginInterface bpi = PluginInitializer.getDefaultInterface().getPluginManager().getPluginInterfaceByClass(
BuddyPlugin.class);
@@ -1694,127 +1800,70 @@ public class TagUIUtils
}
}
}
-
-
- // rss feed
-
- if ( tag_type.hasTagTypeFeature( TagFeature.TF_RSS_FEED )) {
+ }
- final TagFeatureRSSFeed tfrss = (TagFeatureRSSFeed)tag;
-
- // rss feed
-
- final MenuItem rssOption = new MenuItem(menu, SWT.CHECK );
-
- rssOption.setSelection( tfrss.isTagRSSFeedEnabled());
-
- Messages.setLanguageText(rssOption, "cat.rss.gen");
- rssOption.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- boolean set = rssOption.getSelection();
- tfrss.setTagRSSFeedEnabled( set );
- }
- });
- }
-
- if ( tag_type.hasTagTypeFeature( TagFeature.TF_XCODE )) {
+ private static void createXCodeMenuItems(Menu menu, Tag tag) {
- final TagFeatureTranscode tf_xcode = (TagFeatureTranscode)tag;
-
- if ( tf_xcode.supportsTagTranscode()){
-
- AZ3Functions.provider provider = AZ3Functions.getProvider();
-
- if ( provider != null ){
-
- AZ3Functions.provider.TranscodeTarget[] tts = provider.getTranscodeTargets();
-
- if (tts.length > 0) {
-
- final Menu t_menu = new Menu(menu.getShell(), SWT.DROP_DOWN);
-
- final MenuItem t_item = new MenuItem(menu, SWT.CASCADE);
-
- Messages.setLanguageText( t_item, "cat.autoxcode" );
-
- t_item.setMenu(t_menu);
-
- String[] existing = tf_xcode.getTagTranscodeTarget();
-
- for ( final AZ3Functions.provider.TranscodeTarget tt : tts ){
-
- AZ3Functions.provider.TranscodeProfile[] profiles = tt.getProfiles();
-
- if ( profiles.length > 0 ){
-
- final Menu tt_menu = new Menu(t_menu.getShell(), SWT.DROP_DOWN);
-
- final MenuItem tt_item = new MenuItem(t_menu, SWT.CASCADE);
-
- tt_item.setText(tt.getName());
-
- tt_item.setMenu(tt_menu);
-
- for (final AZ3Functions.provider.TranscodeProfile tp : profiles) {
-
- final MenuItem p_item = new MenuItem(tt_menu, SWT.CHECK);
-
- p_item.setText(tp.getName());
-
- boolean selected = existing != null && existing[0].equals(tp.getUID());
-
- if ( selected ){
-
- Utils.setMenuItemImage(tt_item, "graytick");
- }
-
- p_item.setSelection(selected );
+
+ final TagFeatureTranscode tf_xcode = (TagFeatureTranscode)tag;
- p_item.addListener(SWT.Selection, new Listener(){
- public void handleEvent(Event event) {
-
- String name = tt.getName() + " - " + tp.getName();
-
- if ( p_item.getSelection()){
-
- tf_xcode.setTagTranscodeTarget( tp.getUID(), name );
-
- }else{
-
- tf_xcode.setTagTranscodeTarget( null, null );
- }
- }
- });
- }
-
- new MenuItem(tt_menu, SWT.SEPARATOR );
-
- final MenuItem no_xcode_item = new MenuItem(tt_menu, SWT.CHECK);
-
- final String never_str = MessageText.getString( "v3.menu.device.defaultprofile.never" );
-
- no_xcode_item.setText( never_str );
+ if ( tf_xcode.supportsTagTranscode()){
+
+ AZ3Functions.provider provider = AZ3Functions.getProvider();
- final String never_uid = tt.getID() + "/blank";
-
- boolean selected = existing != null && existing[0].equals(never_uid);
+ if ( provider != null ){
+
+ AZ3Functions.provider.TranscodeTarget[] tts = provider.getTranscodeTargets();
+
+ if (tts.length > 0) {
+
+ final Menu t_menu = new Menu(menu.getShell(), SWT.DROP_DOWN);
+
+ final MenuItem t_item = new MenuItem(menu, SWT.CASCADE);
+
+ Messages.setLanguageText( t_item, "cat.autoxcode" );
+
+ t_item.setMenu(t_menu);
+
+ String[] existing = tf_xcode.getTagTranscodeTarget();
+
+ for ( final AZ3Functions.provider.TranscodeTarget tt : tts ){
+
+ AZ3Functions.provider.TranscodeProfile[] profiles = tt.getProfiles();
+
+ if ( profiles.length > 0 ){
+
+ final Menu tt_menu = new Menu(t_menu.getShell(), SWT.DROP_DOWN);
+
+ final MenuItem tt_item = new MenuItem(t_menu, SWT.CASCADE);
+
+ tt_item.setText(tt.getName());
+
+ tt_item.setMenu(tt_menu);
+
+ for (final AZ3Functions.provider.TranscodeProfile tp : profiles) {
+
+ final MenuItem p_item = new MenuItem(tt_menu, SWT.CHECK);
+
+ p_item.setText(tp.getName());
+
+ boolean selected = existing != null && existing[0].equals(tp.getUID());
if ( selected ){
Utils.setMenuItemImage(tt_item, "graytick");
}
- no_xcode_item.setSelection(selected );
-
- no_xcode_item.addListener(SWT.Selection, new Listener(){
-
+ p_item.setSelection(selected );
+
+ p_item.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event event) {
- String name = tt.getName() + " - " + never_str;
+ String name = tt.getName() + " - " + tp.getName();
- if ( no_xcode_item.getSelection()){
+ if ( p_item.getSelection()){
- tf_xcode.setTagTranscodeTarget( never_uid, name );
+ tf_xcode.setTagTranscodeTarget( tp.getUID(), name );
}else{
@@ -1823,401 +1872,409 @@ public class TagUIUtils
}
});
}
+
+ new MenuItem(tt_menu, SWT.SEPARATOR );
+
+ final MenuItem no_xcode_item = new MenuItem(tt_menu, SWT.CHECK);
+
+ final String never_str = MessageText.getString( "v3.menu.device.defaultprofile.never" );
+
+ no_xcode_item.setText( never_str );
+
+ final String never_uid = tt.getID() + "/blank";
+
+ boolean selected = existing != null && existing[0].equals(never_uid);
+
+ if ( selected ){
+
+ Utils.setMenuItemImage(tt_item, "graytick");
+ }
+
+ no_xcode_item.setSelection(selected );
+
+ no_xcode_item.addListener(SWT.Selection, new Listener(){
+
+ public void handleEvent(Event event) {
+
+ String name = tt.getName() + " - " + never_str;
+
+ if ( no_xcode_item.getSelection()){
+
+ tf_xcode.setTagTranscodeTarget( never_uid, name );
+
+ }else{
+
+ tf_xcode.setTagTranscodeTarget( null, null );
+ }
+ }
+ });
}
}
}
}
}
-
- needs_separator_next = true;
+ }
- if ( tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL ){
-
- MenuBuildUtils.addChatMenu( menu, "label.chat", getChatKey( tag ));
- }
-
- MenuItem itemShowStats = new MenuItem(menu, SWT.PUSH);
+ private static void
+ createCloseableMenuItems(
+ Menu menu,
+ Tag tag,
+ TagType tag_type,
+ Menu[] menuShowHide,
+ boolean needs_separator_next)
+ {
- Messages.setLanguageText(itemShowStats, "tag.show.stats");
- itemShowStats.addListener(SWT.Selection, new Listener() {
- public void handleEvent( Event event ){
- UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
- uiFunctions.getMDI().loadEntryByID(StatsView.VIEW_ID, true, false, "TagStatsView");
- }
- });
+ final List<Tag> tags = tag_type.getTags();
- if ( needs_separator_next ){
+ int visible_count = 0;
+ int invisible_count = 0;
- new MenuItem( menu, SWT.SEPARATOR);
+ for ( Tag t: tags ){
- needs_separator_next = false;
+ if ( t.isVisible()){
+ visible_count++;
+ }else{
+ invisible_count++;
+ }
}
-
- boolean auto = tag_type.isTagTypeAuto();
+
+ menuShowHide[0] = new Menu(menu.getShell(), SWT.DROP_DOWN);
- boolean closable = auto;
+ final MenuItem showhideitem = new MenuItem(menu, SWT.CASCADE);
+ showhideitem.setText( MessageText.getString( "label.showhide.tag" ));
+ showhideitem.setMenu(menuShowHide[0]);
- if ( tag.getTaggableTypes() == Taggable.TT_DOWNLOAD ){
+ MenuItem title = new MenuItem(menuShowHide[0], SWT.PUSH);
+ title.setText( "[" + tag_type.getTagTypeName( true ) + "]" );
+ title.setEnabled( false );
+ new MenuItem( menuShowHide[0], SWT.SEPARATOR);
+
+ if ( invisible_count > 0 ){
+ MenuItem showAll = new MenuItem(menuShowHide[0], SWT.PUSH);
+ Messages.setLanguageText(showAll, "label.show.all");
+ showAll.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ for ( Tag t: tags ){
+
+ if ( !t.isVisible()){
+ t.setVisible( true );
+ }
+ }
+ }});
- closable = true; // extended closable tags to include manual ones due to user request
+ needs_separator_next = true;
}
- Menu menuShowHide = null;
-
- if ( closable ){
-
- final List<Tag> tags = tag_type.getTags();
-
- int visible_count = 0;
- int invisible_count = 0;
-
- for ( Tag t: tags ){
-
- if ( t.isVisible()){
- visible_count++;
- }else{
- invisible_count++;
- }
- }
+ if ( visible_count > 0 ){
+ MenuItem hideAll = new MenuItem(menuShowHide[0], SWT.PUSH);
+ Messages.setLanguageText(hideAll, "popup.error.hideall");
+ hideAll.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ for ( Tag t: tags ){
- menuShowHide = new Menu(menu.getShell(), SWT.DROP_DOWN);
+ if ( t.isVisible()){
+ t.setVisible( false );
+ }
+ }
+ }});
- final MenuItem showhideitem = new MenuItem(menu, SWT.CASCADE);
- showhideitem.setText( MessageText.getString( "label.showhide.tag" ));
- showhideitem.setMenu(menuShowHide);
+ needs_separator_next = true;
+ }
+
+ if ( tags.size() > 0 ){
- MenuItem title = new MenuItem(menuShowHide, SWT.PUSH);
- title.setText( "[" + tag_type.getTagTypeName( true ) + "]" );
- title.setEnabled( false );
- new MenuItem( menuShowHide, SWT.SEPARATOR);
-
- if ( invisible_count > 0 ){
- MenuItem showAll = new MenuItem(menuShowHide, SWT.PUSH);
- Messages.setLanguageText(showAll, "label.show.all");
- showAll.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- for ( Tag t: tags ){
-
- if ( !t.isVisible()){
- t.setVisible( true );
- }
- }
- }});
-
- needs_separator_next = true;
+ if ( needs_separator_next ){
+
+ new MenuItem( menuShowHide[0], SWT.SEPARATOR);
+
+ needs_separator_next = false;
}
- if ( visible_count > 0 ){
- MenuItem hideAll = new MenuItem(menuShowHide, SWT.PUSH);
- Messages.setLanguageText(hideAll, "popup.error.hideall");
- hideAll.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- for ( Tag t: tags ){
-
- if ( t.isVisible()){
- t.setVisible( false );
- }
- }
- }});
-
- needs_separator_next = true;
+ List<String> menu_names = new ArrayList<String>();
+ Map<String,Tag> menu_name_map = new IdentityHashMap<String, Tag>();
+
+ for ( Tag t: tags ){
+
+ String name = t.getTagName( true );
+
+ menu_names.add( name );
+ menu_name_map.put( name, t );
}
- if ( tags.size() > 0 ){
+ List<Object> menu_structure = MenuBuildUtils.splitLongMenuListIntoHierarchy( menu_names, MAX_TOP_LEVEL_TAGS_IN_MENU );
+
+ for ( Object obj: menu_structure ){
+
+ List<Tag> bucket_tags = new ArrayList<Tag>();
- if ( needs_separator_next ){
-
- new MenuItem( menuShowHide, SWT.SEPARATOR);
-
- needs_separator_next = false;
- }
+ Menu parent_menu;
- List<String> menu_names = new ArrayList<String>();
- Map<String,Tag> menu_name_map = new IdentityHashMap<String, Tag>();
-
- for ( Tag t: tags ){
+ if ( obj instanceof String ){
+
+ parent_menu = menuShowHide[0];
+
+ bucket_tags.add( menu_name_map.get((String)obj));
+
+ }else{
+
+ Object[] entry = (Object[])obj;
- String name = t.getTagName( true );
-
- menu_names.add( name );
- menu_name_map.put( name, t );
- }
-
- List<Object> menu_structure = MenuBuildUtils.splitLongMenuListIntoHierarchy( menu_names, MAX_TOP_LEVEL_TAGS_IN_MENU );
-
- for ( Object obj: menu_structure ){
-
- List<Tag> bucket_tags = new ArrayList<Tag>();
+ List<String> tag_names = (List<String>)entry[1];
- Menu parent_menu;
+ boolean sub_all_visible = true;
+ boolean sub_some_visible = false;
- if ( obj instanceof String ){
-
- parent_menu = menuShowHide;
-
- bucket_tags.add( menu_name_map.get((String)obj));
-
- }else{
-
- Object[] entry = (Object[])obj;
-
- List<String> tag_names = (List<String>)entry[1];
-
- boolean sub_all_visible = true;
- boolean sub_some_visible = false;
-
- for ( String name: tag_names ){
-
- Tag sub_tag = menu_name_map.get( name );
-
- if ( sub_tag.isVisible()){
-
- sub_some_visible = true;
-
- }else{
-
- sub_all_visible = false;
- }
-
- bucket_tags.add( sub_tag );
- }
+ for ( String name: tag_names ){
- String mod;
+ Tag sub_tag = menu_name_map.get( name );
- if ( sub_all_visible ){
-
- mod = " (*)";
+ if ( sub_tag.isVisible()){
- }else if ( sub_some_visible ){
-
- mod = " (+)";
+ sub_some_visible = true;
}else{
- mod = "";
+ sub_all_visible = false;
}
- Menu menu_bucket = new Menu( menuShowHide.getShell(), SWT.DROP_DOWN );
-
- MenuItem bucket_item = new MenuItem( menuShowHide, SWT.CASCADE );
-
- bucket_item.setText((String)entry[0] + mod);
+ bucket_tags.add( sub_tag );
+ }
+
+ String mod;
+
+ if ( sub_all_visible ){
- bucket_item.setMenu( menu_bucket );
+ mod = " (*)";
- parent_menu = menu_bucket;
- }
-
- for ( final Tag t: bucket_tags ){
-
- MenuItem showTag = new MenuItem( parent_menu, SWT.CHECK );
+ }else if ( sub_some_visible ){
- showTag.setSelection( t.isVisible());
+ mod = " (+)";
- Messages.setLanguageText(showTag, t.getTagName( false ));
+ }else{
- showTag.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- t.setVisible( !t.isVisible());
- }});
+ mod = "";
}
- }
- }
+
+ Menu menu_bucket = new Menu( menuShowHide[0].getShell(), SWT.DROP_DOWN );
+
+ MenuItem bucket_item = new MenuItem( menuShowHide[0], SWT.CASCADE );
+
+ bucket_item.setText((String)entry[0] + mod);
+
+ bucket_item.setMenu( menu_bucket );
+
+ parent_menu = menu_bucket;
+ }
- showhideitem.setEnabled( true );
+ for ( final Tag t: bucket_tags ){
+
+ MenuItem showTag = new MenuItem( parent_menu, SWT.CHECK );
+
+ showTag.setSelection( t.isVisible());
+
+ Messages.setLanguageText(showTag, t.getTagName( false ));
+
+ showTag.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ t.setVisible( !t.isVisible());
+ }});
+ }
+ }
}
- if ( !auto ){
+ showhideitem.setEnabled( true );
+ }
+
+ private static void
+ createNonAutoMenuItems(
+ final Menu menu,
+ final Tag tag,
+ final TagType tag_type,
+ Menu[] menuShowHide)
+ {
+
+ if ( tag_type.hasTagTypeFeature( TagFeature.TF_PROPERTIES )){
- if ( tag_type.hasTagTypeFeature( TagFeature.TF_PROPERTIES )){
+ TagFeatureProperties props = (TagFeatureProperties)tag;
+
+ boolean has_ut = props.getProperty( TagFeatureProperties.PR_UNTAGGED ) != null;
+
+ if ( has_ut ){
- TagFeatureProperties props = (TagFeatureProperties)tag;
-
- boolean has_ut = props.getProperty( TagFeatureProperties.PR_UNTAGGED ) != null;
-
- if ( has_ut ){
+ has_ut = false;
+
+ for ( Tag t: tag_type.getTags()){
- has_ut = false;
+ props = (TagFeatureProperties)t;
- for ( Tag t: tag_type.getTags()){
+ TagProperty prop = props.getProperty( TagFeatureProperties.PR_UNTAGGED );
+
+ if ( prop != null ){
- props = (TagFeatureProperties)t;
+ Boolean b = prop.getBoolean();
- TagProperty prop = props.getProperty( TagFeatureProperties.PR_UNTAGGED );
-
- if ( prop != null ){
+ if ( b != null && b ){
- Boolean b = prop.getBoolean();
-
- if ( b != null && b ){
+ has_ut = true;
- has_ut = true;
-
- break;
- }
+ break;
}
}
+ }
+
+ if ( !has_ut ){
- if ( !has_ut ){
+ if ( menuShowHide[0] == null ){
- if ( menuShowHide == null ){
-
- menuShowHide = new Menu(menu.getShell(), SWT.DROP_DOWN);
+ menuShowHide[0] = new Menu(menu.getShell(), SWT.DROP_DOWN);
+
+ MenuItem showhideitem = new MenuItem(menu, SWT.CASCADE);
+ showhideitem.setText( MessageText.getString( "label.showhide.tag" ));
+ showhideitem.setMenu(menuShowHide[0]);
- MenuItem showhideitem = new MenuItem(menu, SWT.CASCADE);
- showhideitem.setText( MessageText.getString( "label.showhide.tag" ));
- showhideitem.setMenu(menuShowHide);
-
- }else{
-
- new MenuItem( menuShowHide, SWT.SEPARATOR );
- }
+ }else{
- MenuItem showAll = new MenuItem(menuShowHide, SWT.PUSH);
- Messages.setLanguageText(showAll, "label.untagged");
- showAll.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event){
- try{
- String tag_name = MessageText.getString( "label.untagged" );
-
- Tag ut_tag = tag_type.getTag( tag_name, true );
-
- if ( ut_tag == null ){
-
-
- ut_tag = tag_type.createTag( tag_name, true );
- }
-
- TagFeatureProperties tp = (TagFeatureProperties)ut_tag;
-
- tp.getProperty( TagFeatureProperties.PR_UNTAGGED ).setBoolean( true );
+ new MenuItem( menuShowHide[0], SWT.SEPARATOR );
+ }
+
+ MenuItem showAll = new MenuItem(menuShowHide[0], SWT.PUSH);
+ Messages.setLanguageText(showAll, "label.untagged");
+ showAll.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event){
+ try{
+ String tag_name = MessageText.getString( "label.untagged" );
+
+ Tag ut_tag = tag_type.getTag( tag_name, true );
+
+ if ( ut_tag == null ){
- }catch( TagException e ){
-
- Debug.out( e );
+
+ ut_tag = tag_type.createTag( tag_name, true );
}
- }});
- }
+
+ TagFeatureProperties tp = (TagFeatureProperties)ut_tag;
+
+ tp.getProperty( TagFeatureProperties.PR_UNTAGGED ).setBoolean( true );
+
+ }catch( TagException e ){
+
+ Debug.out( e );
+ }
+ }});
}
}
-
- MenuItem item_create = new MenuItem( menu, SWT.PUSH);
-
- Messages.setLanguageText(item_create, "label.add.tag");
- item_create.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
+ }
+
+ /*
+ MenuItem item_create = new MenuItem( menu, SWT.PUSH);
+
+ Messages.setLanguageText(item_create, "label.add.tag");
+ item_create.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+
+ createManualTag(null);
+ }
+ });
+ */
+
+ /* Seldom Used: Color can be set in Tags Overview
+ MenuItem itemSetColor = new MenuItem(menu, SWT.PUSH);
+
+ itemSetColor.setText( MessageText.getString( "label.color") + "..." );
+
+ itemSetColor.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+
+ int[] existing = tag.getColor();
+
+ RGB e_rg = existing==null?null:new RGB(existing[0],existing[1],existing[2]);
+
+ RGB rgb = Utils.showColorDialog( menu.getShell(), e_rg );
+
+ if ( rgb != null ){
- createManualTag(null);
+ tag.setColor( new int[]{ rgb.red, rgb.green, rgb.blue });
}
- });
-
- MenuItem itemSetColor = new MenuItem(menu, SWT.PUSH);
-
- itemSetColor.setText( MessageText.getString( "label.color") + "..." );
-
- itemSetColor.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
-
- int[] existing = tag.getColor();
-
- RGB e_rg = existing==null?null:new RGB(existing[0],existing[1],existing[2]);
-
- RGB rgb = Utils.showColorDialog( menu.getShell(), e_rg );
-
- if ( rgb != null ){
-
- tag.setColor( new int[]{ rgb.red, rgb.green, rgb.blue });
- }
+ }
+ });
+ */
+
+ MenuItem itemGroup = new MenuItem(menu, SWT.PUSH);
+
+ Messages.setLanguageText(itemGroup, "MyTorrentsView.menu.group");
+ itemGroup.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
+ "TagGroupWindow.title", "TagGroupWindow.message");
+
+ String group = tag.getGroup();
+
+ if ( group == null ){
+ group = "";
}
- });
-
- MenuItem itemGroup = new MenuItem(menu, SWT.PUSH);
-
- Messages.setLanguageText(itemGroup, "MyTorrentsView.menu.group");
- itemGroup.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
- "TagGroupWindow.title", "TagGroupWindow.message");
-
- String group = tag.getGroup();
-
- if ( group == null ){
- group = "";
- }
- entryWindow.setPreenteredText( group, false );
- entryWindow.selectPreenteredText( true );
-
- entryWindow.prompt();
+ entryWindow.setPreenteredText( group, false );
+ entryWindow.selectPreenteredText( true );
+
+ entryWindow.prompt();
+
+ if ( entryWindow.hasSubmittedInput()){
- if ( entryWindow.hasSubmittedInput()){
+ try{
+ group = entryWindow.getSubmittedInput().trim();
- try{
- group = entryWindow.getSubmittedInput().trim();
-
- if ( group.length() == 0 ){
- group = null;
- }
- tag.setGroup( group );
-
- }catch( Throwable e ){
-
- Debug.out( e );
+ if ( group.length() == 0 ){
+ group = null;
}
+ tag.setGroup( group );
+
+ }catch( Throwable e ){
+
+ Debug.out( e );
}
}
- });
-
- MenuItem itemRename = new MenuItem(menu, SWT.PUSH);
-
- Messages.setLanguageText(itemRename, "MyTorrentsView.menu.rename");
- itemRename.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
- "TagRenameWindow.title", "TagRenameWindow.message");
-
- entryWindow.setPreenteredText( tag.getTagName( true ), false );
- entryWindow.selectPreenteredText( true );
+ }
+ });
+
+ /* Seldom Used: can be set in Tags Overview
+ MenuItem itemRename = new MenuItem(menu, SWT.PUSH);
- entryWindow.prompt();
+ Messages.setLanguageText(itemRename, "MyTorrentsView.menu.rename");
+ itemRename.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow(
+ "TagRenameWindow.title", "TagRenameWindow.message");
+
+ entryWindow.setPreenteredText( tag.getTagName( true ), false );
+ entryWindow.selectPreenteredText( true );
+
+ entryWindow.prompt();
+
+ if ( entryWindow.hasSubmittedInput()){
- if ( entryWindow.hasSubmittedInput()){
+ try{
+ tag.setTagName( entryWindow.getSubmittedInput().trim());
- try{
- tag.setTagName( entryWindow.getSubmittedInput().trim());
-
- }catch( Throwable e ){
-
- Debug.out( e );
- }
+ }catch( Throwable e ){
+
+ Debug.out( e );
}
}
- });
-
- MenuItem itemDelete = new MenuItem(menu, SWT.PUSH);
-
- Utils.setMenuItemImage(itemDelete, "delete");
-
- Messages.setLanguageText(itemDelete, "FileItem.delete");
- itemDelete.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- tag.removeTag();
- }
- });
- }
+ }
+ });
+ */
-
- org.gudy.azureus2.plugins.ui.menus.MenuItem[] items = MenuItemManager.getInstance().getAllAsArray(
- MenuManager.MENU_TAG_CONTEXT);
+ MenuItem itemDelete = new MenuItem(menu, SWT.PUSH);
- if (items.length > 0) {
- MenuFactory.addSeparatorMenuItem(menu);
-
- // TODO: Don't send Tag.. send a yet-to-be-created plugin interface version of Tag
- MenuBuildUtils.addPluginMenuItems(items, menu, true, true,
- new MenuBuildUtils.MenuItemPluginMenuControllerImpl(new Tag[] { tag }));
- }
+ Utils.setMenuItemImage(itemDelete, "delete");
+
+ Messages.setLanguageText(itemDelete, "FileItem.delete");
+ itemDelete.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ tag.removeTag();
+ }
+ });
}
-
+
public static void
createSideBarMenuItems(
final Menu menu,
diff --git a/azureus3/src/com/aelitis/azureus/core/content/RelatedContentManager.java b/azureus3/src/com/aelitis/azureus/core/content/RelatedContentManager.java
index 3896c95..88907cb 100644
--- a/azureus3/src/com/aelitis/azureus/core/content/RelatedContentManager.java
+++ b/azureus3/src/com/aelitis/azureus/core/content/RelatedContentManager.java
@@ -137,6 +137,11 @@ RelatedContentManager
private static final int REPUBLISH_PERIOD = 8*60*60*1000;
private static final int REPUBLISH_TICKS = REPUBLISH_PERIOD/TIMER_PERIOD;
+ private static final int I2P_SEARCHER_CHECK_PERIOD = 10*60*1000;
+ private static final int I2P_SEARCHER_CHECK_TICKS = I2P_SEARCHER_CHECK_PERIOD/TIMER_PERIOD;
+
+
+
private static final int INITIAL_PUBLISH_DELAY = 3*60*1000;
private static final int INITIAL_PUBLISH_TICKS = INITIAL_PUBLISH_DELAY/TIMER_PERIOD;
@@ -230,7 +235,7 @@ RelatedContentManager
private RCMSearchXFer transfer_type = new RCMSearchXFer();
private final CopyOnWriteList<RelatedContentSearcher> searchers = new CopyOnWriteList<RelatedContentSearcher>();
-
+ private boolean added_i2p_searcher;
private static final int MAX_TRANSIENT_CACHE = 256;
@@ -387,7 +392,7 @@ RelatedContentManager
public_dht_plugin = dp;
- RelatedContentSearcher public_searcher = new RelatedContentSearcher( RelatedContentManager.this, transfer_type, dp );
+ RelatedContentSearcher public_searcher = new RelatedContentSearcher( RelatedContentManager.this, transfer_type, dp, true );
searchers.add( public_searcher );
@@ -428,21 +433,9 @@ RelatedContentManager
{
tick_count++;
- if ( tick_count == 1 ){
+ if ( tick_count == 1 || tick_count % I2P_SEARCHER_CHECK_TICKS == 0 ){
- List<DistributedDatabase> ddbs = DDBaseImpl.getDDBs( new String[] {AENetworkClassifier.AT_I2P });
-
- for ( DistributedDatabase ddb: ddbs ){
-
- if ( ddb.getNetwork() == AENetworkClassifier.AT_I2P ){
-
- DHTPluginInterface i2p_dht = ((DDBaseImpl)ddb).getDHTPlugin();
-
- RelatedContentSearcher i2p_searcher = new RelatedContentSearcher( RelatedContentManager.this, transfer_type, i2p_dht );
-
- searchers.add( i2p_searcher );
- }
- }
+ checkI2PSearcher( false );
}
if ( enabled ){
@@ -497,6 +490,63 @@ RelatedContentManager
});
}
+ private void
+ checkI2PSearcher(
+ boolean force )
+ {
+ // wanna defer adding the I2P one so we don't activate the pure destination just for rcm i2p search
+
+ synchronized( searchers ){
+
+ if ( added_i2p_searcher ){
+
+ return;
+ }
+
+ if ( !force ){
+
+ DownloadManager dm = plugin_interface.getDownloadManager();
+
+ Download[] downloads = dm.getDownloads();
+
+ boolean found = false;
+
+ for ( Download download: downloads ){
+
+ String[] nets = PluginCoreUtils.unwrap( download ).getDownloadState().getNetworks();
+
+ if ( nets.length == 1 && nets[0] == AENetworkClassifier.AT_I2P ){
+
+ found = true;
+
+ break;
+ }
+ }
+
+ if ( !found ){
+
+ return;
+ }
+ }
+
+ List<DistributedDatabase> ddbs = DDBaseImpl.getDDBs( new String[]{ AENetworkClassifier.AT_I2P });
+
+ for ( DistributedDatabase ddb: ddbs ){
+
+ if ( ddb.getNetwork() == AENetworkClassifier.AT_I2P ){
+
+ DHTPluginInterface i2p_dht = ((DDBaseImpl)ddb).getDHTPlugin();
+
+ RelatedContentSearcher i2p_searcher = new RelatedContentSearcher( RelatedContentManager.this, transfer_type, i2p_dht, false );
+
+ searchers.add( i2p_searcher );
+
+ added_i2p_searcher = true;
+ }
+ }
+ }
+ }
+
public boolean
isEnabled()
{
@@ -3086,6 +3136,11 @@ RelatedContentManager
}
}
+ if ( target_net == AENetworkClassifier.AT_I2P ){
+
+ checkI2PSearcher( true );
+ }
+
for ( RelatedContentSearcher searcher: searchers ){
String net = searcher.getDHTPlugin().getNetwork();
diff --git a/azureus3/src/com/aelitis/azureus/core/content/RelatedContentSearcher.java b/azureus3/src/com/aelitis/azureus/core/content/RelatedContentSearcher.java
index 188d098..a547821 100644
--- a/azureus3/src/com/aelitis/azureus/core/content/RelatedContentSearcher.java
+++ b/azureus3/src/com/aelitis/azureus/core/content/RelatedContentSearcher.java
@@ -152,11 +152,17 @@ RelatedContentSearcher
RelatedContentSearcher(
RelatedContentManager _manager,
DistributedDatabaseTransferType _transfer_type,
- DHTPluginInterface _dht_plugin )
+ DHTPluginInterface _dht_plugin,
+ boolean _defer_ddb_check )
{
manager = _manager;
transfer_type = _transfer_type;
dht_plugin = _dht_plugin;
+
+ if ( !_defer_ddb_check ){
+
+ checkDDB();
+ }
}
protected DHTPluginInterface
@@ -169,23 +175,8 @@ RelatedContentSearcher
timerTick(
boolean enabled,
int tick_count )
- {
- if ( tick_count == 1 ){
-
- try{
- List<DistributedDatabase> ddbs = DDBaseImpl.getDDBs( new String[]{ dht_plugin.getNetwork() });
-
- if ( ddbs.size() > 0 ){
-
- ddb = ddbs.get( 0 );
-
- ddb.addTransferHandler( transfer_type, this );
- }
- }catch( Throwable e ){
-
- // Debug.out( e );
- }
- }
+ {
+ checkDDB();
if ( enabled ){
@@ -207,6 +198,27 @@ RelatedContentSearcher
testKeyBloom();
}
+ private void
+ checkDDB()
+ {
+ if ( ddb == null ){
+
+ try{
+ List<DistributedDatabase> ddbs = DDBaseImpl.getDDBs( new String[]{ dht_plugin.getNetwork() });
+
+ if ( ddbs.size() > 0 ){
+
+ ddb = ddbs.get( 0 );
+
+ ddb.addTransferHandler( transfer_type, this );
+ }
+ }catch( Throwable e ){
+
+ // Debug.out( e );
+ }
+ }
+ }
+
protected SearchInstance
searchRCM(
Map<String,Object> search_parameters,
diff --git a/azureus3/src/com/aelitis/azureus/core/subs/impl/SubscriptionManagerImpl.java b/azureus3/src/com/aelitis/azureus/core/subs/impl/SubscriptionManagerImpl.java
index aea62a1..9352b45 100644
--- a/azureus3/src/com/aelitis/azureus/core/subs/impl/SubscriptionManagerImpl.java
+++ b/azureus3/src/com/aelitis/azureus/core/subs/impl/SubscriptionManagerImpl.java
@@ -2749,22 +2749,16 @@ SubscriptionManagerImpl
}
String[] nets = PluginCoreUtils.unwrap( download ).getDownloadState().getNetworks();
-
- boolean non_pub_found = false;
-
+
for ( String net: nets ){
if ( net == AENetworkClassifier.AT_PUBLIC ){
return( false );
-
- }else{
-
- non_pub_found = true;
}
}
- return( non_pub_found );
+ return( true );
}
protected boolean
diff --git a/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/ChatMDIEntry.java b/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/ChatMDIEntry.java
new file mode 100644
index 0000000..3cd77ee
--- /dev/null
+++ b/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/ChatMDIEntry.java
@@ -0,0 +1,205 @@
+/*
+ * Copyright (C) Azureus Software, Inc, All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details ( see the LICENSE file ).
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+package com.aelitis.azureus.plugins.net.buddy.swt;
+
+
+import java.util.List;
+
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta.ChatAdapter;
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta.ChatInstance;
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta.ChatMessage;
+import com.aelitis.azureus.ui.UIFunctionsManager;
+import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfo;
+import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfoManager;
+import com.aelitis.azureus.ui.mdi.MdiCloseListener;
+import com.aelitis.azureus.ui.mdi.MdiEntry;
+import com.aelitis.azureus.ui.mdi.MdiEntryDropListener;
+import com.aelitis.azureus.ui.mdi.MultipleDocumentInterface;
+
+
+public class ChatMDIEntry implements ViewTitleInfo
+{
+ private final MdiEntry mdi_entry;
+
+ private final ChatInstance chat;
+
+ private ChatView view;
+ private String drop_outstanding;
+
+ private final ChatAdapter adapter =
+ new ChatAdapter()
+ {
+ @Override
+ public void
+ updated()
+ {
+ update();
+ }
+ };
+
+ public
+ ChatMDIEntry(
+ ChatInstance _chat,
+ MdiEntry _entry)
+ {
+ chat = _chat;
+
+ mdi_entry = _entry;
+
+ setupMdiEntry();
+ }
+
+ private void
+ setupMdiEntry()
+ {
+ mdi_entry.setViewTitleInfo( this );
+
+ MdiEntryDropListener drop_listener =
+ new MdiEntryDropListener()
+ {
+ public boolean
+ mdiEntryDrop(
+ MdiEntry entry,
+ Object payload )
+ {
+ if ( payload instanceof String[] ){
+
+ String[] derp = (String[])payload;
+
+ if ( derp.length > 0 ){
+
+ payload = derp[0];
+ }
+ }
+
+ if (!(payload instanceof String)){
+
+ return false;
+ }
+
+ MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();
+
+ if ( mdi != null ){
+
+ String drop = (String)payload;
+
+ if ( view == null ){
+
+ drop_outstanding = drop;
+
+ }else{
+
+ view.handleDrop( drop );
+ }
+
+ mdi.showEntry( mdi_entry );
+
+ return( true );
+
+ }else{
+
+ return( false );
+ }
+ }
+ };
+
+ mdi_entry.addListener( drop_listener );
+
+ mdi_entry.addListener(
+ new MdiCloseListener()
+ {
+ public void
+ mdiEntryClosed(
+ MdiEntry entry,
+ boolean user)
+ {
+ chat.destroy();
+ }
+ });
+
+ chat.addListener( adapter );
+ }
+
+ protected void
+ setView(
+ ChatView _view )
+ {
+ view = _view;
+
+ String drop = drop_outstanding;
+
+ if ( drop != null ){
+
+ drop_outstanding = null;
+
+ view.handleDrop( drop );
+ }
+ }
+
+ private void
+ update()
+ {
+ mdi_entry.redraw();
+
+ ViewTitleInfoManager.refreshTitleInfo( mdi_entry.getViewTitleInfo());
+ }
+
+ public Object
+ getTitleInfoProperty(
+ int propertyID )
+ {
+ switch( propertyID ){
+
+ case ViewTitleInfo.TITLE_INDICATOR_TEXT_TOOLTIP:{
+
+ return( chat.getName());
+ }
+ case ViewTitleInfo.TITLE_TEXT:{
+
+ return( chat.getName( true ));
+ }
+ case ViewTitleInfo.TITLE_INDICATOR_COLOR:{
+
+ if ( chat.getMessageOutstanding()){
+
+ if ( chat.hasUnseenMessageWithNick()){
+
+ return( SBC_ChatOverview.COLOR_MESSAGE_WITH_NICK );
+ }
+ }
+
+ return( null );
+ }
+ case ViewTitleInfo.TITLE_INDICATOR_TEXT:{
+
+ if ( chat.getMessageOutstanding()){
+
+ return( "*" );
+
+ }else{
+
+ return( null );
+ }
+
+ }
+ }
+
+ return( null );
+ }
+}
diff --git a/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/ChatView.java b/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/ChatView.java
new file mode 100644
index 0000000..f652767
--- /dev/null
+++ b/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/ChatView.java
@@ -0,0 +1,192 @@
+/*
+ * Created on Jul 10, 2015
+ * Created by Paul Gardner
+ *
+ * Copyright 2015 Azureus Software, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+package com.aelitis.azureus.plugins.net.buddy.swt;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.widgets.Composite;
+import org.gudy.azureus2.core3.util.Debug;
+import org.gudy.azureus2.ui.swt.plugins.UISWTViewEvent;
+import org.gudy.azureus2.ui.swt.pluginsimpl.UISWTViewCoreEventListener;
+
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginUtils;
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginViewInterface;
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta.ChatInstance;
+
+public class
+ChatView
+ implements UISWTViewCoreEventListener
+{
+ private ChatInstance current_chat;
+ private ChatInstance initialized_chat;
+
+ private BuddyPluginViewInterface.View chat_view;
+
+ private void
+ initialize(
+ Composite _parent_composite )
+ {
+ try{
+ if ( current_chat != null ){
+
+ initialized_chat = current_chat;
+
+ Map<String,Object> chat_properties = new HashMap<String, Object>();
+
+ chat_properties.put( BuddyPluginViewInterface.VP_SWT_COMPOSITE, _parent_composite );
+ chat_properties.put( BuddyPluginViewInterface.VP_CHAT, current_chat );
+
+ chat_view =
+ BuddyPluginUtils.buildChatView(
+ chat_properties,
+ new BuddyPluginViewInterface.ViewListener() {
+
+ public void
+ chatActivated(
+ ChatInstance chat)
+ {
+
+ }
+ });
+
+ ChatMDIEntry mdi_entry = (ChatMDIEntry)current_chat.getUserData( SBC_ChatOverview.MDI_KEY );
+
+ if ( mdi_entry != null ){
+
+ mdi_entry.setView( this );
+ }
+ }else{
+
+ Debug.out( "No current chat" );
+ }
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+ }
+
+ protected void
+ handleDrop(
+ String drop )
+ {
+ chat_view.handleDrop( drop );
+ }
+
+ private void
+ viewActivated()
+ {
+ if ( chat_view != null ){
+
+ chat_view.activate();
+ }
+ }
+
+ private void
+ viewDeactivated()
+ {
+ }
+
+ private void
+ dataSourceChanged(
+ Object data )
+ {
+ synchronized( this ){
+
+ if ( data instanceof ChatInstance ){
+
+ ChatInstance chat = (ChatInstance)data;
+
+ try{
+ if ( current_chat == null ){
+
+ current_chat = chat.getClone();
+
+ }else{
+
+ if ( !current_chat.getNetAndKey().equals( chat.getNetAndKey())){
+
+ current_chat.destroy();
+
+ current_chat = chat.getClone();
+ }
+ }
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+ }
+ }
+ }
+
+ public boolean
+ eventOccurred(
+ UISWTViewEvent event)
+ {
+ switch (event.getType()) {
+ case UISWTViewEvent.TYPE_CREATE:
+
+ break;
+
+ case UISWTViewEvent.TYPE_DESTROY:
+
+ synchronized( this ){
+
+ if ( current_chat != null && current_chat != initialized_chat ){
+
+ current_chat.destroy();
+
+ current_chat = null;
+ }
+ }
+
+ break;
+
+ case UISWTViewEvent.TYPE_INITIALIZE:
+ initialize((Composite)event.getData());
+
+ break;
+
+ case UISWTViewEvent.TYPE_LANGUAGEUPDATE:
+
+ break;
+
+ case UISWTViewEvent.TYPE_DATASOURCE_CHANGED:
+ dataSourceChanged(event.getData());
+ break;
+
+ case UISWTViewEvent.TYPE_FOCUSGAINED:
+ viewActivated();
+ break;
+
+ case UISWTViewEvent.TYPE_FOCUSLOST:
+ viewDeactivated();
+ break;
+
+ case UISWTViewEvent.TYPE_REFRESH:
+ break;
+ }
+
+ return true;
+ }
+}
diff --git a/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/SBC_ChatOverview.java b/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/SBC_ChatOverview.java
index 61a219c..28999d5 100644
--- a/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/SBC_ChatOverview.java
+++ b/azureus3/src/com/aelitis/azureus/plugins/net/buddy/swt/SBC_ChatOverview.java
@@ -21,8 +21,11 @@
package com.aelitis.azureus.plugins.net.buddy.swt;
import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.TreeMap;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
@@ -32,6 +35,8 @@ import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Text;
+import org.gudy.azureus2.core3.util.AENetworkClassifier;
+import org.gudy.azureus2.core3.util.Base32;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.plugins.ui.UIPluginViewToolBarListener;
import org.gudy.azureus2.plugins.ui.tables.TableColumn;
@@ -39,6 +44,7 @@ import org.gudy.azureus2.plugins.ui.tables.TableColumnCreationListener;
import org.gudy.azureus2.plugins.ui.toolbar.UIToolBarItem;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.Utils;
+import org.gudy.azureus2.ui.swt.pluginsimpl.UISWTViewEventListenerHolder;
import org.gudy.azureus2.ui.swt.views.table.TableViewSWT;
import org.gudy.azureus2.ui.swt.views.table.TableViewSWTMenuFillListener;
import org.gudy.azureus2.ui.swt.views.table.impl.TableViewFactory;
@@ -52,7 +58,11 @@ import com.aelitis.azureus.ui.common.table.TableSelectionListener;
import com.aelitis.azureus.ui.common.table.TableViewFilterCheck;
import com.aelitis.azureus.ui.common.table.impl.TableColumnManager;
import com.aelitis.azureus.ui.common.updater.UIUpdatable;
-import com.aelitis.azureus.ui.swt.columns.tag.*;
+import com.aelitis.azureus.ui.mdi.MdiEntry;
+import com.aelitis.azureus.ui.mdi.MdiEntryCreationListener2;
+import com.aelitis.azureus.ui.mdi.MultipleDocumentInterface;
+import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
+import com.aelitis.azureus.ui.swt.mdi.MultipleDocumentInterfaceSWT;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObject;
import com.aelitis.azureus.ui.swt.views.skin.InfoBarUtil;
import com.aelitis.azureus.ui.swt.views.skin.SkinView;
@@ -71,9 +81,205 @@ public class SBC_ChatOverview
implements UIUpdatable, UIPluginViewToolBarListener, TableViewFilterCheck<ChatInstance>,
ChatManagerListener, TableViewSWTMenuFillListener, TableSelectionListener
{
-
+ public static final int[] COLOR_MESSAGE_WITH_NICK = { 132, 16, 58 };
+
private static final String TABLE_CHAT = "ChatsView";
+ protected static final Object MDI_KEY = new Object();
+
+ public static void
+ preInitialize()
+ {
+ final MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();
+
+ if ( mdi == null ){
+
+ return;
+ }
+
+ mdi.registerEntry(
+ "Chat_.*",
+ new MdiEntryCreationListener2()
+ {
+ public MdiEntry
+ createMDiEntry(
+ MultipleDocumentInterface mdi,
+ String id,
+ Object datasource,
+ Map<?, ?> params)
+ {
+ ChatInstance chat = null;
+
+ if ( datasource instanceof ChatInstance ){
+
+ chat = (ChatInstance)datasource;
+
+ try{
+ chat = chat.getClone();
+
+ }catch( Throwable e ){
+
+ chat = null;
+
+ Debug.out( e );
+ }
+
+ }else if ( id.length() > 7 ){
+
+ BuddyPluginBeta beta = BuddyPluginUtils.getBetaPlugin();
+
+ if ( beta != null ){
+
+ try{
+ String[] bits = id.substring( 5 ).split( ":" );
+
+ String network = AENetworkClassifier.internalise( bits[0] );
+ String key = new String( Base32.decode( bits[1] ), "UTF-8" );
+
+ chat = beta.getChat(network, key);
+
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+ }
+ }
+
+ if ( chat != null ){
+
+ chat.setAutoNotify( true );
+
+ return( createChatMdiEntry( chat ));
+ }
+
+ return( null );
+ }
+ });
+ }
+
+ public static void
+ openChat(
+ String network,
+ String key )
+ {
+ BuddyPluginBeta beta = BuddyPluginUtils.getBetaPlugin();
+
+ if ( beta != null ){
+
+ try{
+ ChatInstance chat = beta.getChat(network, key);
+
+ chat.setAutoNotify( true );
+
+ MdiEntry mdi_entry = createChatMdiEntry( chat );
+
+ MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();
+
+ if ( mdi != null ){
+
+ mdi.showEntry( mdi_entry );
+ }
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+ }
+ }
+
+ private static MdiEntry
+ createChatMdiEntry(
+ ChatInstance chat )
+ {
+ MultipleDocumentInterfaceSWT mdi = UIFunctionsManagerSWT.getUIFunctionsSWT().getMDISWT();
+
+ if ( mdi == null ){
+
+ // closing down
+
+ return( null );
+ }
+
+ try{
+ String key = "Chat_" + chat.getNetwork() + ":" + Base32.encode( chat.getKey().getBytes( "UTF-8" ));
+
+ BuddyPluginBeta bp = BuddyPluginUtils.getBetaPlugin();
+
+ TreeMap<ChatInstance,String> name_map =
+ new TreeMap<ChatInstance,String>(
+ new Comparator<ChatInstance>()
+ {
+ public int
+ compare(
+ ChatInstance o1,
+ ChatInstance o2)
+ {
+ return( o1.getName().compareTo( o2.getName()));
+ }
+ });
+
+ name_map.put( chat, key );
+
+ List<ChatInstance> all_chats = bp.getChats();
+
+ for ( ChatInstance c: all_chats ){
+
+ try{
+ String k = "Chat_" + c.getNetwork() + ":" + Base32.encode( c.getKey().getBytes( "UTF-8" ));
+
+ if ( mdi.getEntry( k ) != null ){
+
+ name_map.put( c, k );
+ }
+ }catch( Throwable e ){
+
+ }
+ }
+
+ String prev_id = null;
+
+ for ( String this_id: name_map.values()){
+
+ if ( this_id == key ){
+
+ break;
+ }
+
+ prev_id = this_id;
+ }
+
+ if ( prev_id == null && name_map.size() > 1 ){
+
+ Iterator<String> it = name_map.values().iterator();
+
+ it.next();
+
+ prev_id = "~" + it.next();
+ }
+
+ MdiEntry entry =
+ mdi.createEntryFromEventListener(
+ MultipleDocumentInterface.SIDEBAR_SECTION_CHAT,
+ new UISWTViewEventListenerHolder(
+ key,
+ ChatView.class,
+ chat, null ),
+ key, true, chat, prev_id);
+
+ ChatMDIEntry entry_info = new ChatMDIEntry( chat, entry );
+
+ chat.setUserData( MDI_KEY, entry_info );
+
+ return( entry );
+
+ }catch( Throwable e ){
+
+ Debug.out( e );
+
+ return( null );
+ }
+ }
+
+
TableViewSWT<ChatInstance> tv;
private Text txtFilter;
@@ -84,7 +290,6 @@ public class SBC_ChatOverview
private boolean listener_added;
- // @see org.gudy.azureus2.plugins.ui.toolbar.UIToolBarActivationListener#toolBarItemActivated(com.aelitis.azureus.ui.common.ToolBarItem, long, java.lang.Object)
public boolean toolBarItemActivated(ToolBarItem item, long activationType,
Object datasource) {
if ( tv == null || !tv.isVisible()){
@@ -110,11 +315,9 @@ public class SBC_ChatOverview
return false;
}
- // @see com.aelitis.azureus.ui.common.table.TableViewFilterCheck#filterSet(java.lang.String)
public void filterSet(String filter) {
}
- // @see org.gudy.azureus2.plugins.ui.UIPluginViewToolBarListener#refreshToolBarItems(java.util.Map)
public void refreshToolBarItems(Map<String, Long> list) {
if ( tv == null || !tv.isVisible()){
return;
@@ -135,19 +338,16 @@ public class SBC_ChatOverview
list.put("remove", canEnable ? UIToolBarItem.STATE_ENABLED : 0);
}
- // @see com.aelitis.azureus.ui.common.updater.UIUpdatable#updateUI()
public void updateUI() {
if (tv != null) {
tv.refreshTable(false);
}
}
- // @see com.aelitis.azureus.ui.common.updater.UIUpdatable#getUpdateUIName()
public String getUpdateUIName() {
- return "TagsView";
+ return "ChatsView";
}
- // @see com.aelitis.azureus.ui.swt.views.skin.SkinView#skinObjectInitialShow(com.aelitis.azureus.ui.swt.skin.SWTSkinObject, java.lang.Object)
public Object skinObjectInitialShow(SWTSkinObject skinObject, Object params) {
initColumns();
@@ -232,10 +432,9 @@ public class SBC_ChatOverview
});
- tableManager.setDefaultSortColumnName(TABLE_CHAT, ColumnTagName.COLUMN_ID);
+ tableManager.setDefaultSortColumnName(TABLE_CHAT, ColumnChatName.COLUMN_ID);
}
- // @see com.aelitis.azureus.ui.swt.views.skin.SkinView#skinObjectHidden(com.aelitis.azureus.ui.swt.skin.SWTSkinObject, java.lang.Object)
public Object skinObjectHidden(SWTSkinObject skinObject, Object params) {
if (tv != null) {
@@ -262,7 +461,6 @@ public class SBC_ChatOverview
return super.skinObjectHidden(skinObject, params);
}
- // @see com.aelitis.azureus.ui.swt.views.skin.SkinView#skinObjectShown(com.aelitis.azureus.ui.swt.skin.SWTSkinObject, java.lang.Object)
public Object skinObjectShown(SWTSkinObject skinObject, Object params) {
super.skinObjectShown(skinObject, params);
SWTSkinObject so_list = getSkinObject("chats-list");
@@ -314,16 +512,12 @@ public class SBC_ChatOverview
return super.skinObjectDestroyed(skinObject, params);
}
- /**
- * @param control
- *
- * @since 4.6.0.5
- */
+
private void initTable(Composite control) {
if ( tv == null ){
tv = TableViewFactory.createTableViewSWT(ChatInstance.class, TABLE_CHAT, TABLE_CHAT,
- new TableColumnCore[0], ColumnTagName.COLUMN_ID, SWT.MULTI
+ new TableColumnCore[0], ColumnChatName.COLUMN_ID, SWT.MULTI
| SWT.FULL_SELECTION | SWT.VIRTUAL);
if (txtFilter != null) {
tv.enableFilterCheck(txtFilter, this);
@@ -361,7 +555,51 @@ public class SBC_ChatOverview
chats.add((ChatInstance)obj);
}
}
+
+ // show in sidebar
+
+ MenuItem itemSiS = new MenuItem(menu, SWT.PUSH);
+
+ Messages.setLanguageText(itemSiS, Utils.isAZ2UI()?"label.show.in.tab":"label.show.in.sidebar");
+
+ itemSiS.setEnabled(chats.size() > 0);
+
+ itemSiS.addListener(SWT.Selection, new Listener() {
+ public void
+ handleEvent(
+ Event event )
+ {
+ MdiEntry first_entry = null;
+
+ for ( ChatInstance chat: chats ){
+ try{
+ MdiEntry entry = createChatMdiEntry( chat.getClone());
+
+ if ( first_entry == null ){
+
+ first_entry = entry;
+ }
+ }catch( Throwable e ){
+
+ Debug.out( e );
+ }
+ }
+
+ if ( first_entry != null ){
+
+ MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();
+
+ if ( mdi != null ){
+
+ mdi.showEntry(first_entry);
+ }
+ }
+ }
+ });
+
+
+
MenuItem itemRemove = new MenuItem(menu, SWT.PUSH);
Messages.setLanguageText(itemRemove, "MySharesView.menu.remove");
@@ -484,7 +722,6 @@ public class SBC_ChatOverview
{
}
- // @see com.aelitis.azureus.ui.common.table.TableViewFilterCheck#filterCheck(java.lang.Object, java.lang.String, boolean)
public boolean filterCheck(ChatInstance ds, String filter, boolean regex) {
return false;
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/skin/skin3_sidebar.properties b/azureus3/src/com/aelitis/azureus/ui/skin/skin3_sidebar.properties
index 66a241d..33cef0a 100644
--- a/azureus3/src/com/aelitis/azureus/ui/skin/skin3_sidebar.properties
+++ b/azureus3/src/com/aelitis/azureus/ui/skin/skin3_sidebar.properties
@@ -105,6 +105,7 @@ mdi.content.item.type=container
mdi.content.item.attach.template=template.fill
#Important! Needs to be invisible
mdi.content.item.visible=0
+mdi.content.item.auto.defer.layout=1
main.area.welcome.type=browser
main.area.welcome.view=welcome
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/Initializer.java b/azureus3/src/com/aelitis/azureus/ui/swt/Initializer.java
index ada4ee4..ae7ad1a 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/Initializer.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/Initializer.java
@@ -30,6 +30,7 @@ import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.internat.MessageText;
+import org.gudy.azureus2.core3.security.SESecurityManager;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.plugins.PluginEvent;
import org.gudy.azureus2.plugins.PluginEventListener;
@@ -44,6 +45,7 @@ import org.gudy.azureus2.ui.swt.mainwindow.*;
import org.gudy.azureus2.ui.swt.networks.SWTNetworkSelection;
import org.gudy.azureus2.ui.swt.pluginsinstaller.InstallPluginWizard;
import org.gudy.azureus2.ui.swt.progress.ProgressWindow;
+import org.gudy.azureus2.ui.swt.shells.MessageBoxShell;
import org.gudy.azureus2.ui.swt.update.UpdateMonitor;
import org.gudy.azureus2.ui.swt.updater2.PreUpdateChecker;
import org.gudy.azureus2.ui.swt.updater2.SWTUpdateChecker;
@@ -60,6 +62,7 @@ import com.aelitis.azureus.ui.IUIIntializer;
import com.aelitis.azureus.ui.InitializerListener;
import com.aelitis.azureus.ui.UIFunctions;
import com.aelitis.azureus.ui.UIFunctionsManager;
+import com.aelitis.azureus.ui.UserPrompterResultListener;
import com.aelitis.azureus.ui.swt.browser.listener.*;
import com.aelitis.azureus.ui.swt.browser.msg.MessageDispatcherSWT;
import com.aelitis.azureus.ui.swt.devices.DeviceManagerUI;
@@ -535,54 +538,97 @@ public class Initializer
}
}
- core.start();
-
- reportPercent(50);
-
- System.out.println("Core Initializing took "
- + (SystemTime.getCurrentTime() - startTime) + "ms");
- startTime = SystemTime.getCurrentTime();
-
- reportCurrentTaskByKey("splash.initializeUIElements");
-
- // Ensure colors initialized
- Colors.getInstance();
-
- reportPercent(curPercent + 1);
- Alerts.init();
-
- reportPercent(curPercent + 1);
- ProgressWindow.register(core);
-
- reportPercent(curPercent + 1);
- new SWTNetworkSelection();
-
- reportPercent(curPercent + 1);
- new AuthenticatorWindow();
- new CryptoWindow();
-
- reportPercent(curPercent + 1);
- new CertificateTrustWindow();
-
- InstallPluginWizard.register(core, display);
-
- // finally check if an explicit open has been requested in case hidden in tray atm
-
- for (int i = 0; i < args.length; i++) {
+ if ( core.canStart()){
- String arg = args[i];
+ core.start();
+
+ reportPercent(50);
+
+ System.out.println("Core Initializing took "
+ + (SystemTime.getCurrentTime() - startTime) + "ms");
+ startTime = SystemTime.getCurrentTime();
+
+ reportCurrentTaskByKey("splash.initializeUIElements");
+
+ // Ensure colors initialized
+ Colors.getInstance();
+
+ reportPercent(curPercent + 1);
+ Alerts.init();
+
+ reportPercent(curPercent + 1);
+ ProgressWindow.register(core);
+
+ reportPercent(curPercent + 1);
+ new SWTNetworkSelection();
+
+ reportPercent(curPercent + 1);
+ new AuthenticatorWindow();
+ new CryptoWindow();
- if ( arg.equalsIgnoreCase( "--open" )){
-
- UIFunctions uif = UIFunctionsManager.getUIFunctions();
+ reportPercent(curPercent + 1);
+ new CertificateTrustWindow();
+
+ InstallPluginWizard.register(core, display);
+
+ // finally check if an explicit open has been requested in case hidden in tray atm
+
+ for (int i = 0; i < args.length; i++) {
- if ( uif != null ){
+ String arg = args[i];
- uif.bringToFront();
+ if ( arg.equalsIgnoreCase( "--open" )){
+
+ UIFunctions uif = UIFunctionsManager.getUIFunctions();
+
+ if ( uif != null ){
+
+ uif.bringToFront();
+ }
+
+ break;
}
-
- break;
}
+ }else{
+
+ final AESemaphore sem = new AESemaphore( "waiter" );
+
+ Utils.execSWTThread(
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ MessageBoxShell mb =
+ new MessageBoxShell(
+ MessageText.getString( "msgbox.force.close.title" ),
+ MessageText.getString(
+ "msgbox.force.close.text",
+ new String[]{ core.getLockFile().getAbsolutePath() }),
+ new String[]{ MessageText.getString("Button.ok") },
+ 0 );
+
+ mb.setIconResource( "error" );
+
+ mb.setModal( true );
+
+ mb.open(
+ new UserPrompterResultListener()
+ {
+
+ public void
+ prompterClosed(
+ int result )
+ {
+ sem.releaseForever();
+ }
+ });
+ }
+ });
+
+ sem.reserve();
+
+ SESecurityManager.exitVM( 1 );
}
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/devices/DeviceManagerUI.java b/azureus3/src/com/aelitis/azureus/ui/swt/devices/DeviceManagerUI.java
index b5b49a7..fca7b59 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/devices/DeviceManagerUI.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/devices/DeviceManagerUI.java
@@ -155,7 +155,8 @@ DeviceManagerUI
private List<categoryView> categories = new ArrayList<categoryView>();
-
+ private int last_job_count = 0;
+
private MenuItemListener properties_listener;
private MenuItemListener hide_listener;
private MenuItemListener rename_listener;
@@ -479,13 +480,14 @@ DeviceManagerUI
TranscodeManager transMan = device_manager.getTranscodeManager();
- TranscodeQueue transQ = transMan.getQueue();
+ final TranscodeQueue transQ = transMan.getQueue();
transQ.addListener(
new TranscodeQueueListener()
{
- int last_job_count = 0;
-
+ {
+ check();
+ }
public void
jobAdded(
TranscodeJob job )
@@ -511,7 +513,7 @@ DeviceManagerUI
check()
{
try{
- int job_count = device_manager.getTranscodeManager().getQueue().getJobCount();
+ int job_count = transQ.getJobCount();
if ( job_count != last_job_count ){
@@ -1520,6 +1522,13 @@ DeviceManagerUI
return( getHeaderToolTip());
}
+ if ( propertyID == TITLE_INDICATOR_TEXT ){
+
+ if ( last_job_count > 0 ){
+
+ return( String.valueOf( last_job_count ));
+ }
+ }
return( null );
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/mdi/BaseMdiEntry.java b/azureus3/src/com/aelitis/azureus/ui/swt/mdi/BaseMdiEntry.java
index 950426c..f6b0de0 100755
--- a/azureus3/src/com/aelitis/azureus/ui/swt/mdi/BaseMdiEntry.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/mdi/BaseMdiEntry.java
@@ -244,6 +244,32 @@ public abstract class BaseMdiEntry
this.collapseDisabled = collapseDisabled;
setExpanded(true);
}
+
+ // @see com.aelitis.azureus.ui.mdi.MdiEntry#addListeners(java.lang.Object)
+ public void addListeners(Object objectWithListeners) {
+ if (objectWithListeners instanceof MdiChildCloseListener) {
+ addListener((MdiChildCloseListener) objectWithListeners);
+ }
+ if (objectWithListeners instanceof MdiCloseListener) {
+ addListener((MdiCloseListener) objectWithListeners);
+ }
+ if (objectWithListeners instanceof MdiEntryDatasourceListener) {
+ addListener((MdiEntryDatasourceListener) objectWithListeners);
+ }
+ if (objectWithListeners instanceof MdiEntryDropListener) {
+ addListener((MdiEntryDropListener) objectWithListeners);
+ }
+ if (objectWithListeners instanceof MdiEntryLogIdListener) {
+ addListener((MdiEntryLogIdListener) objectWithListeners);
+ }
+ if (objectWithListeners instanceof MdiEntryOpenListener) {
+ addListener((MdiEntryOpenListener) objectWithListeners);
+ }
+
+ if (objectWithListeners instanceof MdiSWTMenuHackListener) {
+ addListener((MdiSWTMenuHackListener) objectWithListeners);
+ }
+ }
public void addListener(MdiCloseListener l) {
synchronized (this) {
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/mdi/TabbedMDI.java b/azureus3/src/com/aelitis/azureus/ui/swt/mdi/TabbedMDI.java
index 3bbc16d..80cfeba 100755
--- a/azureus3/src/com/aelitis/azureus/ui/swt/mdi/TabbedMDI.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/mdi/TabbedMDI.java
@@ -120,12 +120,6 @@ public class TabbedMDI
creatMDI();
- try {
- UIFunctionsManager.getUIFunctions().getUIUpdater().addUpdater(this);
- } catch (Exception e) {
- Debug.out(e);
- }
-
return null;
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainMDISetup.java b/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainMDISetup.java
index 5985a18..1499569 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainMDISetup.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainMDISetup.java
@@ -40,6 +40,10 @@ import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.AsyncController;
import org.gudy.azureus2.core3.util.Base32;
import org.gudy.azureus2.core3.util.DisplayFormatters;
+import org.gudy.azureus2.core3.util.SimpleTimer;
+import org.gudy.azureus2.core3.util.TimerEvent;
+import org.gudy.azureus2.core3.util.TimerEventPerformer;
+import org.gudy.azureus2.core3.util.TimerEventPeriodic;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.download.Download;
import org.gudy.azureus2.plugins.download.DownloadStub;
@@ -69,6 +73,10 @@ import com.aelitis.azureus.core.AzureusCoreRunningListener;
import com.aelitis.azureus.core.cnetwork.ContentNetwork;
import com.aelitis.azureus.core.cnetwork.ContentNetworkManagerFactory;
import com.aelitis.azureus.core.tag.Tag;
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta;
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginUtils;
+import com.aelitis.azureus.plugins.net.buddy.BuddyPluginBeta.ChatInstance;
+import com.aelitis.azureus.plugins.net.buddy.swt.SBC_ChatOverview;
import com.aelitis.azureus.ui.UIFunctions;
import com.aelitis.azureus.ui.UIFunctionsManager;
import com.aelitis.azureus.ui.common.table.TableView;
@@ -94,18 +102,7 @@ public class MainMDISetup
setupSidebarVuzeUI(mdi);
}
- mdi.registerEntry(SideBar.SIDEBAR_SECTION_TORRENT_DETAILS + ".*",
- new MdiEntryCreationListener2() {
- public MdiEntry createMDiEntry(MultipleDocumentInterface mdi,
- String id, Object datasource, Map<?, ?> params) {
- String hash = DataSourceUtils.getHash(datasource);
- if (hash != null) {
- id = MultipleDocumentInterface.SIDEBAR_SECTION_TORRENT_DETAILS
- + "_" + hash;
- }
- return createTorrentDetailEntry(mdi, id, datasource);
- }
- });
+ SBC_TorrentDetailsView.TorrentDetailMdiEntry.register(mdi);
PluginInterface pi = PluginInitializer.getDefaultInterface();
@@ -211,10 +208,10 @@ public class MainMDISetup
new MdiEntryCreationListener() {
public MdiEntry createMDiEntry(String id) {
MdiEntry entry = mdi.createEntryFromSkinRef(
- MultipleDocumentInterface.SIDEBAR_HEADER_TRANSFERS,
- MultipleDocumentInterface.SIDEBAR_SECTION_TAGS, "tagsview",
- "{mdi.entry.tagsoverview}", null, null, true, null);
+ MultipleDocumentInterface.SIDEBAR_HEADER_TRANSFERS, id,
+ "tagsview", "{mdi.entry.tagsoverview}", null, null, true, null);
entry.setImageLeftID("image.sidebar.tag-overview");
+ entry.setDefaultExpanded(true);
return entry;
}
});
@@ -222,9 +219,9 @@ public class MainMDISetup
new MdiEntryCreationListener() {
public MdiEntry createMDiEntry(String id) {
MdiEntry entry = mdi.createEntryFromSkinRef(
- MultipleDocumentInterface.SIDEBAR_HEADER_TRANSFERS,
- MultipleDocumentInterface.SIDEBAR_SECTION_TAG_DISCOVERY, "tagdiscoveryview",
- "{mdi.entry.tagdiscovery}", null, null, true, null);
+ MultipleDocumentInterface.SIDEBAR_SECTION_TAGS, id,
+ "tagdiscoveryview", "{mdi.entry.tagdiscovery}", null, null,
+ true, null);
entry.setImageLeftID("image.sidebar.tag-overview");
return entry;
}
@@ -233,11 +230,87 @@ public class MainMDISetup
mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_CHAT,
new MdiEntryCreationListener() {
public MdiEntry createMDiEntry(String id) {
+
+ final ViewTitleInfo title_info =
+ new ViewTitleInfo()
+ {
+ private BuddyPluginBeta bp = BuddyPluginUtils.getBetaPlugin();
+
+ public Object
+ getTitleInfoProperty(
+ int propertyID)
+ {
+ if ( propertyID == TITLE_INDICATOR_TEXT ){
+
+ int num = 0;
+
+ for ( ChatInstance chat: bp.getChats()){
+
+ if ( chat.getMessageOutstanding()){
+
+ num++;
+ }
+ }
+
+ if ( num > 0 ){
+
+ return( String.valueOf( num ));
+
+ }else{
+
+ return( null );
+ }
+ }else if ( propertyID == ViewTitleInfo.TITLE_INDICATOR_COLOR ){
+
+ for ( ChatInstance chat: bp.getChats()){
+
+ if ( chat.getMessageOutstanding()){
+
+ if ( chat.hasUnseenMessageWithNick()){
+
+ return( SBC_ChatOverview.COLOR_MESSAGE_WITH_NICK );
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+ };
+
+ final TimerEventPeriodic timer =
+ SimpleTimer.addPeriodicEvent(
+ "sb:chatup",
+ 5*1000,
+ new TimerEventPerformer()
+ {
+
+ public void
+ perform(
+ TimerEvent event)
+ {
+ ViewTitleInfoManager.refreshTitleInfo( title_info );
+ }
+ });
+
MdiEntry entry = mdi.createEntryFromSkinRef(
- MultipleDocumentInterface.SIDEBAR_HEADER_TRANSFERS,
+ MultipleDocumentInterface.SIDEBAR_HEADER_DISCOVERY,
MultipleDocumentInterface.SIDEBAR_SECTION_CHAT, "chatsview",
- "{mdi.entry.chatsoverview}", null, null, true, null);
+ "{mdi.entry.chatsoverview}", title_info, null, true, null);
+
entry.setImageLeftID("image.sidebar.chat-overview");
+
+ entry.addListener(
+ new MdiCloseListener() {
+
+ public void
+ mdiEntryClosed(
+ MdiEntry entry, boolean userClosed)
+ {
+ timer.cancel();
+ }
+ });
+
return entry;
}
});
@@ -750,105 +823,4 @@ public class MainMDISetup
mdi.loadEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_DEVICES, false);
mdi.loadEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_ACTIVITIES, false);
}
-
- protected static MdiEntry createTorrentDetailEntry(
- MultipleDocumentInterface mdi, String id, Object ds) {
- if (ds == null) {
- return null;
- }
- final MdiEntry torrentDetailEntry = mdi.createEntryFromSkinRef(
- SideBar.SIDEBAR_HEADER_TRANSFERS, id, "torrentdetails", "", null, ds,
- true, null);
-
- final ViewTitleInfo viewTitleInfo = new ViewTitleInfo() {
-
- public Object getTitleInfoProperty(int propertyID) {
- Object ds = ((BaseMdiEntry) torrentDetailEntry).getDatasourceCore();
- if (propertyID == TITLE_EXPORTABLE_DATASOURCE) {
- return DataSourceUtils.getHash(ds);
- } else if (propertyID == TITLE_LOGID) {
- return "DMDetails";
- } else if (propertyID == TITLE_IMAGEID) {
- return "image.sidebar.details";
- }
-
- DownloadManager manager = DataSourceUtils.getDM(ds);
- if (manager == null) {
- return null;
- }
-
- if (propertyID == TITLE_TEXT) {
- if (Utils.isAZ2UI()) {
- int completed = manager.getStats().getPercentDoneExcludingDND();
- return DisplayFormatters.formatPercentFromThousands(completed)
- + " : " + manager.getDisplayName();
- }
-
- return manager.getDisplayName();
- }
-
- if (propertyID == TITLE_INDICATOR_TEXT && !Utils.isAZ2UI()) {
- int completed = manager.getStats().getPercentDoneExcludingDND();
- if (completed != 1000) {
- return (completed / 10) + "%";
- }
- } else if (propertyID == TITLE_INDICATOR_TEXT_TOOLTIP) {
- String s = "";
- int completed = manager.getStats().getPercentDoneExcludingDND();
- if (completed != 1000) {
- s = (completed / 10) + "% Complete\n";
- }
- String eta = DisplayFormatters.formatETA(manager.getStats().getSmoothedETA());
- if (eta.length() > 0) {
- s += MessageText.getString("TableColumn.header.eta") + ": " + eta
- + "\n";
- }
-
- return manager.getDisplayName() + ( s.length()==0?"":( ": " + s));
- }
- return null;
- }
- };
-
- if (torrentDetailEntry instanceof MdiEntrySWT) {
- ((MdiEntrySWT) torrentDetailEntry).addListener(new MdiSWTMenuHackListener() {
- public void menuWillBeShown(MdiEntry entry, Menu menuTree) {
- // todo: This even work?
- TableView<?> tv = SelectedContentManager.getCurrentlySelectedTableView();
- menuTree.setData("TableView", tv);
- DownloadManager manager = DataSourceUtils.getDM(torrentDetailEntry.getDatasource());
- if (manager != null) {
- menuTree.setData("downloads", new DownloadManager[] {
- manager
- });
- }
- menuTree.setData("is_detailed_view", new Boolean(true));
-
- MenuFactory.buildTorrentMenu(menuTree);
- }
- });
- }
-
- torrentDetailEntry.addListener(new MdiEntryDatasourceListener() {
- public void mdiEntryDatasourceChanged(MdiEntry entry) {
- Object newDataSource = entry.getDatasource();
- if (newDataSource instanceof String) {
- final String s = (String) newDataSource;
- if (!AzureusCoreFactory.isCoreRunning()) {
- AzureusCoreFactory.addCoreRunningListener(new AzureusCoreRunningListener() {
- public void azureusCoreRunning(AzureusCore core) {
- torrentDetailEntry.setDatasource(DataSourceUtils.getDM(s));
- }
- });
- return;
- }
- }
-
- ViewTitleInfoManager.refreshTitleInfo(viewTitleInfo);
- }
- });
- torrentDetailEntry.setViewTitleInfo(viewTitleInfo);
-
- return torrentDetailEntry;
- }
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainWindowImpl.java b/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainWindowImpl.java
index b5c27d7..3f55327 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainWindowImpl.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/MainWindowImpl.java
@@ -43,11 +43,6 @@ import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.logging.*;
import org.gudy.azureus2.core3.torrent.TOTorrent;
import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.plugins.PluginInterface;
-import org.gudy.azureus2.plugins.PluginListener;
-import org.gudy.azureus2.plugins.sharing.ShareException;
-import org.gudy.azureus2.plugins.sharing.ShareManager;
-import org.gudy.azureus2.pluginsimpl.local.PluginInitializer;
import org.gudy.azureus2.ui.swt.*;
import org.gudy.azureus2.ui.swt.associations.AssociationChecker;
import org.gudy.azureus2.ui.swt.components.shell.ShellManager;
@@ -1345,6 +1340,8 @@ public class MainWindowImpl
}
}
+ private Set<Shell> minimized_on_hide = new HashSet<Shell>();
+
private void showMainWindow() {
COConfigurationManager.addAndFireParameterListener("Show Download Basket", new ParameterListener() {
public void parameterChanged(String parameterName) {
@@ -1369,6 +1366,21 @@ public class MainWindowImpl
+ ";" + (SystemTime.getCurrentTime() - Initializer.startTime)
+ "ms");
+ // attempt to fix occasional missing status bar on show (running async seems to fix issue for me)
+
+ if ( statusBar != null ){
+ Utils.execSWTThreadLater(
+ 10,
+ new Runnable()
+ {
+ public void
+ run()
+ {
+ statusBar.relayout();
+ }
+ });
+ }
+
// bring back and stand-alone shells
ShellManager.sharedManager().performForShells(
@@ -1382,9 +1394,23 @@ public class MainWindowImpl
if ( this_shell.getParent() == null && !this_shell.isVisible()){
+ boolean minimize;
+
+ synchronized( minimized_on_hide ){
+
+ minimize = minimized_on_hide.remove( this_shell );
+ }
+
this_shell.setVisible( true );
- this_shell.moveAbove( shell );
+ if ( minimize ){
+
+ this_shell.setMinimized( true );
+
+ }else{
+
+ this_shell.moveAbove( shell );
+ }
}
}
});
@@ -1726,10 +1752,32 @@ public class MainWindowImpl
handleEvent(
Event event)
{
- Shell shell = (Shell)event.widget;
+ final Shell shell = (Shell)event.widget;
if ( shell.getParent() == null ){
+ if ( shell.getMinimized()){
+
+ synchronized( minimized_on_hide ){
+
+ minimized_on_hide.add( shell );
+
+ shell.addDisposeListener(
+ new DisposeListener() {
+
+ public void
+ widgetDisposed(
+ DisposeEvent e)
+ {
+ synchronized( minimized_on_hide ){
+
+ minimized_on_hide.remove( shell );
+ }
+ }
+ });
+ }
+ }
+
shell.setVisible( false );
}
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/UIFunctionsImpl.java b/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/UIFunctionsImpl.java
index a9ca659..fa690fe 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/UIFunctionsImpl.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/shells/main/UIFunctionsImpl.java
@@ -1250,7 +1250,7 @@ public class UIFunctionsImpl
TorrentOpenOptions torrentOptions = new TorrentOpenOptions();
if (defaultToStopped) {
- torrentOptions.iStartID = TorrentOpenOptions.STARTMODE_STOPPED;
+ torrentOptions.setStartMode( TorrentOpenOptions.STARTMODE_STOPPED );
}
if (sFilesToOpen == null) {
new OpenTorrentWindow(shell);
@@ -1276,7 +1276,7 @@ public class UIFunctionsImpl
TorrentOpenOptions torrentOptions = new TorrentOpenOptions();
if (defaultToStopped) {
- torrentOptions.iStartID = TorrentOpenOptions.STARTMODE_STOPPED;
+ torrentOptions.setStartMode( TorrentOpenOptions.STARTMODE_STOPPED );
}
torrentOptions.setHideErrors( hideErrors );
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/shells/opentorrent/OpenTorrentOptionsWindow.java b/azureus3/src/com/aelitis/azureus/ui/swt/shells/opentorrent/OpenTorrentOptionsWindow.java
index d2c9ad6..abbdf1c 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/shells/opentorrent/OpenTorrentOptionsWindow.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/shells/opentorrent/OpenTorrentOptionsWindow.java
@@ -32,7 +32,6 @@ import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
-
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.config.StringIterator;
import org.gudy.azureus2.core3.config.StringList;
@@ -1446,10 +1445,13 @@ public class OpenTorrentOptionsWindow
/* prevents loop of modifications */
protected boolean bSkipDataDirModify = false;
+ private Button btnPrivacy;
private Button btnCheckComments;
private Button btnCheckAvailability;
private Button btnSwarmIt;
+ private List<Button> network_buttons = new ArrayList<Button>();
+
private Combo cmbDataDir;
private Combo cmbQueueLocation;
@@ -1546,13 +1548,29 @@ public class OpenTorrentOptionsWindow
try {
RelatedContentManager rcm = RelatedContentManager.getSingleton();
- String[] networks = torrentOptions.getEnabledNetworks().keySet().toArray(new String[0]);
- rcm.lookupAttributes(hash.getBytes(), networks,
- new RelatedAttributeLookupListener() {
-
+
+ Map<String,Boolean> enabledNetworks = torrentOptions.getEnabledNetworks();
+
+ List<String> networks = new ArrayList<String>();
+
+ for ( Map.Entry<String,Boolean> entry: enabledNetworks.entrySet()){
+
+ if ( entry.getValue()){
+
+ networks.add( entry.getKey());
+ }
+ }
+
+ if ( networks.size() > 0 ){
+
+ rcm.lookupAttributes(
+ hash.getBytes(),
+ networks.toArray( new String[networks.size()]),
+ new RelatedAttributeLookupListener(){
+
public void lookupStart() {
}
-
+
public void tagFound(String tag, String network) {
if (listDiscoveredTags.contains(tag)) {
return;
@@ -1570,15 +1588,17 @@ public class OpenTorrentOptionsWindow
buildTagButtonPanel(tagButtonsArea, true);
}
});
-
+
}
-
+
public void lookupComplete() {
}
-
+
public void lookupFailed(ContentException error) {
}
});
+ }
+
} catch (ContentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
@@ -2540,7 +2560,7 @@ public class OpenTorrentOptionsWindow
// Check for seeding
boolean bTorrentValid = true;
- if (torrentOptions.iStartID == TorrentOpenOptions.STARTMODE_SEEDING) {
+ if (torrentOptions.getStartMode() == TorrentOpenOptions.STARTMODE_SEEDING) {
// check if all selected files exist
TorrentOpenFileOptions[] files = torrentOptions.getFiles();
for (int j = 0; j < files.length; j++) {
@@ -2627,7 +2647,7 @@ public class OpenTorrentOptionsWindow
}
String optionText = MessageText.getString("OpenTorrentWindow.startMode."
- + startModes[torrentOptions.iStartID])
+ + startModes[torrentOptions.getStartMode()])
+ ", "
+ MessageText.getString("OpenTorrentWindow.addPosition."
+ queueLocations[torrentOptions.iQueueLocation]);
@@ -2674,7 +2694,7 @@ public class OpenTorrentOptionsWindow
}
protected void setSelectedStartMode(int iStartID) {
- torrentOptions.iStartID = iStartID;
+ torrentOptions.setStartMode( iStartID );
checkSeedingMode();
updateStartOptionsHeader();
@@ -2731,7 +2751,7 @@ public class OpenTorrentOptionsWindow
line.setLayoutData(gridData);
Composite cButtonsBottom = new Composite(cButtonsArea, SWT.NULL);
- layout = new GridLayout(3,false);
+ layout = new GridLayout(4,false);
layout.marginWidth = layout.marginHeight = layout.marginBottom = layout.marginTop = layout.marginLeft = layout.marginRight = 0;
cButtonsBottom.setLayout(layout);
gridData = new GridData( GridData.FILL_HORIZONTAL);
@@ -2832,6 +2852,49 @@ public class OpenTorrentOptionsWindow
gridData = new GridData( GridData.FILL_HORIZONTAL);
pad2.setLayoutData( gridData );
+ // privacy add mode
+
+ btnPrivacy = new Button(cButtonsBottom, SWT.TOGGLE);
+ buttons.add( btnPrivacy );
+ Messages.setLanguageText(btnPrivacy, "label.privacy");
+ btnPrivacy.setToolTipText( MessageText.getString( "OpenTorrentWindow.privacy.info" ));
+
+ btnPrivacy.addListener(SWT.Selection, new Listener(){
+ private int saved_start_mode;
+ private Map<String,Boolean> saved_nets;
+
+ public void handleEvent(Event event) {
+ if ( btnPrivacy.getSelection()){
+
+ saved_nets = torrentOptions.getEnabledNetworks();
+ saved_start_mode = torrentOptions.getStartMode();
+
+ setSelectedStartMode( TorrentOpenOptions.STARTMODE_STOPPED );
+
+ for ( String net: AENetworkClassifier.AT_NETWORKS ){
+
+ torrentOptions.setNetworkEnabled( net, false );
+ }
+
+ updateNetworkOptions();
+
+ }else{
+
+ if ( saved_nets != null ){
+
+ setSelectedStartMode( saved_start_mode );
+
+ for ( Map.Entry<String,Boolean> entry: saved_nets.entrySet()){
+
+ torrentOptions.setNetworkEnabled( entry.getKey(), entry.getValue());
+ }
+ saved_nets = null;
+ }
+
+ updateNetworkOptions();
+ }
+ }
+ });
// ratings etc
btnCheckComments = new Button(cButtonsBottom, SWT.PUSH);
@@ -2855,9 +2918,7 @@ public class OpenTorrentOptionsWindow
}
});
-
-
Utils.makeButtonsEqualWidth( buttons );
updateFileButtons();
@@ -3657,7 +3718,7 @@ public class OpenTorrentOptionsWindow
}
});
- if ( infos.length > 1 && torrentOptions.iStartID != TorrentOpenOptions.STARTMODE_SEEDING ){
+ if ( infos.length > 1 && torrentOptions.getStartMode() != TorrentOpenOptions.STARTMODE_SEEDING ){
item = new MenuItem(menu, SWT.PUSH);
Messages.setLanguageText(item,
"OpenTorrentWindow.fileList.changeDestination.all", new String[]{ String.valueOf( infos.length )});
@@ -4181,7 +4242,7 @@ public class OpenTorrentOptionsWindow
}
}else{
for (TorrentOpenFileOptions fileInfo : infos) {
- int style = (fileInfo.parent.iStartID == TorrentOpenOptions.STARTMODE_SEEDING)
+ int style = (fileInfo.parent.getStartMode() == TorrentOpenOptions.STARTMODE_SEEDING)
? SWT.OPEN : SWT.SAVE;
FileDialog fDialog = new FileDialog(shell, SWT.SYSTEM_MODAL
| style);
@@ -4216,7 +4277,7 @@ public class OpenTorrentOptionsWindow
if (sNewName == null)
return;
- if (fileInfo.parent.iStartID == TorrentOpenOptions.STARTMODE_SEEDING) {
+ if (fileInfo.parent.getStartMode() == TorrentOpenOptions.STARTMODE_SEEDING) {
File file = new File(sNewName);
if (file.length() == fileInfo.lSize)
fileInfo.setFullDestName(sNewName);
@@ -4434,7 +4495,7 @@ public class OpenTorrentOptionsWindow
Button button = new Button(peer_sources_group, SWT.CHECK);
Messages.setLanguageText(button, msg_text);
-
+
button.setSelection(COConfigurationManager.getBooleanParameter(config_name));
button.addSelectionListener(new SelectionAdapter() {
@@ -4470,6 +4531,8 @@ public class OpenTorrentOptionsWindow
Button button = new Button(network_group, SWT.CHECK);
Messages.setLanguageText(button, msg_text);
+ network_buttons.add( button );
+
Map<String,Boolean> enabledNetworks = torrentOptions.getEnabledNetworks();
button.setSelection(enabledNetworks.get( nn ));
@@ -4486,6 +4549,19 @@ public class OpenTorrentOptionsWindow
}
}
+ private void updateNetworkOptions() {
+ if ( network_buttons.size() != AENetworkClassifier.AT_NETWORKS.length ){
+ return;
+ }
+
+ Map<String,Boolean> enabledNetworks = torrentOptions.getEnabledNetworks();
+
+ for (int i = 0; i < AENetworkClassifier.AT_NETWORKS.length; i++) {
+
+ network_buttons.get(i).setSelection(enabledNetworks.get( AENetworkClassifier.AT_NETWORKS[i]));
+ }
+ }
+
private void updateDataDirCombo() {
if (cmbDataDir == null) {
@@ -4642,7 +4718,7 @@ public class OpenTorrentOptionsWindow
sItemsText[i] = sText;
}
cmbStartMode.setItems(sItemsText);
- cmbStartMode.select(torrentOptions.iStartID);
+ cmbStartMode.select(torrentOptions.getStartMode());
cmbStartMode.layout(true);
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinButtonUtility.java b/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinButtonUtility.java
index f2db75c..030452e 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinButtonUtility.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinButtonUtility.java
@@ -161,10 +161,7 @@ public class SWTSkinButtonUtility
lastDisabledState = disabled;
Utils.execSWTThreadLater(100, new AERunnable() {
public void runSupport() {
- if (lastDisabledState == isDisabled()) {
- return;
- }
- ((SWTSkinObjectButton) skinObject).getControl().setEnabled(
+ ((SWTSkinObjectButton) skinObject).getButton().setEnabled(
!lastDisabledState);
}
});
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectBasic.java b/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectBasic.java
index 543a98e..8e7aaf4 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectBasic.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectBasic.java
@@ -522,8 +522,7 @@ public class SWTSkinObjectBasic
}
if (changed) {
control.setLayoutData(fd);
- control.getParent().layout(true);
- Utils.relayout(control);
+ control.getParent().layout(true, true);
}
} else if (ld == null && !visible) {
FormData fd = new FormData();
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectContainer.java b/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectContainer.java
index 1937335..6e33721 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectContainer.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/skin/SWTSkinObjectContainer.java
@@ -24,8 +24,9 @@ import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
-
+import org.eclipse.swt.widgets.Listener;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.AERunnableObject;
import org.gudy.azureus2.core3.util.Debug;
@@ -33,6 +34,8 @@ import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.components.CompositeMinSize;
import org.gudy.azureus2.ui.swt.debug.ObfusticateImage;
+import com.aelitis.azureus.ui.swt.views.skin.sidebar.SideBarEntrySWT;
+
/**
* A SWTSkinObject that contains other SWTSkinObjects
@@ -102,7 +105,7 @@ public class SWTSkinObjectContainer
minWidth = properties.getIntValue(sConfigID + ".minwidth", -1);
minHeight = properties.getIntValue(sConfigID + ".minheight", -1);
- Composite parentComposite;
+ final Composite parentComposite;
if (skin.DEBUGLAYOUT) {
System.out.println("linkIDtoParent: Create Composite " + sID + " on "
+ createOn);
@@ -120,14 +123,32 @@ public class SWTSkinObjectContainer
parentComposite = new Group(createOn, style);
}
}
-
+
// setting INHERIT_FORCE here would make the BG of a text box be
// this parent's BG (on Win7 at least)
//parentComposite.setBackgroundMode(SWT.INHERIT_FORCE);
parentComposite.setLayout(new FormLayout());
+
control = parentComposite;
-
+
+ if ( properties.getBooleanValue(sConfigID + ".auto.defer.layout", false)) {
+
+ Listener show_hide_listener =
+ new Listener()
+ {
+ public void
+ handleEvent(
+ Event event )
+ {
+ parentComposite.setLayoutDeferred( event.type == SWT.Hide );
+ }
+ };
+
+ parentComposite.addListener( SWT.Show, show_hide_listener );
+ parentComposite.addListener( SWT.Hide, show_hide_listener );
+ }
+
setControl(control);
return parentComposite;
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewTitleInfoBetaP.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewTitleInfoBetaP.java
index 708b29c..8820f6e 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewTitleInfoBetaP.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewTitleInfoBetaP.java
@@ -30,6 +30,7 @@ import org.gudy.azureus2.pluginsimpl.local.PluginInitializer;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfo;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfoManager;
+import com.aelitis.azureus.ui.mdi.*;
import com.aelitis.azureus.util.JSONUtils;
import com.aelitis.azureus.util.MapUtils;
@@ -84,4 +85,30 @@ public class ViewTitleInfoBetaP
COConfigurationManager.setParameter(PARAM_LASTPOSTCOUNT, postCount);
numNew = 0;
}
+
+ public static void setupSidebarEntry(final MultipleDocumentInterface mdi) {
+ mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_BETAPROGRAM,
+ new MdiEntryCreationListener() {
+ public MdiEntry createMDiEntry(String id) {
+
+ final ViewTitleInfoBetaP viewTitleInfo = new ViewTitleInfoBetaP();
+
+ MdiEntry entry = mdi.createEntryFromSkinRef(
+ MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
+ MultipleDocumentInterface.SIDEBAR_SECTION_BETAPROGRAM,
+ "main.area.beta", "{Sidebar.beta.title}", viewTitleInfo, null,
+ true, MultipleDocumentInterface.SIDEBAR_POS_FIRST);
+
+ entry.setImageLeftID("image.sidebar.beta");
+
+ entry.addListener(new MdiCloseListener() {
+ public void mdiEntryClosed(MdiEntry entry, boolean userClosed) {
+ viewTitleInfo.clearIndicator();
+ }
+ });
+
+ return entry;
+ }
+ });
+ }
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_ActivityTableView.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_ActivityTableView.java
index 4fa2aa9..6c54dce 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_ActivityTableView.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_ActivityTableView.java
@@ -382,9 +382,7 @@ public class SBC_ActivityTableView
return view;
}
- public static void setupSidebarEntry() {
- final MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();
-
+ public static void setupSidebarEntry(final MultipleDocumentInterface mdi) {
// Put TitleInfo in another class
final ViewTitleInfo titleInfoActivityView = new ViewTitleInfo() {
public Object getTitleInfoProperty(int propertyID) {
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_GenericBrowsePage.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_GenericBrowsePage.java
index 23448d4..76cb7da 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_GenericBrowsePage.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_GenericBrowsePage.java
@@ -101,9 +101,11 @@ extends SkinView
private void openURL() {
- Object o = entry.getDatasource();
- if (o instanceof String) {
- browserSkinObject.setURL((String) o);
+ if ( entry != null ){
+ Object o = entry.getDatasource();
+ if (o instanceof String) {
+ browserSkinObject.setURL((String) o);
+ }
}
}
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_TorrentDetailsView.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_TorrentDetailsView.java
index a91f097..ef9ccef 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_TorrentDetailsView.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SBC_TorrentDetailsView.java
@@ -32,9 +32,7 @@ import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.global.GlobalManagerAdapter;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.peer.PEPeer;
-import org.gudy.azureus2.core3.util.AERunnable;
-import org.gudy.azureus2.core3.util.Debug;
-import org.gudy.azureus2.core3.util.DisplayFormatters;
+import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.plugins.ui.UIPluginViewToolBarListener;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.debug.ObfusticateTab;
@@ -58,9 +56,11 @@ import com.aelitis.azureus.ui.common.ToolBarItem;
import com.aelitis.azureus.ui.common.table.TableView;
import com.aelitis.azureus.ui.common.table.TableViewFilterCheck;
import com.aelitis.azureus.ui.common.updater.UIUpdatable;
+import com.aelitis.azureus.ui.common.updater.UIUpdatableAlways;
+import com.aelitis.azureus.ui.common.updater.UIUpdater;
+import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfo;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfoManager;
-import com.aelitis.azureus.ui.mdi.MdiEntry;
-import com.aelitis.azureus.ui.mdi.MdiListener;
+import com.aelitis.azureus.ui.mdi.*;
import com.aelitis.azureus.ui.selectedcontent.ISelectedContent;
import com.aelitis.azureus.ui.selectedcontent.SelectedContentListener;
import com.aelitis.azureus.ui.selectedcontent.SelectedContentManager;
@@ -70,6 +70,7 @@ import com.aelitis.azureus.ui.swt.mdi.*;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObject;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObjectText;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObjectTextbox;
+import com.aelitis.azureus.ui.swt.views.skin.sidebar.SideBar;
import com.aelitis.azureus.util.DataSourceUtils;
/**
@@ -81,17 +82,13 @@ import com.aelitis.azureus.util.DataSourceUtils;
public class SBC_TorrentDetailsView
extends SkinView
implements DownloadManagerListener, ObfusticateTab,
- UIUpdatable, UIPluginViewToolBarListener, SelectedContentListener
+ UIPluginViewToolBarListener, SelectedContentListener
{
private DownloadManager manager;
private TabbedMdiInterface tabbedMDI;
- int lastCompleted = -1;
-
- private GlobalManagerAdapter gmListener;
-
private Composite parent;
private FilterCheckHandler filter_check_handler;
@@ -112,25 +109,6 @@ public class SBC_TorrentDetailsView
*
*/
public SBC_TorrentDetailsView() {
- // assumed if we are opening a Download Manager View that we
- // have a DownloadManager and thus an AzureusCore
- AzureusCoreFactory.addCoreRunningListener(new AzureusCoreRunningListener() {
- public void azureusCoreRunning(AzureusCore core) {
- GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
- gmListener = new GlobalManagerAdapter() {
- public void downloadManagerRemoved(DownloadManager dm) {
- if (dm.equals(manager)) {
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- getMainSkinObject().dispose();
- }
- });
- }
- }
- };
- gm.addListener(gmListener, false);
- }
- });
}
private void dataSourceChanged(Object newDataSource) {
@@ -157,26 +135,13 @@ public class SBC_TorrentDetailsView
entry.setDatasource(newDataSource);
}
}
-
- refreshTitle();
}
private void delete() {
- UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
- if (uiFunctions != null) {
- uiFunctions.getUIUpdater().removeUpdater(this);
- }
if (manager != null) {
manager.removeListener(this);
}
- try {
- GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
- gm.removeListener(gmListener);
- } catch (Exception e) {
- Debug.out(e);
- }
-
SelectedContentManager.removeCurrentlySelectedContentListener(this);
Utils.disposeSWTObjects(new Object[] {
@@ -189,7 +154,6 @@ public class SBC_TorrentDetailsView
Composite main_area = new Composite(composite, SWT.NULL);
main_area.setLayout(new FormLayout());
- //boolean az2 = Utils.isAZ2UI();
//Color bg_color = ColorCache.getColor(composite.getDisplay(), "#c0cbd4");
UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
@@ -433,21 +397,6 @@ public class SBC_TorrentDetailsView
tabbedMDI.updateUI();
}
- /**
- *
- *
- * @since 3.1.0.1
- */
- private void refreshTitle() {
- int completed = manager == null ? -1 : manager.getStats().getPercentDoneExcludingDND();
- if (lastCompleted != completed) {
- if (mdi_entry != null) {
- ViewTitleInfoManager.refreshTitleInfo(mdi_entry.getViewTitleInfo());
- }
- lastCompleted = completed;
- }
- }
-
protected static String escapeAccelerators(String str) {
if (str == null) {
@@ -528,9 +477,7 @@ public class SBC_TorrentDetailsView
return "DMDetails";
}
- // @see com.aelitis.azureus.ui.common.updater.UIUpdatable#updateUI()
public void updateUI() {
- refreshTitle();
refresh();
}
@@ -670,4 +617,173 @@ public class SBC_TorrentDetailsView
}
return (BaseMdiEntry) tabbedMDI.getCurrentEntrySWT();
}
+
+ public static class TorrentDetailMdiEntry
+ implements MdiSWTMenuHackListener, MdiCloseListener,
+ MdiEntryDatasourceListener, UIUpdatable, ViewTitleInfo
+ {
+ int lastCompleted = -1;
+
+ protected GlobalManagerAdapter gmListener;
+
+ private BaseMdiEntry entry;
+
+ public static void register(MultipleDocumentInterfaceSWT mdi) {
+ mdi.registerEntry(SideBar.SIDEBAR_SECTION_TORRENT_DETAILS + ".*",
+ new MdiEntryCreationListener2() {
+ public MdiEntry createMDiEntry(MultipleDocumentInterface mdi,
+ String id, Object datasource, Map<?, ?> params) {
+ String hash = DataSourceUtils.getHash(datasource);
+ if (hash != null) {
+ id = MultipleDocumentInterface.SIDEBAR_SECTION_TORRENT_DETAILS
+ + "_" + hash;
+
+ // If we check if the hash exists in GlobalManager here,
+ // the GM may now have finished loading/adding all torrents!
+ }
+ return new TorrentDetailMdiEntry().createTorrentDetailEntry(mdi,
+ id, datasource);
+ }
+ });
+ }
+
+ public MdiEntry createTorrentDetailEntry(MultipleDocumentInterface mdi,
+ String id, Object ds) {
+ if (ds == null) {
+ return null;
+ }
+ entry = (BaseMdiEntry) mdi.createEntryFromSkinRef(SideBar.SIDEBAR_HEADER_TRANSFERS, id,
+ "torrentdetails", "", null, ds, true, null);
+
+ entry.addListeners(this);
+ entry.setViewTitleInfo(this);
+
+ AzureusCoreFactory.addCoreRunningListener(
+ new AzureusCoreRunningListener() {
+ public void azureusCoreRunning(AzureusCore core) {
+ GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
+ gmListener = new GlobalManagerAdapter() {
+ public void downloadManagerRemoved(DownloadManager dm) {
+ Object ds = entry.getDatasourceCore();
+ DownloadManager manager = DataSourceUtils.getDM(ds);
+ if (dm.equals(manager)) {
+ Utils.execSWTThread(new AERunnable() {
+ public void runSupport() {
+ entry.closeView();
+ }
+ });
+ }
+ }
+ };
+ gm.addListener(gmListener, false);
+ }
+ });
+
+ UIFunctionsManager.getUIFunctions().getUIUpdater().addUpdater(this);
+
+ return entry;
+ }
+
+ // @see com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfo#getTitleInfoProperty(int)
+ public Object getTitleInfoProperty(int propertyID) {
+ Object ds = entry.getDatasourceCore();
+ if (propertyID == TITLE_EXPORTABLE_DATASOURCE) {
+ return DataSourceUtils.getHash(ds);
+ } else if (propertyID == TITLE_LOGID) {
+ return "DMDetails";
+ } else if (propertyID == TITLE_IMAGEID) {
+ return "image.sidebar.details";
+ }
+
+ DownloadManager manager = DataSourceUtils.getDM(ds);
+ if (manager == null) {
+ return null;
+ }
+
+ if (propertyID == TITLE_TEXT) {
+ return manager.getDisplayName();
+ }
+
+ if (propertyID == TITLE_INDICATOR_TEXT) {
+ int completed = manager.getStats().getPercentDoneExcludingDND();
+ if (completed != 1000) {
+ return (completed / 10) + "%";
+ }
+ } else if (propertyID == TITLE_INDICATOR_TEXT_TOOLTIP) {
+ String s = "";
+ int completed = manager.getStats().getPercentDoneExcludingDND();
+ if (completed != 1000) {
+ s = (completed / 10) + "% Complete\n";
+ }
+ String eta = DisplayFormatters.formatETA(
+ manager.getStats().getSmoothedETA());
+ if (eta.length() > 0) {
+ s += MessageText.getString("TableColumn.header.eta") + ": " + eta
+ + "\n";
+ }
+
+ return manager.getDisplayName() + (s.length() == 0 ? "" : (": " + s));
+ }
+ return null;
+ }
+
+ // @see com.aelitis.azureus.ui.common.updater.UIUpdatable#updateUI()
+ public void updateUI() {
+ DownloadManager manager = DataSourceUtils.getDM(entry.getDatasourceCore());
+ int completed = manager == null ? -1
+ : manager.getStats().getPercentDoneExcludingDND();
+ if (lastCompleted != completed) {
+ ViewTitleInfoManager.refreshTitleInfo(this);
+ lastCompleted = completed;
+ }
+ }
+
+ // @see com.aelitis.azureus.ui.common.updater.UIUpdatable#getUpdateUIName()
+ public String getUpdateUIName() {
+ return entry == null ? "DMD" : entry.getId();
+ }
+
+ // @see com.aelitis.azureus.ui.mdi.MdiCloseListener#mdiEntryClosed(com.aelitis.azureus.ui.mdi.MdiEntry, boolean)
+ public void mdiEntryClosed(MdiEntry entry, boolean userClosed) {
+ UIFunctionsManager.getUIFunctions().getUIUpdater().removeUpdater(this);
+ try {
+ GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
+ gm.removeListener(gmListener);
+ } catch (Exception e) {
+ Debug.out(e);
+ }
+ }
+
+ public void mdiEntryDatasourceChanged(final MdiEntry entry) {
+ Object newDataSource = ((BaseMdiEntry) entry).getDatasourceCore();
+ if (newDataSource instanceof String) {
+ final String s = (String) newDataSource;
+ if (!AzureusCoreFactory.isCoreRunning()) {
+ AzureusCoreFactory.addCoreRunningListener(
+ new AzureusCoreRunningListener() {
+ public void azureusCoreRunning(AzureusCore core) {
+ entry.setDatasource(DataSourceUtils.getDM(s));
+ }
+ });
+ }
+ }
+
+ ViewTitleInfoManager.refreshTitleInfo(this);
+ }
+
+ public void menuWillBeShown(MdiEntry entry, Menu menuTree) {
+ // todo: This even work?
+ TableView<?> tv = SelectedContentManager.getCurrentlySelectedTableView();
+ menuTree.setData("TableView", tv);
+ DownloadManager manager = DataSourceUtils.getDM(((BaseMdiEntry) entry).getDatasourceCore());
+ if (manager != null) {
+ menuTree.setData("downloads", new DownloadManager[] {
+ manager
+ });
+ }
+ menuTree.setData("is_detailed_view", new Boolean(true));
+
+ MenuFactory.buildTorrentMenu(menuTree);
+ }
+ }
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SB_Vuze.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SB_Vuze.java
index 823ea51..0038749 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SB_Vuze.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SB_Vuze.java
@@ -20,12 +20,6 @@ package com.aelitis.azureus.ui.swt.views.skin;
import java.util.ArrayList;
-import org.eclipse.swt.SWT;
-
-import org.gudy.azureus2.core3.internat.MessageText;
-import org.gudy.azureus2.core3.util.Constants;
-import org.gudy.azureus2.ui.swt.shells.MessageBoxShell;
-
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfo;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfoListener;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfoManager;
@@ -34,7 +28,7 @@ import com.aelitis.azureus.ui.swt.views.ViewTitleInfoBetaP;
public class SB_Vuze
{
- private ArrayList<MdiEntry> children = new ArrayList<MdiEntry>();
+ private ArrayList<MdiEntry> children = new ArrayList<MdiEntry>(4);
private ViewTitleInfo titleInfo;
@@ -43,64 +37,34 @@ public class SB_Vuze
}
private void setup(final MultipleDocumentInterface mdi) {
- mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_BETAPROGRAM,
- new MdiEntryCreationListener() {
- public MdiEntry createMDiEntry(String id) {
-
- final ViewTitleInfoBetaP viewTitleInfo = new ViewTitleInfoBetaP();
-
- MdiEntry entry = mdi.createEntryFromSkinRef(
- MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
- MultipleDocumentInterface.SIDEBAR_SECTION_BETAPROGRAM,
- "main.area.beta", "{Sidebar.beta.title}", viewTitleInfo, null,
- true, MultipleDocumentInterface.SIDEBAR_POS_FIRST);
- entry.setImageLeftID("image.sidebar.beta");
+ ViewTitleInfoBetaP.setupSidebarEntry(mdi);
- entry.addListener(new MdiCloseListener() {
- public void mdiEntryClosed(MdiEntry entry, boolean userClosed) {
- viewTitleInfo.clearIndicator();
- }
- });
+ WelcomeView.setupSidebarEntry(mdi);
- return entry;
- }
- });
-
- mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_WELCOME, new MdiEntryCreationListener() {
- public MdiEntry createMDiEntry(String id) {
- MdiEntry entry = mdi.createEntryFromSkinRef(
- MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
- MultipleDocumentInterface.SIDEBAR_SECTION_WELCOME,
- "main.area.welcome",
- MessageText.getString("v3.MainWindow.menu.getting_started").replaceAll(
- "&", ""), null, null, true, "");
- entry.setImageLeftID("image.sidebar.welcome");
- addDropTest(entry);
- return entry;
- }
- });
-
-
- SBC_ActivityTableView.setupSidebarEntry();
+ SBC_ActivityTableView.setupSidebarEntry(mdi);
+ // Refresh the Vuze header when one of the children's title properties change
ViewTitleInfoManager.addListener(new ViewTitleInfoListener() {
public void viewTitleInfoRefresh(ViewTitleInfo titleInfo) {
+ if (SB_Vuze.this.titleInfo == null) {
+ return;
+ }
MdiEntry childrenArray[] = children.toArray(new MdiEntry[0]);
for (MdiEntry entry : childrenArray) {
if (entry.getViewTitleInfo() == titleInfo) {
- if (SB_Vuze.this.titleInfo != null) {
- ViewTitleInfoManager.refreshTitleInfo(SB_Vuze.this.titleInfo);
- }
+ ViewTitleInfoManager.refreshTitleInfo(SB_Vuze.this.titleInfo);
break;
}
}
}
});
+ // Maintain a list of children entries; Open header on load
mdi.addListener(new MdiEntryLoadedListener() {
public void mdiEntryLoaded(MdiEntry entry) {
- if (MultipleDocumentInterface.SIDEBAR_HEADER_VUZE.equals(entry.getParentID())) {
+ if (MultipleDocumentInterface.SIDEBAR_HEADER_VUZE.equals(
+ entry.getParentID())) {
children.add(entry);
entry.addListener(new MdiChildCloseListener() {
public void mdiChildEntryClosed(MdiEntry parent, MdiEntry child,
@@ -109,96 +73,77 @@ public class SB_Vuze
}
});
}
- if (!entry.getId().equals(MultipleDocumentInterface.SIDEBAR_HEADER_VUZE)) {
+ if (!entry.getId().equals(
+ MultipleDocumentInterface.SIDEBAR_HEADER_VUZE)) {
return;
}
- setupHeader(entry);
+ titleInfo = new ViewTitleInfo_Vuze(entry);
+ entry.setViewTitleInfo(titleInfo);
}
});
}
- private void setupHeader(final MdiEntry entry) {
+ private static class ViewTitleInfo_Vuze
+ implements ViewTitleInfo
+ {
+ private MdiEntry entry;
- titleInfo = new ViewTitleInfo() {
- public Object getTitleInfoProperty(int propertyID) {
- if (propertyID == ViewTitleInfo.TITLE_INDICATOR_TEXT) {
- if (entry.isExpanded()) {
- return null;
- }
- StringBuilder sb = new StringBuilder();
- MdiEntry[] entries = entry.getMDI().getEntries();
- for (MdiEntry subEntry : entries) {
- if (entry.getId().equals(subEntry.getParentID())) {
- ViewTitleInfo titleInfo = subEntry.getViewTitleInfo();
- if (titleInfo != null) {
- Object text = titleInfo.getTitleInfoProperty(TITLE_INDICATOR_TEXT);
- if (text instanceof String) {
- if (sb.length() > 0) {
- sb.append(" | ");
- }
- sb.append(text);
+ public ViewTitleInfo_Vuze(MdiEntry entry) {
+ this.entry = entry;
+ }
+
+ public Object getTitleInfoProperty(int propertyID) {
+ if (propertyID == ViewTitleInfo.TITLE_INDICATOR_TEXT) {
+ if (entry.isExpanded()) {
+ return null;
+ }
+ StringBuilder sb = new StringBuilder();
+ MdiEntry[] entries = entry.getMDI().getEntries();
+ for (MdiEntry subEntry : entries) {
+ if (entry.getId().equals(subEntry.getParentID())) {
+ ViewTitleInfo titleInfo = subEntry.getViewTitleInfo();
+ if (titleInfo != null) {
+ Object text = titleInfo.getTitleInfoProperty(
+ TITLE_INDICATOR_TEXT);
+ if (text instanceof String) {
+ if (sb.length() > 0) {
+ sb.append(" | ");
}
+ sb.append(text);
}
}
}
- if (sb.length() > 0) {
- return sb.toString();
- }
- } else if (propertyID == ViewTitleInfo.TITLE_INDICATOR_TEXT_TOOLTIP) {
- if (entry.isExpanded()) {
- return null;
- }
- StringBuilder sb = new StringBuilder();
- MdiEntry[] entries = entry.getMDI().getEntries();
- for (MdiEntry subEntry : entries) {
- if (entry.getId().equals(subEntry.getParentID())) {
- ViewTitleInfo titleInfo = subEntry.getViewTitleInfo();
- if (titleInfo != null) {
- Object text = titleInfo.getTitleInfoProperty(TITLE_INDICATOR_TEXT);
- if (text instanceof String) {
- if (sb.length() > 0) {
- sb.append("\n");
- }
- sb.append(subEntry.getTitle() + ": " + text);
+ }
+ if (sb.length() > 0) {
+ return sb.toString();
+ }
+ } else if (propertyID == ViewTitleInfo.TITLE_INDICATOR_TEXT_TOOLTIP) {
+ if (entry.isExpanded()) {
+ return null;
+ }
+ StringBuilder sb = new StringBuilder();
+ MdiEntry[] entries = entry.getMDI().getEntries();
+ for (MdiEntry subEntry : entries) {
+ if (entry.getId().equals(subEntry.getParentID())) {
+ ViewTitleInfo titleInfo = subEntry.getViewTitleInfo();
+ if (titleInfo != null) {
+ Object text = titleInfo.getTitleInfoProperty(
+ TITLE_INDICATOR_TEXT);
+ if (text instanceof String) {
+ if (sb.length() > 0) {
+ sb.append("\n");
}
+ sb.append(subEntry.getTitle() + ": " + text);
}
}
}
- if (sb.length() > 0) {
- return sb.toString();
- }
}
- return null;
- }
- };
- entry.setViewTitleInfo(titleInfo);
- }
-
- protected void addDropTest(MdiEntry entry) {
- if (!Constants.isCVSVersion()) {
- return;
- }
- entry.addListener(new MdiEntryDropListener() {
- public boolean mdiEntryDrop(MdiEntry entry, Object droppedObject) {
- String s = "You just dropped " + droppedObject.getClass() + "\n"
- + droppedObject + "\n\n";
- if (droppedObject.getClass().isArray()) {
- Object[] o = (Object[]) droppedObject;
- for (int i = 0; i < o.length; i++) {
- s += "" + i + ": ";
- Object object = o[i];
- if (object == null) {
- s += "null";
- } else {
- s += object.getClass() + ";" + object;
- }
- s += "\n";
- }
+ if (sb.length() > 0) {
+ return sb.toString();
}
- new MessageBoxShell(SWT.OK, "test", s).open(null);
- return true;
}
- });
+ return null;
+ }
}
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SearchResultsTabArea.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SearchResultsTabArea.java
index fc78406..a048d37 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SearchResultsTabArea.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/SearchResultsTabArea.java
@@ -923,6 +923,9 @@ public class SearchResultsTabArea
browserSkinObject.setURL(url);
MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();
+ if (mdi == null) {
+ return;
+ }
String id = MultipleDocumentInterface.SIDEBAR_SECTION_SEARCH;
MdiEntry entry = mdi.getEntry(id);
if (entry != null) {
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/ToolBarView.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/ToolBarView.java
index 2ed02f7..32d98c6 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/ToolBarView.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/ToolBarView.java
@@ -394,8 +394,15 @@ public class ToolBarView
if (activationType != ACTIVATIONTYPE_NORMAL) {
return false;
}
- ISelectedContent[] currentContent = SelectedContentManager.getCurrentlySelectedContent();
- TorrentUtil.stopOrStartDataSources(currentContent);
+ final ISelectedContent[] currentContent = SelectedContentManager.getCurrentlySelectedContent();
+ Utils.getOffOfSWTThread(new AERunnable() {
+
+ @Override
+ public void runSupport() {
+ // takes forever on swt thread if allocation needed
+ TorrentUtil.stopOrStartDataSources(currentContent);
+ }
+ });
return true;
}
});
@@ -737,7 +744,7 @@ public class ToolBarView
if ( currentContent.length == 0 &&
mapStates.containsKey( "start" ) &&
- !mapStates.containsKey( "stop" ) &&
+ (!mapStates.containsKey( "stop" ) || (mapStates.get("stop") & UIToolBarItem.STATE_ENABLED) == 0) &&
( mapStates.get("start") & UIToolBarItem.STATE_ENABLED) > 0 ){
shouldStopGroup = false;
@@ -749,17 +756,38 @@ public class ToolBarView
ssItem.setTextID(shouldStopGroup ? "iconBar.stop" : "iconBar.start");
ssItem.setImageID("image.toolbar.startstop."
+ (shouldStopGroup ? "stop" : "start"));
+
+ // fallback to handle start/stop settings when no explicit selected content (e.g. for devices transcode view)
+
+ if (currentContent.length == 0 && !mapStates.containsKey("startstop")) {
+
+ boolean can_stop = mapStates.containsKey("stop")
+ && (mapStates.get("stop") & UIToolBarItem.STATE_ENABLED) > 0;
+ boolean can_start = mapStates.containsKey("start")
+ && (mapStates.get("start") & UIToolBarItem.STATE_ENABLED) > 0;
+
+ if (can_start && can_stop) {
+
+ can_stop = false;
+ }
+
+ if (can_start || can_stop) {
+ ssItem.setTextID(can_stop ? "iconBar.stop" : "iconBar.start");
+ ssItem.setImageID("image.toolbar.startstop."
+ + (can_stop ? "stop" : "start"));
+
+ mapStates.put("startstop", UIToolBarItem.STATE_ENABLED);
+ }
+ }
}
-
Map<String, Long> fallBackStates = TorrentUtil.calculateToolbarStates(currentContent, null);
for (String key : fallBackStates.keySet()) {
if (!mapStates.containsKey(key)) {
mapStates.put(key, fallBackStates.get(key));
}
}
-
-
+
final String[] TBKEYS = new String[] {
"play",
"run",
@@ -785,36 +813,6 @@ public class ToolBarView
toolBarItem.setState(state);
}
}
-
- if (ssItem != null) {
-
- // fallback to handle start/stop settings when no explicit selected content (e.g. for devices transcode view)
-
- if (currentContent.length == 0 && !mapStates.containsKey("startstop")) {
-
- boolean can_stop = mapStates.containsKey("stop")
- && (mapStates.get("stop") & UIToolBarItem.STATE_ENABLED) > 0;
- boolean can_start = mapStates.containsKey("start")
- && (mapStates.get("start") & UIToolBarItem.STATE_ENABLED) > 0;
-
- if (can_start && can_stop) {
-
- can_stop = false;
- }
-
- if (can_start | can_stop) {
- ssItem.setTextID(can_stop ? "iconBar.stop" : "iconBar.start");
- ssItem.setImageID("image.toolbar.startstop."
- + (can_stop ? "stop" : "start"));
-
- ssItem.setState(1);
-
- } else {
-
- ssItem.setState(0);
- }
- }
- }
}
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/WelcomeView.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/WelcomeView.java
index 53d6b26..ac1ef0e 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/WelcomeView.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/WelcomeView.java
@@ -18,12 +18,12 @@
package com.aelitis.azureus.ui.swt.views.skin;
import org.gudy.azureus2.core3.config.COConfigurationManager;
+import org.gudy.azureus2.core3.internat.MessageText;
+import org.gudy.azureus2.core3.util.Constants;
import com.aelitis.azureus.core.cnetwork.ContentNetwork;
import com.aelitis.azureus.ui.UIFunctionsManager;
-import com.aelitis.azureus.ui.mdi.MdiEntry;
-import com.aelitis.azureus.ui.mdi.MultipleDocumentInterface;
-import com.aelitis.azureus.ui.mdi.MdiCloseListener;
+import com.aelitis.azureus.ui.mdi.*;
import com.aelitis.azureus.ui.skin.SkinConstants;
import com.aelitis.azureus.ui.swt.browser.BrowserContext.loadingListener;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObject;
@@ -120,4 +120,50 @@ public class WelcomeView
instance.openURL();
}
}
+
+ public static void setupSidebarEntry(final MultipleDocumentInterface mdi) {
+ mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_WELCOME,
+ new MdiEntryCreationListener() {
+ public MdiEntry createMDiEntry(String id) {
+ MdiEntry entry = mdi.createEntryFromSkinRef(
+ MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
+ MultipleDocumentInterface.SIDEBAR_SECTION_WELCOME,
+ "main.area.welcome",
+ MessageText.getString(
+ "v3.MainWindow.menu.getting_started").replaceAll("&", ""),
+ null, null, true, "");
+ entry.setImageLeftID("image.sidebar.welcome");
+ addDropTest(entry);
+ return entry;
+ }
+ });
+ }
+
+ private static void addDropTest(MdiEntry entry) {
+ if (!Constants.isCVSVersion()) {
+ return;
+ }
+ entry.addListener(new MdiEntryDropListener() {
+ public boolean mdiEntryDrop(MdiEntry entry, Object droppedObject) {
+ String s = "You just dropped " + droppedObject.getClass() + "\n"
+ + droppedObject + "\n\n";
+ if (droppedObject.getClass().isArray()) {
+ Object[] o = (Object[]) droppedObject;
+ for (int i = 0; i < o.length; i++) {
+ s += "" + i + ": ";
+ Object object = o[i];
+ if (object == null) {
+ s += "null";
+ } else {
+ s += object.getClass() + ";" + object;
+ }
+ s += "\n";
+ }
+ }
+ UIFunctionsManager.getUIFunctions().promptUser("test", s, null, 0, null,
+ null, false, 0, null);
+ return true;
+ }
+ });
+ }
}
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBar.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBar.java
index 47b9a9b..771f392 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBar.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBar.java
@@ -71,6 +71,9 @@ public class SideBar
extends BaseMDI
implements ObfusticateImage, AEDiagnosticsEvidenceGenerator
{
+ protected static final boolean isGTK3 = Utils.isGTK
+ && System.getProperty("org.eclipse.swt.internal.gtk.version", "2").startsWith("3");
+
protected static final boolean END_INDENT = Constants.isLinux
|| Constants.isWindows2000 || Constants.isWindows9598ME;
@@ -184,6 +187,13 @@ public class SideBar
event.keyCode = 0;
event.character = '\0';
flipSideBarVisibility();
+ }else if (event.keyCode == SWT.F4 && event.stateMask == SWT.CTRL ){
+ MdiEntry entry = getCurrentEntry();
+
+ if ( entry instanceof SideBarEntrySWT && entry.isCloseable()){
+
+ ((SideBarEntrySWT)entry).getTreeItem().dispose();
+ }
}
}
});
@@ -379,12 +389,18 @@ public class SideBar
tree.setBackground(bg);
tree.setForeground(fg);
FontData[] fontData = tree.getFont().getFontData();
-
- int fontHeight = (Constants.isOSX ? 11 : 12)
- + (tree.getItemHeight() > 18 ? tree.getItemHeight() - 18 : 0);
- if (Constants.isLinux && tree.getItemHeight() >= 38) {
- fontHeight = 13;
+ int fontHeight;
+
+ if (isGTK3) {
+ fontHeight = fontData[0].getHeight();
+ } else {
+ fontHeight = (Constants.isOSX ? 11 : 12)
+ + (tree.getItemHeight() > 18 ? tree.getItemHeight() - 18 : 0);
+
+ if (Constants.isLinux && tree.getItemHeight() >= 38) {
+ fontHeight = 13;
+ }
}
fontData[0].setStyle(SWT.BOLD);
@@ -1329,6 +1345,27 @@ public class SideBar
oldEntry.hide();
oldEntry.redraw();
}
+
+ // as this code isn't thread safe there is a chance we end up with multiple entries visible
+ // (well actually it happens fairly frequently) - this results in other views being rendered
+ // during switching which is nasty - hide anything that shouldn't be visible for the moment
+
+ MdiEntrySWT[] entries = getEntriesSWT();
+ for (MdiEntrySWT entry : entries) {
+ if (entry == null) {
+ continue;
+ }
+ if ( entry != currentEntry ){
+
+ SWTSkinObject obj = ((SideBarEntrySWT)entry).getSkinObjectMaster();
+
+ if ( obj != null && obj.isVisible()){
+
+ entry.hide();
+ entry.redraw();
+ }
+ }
+ }
newEntry.redraw();
@@ -1419,10 +1456,10 @@ public class SideBar
}
}
- if (currentEntry == null || tree.getSelectionCount() == 0) {
+ if (tree.getSelectionCount() == 0) {
return;
}
- currentEntry.updateUI();
+ super.updateUI();
}
protected boolean wasEntryLoadedOnce(String id) {
diff --git a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBarEntrySWT.java b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBarEntrySWT.java
index a2eb558..c7577e6 100644
--- a/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBarEntrySWT.java
+++ b/azureus3/src/com/aelitis/azureus/ui/swt/views/skin/sidebar/SideBarEntrySWT.java
@@ -729,6 +729,17 @@ public class SideBarEntrySWT
super.show();
}
+ public void hide() {
+ // if we defer the show above then we should defer the hide similarly to ensure that a caller trying
+ // to show a new view before hiding the old (to avoid an intermediate blank view) ends up executing things
+ // in teh desired order
+ Utils.execSWTThreadLater(0, new AERunnable() {
+ public void runSupport() {
+ SideBarEntrySWT.super.hide();
+ }
+ });
+ }
+
protected void swt_paintSideBar(Event event) {
neverPainted = false;
//System.out.println(System.currentTimeMillis() + "] paint " + getId() + ";sel? " + ((event.detail & SWT.SELECTED) > 0));
@@ -741,6 +752,17 @@ public class SideBarEntrySWT
if (drawBounds.isEmpty()) {
drawBounds = event.getBounds();
}
+ Rectangle treeArea = treeItem.getParent().getClientArea();
+ if (SideBar.isGTK3) {
+ // workaround bug
+ if (treeArea.width > itemBounds.width) {
+ itemBounds.width = treeArea.width;
+ }
+ if (treeArea.x < itemBounds.x) {
+ itemBounds.x = treeArea.x;
+ }
+ drawBounds = itemBounds;
+ }
String text = getTitle();
if (text == null)
@@ -759,8 +781,6 @@ public class SideBarEntrySWT
Tree tree = (Tree) event.widget;
- Rectangle treeArea = tree.getClientArea();
-
Font font = tree.getFont();
if (font != null && !font.isDisposed()) {
gc.setFont(font);
@@ -944,8 +964,10 @@ public class SideBarEntrySWT
}
if (imageLeft != null) {
Rectangle clipping = gc.getClipping();
- gc.setClipping(x0IndicatorOfs, itemBounds.y, IMAGELEFT_SIZE,
- itemBounds.height);
+ if (!SideBar.isGTK3) {
+ gc.setClipping(x0IndicatorOfs, itemBounds.y, IMAGELEFT_SIZE,
+ itemBounds.height);
+ }
if (greyScale) {
greyScale = false;
@@ -983,7 +1005,9 @@ public class SideBarEntrySWT
}
releaseImageLeft(suffix);
- gc.setClipping(clipping);
+ if (!SideBar.isGTK3) {
+ gc.setClipping(clipping);
+ }
// 0, 0, bounds.width, bounds.height,
// x0IndicatorOfs, itemBounds.y
// + ((itemBounds.height - IMAGELEFT_SIZE) / 2), IMAGELEFT_SIZE,
@@ -1032,6 +1056,12 @@ public class SideBarEntrySWT
clipping.y--;
gc.setForeground(fgText);
} else {
+ if ( treeItem.getItemCount() > 0 ){
+ Font headerFont = sidebar.getHeaderFont();
+ if (headerFont != null && !headerFont.isDisposed()) {
+ gc.setFont(headerFont);
+ }
+ }
gc.setForeground(fgText);
}
//gc.setClipping(clipping);
diff --git a/azureus3/src/com/aelitis/azureus/util/InitialisationFunctions.java b/azureus3/src/com/aelitis/azureus/util/InitialisationFunctions.java
index a5f160f..a76a38a 100644
--- a/azureus3/src/com/aelitis/azureus/util/InitialisationFunctions.java
+++ b/azureus3/src/com/aelitis/azureus/util/InitialisationFunctions.java
@@ -46,6 +46,7 @@ import com.aelitis.azureus.core.util.AZ3Functions;
import com.aelitis.azureus.core.vuzefile.VuzeFile;
import com.aelitis.azureus.core.vuzefile.VuzeFileComponent;
import com.aelitis.azureus.core.vuzefile.VuzeFileHandler;
+import com.aelitis.azureus.plugins.net.buddy.swt.SBC_ChatOverview;
import com.aelitis.azureus.ui.UIFunctions;
import com.aelitis.azureus.ui.UIFunctionsManager;
@@ -92,6 +93,8 @@ public class InitialisationFunctions
RelatedContentManager.preInitialise( core );
+ SBC_ChatOverview.preInitialize();
+
AZ3Functions.setProvider(
new AZ3Functions.provider()
{
@@ -245,6 +248,14 @@ public class InitialisationFunctions
}
}
+ public void
+ openChat(
+ String network,
+ String key)
+ {
+ SBC_ChatOverview.openChat(network, key);
+ }
+
public TranscodeTarget[]
getTranscodeTargets()
{
diff --git a/test/src/com/aelitis/azureus/core/dht/control/impl/Test.java b/test/src/com/aelitis/azureus/core/dht/control/impl/Test.java
deleted file mode 100644
index 634f176..0000000
--- a/test/src/com/aelitis/azureus/core/dht/control/impl/Test.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Created on 15-Jan-2005
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package com.aelitis.azureus.core.dht.control.impl;
-
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.gudy.azureus2.core3.util.ByteFormatter;
-
-
-/**
- * @author parg
- *
- */
-
-public class
-Test
-{
- public static void
- main(
- String[] args )
- {
- // :AFC97EA1 :lookup complete for B6589FC6
- // :AFC97EA1 : queried = {91032AD7 ,AC3478D6 ,ACCA5B51 ,B6692EA5 ,ACF10F2C ,F66B7DCD ,B3F0C7F6 ,A8A2B30F ,972A67C4 ,AE7B4B79 ,887309D0 ,8383DA94 ,9E6A55B6 ,902BA3CD ,AFC97EA1 ,BD307A3E ,B1D57811 ,8665243E ,9EE0DF7C ,B6589FC6 ,BC33EA4E }
- // :AFC97EA1 : to query = {F6E1126C ,F22FE10D ,F0483F25 ,F1F836CB ,F1ABD670 ,FE5DBBCE ,FA35E192 ,FBDD85A9 ,FBEA31C7 ,EAEF5296 ,D435A6CD ,D051BF1D ,DA4B9237 ,C1DFD96E ,CB4E5208 ,356A192B ,17BA0791 ,1574BDDB ,1B645389 ,0716D970 ,0ADE7C2C ,77DE68DA ,7B52009B ,4D134BC0 }
-
- // final byte[] target = { (byte)0xB6, (byte)0x58, (byte)0x9f, (byte)0xc6 };
-
- // :9A79BE61:lookup complete for 31017A72
- // :9A79BE61: queried = {77DE68DA,1B645389,31BD9B9F,356A192B,310B86E0}
- // :9A79BE61: to query = {6FB84AED,B6589FC6,812ED456,DA4B9237}
- // :9A79BE61: ok = {77DE68DA,1B645389,356A192B,31BD9B9F,310B86E0}
-
- final byte[] target = { (byte)0x35, (byte)0x6a, (byte)0x19, (byte)0x28 };
- final byte[] t1 = { (byte)0x76, (byte)0x1f, (byte)0x22, (byte)0xb2 };
- final byte[] t2 = { (byte)0x47, (byte)0x2b, (byte)0x07, (byte)0xb9 };
-
- byte[] d1 = DHTControlImpl.computeDistance2( t1, target );
- byte[] d2 = DHTControlImpl.computeDistance2( t2, target );
-
- System.out.println( "d1 = " + ByteFormatter.nicePrint( d1 ));
- System.out.println( "d2 = " + ByteFormatter.nicePrint( d2 ));
-
- System.out.println( "comp1 = " + DHTControlImpl.compareDistances2( d1, d2 ));
- System.out.println( "comp2 = " + DHTControlImpl.computeAndCompareDistances2( t1, t2, target ));
-
- final Set set =
- new TreeSet(
- new Comparator()
- {
- public int
- compare(
- Object o1,
- Object o2 )
- {
- byte[] d1 = DHTControlImpl.computeDistance2( (byte[])o1, target );
- byte[] d2 = DHTControlImpl.computeDistance2( (byte[])o2, target );
-
- System.out.println( "dist:" + ByteFormatter.nicePrint((byte[])o1) + " -> " + ByteFormatter.nicePrint(d1));
- System.out.println( "dist:" + ByteFormatter.nicePrint((byte[])o2) + " -> " + ByteFormatter.nicePrint(d2));
- return( DHTControlImpl.compareDistances2( d1, d2 ));
- }
- });
-
- set.add( t1 );
- set.add( t2 );
-
- //set.add( new byte[]{ (byte)0xF0, (byte)0x48 ,(byte)0x3F, (byte)0x25 });
- //set.add( new byte[]{ (byte)0xF1, (byte)0xF8, (byte)0x36, (byte)0xCB });
- //set.add( new byte[]{ (byte)0xF2, (byte)0x2F, (byte)0xE1, (byte)0x0D });
-
-
- Iterator it = set.iterator();
-
- while( it.hasNext()){
-
- byte[] val = (byte[])it.next();
-
- System.out.println( ByteFormatter.nicePrint( val ));
- }
- }
-}
diff --git a/test/src/com/aelitis/azureus/core/dht/impl/Test.java b/test/src/com/aelitis/azureus/core/dht/impl/Test.java
deleted file mode 100644
index dbe3a10..0000000
--- a/test/src/com/aelitis/azureus/core/dht/impl/Test.java
+++ /dev/null
@@ -1,1175 +0,0 @@
-/*
- * Created on 12-Jan-2005
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package com.aelitis.azureus.core.dht.impl;
-
-import com.aelitis.azureus.core.AzureusCoreFactory;
-import com.aelitis.azureus.core.dht.*;
-import com.aelitis.azureus.core.dht.control.DHTControlContact;
-import com.aelitis.azureus.core.dht.db.impl.DHTDBImpl;
-import com.aelitis.azureus.core.dht.nat.DHTNATPuncherAdapter;
-import com.aelitis.azureus.core.dht.nat.impl.DHTNATPuncherImpl;
-import com.aelitis.azureus.core.dht.transport.*;
-import com.aelitis.azureus.core.dht.transport.loopback.DHTTransportLoopbackImpl;
-import com.aelitis.azureus.core.dht.transport.udp.DHTTransportUDP;
-import com.aelitis.azureus.core.dht.transport.udp.impl.DHTTransportUDPImpl;
-import com.aelitis.azureus.plugins.dht.impl.DHTPluginStorageManager;
-
-import java.io.*;
-import java.math.BigInteger;
-import java.net.InetSocketAddress;
-import java.security.KeyFactory;
-import java.security.Signature;
-import java.security.interfaces.RSAPrivateKey;
-import java.security.spec.RSAPrivateKeySpec;
-import java.util.*;
-
-import org.gudy.azureus2.core3.util.AEThread;
-import org.gudy.azureus2.core3.util.ByteFormatter;
-import org.gudy.azureus2.core3.util.SHA1Simple;
-import org.gudy.azureus2.core3.util.Timer;
-import org.gudy.azureus2.core3.util.TimerEvent;
-import org.gudy.azureus2.core3.util.TimerEventPerformer;
-import org.gudy.azureus2.plugins.PluginInterface;
-import org.gudy.azureus2.plugins.logging.LoggerChannel;
-import org.gudy.azureus2.plugins.logging.LoggerChannelListener;
-
-/**
- * @author parg
- *
- */
-
-public class
-Test
- implements DHTNATPuncherAdapter
-{
- static boolean AELITIS_TEST = false;
- static InetSocketAddress AELITIS_ADDRESS = new InetSocketAddress("213.186.46.164", 6881);
-
- static int DEFAULT_NETWORK = DHT.NW_CVS;
-
- static{
-
- DHTTransportUDPImpl.TEST_EXTERNAL_IP = true;
- }
-
- int num_dhts = 6;
- int num_stores = 0;
- static int MAX_VALUES = 10000;
-
- boolean udp_protocol = true;
- int udp_timeout = 1000;
-
-
- static int K = 20;
- static int B = 5;
- static int ID_BYTES = 20;
-
- int fail_percentage = 00;
-
- static Properties dht_props = new Properties();
-
- static{
- // DHTDBImpl.ORIGINAL_REPUBLISH_INTERVAL_GRACE = 0;
-
- dht_props.put( DHT.PR_CONTACTS_PER_NODE, new Integer(K));
- dht_props.put( DHT.PR_NODE_SPLIT_FACTOR, new Integer(B));
- dht_props.put( DHT.PR_CACHE_REPUBLISH_INTERVAL, new Integer(30000));
- dht_props.put( DHT.PR_ORIGINAL_REPUBLISH_INTERVAL, new Integer(60000));
- }
-
- static byte[] th_key = new byte[]{ 1,1,1,1 };
-
- static Map check = new HashMap();
-
-
- static DHTLogger logger;
-
- static{
-
- final LoggerChannel c_logger = AzureusCoreFactory.create().getPluginManager().getDefaultPluginInterface().getLogger().getNullChannel("test");
-
- c_logger.addListener(
- new LoggerChannelListener()
- {
- public void
- messageLogged(
- int type,
- String content )
- {
- System.out.println( content );
- }
-
- public void
- messageLogged(
- String str,
- Throwable error )
- {
- System.out.println( str );
-
- error.printStackTrace();
- }
- });
-
- logger =
- new DHTLogger()
- {
- public void
- log(
- String str )
- {
- c_logger.log( str );
- }
-
- public void
- log(
- Throwable e )
- {
- c_logger.log( e );
- }
-
- public void
- log(
- int log_type,
- String str )
- {
- if ( isEnabled( log_type )){
-
- c_logger.log( str );
- }
- }
-
- public boolean
- isEnabled(
- int log_type )
- {
- return( true );
- }
-
- public PluginInterface
- getPluginInterface()
- {
- return( c_logger.getLogger().getPluginInterface());
- }
- };
- }
-
- public static DHTLogger
- getLogger()
- {
- return( logger );
- }
-
- public static void
- main(
- String[] args )
- {
- new Test();
- }
-
-
- Map port_map = new HashMap();
-
- protected
- Test()
- {
- try{
- DHTLog.setLogging( true );
-
- DHT[] dhts = new DHT[num_dhts*2+30];
- DHTTransport[] transports = new DHTTransport[num_dhts*2+30];
-
-
- for (int i=0;i<num_dhts;i++){
-
- createDHT( dhts, transports, DEFAULT_NETWORK, i );
- }
-
- for (int i=0;i<num_dhts-1;i++){
-
- if ( AELITIS_TEST ){
-
- ((DHTTransportUDP)transports[i]).importContact( AELITIS_ADDRESS, DHTTransportUDP.PROTOCOL_VERSION_MAIN );
-
- }else{
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- DataOutputStream daos = new DataOutputStream( baos );
-
- transports[i].getLocalContact().exportContact( daos );
-
- daos.close();
-
- transports[i+1].importContact( new DataInputStream( new ByteArrayInputStream( baos.toByteArray())));
- }
-
- dhts[i].integrate(true);
-
- if ( i > 0 && i%10 == 0 ){
-
- System.out.println( "Integrated " + i + " DHTs" );
- }
- }
-
- if ( AELITIS_TEST ){
-
- ((DHTTransportUDP)transports[num_dhts-1]).importContact( AELITIS_ADDRESS, DHTTransportUDP.PROTOCOL_VERSION_MAIN );
-
- }else{
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- DataOutputStream daos = new DataOutputStream( baos );
-
- transports[0].getLocalContact().exportContact( daos );
-
- daos.close();
-
- transports[num_dhts-1].importContact( new DataInputStream( new ByteArrayInputStream( baos.toByteArray())));
- }
-
-
- dhts[num_dhts-1].integrate( true );
-
- DHTTransportLoopbackImpl.setFailPercentage(fail_percentage);
-
- //dht1.print();
-
- //DHTTransportLoopbackImpl.setLatency( 500);
-
- /*
- System.out.println( "before put:" + transports[99].getStats().getString());
- dhts[99].put( "fred".getBytes(), new byte[2]);
- System.out.println( "after put:" + transports[99].getStats().getString());
-
- System.out.println( "get:" + dhts[0].get( "fred".getBytes()));
- System.out.println( "get:" + dhts[77].get( "fred".getBytes()));
- */
-
- Map store_index = new HashMap();
-
- for (int i=0;i<num_stores;i++){
-
- int dht_index = (int)(Math.random()*num_dhts);
-
- DHT dht = dhts[dht_index];
-
- dht.put( (""+i).getBytes(), "", new byte[4], (byte)0, new DHTOperationAdapter());
-
- store_index.put( ""+i, dht );
-
- if ( i != 0 && i %100 == 0 ){
-
- System.out.println( "Stored " + i + " values" );
- }
- }
-
- Timer timer = new Timer("");
-
- timer.addPeriodicEvent(
- 10000,
- new TimerEventPerformer()
- {
- public void
- perform(
- TimerEvent event)
- {
- if ( !udp_protocol ){
-
- DHTTransportStats stats = DHTTransportLoopbackImpl.getOverallStats();
-
- System.out.println( "Overall stats: " + stats.getString());
- }
- }
- });
-
- LineNumberReader reader = new LineNumberReader( new InputStreamReader( System.in ));
-
- while( true ){
-
- System.out.print( "> " );
-
- try{
- String str = reader.readLine().trim();
-
- if ( str == null ){
-
- break;
- }
-
- int pos = str.indexOf(' ');
-
- if ( pos == -1 || pos == 0 ){
-
- usage();
-
- continue;
- }
-
- int dht_index = (int)(Math.random()*num_dhts);
-
- DHT dht = dhts[dht_index];
-
- String lhs = str.substring(0,pos).trim();
- String rhs = str.substring(pos+1).trim();
-
- DHTTransportStats stats_before = null;
-
- char command = lhs.toLowerCase().charAt(0);
-
- if ( command == 'p' ){
-
- pos = rhs.indexOf('=');
-
- if ( pos == -1 ){
-
- usage();
-
- }else{
-
- System.out.println( "Using dht " + dht_index );
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- String key = rhs.substring(0,pos);
- String val = rhs.substring(pos+1);
-
- pos = val.indexOf( ' ' );
-
- byte flags = 0;
- byte life = 0;
- byte rep_fact = DHT.REP_FACT_DEFAULT;
-
- if ( pos != -1 ){
-
- String opts = val.substring( pos+1 );
-
- String[] x = opts.split( "," );
-
- for ( String s: x ){
-
- String[] y = s.split("=");
-
- String opt = y[0];
-
- if ( opt.equals( "f" )){
-
- flags = (byte)Integer.parseInt(y[1],16);
-
- }else if ( opt.equals( "l" )){
-
- life = (byte)Integer.parseInt(y[1]);
-
- }else if ( opt.equals( "r" )){
-
- rep_fact = (byte)Integer.parseInt(y[1]);
-
- }
- }
-
- val = val.substring(0,pos);
- }
-
- dht.put( key.getBytes(), "", val.getBytes(), flags, life, rep_fact, false, new DHTOperationAdapter() );
- }
- }else if ( command == 'x' ){
-
- dht = (DHT)store_index.get( rhs );
-
- if ( dht == null ){
-
- System.out.println( "DHT not found" );
-
- }else{
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- byte[] res = dht.remove( rhs.getBytes(), "", new DHTOperationAdapter());
-
- if ( res != null ){
-
- store_index.remove( rhs );
- }
-
- System.out.println( "-> " + (res==null?"null":new String(res)));
- }
- }else if ( command == 'e' ){
-
- dht = (DHT)store_index.get( rhs );
-
- if ( dht == null ){
-
- System.out.println( "DHT not found" );
-
- }else{
-
- DataOutputStream daos = new DataOutputStream( new FileOutputStream( "C:\\temp\\dht.state"));
-
- dht.exportState( daos, 0 );
-
- daos.close();
- }
- }else if ( command == 'g' ){
-
- System.out.println( "Using dht " + dht_index );
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- pos = rhs.indexOf( ' ' );
-
- byte flags = 0;
-
- if ( pos != -1 ){
-
- String opts = rhs.substring( pos+1 );
-
- String[] x = opts.split( "," );
-
- for ( String s: x ){
-
- String[] y = s.split("=");
-
- String opt = y[0];
-
- if ( opt.equals( "f" )){
-
- flags = (byte)Integer.parseInt(y[1]);
- }
- }
-
- rhs = rhs.substring(0,pos);
- }
-
- dht.get(
- rhs.getBytes(), "", flags, 32, 0, false, false,
- new DHTOperationAdapter()
- {
- public void
- read(
- DHTTransportContact contact,
- DHTTransportValue value )
- {
- System.out.println( "-> " + getString( value ));
- }
-
- public void
- complete(
- boolean timeout )
- {
- System.out.println( "-> complete" );
- }
- });
-
- }else if ( command == '?' ){
-
- System.out.println( "Using dht " + dht_index );
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- final DHT f_dht = dht;
-
- dht.get(
- rhs.getBytes(), "", DHT.FLAG_STATS, 32, 0, false, false,
- new DHTOperationAdapter()
- {
- public void
- read(
- DHTTransportContact contact,
- DHTTransportValue value )
- {
- System.out.println( "-> " + getString( value ));
-
- try{
- DHTStorageKeyStats stats = f_dht.getStorageAdapter().deserialiseStats( new DataInputStream( new ByteArrayInputStream( value.getValue())));
-
- System.out.println( " stats: size = " + stats.getSize() + ", entries=" + stats.getEntryCount() + ", rpm=" + stats.getReadsPerMinute());
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public void
- complete(
- boolean timeout )
- {
- System.out.println( "-> complete" );
- }
- });
-
-
-
- }else if ( command == 'd' ){
-
- System.out.println( "Using dht " + dht_index );
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- byte[] res = dht.remove( rhs.getBytes(), "", new DHTOperationAdapter());
-
- System.out.println( "-> " + (res==null?"null":new String(res)));
-
- }else if ( command == 'z' ){
-
- System.out.println( "Using dht " + dht_index );
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- dht.get( rhs.getBytes(), "", (byte)0, 10, 0, false, false,
- new DHTOperationListener()
- {
- public void
- searching(
- DHTTransportContact contact,
- int level,
- int active_searches )
- {
-
- }
-
- public void
- diversified(
- String desc )
- {
- }
-
- public void
- found(
- DHTTransportContact contact,
- boolean is_closest )
- {
- }
-
- public void
- read(
- final DHTTransportContact contact,
- final DHTTransportValue value )
- {
- System.out.println( "-> " + value.getString());
-
- new AEThread("blah")
- {
- public void
- runSupport()
- {
- DHTTransportFullStats stats = contact.getStats();
-
- System.out.println( " stats = " + stats.getString() );
- }
- }.start();
- }
- public void
- wrote(
- final DHTTransportContact contact,
- DHTTransportValue value )
- {
- }
-
-
- public void
- complete(
- boolean timeout )
- {
- System.out.println( "complete");
- }
- });
-
-
- }else if ( command == 'v' ){
-
- try{
- int index = Integer.parseInt( rhs );
-
- dht = dhts[index];
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- dht.print( true );
-
- List l = dht.getControl().getContacts();
-
- for (int i=0;i<l.size();i++){
-
- DHTControlContact c = (DHTControlContact)l.get(i);
-
- System.out.println( " contact:" + c.getRouterContact().getString() + "/" + c.getTransportContact().getString());
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }else if ( command == 'q' ){
-
- try{
- int index = Integer.parseInt( rhs );
-
- dht = dhts[index];
-
- dht.destroy();
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }else if ( command == 't' ){
-
- try{
- int index = Integer.parseInt( rhs );
-
- dht = dhts[index];
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- ((DHTTransportUDPImpl)transports[index]).testInstanceIDChange();
-
- dht.integrate( true );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }else if ( command == 's' ){
-
- try{
- int index = Integer.parseInt( rhs );
-
- dht = dhts[index];
-
- stats_before = dht.getTransport().getStats().snapshot();
-
- ((DHTTransportUDPImpl)transports[index]).testTransportIDChange();
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }else if ( command == 'a' ){
-
- int net = DEFAULT_NETWORK;
-
- try{
- net = Integer.parseInt( rhs );
-
- }catch( Throwable e ){
-
- }
-
- createDHT( dhts, transports, net, num_dhts++ );
-
- dht = dhts[num_dhts-1];
-
- stats_before = transports[num_dhts-1].getStats().snapshot();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- DataOutputStream daos = new DataOutputStream( baos );
-
- List ok_t = new ArrayList();
-
- for (int i=0;i<num_dhts-1;i++){
-
- DHTTransport t = transports[i];
-
- if ( t.getNetwork() == net ){
-
- ok_t.add( t );
- }
- }
-
- if ( ok_t.size() > 0 ){
-
- DHTTransport r_t = (DHTTransport)ok_t.get((int)(Math.random()*(ok_t.size()-1)));
-
- r_t.getLocalContact().exportContact( daos );
-
- daos.close();
-
- transports[num_dhts-1].importContact( new DataInputStream( new ByteArrayInputStream( baos.toByteArray())));
- }else{
-
- System.out.println( "No comaptible networks found" );
-
- }
-
- dht.integrate( true );
-
- dht.print( true );
-
- }else if ( command == 'r' ){
-
- System.out.println( "read - dht0 -> dht1" );
-
- byte[] res =
- dhts[0].getTransport().readTransfer(
- new DHTTransportProgressListener()
- {
- public void
- reportSize(
- long size )
- {
- System.out.println( " read size: " + size );
- }
-
- public void
- reportActivity(
- String str )
- {
- System.out.println( " read act: " + str );
- }
-
- public void
- reportCompleteness(
- int percent )
- {
- System.out.println( " read %: " + percent );
- }
- },
- dhts[1].getTransport().getLocalContact(),
- th_key,
- new byte[]{1,2,3,4},
- 30000 );
-
- System.out.println( "res = " + res );
-
- }else if ( command == 'w' ){
-
- System.out.println( "write - dht0 -> dht1" );
-
- dhts[0].getTransport().writeTransfer(
- new DHTTransportProgressListener()
- {
- public void
- reportSize(
- long size )
- {
- System.out.println( " write size: " + size );
- }
-
- public void
- reportActivity(
- String str )
- {
- System.out.println( " write act: " + str );
- }
-
- public void
- reportCompleteness(
- int percent )
- {
- System.out.println( " write %: " + percent );
- }
- },
- dhts[1].getTransport().getLocalContact(),
- th_key,
- new byte[]{1,2,3,4},
- new byte[1000],
- 60000 );
-
- }else if ( command == 'c' ){
-
- System.out.println( "call - dht0 <-> dht1" );
-
- byte[] res =
- dhts[0].getTransport().writeReadTransfer(
- new DHTTransportProgressListener()
- {
- public void
- reportSize(
- long size )
- {
- System.out.println( " readWrite size: " + size );
- }
-
- public void
- reportActivity(
- String str )
- {
- System.out.println( " readWrite act: " + str );
- }
-
- public void
- reportCompleteness(
- int percent )
- {
- System.out.println( " readWrite %: " + percent );
- }
- },
- dhts[1].getTransport().getLocalContact(),
- th_key,
- new byte[1000],
- 60000 );
-
- System.out.println( " reply: len = " + res.length );
-
- }else if ( command == 'b' ){
-
- if ( rhs.equals("1")){
-
- System.out.println( "rendezvous bind: dht2 -> rdv dht1" );
-
- DHTNATPuncherImpl puncher = (DHTNATPuncherImpl)dhts[2].getNATPuncher();
-
- puncher.setRendezvous(
- dhts[2].getTransport().getLocalContact(),
- dhts[1].getTransport().getLocalContact());
-
- }else if ( rhs.equals("2" )){
-
- System.out.println( "rendezvous punch: dht0 -> rdv dht2" );
-
- DHTNATPuncherImpl puncher = (DHTNATPuncherImpl)dhts[0].getNATPuncher();
-
- Map originator_data = new HashMap();
-
- originator_data.put( "hello", "mum" );
-
- Map client_data = puncher.punch( "Test", dhts[2].getTransport().getLocalContact(), null, originator_data);
-
- System.out.println( " punch client data: " + client_data );
- }
- }else if ( command == 'k' ){
-
- int sp = rhs.indexOf(' ');
-
- String key_block;
- boolean add;
-
- if ( sp == -1 ){
- key_block = rhs;
- add = true;
- }else{
- key_block = rhs.substring(0,sp);
- add = false;
- }
-
- String mod = "123";
- String exp = "567";
-
-
- KeyFactory key_factory = KeyFactory.getInstance("RSA");
-
- RSAPrivateKeySpec private_key_spec =
- new RSAPrivateKeySpec( new BigInteger(mod,16), new BigInteger(exp,16));
-
- RSAPrivateKey key = (RSAPrivateKey)key_factory.generatePrivate( private_key_spec );
-
- byte[] req = new byte[ 8 + 20 ];
-
- req[0] = (byte)(add?0x01:0x00);
-
- int time = (int)(System.currentTimeMillis()/1000);
-
- req[4] = (byte)(time>>24);
- req[5] = (byte)(time>>16);
- req[6] = (byte)(time>>8);
- req[7] = (byte)(time);
-
- System.arraycopy( new SHA1Simple().calculateHash(key_block.getBytes()), 0, req, 8, 20 );
-
- Signature sig = Signature.getInstance("MD5withRSA" );
-
- sig.initSign( key );
-
- sig.update( req );
-
- dhts[1].getTransport().getLocalContact().sendKeyBlock(
- new DHTTransportReplyHandlerAdapter()
- {
- public void
- keyBlockReply(
- DHTTransportContact _contact )
- {
- System.out.println( "key block sent ok" );
- }
-
- public void
- failed(
- DHTTransportContact contact,
- Throwable error )
- {
- System.out.println( "key block failed" );
-
- error.printStackTrace();
- }
- },
- req,
- sig.sign());
-
- }else{
-
- usage();
- }
-
- if ( stats_before != null ){
-
- DHTTransportStats stats_after = dht.getTransport().getStats().snapshot();
-
- System.out.println( "before:" + stats_before.getString());
- System.out.println( "after:" + stats_after.getString());
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- protected String
- getString(
- DHTTransportValue value )
- {
- return( new String( value.getValue()) +
- "; flags=" + Integer.toHexString( value.getFlags()) +
- "; life=" + value.getLifeTimeHours() +
- "; rep=" + Integer.toHexString( value.getReplicationControl()) +
- ", orig=" + value.getOriginator().getAddress());
- }
-
- protected void
- createDHT(
- DHT[] dhts,
- DHTTransport[] transports,
- int network,
- int i )
-
- throws DHTTransportException
- {
- DHTTransport transport;
-
- if ( udp_protocol ){
-
- Integer next_port = (Integer)port_map.get( new Integer( network ));
-
- if ( next_port == null ){
-
- next_port = new Integer(0);
-
- }else{
-
- next_port = new Integer( next_port.intValue() + 1 );
- }
-
- port_map.put( new Integer( network ), next_port );
-
- byte protocol = network==0?DHTTransportUDP.PROTOCOL_VERSION_MAIN:DHTTransportUDP.PROTOCOL_VERSION_CVS;
-
- // byte protocol = i%2==0?DHTTransportUDP.PROTOCOL_VERSION_MAIN:DHTTransportUDP.PROTOCOL_VERSION_CVS;
-
-
- transport = DHTTransportFactory.createUDP(
- protocol,
- network,
- false,
- null,
- null,
- 6890 + next_port.intValue(),
- 5,
- 3,
- udp_timeout,
- 50,
- 25,
- false,
- false,
- logger );
-
- }else{
-
- transport = DHTTransportFactory.createLoopback(ID_BYTES);
- }
-
- transport.registerTransferHandler(
- th_key,
- new DHTTransportTransferHandler()
- {
- public String
- getName()
- {
- return( "test" );
- }
-
- public byte[]
- handleRead(
- DHTTransportContact originator,
- byte[] key )
- {
- byte[] data = new byte[1000];
-
- System.out.println("handle read -> length = " + data.length );
-
- return( data );
- }
-
- public byte[]
- handleWrite(
- DHTTransportContact originator,
- byte[] key,
- byte[] value )
- {
- byte[] reply = null;
-
- if ( value.length == 1000 ){
-
- reply = new byte[4];
- }
-
- System.out.println("handle write -> length = " + value.length +", reply = " + reply );
-
- return( reply );
- }
- });
-
- /*
- HashWrapper id = new HashWrapper( transport.getLocalContact().getID());
-
- if ( check.get(id) != null ){
-
- System.out.println( "Duplicate ID - aborting" );
-
- return;
- }
-
- check.put(id,"");
- */
-
- DHTStorageAdapter storage_adapter = new DHTPluginStorageManager( network, logger, new File( "C:\\temp\\dht\\" + i));
-
- DHT dht = DHTFactory.create( transport, dht_props, storage_adapter, this, logger );
-
- dhts[i] = dht;
-
- transports[i] = transport;
- }
-
- /*
- public DHTStorageKey
- keyCreated(
- HashWrapper key,
- boolean local )
- {
- System.out.println( "key created" );
-
- return(
- new DHTStorageKey()
- {
- public byte
- getDiversificationType()
- {
- return( DHT.DT_NONE );
- }
- public void
- serialiseStats(
- DataOutputStream os )
-
- throws IOException
- {
- os.writeInt( 45 );
- }
- });
- }
-
- public void
- keyDeleted(
- DHTStorageKey key )
- {
- System.out.println( "key deleted" );
- }
-
- public void
- keyRead(
- DHTStorageKey adapter_key,
- DHTTransportContact contact )
- {
- System.out.println( "value read" );
- }
-
- public void
- valueAdded(
- DHTStorageKey key,
- DHTTransportValue value )
- {
- System.out.println( "value added" );
- }
-
- public void
- valueUpdated(
- DHTStorageKey key,
- DHTTransportValue old_value,
- DHTTransportValue new_value)
- {
- System.out.println( "value updated" );
- }
-
- public void
- valueDeleted(
- DHTStorageKey key,
- DHTTransportValue value )
- {
- System.out.println( "value deleted" );
- }
-
- public byte[][]
- getExistingDiversification(
- byte[] key,
- boolean put_operation )
- {
- System.out.println( "getExistingDiversification: put = " + put_operation );
-
- return( new byte[][]{ key });
- }
-
- public byte[][]
- createNewDiversification(
- byte[] key,
- boolean put_operation,
- int diversification_type )
- {
- System.out.println( "createNewDiversification: put = " + put_operation + ", type = " + diversification_type );
-
- return( new byte[0][] );
- }
- */
-
- public Map
- getClientData(
- InetSocketAddress originator,
- Map originator_data )
- {
- System.out.println( "getClientData - " + originator_data + "/" + originator );
-
- Map res = new HashMap();
-
- res.put( "udp_data_port", new Long( 1234 ));
- res.put( "tcp_data_port", new Long( 5678 ));
-
- return( res );
- }
-
- protected static void
- usage()
- {
- System.out.println( "syntax: [p g] <key>[=<value>]" );
- }
-}
diff --git a/test/src/com/aelitis/azureus/core/dht/router/impl/Test.java b/test/src/com/aelitis/azureus/core/dht/router/impl/Test.java
deleted file mode 100644
index d3d8a9f..0000000
--- a/test/src/com/aelitis/azureus/core/dht/router/impl/Test.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Created on 11-Jan-2005
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package com.aelitis.azureus.core.dht.router.impl;
-
-/**
- * @author parg
- *
- */
-
-
-import org.gudy.azureus2.core3.util.SHA1Simple;
-
-import com.aelitis.azureus.core.dht.router.*;
-
-
-public class
-Test
-{
- public static void
- main(
- String[] args )
- {
- randomTest();
- }
-
- protected static void
- simpleTest()
- {
- DHTRouter router = DHTRouterFactory.create( 1, 1,1, new byte[]{ 0 }, null, com.aelitis.azureus.core.dht.impl.Test.getLogger());
-
- router.setAdapter(
- new DHTRouterAdapter()
- {
- public void requestAdd(DHTRouterContact contact) {
- // TODO Auto-generated method stub
-
- }
- public void requestLookup(byte[] id, String description) {
- // TODO Auto-generated method stub
-
- }
- public void requestPing(DHTRouterContact contact) {
- // TODO Auto-generated method stub
-
- }
- });
-
- byte[][] node_ids ={
- { toByte( "11111111" ) },
- { toByte( "01111111" ) },
- { toByte( "00101111" ) },
- { toByte( "00100111" ) },
- //{ toByte( "00111111" ) },
- };
-
- for (int i=0;i<node_ids.length;i++){
-
- router.contactKnown( node_ids[i], null );
- }
-
- // byte[] node_id = new byte[]{ 1,1,1,1 }; //new SHA1Hasher().calculateHash( (""+i).getBytes());
-
- router.print();
- }
-
- protected static void
- randomTest()
- {
- DHTRouter router = DHTRouterFactory.create( 20, 5, 5, getSHA1(), null, com.aelitis.azureus.core.dht.impl.Test.getLogger());
-
- router.setAdapter(
- new DHTRouterAdapter()
- {
- public void requestAdd(DHTRouterContact contact) {
- // TODO Auto-generated method stub
-
- }
- public void requestLookup(byte[] id, String description) {
- // TODO Auto-generated method stub
-
- }
- public void requestPing(DHTRouterContact contact) {
- // TODO Auto-generated method stub
-
- }
- });
-
- for (int i=0;i<1000000;i++){
-
- byte[] id = getSHA1();
-
- router.contactKnown( id, null);
- }
-
- router.print();
- }
-
- protected static long next_sha1_seed = 0;
-
- protected static byte[]
- getSHA1()
- {
- return( new SHA1Simple().calculateHash( ( "" + ( next_sha1_seed++ )).getBytes()));
- }
-
- protected static byte
- toByte(
- String str )
- {
- int res = 0;
-
- for (int i=0;i<8;i++){
-
- if ( str.charAt(i) == '1' ){
-
- res += 1<<(7-i);
- }
- }
-
- return((byte)res);
- }
-}
diff --git a/test/src/com/aelitis/azureus/core/dht/transport/udp/impl/Test.java b/test/src/com/aelitis/azureus/core/dht/transport/udp/impl/Test.java
deleted file mode 100644
index a9c5a85..0000000
--- a/test/src/com/aelitis/azureus/core/dht/transport/udp/impl/Test.java
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Created on 21-Jan-2005
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package com.aelitis.azureus.core.dht.transport.udp.impl;
-
-import java.util.List;
-import java.util.Map;
-
-import com.aelitis.azureus.core.dht.DHT;
-import com.aelitis.azureus.core.dht.transport.*;
-import com.aelitis.azureus.core.dht.transport.udp.*;
-
-/**
- * @author parg
- *
- */
-
-public class
-Test
- implements DHTTransportRequestHandler
-{
- public static void
- main(
- String[] args )
- {
- new Test();
- }
-
- protected
- Test()
- {
- try{
- DHTTransport udp1 =
- DHTTransportFactory.createUDP(
- DHTTransportUDP.PROTOCOL_VERSION_MAIN, DHT.NW_MAIN, false,
- null, null, 6881, 5, 3, 5000, 50, 25, false, false, com.aelitis.azureus.core.dht.impl.Test.getLogger());
-
- udp1.setRequestHandler( this );
-
- DHTTransport udp2 = DHTTransportFactory.createUDP(
- DHTTransportUDP.PROTOCOL_VERSION_MAIN, DHT.NW_MAIN, false,
- null, null, 6882, 5, 3, 5000, 50, 25, false, false, com.aelitis.azureus.core.dht.impl.Test.getLogger());
-
- udp2.setRequestHandler( this );
-
- final DHTTransportUDPContact c1 = (DHTTransportUDPContact)udp1.getLocalContact();
-
- for (int i=0;i<10;i++){
-
- final int f_i = i;
-
- c1.sendPing(
- new DHTTransportReplyHandlerAdapter()
- {
- public void
- pingReply(
- DHTTransportContact contact )
- {
- System.out.println( "ping reply: " + f_i );
- }
-
- public void
- failed(
- DHTTransportContact contact,
- Throwable error )
- {
- System.out.println( "ping failed" );
- }
- });
- }
-
- c1.sendStore(
- new DHTTransportReplyHandlerAdapter()
- {
- public void
- storeReply(
- DHTTransportContact contact,
- byte[] types )
- {
- System.out.println( "store reply" );
- }
-
- public void
- failed(
- DHTTransportContact contact,
- Throwable error )
- {
- System.out.println( "store failed" );
- }
- },
- new byte[][]{ new byte[23] },
- new DHTTransportValue[][]{{
- new DHTTransportValue()
- {
- public boolean
- isLocal()
- {
- return( false );
- }
-
- public long
- getCreationTime()
- {
- return( 2 );
- }
-
- public byte[]
- getValue()
- {
- return( "sdsd".getBytes());
- }
-
- public int
- getVersion()
- {
- return( 0 );
- }
-
- public DHTTransportContact
- getOriginator()
- {
- return( c1 );
- }
-
- public int
- getFlags()
- {
- return(0);
- }
-
- public int
- getLifeTimeHours()
- {
- return 0;
- }
-
- public byte
- getReplicationControl()
- {
- return 0;
- }
-
- public byte
- getReplicationFactor()
- {
- return 0;
- }
-
- public byte
- getReplicationFrequencyHours()
- {
- return 0;
- }
-
- public String
- getString()
- {
- return( new String(getValue()));
- }
- }
- }},
- false );
-
- c1.sendFindNode(
- new DHTTransportReplyHandlerAdapter()
- {
- public void
- findNodeReply(
- DHTTransportContact contact,
- DHTTransportContact[] contacts )
- {
- System.out.println( "findNode reply" );
- }
-
- public void
- failed(
- DHTTransportContact contact,
- Throwable e )
- {
- System.out.println( "findNode failed" );
- }
- },
- new byte[12]);
-
- System.out.println( "sending find value" );
-
- c1.sendFindValue(
- new DHTTransportReplyHandlerAdapter()
- {
- public void
- findValueReply(
- DHTTransportContact contact,
- DHTTransportContact[] contacts )
- {
- System.out.println( "findValue contacts reply" );
- }
-
- public void
- findValueReply(
- DHTTransportContact contact,
- DHTTransportValue[] values,
- byte diversification_type,
- boolean more_to_come )
- {
- System.out.println( "findValue value reply" );
- }
-
- public void
- failed(
- DHTTransportContact contact,
- Throwable error )
- {
- System.out.println( "findValue failed" );
- }
- },
- new byte[3], 1, (byte)0 );
-
- System.out.println( "sending complete" );
-
- Thread.sleep(1000000);
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public void
- pingRequest(
- DHTTransportContact contact )
- {
- System.out.println( "TransportHandler: ping" );
- }
-
- public void
- keyBlockRequest(
- DHTTransportContact contact,
- byte[] key_block_request,
- byte[] key_block_signature )
- {
- System.out.println( "TransportHandler: keyBlockRequest" );
- }
-
- public DHTTransportStoreReply
- storeRequest(
- DHTTransportContact contact,
- final byte[][] keys,
- DHTTransportValue[][] value_sets )
- {
- System.out.println( "TransportHandler: store" );
-
- return(
- new DHTTransportStoreReply()
- {
- public byte[]
- getDiversificationTypes()
- {
- return( new byte[keys.length] );
- }
-
- public boolean
- blocked()
- {
- return( false );
- }
-
- public byte[]
- getBlockRequest()
- {
- return( null );
- }
-
- public byte[]
- getBlockSignature()
- {
- return( null );
- }
- });
- }
-
- public DHTTransportQueryStoreReply
- queryStoreRequest(
- DHTTransportContact contact,
- int headerLen,
- List<Object[]> keys)
- {
- System.out.println( "TransportHandler: queryStore" );
-
- return null;
- }
-
- public DHTTransportContact[]
- findNodeRequest(
- DHTTransportContact contact,
- byte[] id )
- {
- System.out.println( "TransportHandler: findNode" );
-
- return(new DHTTransportContact[]{ contact });
- }
-
- public DHTTransportFindValueReply
- findValueRequest(
- final DHTTransportContact contact,
- byte[] key,
- int max_values,
- byte flags )
- {
- System.out.println( "TransportHandler: findValue" );
-
- return(
- new DHTTransportFindValueReply()
- {
- public boolean
- hit()
- {
- return( false );
- }
-
- public byte
- getDiversificationType()
- {
- return( DHT.DT_NONE );
- }
-
- public DHTTransportValue[]
- getValues()
- {
- return( null );
- }
-
- public DHTTransportContact[]
- getContacts()
- {
- return( new DHTTransportContact[]{ contact } );
- }
-
- public boolean
- blocked()
- {
- return( false );
- }
-
- public byte[]
- getBlockedKey()
- {
- return( null );
- }
-
- public byte[]
- getBlockedSignature()
- {
- return( null );
- }
- });
- }
-
- public void
- contactImported(
- DHTTransportContact contact )
- {
-
- }
-
- public void
- contactRemoved(
- DHTTransportContact contact )
- {
- }
-
- public int
- getTransportEstimatedDHTSize()
- {
- return(0);
- }
-
- public void
- setTransportEstimatedDHTSize(
- int size )
- {
- }
-
- public DHTTransportFullStats
- statsRequest(
- DHTTransportContact contact )
- {
- return( null );
- }
-}
diff --git a/test/src/com/aelitis/azureus/core/diskmanager/cache/impl/Test.java b/test/src/com/aelitis/azureus/core/diskmanager/cache/impl/Test.java
deleted file mode 100644
index dfdc8b5..0000000
--- a/test/src/com/aelitis/azureus/core/diskmanager/cache/impl/Test.java
+++ /dev/null
@@ -1,1035 +0,0 @@
-/*
- * Created on 04-Aug-2004
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package com.aelitis.azureus.core.diskmanager.cache.impl;
-
-import java.io.*;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
-
-
-import org.gudy.azureus2.core3.torrent.TOTorrent;
-import org.gudy.azureus2.core3.torrent.TOTorrentFactory;
-import org.gudy.azureus2.core3.torrent.TOTorrentFile;
-import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.core3.logging.*;
-
-import com.aelitis.azureus.core.diskmanager.cache.*;
-
-/**
- * @author parg
- *
- */
-
-
-public class
-Test
-{
- public static void
- main(
- String []args )
- {
- System.setProperty("azureus.log.stdout","1");
-
- Logger.addListener(new ILogEventListener() {
- public void log(LogEvent event) {
- System.out.println(event.text);
- }
- });
-
- try{
- CacheFileManagerImpl manager = (CacheFileManagerImpl)CacheFileManagerFactory.getSingleton();
-
- //manager.initialise( false, 8*1024*1024 );
-
- //new Test().writeTest(manager);
-
- manager.initialise( true, true, true, 10*1024*1024, 1024 );
-
- new Test().pieceReorderTest(manager);
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
- }
-
- public void
- pieceReorderTest(
- CacheFileManagerImpl manager )
- {
- try{
- Random random = new Random(0);
-
- int num_files = 100;
- int piece_size = 1024;
- int file_size_average = piece_size*30;
-
- int chunk_fixed_size = 0;
- int chunk_random_size = 1024;
-
- int write_order = 2; // 0 = linear forwards; 1 = linear backwards; 2 = random;
-
-
-
- int[] file_sizes = new int[num_files];
-
- for ( int i=0;i<num_files;i++){
-
- file_sizes[i] = random.nextInt( 2*file_size_average ) + 1;
- }
-
- final File control_dir = new File("C:\\temp\\filetestcontrol" );
-
- FileUtil.recursiveDelete( control_dir );
-
- control_dir.mkdirs();
-
- File torrent_file = new File("C:\\temp\\filetest.torrent" );
-
- torrent_file.delete();
-
- File source_file_or_dir;
- File target_file_or_dir;
-
- if ( num_files == 1 ){
-
- source_file_or_dir = new File("C:\\temp\\filetest1.dat" );
- target_file_or_dir = new File("C:\\temp\\filetest2.dat" );
-
- source_file_or_dir.delete();
- target_file_or_dir.delete();
- }else{
-
- source_file_or_dir = new File("C:\\temp\\filetest1.dir" );
- target_file_or_dir = new File("C:\\temp\\filetest2.dir" );
-
- FileUtil.recursiveDelete( source_file_or_dir );
- FileUtil.recursiveDelete( target_file_or_dir );
-
- source_file_or_dir.mkdirs();
- target_file_or_dir.mkdirs();
- }
-
- File[] source_files = new File[ num_files ];
- File[] target_files = new File[ num_files ];
-
- RandomAccessFile[] source_file_rafs = new RandomAccessFile[ num_files ];
-
- final TOTorrent torrent;
-
- for ( int i=0; i<num_files; i++ ){
-
- File source_file;
- File target_file;
-
- if ( num_files == 1 ){
-
- source_file = source_file_or_dir;
- target_file = target_file_or_dir;
-
- }else{
-
- source_file = new File( source_file_or_dir, "file" + i );
- target_file = new File( target_file_or_dir, "file" + i );
- }
-
- source_files[i] = source_file;
- target_files[i] = target_file;
-
- FileOutputStream fos = new FileOutputStream( source_file );
-
- byte[] buffer = new byte[64*1024];
-
- int rem = file_sizes[i];
-
- while( rem > 0 ){
-
- random.nextBytes( buffer );
-
- int to_write = rem>buffer.length?buffer.length:rem;
-
- fos.write( buffer, 0, to_write );
-
- rem -= to_write;
- }
-
- fos.close();
-
- source_file_rafs[i] = new RandomAccessFile( source_file, "r" );
- }
-
- torrent =
- TOTorrentFactory.createFromFileOrDirWithFixedPieceLength(
- source_file_or_dir,
- new URL( "http://a.b.c/" ),
- piece_size ).create();
-
- final TOTorrentFile[] torrent_files = torrent.getFiles();
-
- // unfortunately the torrent's file order may not be ours...
-
- for ( int i=0;i<torrent_files.length;i++){
-
- TOTorrentFile tf = torrent_files[i];
-
- String rel_path = tf.getRelativePath();
-
- boolean found = false;
-
- for (int j=0;j<source_files.length;j++){
-
- if ( source_files[j].getName().equals( rel_path )){
-
- found = true;
-
- if ( j != i ){
-
- int temp = file_sizes[i];
- file_sizes[i] = file_sizes[j];
- file_sizes[j] = temp;
-
- File femp = source_files[i];
- source_files[i] = source_files[j];
- source_files[j] = femp;
-
- femp = target_files[i];
- target_files[i] = target_files[j];
- target_files[j] = femp;
-
- RandomAccessFile remp = source_file_rafs[i];
- source_file_rafs[i] = source_file_rafs[j];
- source_file_rafs[j] = remp;
- }
- break;
- }
- }
-
- if ( !found ){
-
- Debug.out( "eh?" );
-
- return;
- }
- }
-
- CacheFile[] cache_files = new CacheFile[ torrent_files.length ];
-
- for ( int i=0;i<torrent_files.length;i++){
-
- final int f_i = i;
-
- File target_file = target_files[i];
- final File source_file = source_files[i];
-
-
- System.out.println( "file " + i + ": e_size=" + file_sizes[i] + ", t_size=" + torrent_files[i].getLength() + ", d_size=" + source_file.length());
-
- cache_files[i] = manager.createFile(
- new CacheFileOwner()
- {
- public String
- getCacheFileOwnerName()
- {
- return( source_file.getAbsolutePath());
- }
-
- public TOTorrentFile
- getCacheFileTorrentFile()
- {
- return( torrent_files[f_i] );
- }
- public File
- getCacheFileControlFileDir()
- {
- return( control_dir );
- }
- public int
- getCacheMode()
- {
- return( CacheFileOwner.CACHE_MODE_NO_CACHE );
- }
- },
- target_file, CacheFile.CT_PIECE_REORDER );
-
- cache_files[i].setAccessMode( CacheFile.CF_WRITE );
- }
-
- List<Chunk> chunks = new ArrayList<Chunk>();
-
- List<Chunk>[] piece_map = new List[ torrent.getNumberOfPieces()];
-
- {
- long pos = 0;
- int file_index = 0;
- long file_offset = 0;
-
- long total_size = torrent.getSize();
- long rem = total_size;
-
-
- while( rem > 0 ){
-
- long chunk_length;
-
- if ( chunk_fixed_size != 0 ){
-
- chunk_length = chunk_fixed_size;
-
- }else{
-
- chunk_length = random.nextInt( chunk_random_size ) + 1;
- }
-
- if ( rem < chunk_length ){
-
- chunk_length = (int)rem;
- }
-
- List<ChunkSlice> slices = new ArrayList<ChunkSlice>();
-
- Chunk chunk = new Chunk( pos, chunk_length, slices );
-
- chunks.add( chunk );
-
- while( chunk_length > 0 ){
-
- long file_size = file_sizes[ file_index ];
-
- long file_rem = file_size - file_offset;
-
- long avail = Math.min( file_rem, chunk_length );
-
- if ( avail > 0 ){
-
- int piece_start = (int)( pos/piece_size );
-
- rem -= avail;
- pos += avail;
-
- int piece_end = (int)((pos-1)/piece_size );
-
- slices.add( new ChunkSlice( file_index, file_offset, avail, piece_start, piece_end ));
- }
-
- chunk_length -= avail;
-
- if ( chunk_length > 0 ){
-
- file_offset = 0;
-
- file_index++;
-
- }else{
-
- file_offset += avail;
-
- break;
- }
- }
-
- int piece_start = slices.get(0).getPieceStart();
- int piece_end = slices.get(slices.size()-1).getPieceEnd();
-
- for (int i=piece_start;i<=piece_end;i++){
-
- if ( piece_map[i] == null ){
-
- piece_map[i] = new ArrayList<Chunk>();
- }
-
- piece_map[i].add( chunk );
- }
-
- chunk.setPieces( piece_start, piece_end );
-
- System.out.println( chunk.getString());
- }
- }
-
- for (int i=0;i<piece_map.length;i++){
-
- System.out.println( i + ": " + piece_map[i].size());
- }
-
- while ( chunks.size() > 0 ){
-
- Chunk chunk;
-
- if ( write_order == 0 ){
-
- chunk = chunks.remove( 0 );
-
- }else if ( write_order == 1 ){
-
- chunk = chunks.remove( chunks.size() - 1 );
-
- }else{
-
- chunk = chunks.remove( random.nextInt( chunks.size()));
- }
-
- System.out.println( "Processing chunk " + chunk.getString());
-
- List<ChunkSlice> slices = new ArrayList<ChunkSlice>( chunk.getSlices());
-
- if ( write_order == 1 ){
-
- Collections.reverse( slices );
- }
-
- for ( ChunkSlice slice: slices ){
-
- int file_index = slice.getFileIndex();
- long file_offset = slice.getFileOffset();
- long length = slice.getLength();
-
-
- System.out.println( "Processing slice " + slice.getString() + "[file size=" + file_sizes[file_index]);
-
- DirectByteBuffer buffer = DirectByteBufferPool.getBuffer( DirectByteBuffer.AL_OTHER, (int)length );
-
- try{
- RandomAccessFile raf = source_file_rafs[ file_index ];
-
- raf.seek( file_offset );
-
- raf.getChannel().read( buffer.getBuffer( DirectByteBuffer.SS_EXTERNAL ));
-
- buffer.flip( DirectByteBuffer.SS_EXTERNAL );
-
- cache_files[file_index].write( buffer, file_offset );
-
- }finally{
-
- buffer.returnToPool();
- }
- }
-
- chunk.setDone();
-
- int chunk_piece_start = chunk.getPieceStart();
- int chunk_piece_end = chunk.getPieceEnd();
-
- for ( int i=chunk_piece_start;i<=chunk_piece_end;i++){
-
- List<Chunk> pieces = piece_map[i];
-
- boolean complete = true;
-
- for ( Chunk c: pieces ){
-
- if ( !c.isDone()){
-
- complete = false;
-
- break;
- }
- }
-
- if ( complete ){
-
- for ( ChunkSlice slice: slices ){
-
- if ( i >= slice.getPieceStart() && i <= slice.getPieceEnd()){
-
- long piece_offset = i*piece_size;
- int piece_length;
-
- if ( i < piece_map.length - 1 ){
-
- piece_length = piece_size;
-
- }else{
-
- long total = torrent.getSize();
-
- piece_length = (int)( total - ( total/piece_size )*piece_size );
-
- if ( piece_length == 0 ){
-
- piece_length = piece_size;
- }
- }
-
- DirectByteBuffer piece_data =
- DirectByteBufferPool.getBuffer( DirectByteBuffer.AL_OTHER, piece_length );
-
- long pos = 0;
- int file_index = 0;
- int rem = piece_length;
-
- while( rem > 0 ){
-
- long file_size = file_sizes[ file_index ];
-
- long file_end = pos + file_size;
-
- long avail = file_end - piece_offset;
-
- if ( avail > 0 ){
-
- int to_use = (int)Math.min( avail, rem );
-
- long file_offset = piece_offset - pos;
-
- int lim = piece_data.limit( DirectByteBuffer.AL_OTHER );
-
- piece_data.limit( DirectByteBuffer.AL_OTHER, piece_data.position( DirectByteBuffer.AL_OTHER ) + to_use );
-
- cache_files[ file_index ].read( piece_data, file_offset, CacheFile.CP_NONE );
-
- piece_data.limit( DirectByteBuffer.AL_OTHER, lim );
-
- piece_offset += to_use;
-
- rem -= to_use;
- }
-
- file_index++;
-
- pos += file_size;
- }
-
- try{
- cache_files[ slice.getFileIndex()].setPieceComplete(
- i,
- piece_data );
-
- }finally{
-
- piece_data.returnToPool();
- }
- }
- }
- }
- }
- }
-
- for (int i=0;i<num_files;i++){
-
- source_file_rafs[i].close();
-
- cache_files[i].close();
-
- byte[] buffer1 = new byte[256*1024];
- byte[] buffer2 = new byte[256*1024];
-
- if ( source_files[i].length() != target_files[i].length()){
-
- System.err.println( "File sizes differ for " + i );
- }
-
- FileInputStream fis1 = new FileInputStream( source_files[i] );
- FileInputStream fis2 = new FileInputStream( target_files[i] );
-
- long len = file_sizes[i];
- long pos = 0;
-
- boolean failed = false;
-
- while( len > 0 ){
-
- int avail = (int)Math.min( len, buffer1.length );
-
- int r1 = fis1.read( buffer1, 0, avail );
- int r2 = fis2.read( buffer2, 0, avail );
-
- if ( r1 != r2 ){
-
- System.err.println( "read lens different: file=" + i + ",pos=" + pos );
-
- failed = true;
-
- break;
-
- }else{
-
- if ( Arrays.equals( buffer1, buffer2 )){
-
- len -= r1;
- pos += r1;
- }else{
-
- int diff_at = -1;
-
- for (int j=0;j<avail;j++){
-
- if ( buffer1[j] != buffer2[j] ){
-
- diff_at = j;
-
- break;
- }
- }
-
- System.err.println( "mismatch: file=" + i + ",pos=" + pos + " + " + diff_at );
-
- failed = true;
-
- break;
- }
- }
- }
-
- if ( !failed ){
-
- System.out.println( "file " + i + ": matched " + pos + " of " + file_sizes[i] );
-
- }
- }
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public void
- writeTest(
- CacheFileManagerImpl manager )
- {
- try{
- final File f = new File("C:\\temp\\cachetest.dat" );
-
- f.delete();
-
- CacheFile cf = manager.createFile(
- new CacheFileOwner()
- {
- public String
- getCacheFileOwnerName()
- {
- return( "file " + f.toString() );
- }
-
- public TOTorrentFile
- getCacheFileTorrentFile()
- {
- return( null );
- }
- public File
- getCacheFileControlFileDir()
- {
- return null;
- }
- public int
- getCacheMode()
- {
- return( CacheFileOwner.CACHE_MODE_NORMAL );
- }
- },
- f, CacheFile.CT_LINEAR );
-
- cf.setAccessMode( CacheFile.CF_WRITE );
-
- long start = System.currentTimeMillis();
-
- int loop = 10000;
- int block = 1*1024;
-
- for (int i=0;i<loop;i++){
-
- DirectByteBuffer buffer = DirectByteBufferPool.getBuffer( DirectByteBuffer.AL_OTHER, block);
-
- cf.writeAndHandoverBuffer( buffer, i*block);
- }
-
- cf.close();
-
- long now = System.currentTimeMillis();
-
- long total = loop*block;
-
- long elapsed = now - start;
-
- System.out.println( "time = " + elapsed + ", speed = " + (total/elapsed));
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
- }
-
- public void
- manualTest(
- CacheFileManager manager )
- {
- try{
- final File f = new File("C:\\temp\\cachetest.dat" );
-
- f.delete();
-
- CacheFile cf = manager.createFile(
- new CacheFileOwner()
- {
- public String
- getCacheFileOwnerName()
- {
- return( "file " + f.toString() );
- }
-
- public TOTorrentFile
- getCacheFileTorrentFile()
- {
- return( null );
- }
- public File
- getCacheFileControlFileDir()
- {
- return null;
- }
- public int
- getCacheMode()
- {
- return( CacheFileOwner.CACHE_MODE_NORMAL );
- }
- },
- f, CacheFile.CT_LINEAR );
- DirectByteBuffer write_buffer1 = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_OTHER,512);
- DirectByteBuffer write_buffer2 = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_OTHER,512);
- DirectByteBuffer write_buffer3 = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_OTHER,512);
-
- cf.writeAndHandoverBuffer( write_buffer2, 512 );
-
- cf.flushCache();
-
- cf.writeAndHandoverBuffer( write_buffer3, 1024 );
- cf.writeAndHandoverBuffer( write_buffer1, 0 );
-
- cf.flushCache();
-
- write_buffer1 = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_OTHER,512);
- cf.writeAndHandoverBuffer( write_buffer1, 0 );
-
- cf.flushCache();
-
- cf.close();
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
- }
-
- public void
- randomTest(
- CacheFileManager manager )
- {
- try{
- CacheFile[] files = new CacheFile[3];
-
- byte[][] file_data = new byte[3][];
-
- for (int i=0;i<files.length;i++){
-
- final int f_i = i;
-
- file_data[i] = new byte[randomInt(200000)];
-
- files[i] = manager.createFile(
- new CacheFileOwner()
- {
- public String
- getCacheFileOwnerName()
- {
- return( "file" + f_i );
- }
-
- public TOTorrentFile
- getCacheFileTorrentFile()
- {
- return( null );
- }
- public File
- getCacheFileControlFileDir()
- {
- return null;
- }
- public int
- getCacheMode()
- {
- return( CacheFileOwner.CACHE_MODE_NORMAL );
- }
- },
- new File( "C:\\temp\\cachetest" + i + ".dat" ), CacheFile.CT_LINEAR);
-
- files[i].setAccessMode( CacheFile.CF_WRITE );
-
- DirectByteBuffer bb = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_OTHER,file_data[i].length);
-
- bb.put( DirectByteBuffer.SS_CACHE, file_data[i]);
-
- bb.position(DirectByteBuffer.SS_CACHE, 0);
-
- files[i].write(bb,0);
- }
-
- int quanitize_to = 100;
- int quanitize_to_max_consec_write = 1;
- int quanitize_to_max_consec_read = 3;
-
- for (int x=0;x<10000000;x++){
-
- int file_index = randomInt(files.length);
-
- CacheFile cf = files[file_index];
-
- byte[] bytes = file_data[ file_index ];
-
-
- int p1 = randomInt( bytes.length );
- int p2 = randomInt( bytes.length );
-
- p1 = (p1/quanitize_to)*quanitize_to;
- p2 = (p2/quanitize_to)*quanitize_to;
-
- if ( p1 == p2 ){
-
- continue;
- }
-
- int start = Math.min(p1,p2);
- int len = Math.max(p1,p2) - start;
-
- int function = randomInt(100);
-
- if ( function < 30){
-
- if ( len > quanitize_to*quanitize_to_max_consec_read ){
-
- len = quanitize_to*quanitize_to_max_consec_read;
- }
-
- DirectByteBuffer buffer = DirectByteBufferPool.getBuffer( DirectByteBuffer.AL_OTHER,len );
-
- System.out.println( "read:" + start + "/" + len );
-
- cf.read( buffer, start, CacheFile.CP_READ_CACHE );
-
- buffer.position(DirectByteBuffer.SS_CACHE, 0);
-
- byte[] data_read = new byte[len];
-
- buffer.get( DirectByteBuffer.SS_CACHE, data_read );
-
- for (int i=0;i<data_read.length;i++){
-
- if ( data_read[i] != bytes[ i+start ]){
-
- throw( new Exception( "data read mismatch" ));
- }
- }
-
- buffer.returnToPool();
-
- }else if ( function < 80 ){
- if ( len > quanitize_to*quanitize_to_max_consec_write ){
-
- len = quanitize_to*quanitize_to_max_consec_write;
- }
-
- System.out.println( "write:" + start + "/" + len );
-
- DirectByteBuffer buffer = DirectByteBufferPool.getBuffer( DirectByteBuffer.AL_OTHER,len );
-
- for (int i=0;i<len;i++){
-
- bytes[start+i] = (byte)randomInt(256);
-
- buffer.put( DirectByteBuffer.SS_CACHE, bytes[start+i]);
- }
-
- buffer.position(DirectByteBuffer.SS_CACHE, 0);
-
- cf.writeAndHandoverBuffer( buffer, start );
-
- }else if ( function < 90 ){
-
- cf.flushCache();
-
- }else if ( function < 91 ){
-
- cf.clearCache();
-
- //System.out.println( "closing file" );
-
- //cf.close();
- }
- }
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
- }
-
- static int
- randomInt(
- int num )
- {
- return( (int)(Math.random()*num ));
- }
-
- protected static class
- Chunk
- {
- private long offset;
- private long length;
- private List<ChunkSlice> slices;
-
- private int piece_start;
- private int piece_end;
-
- private boolean is_done;
-
- protected
- Chunk(
- long _offset,
- long _length,
- List<ChunkSlice> _slices )
- {
- offset = _offset;
- length = _length;
- slices = _slices;
- }
-
- protected List<ChunkSlice>
- getSlices()
- {
- return( slices );
- }
-
- protected void
- setPieces(
- int _piece_start,
- int _piece_end )
- {
- piece_start = _piece_start;
- piece_end = _piece_end;
- }
-
- protected int
- getPieceStart()
- {
- return( piece_start );
- }
-
- protected int
- getPieceEnd()
- {
- return( piece_end );
- }
-
- protected void
- setDone()
- {
- is_done = true;
- }
-
- protected boolean
- isDone()
- {
- return( is_done );
- }
-
- protected String
- getString()
- {
- String str = "";
-
- for ( ChunkSlice s: slices ){
-
- str += (str.length()==0?"":",") + s.getString();
- }
-
- return( "offset=" + offset + ",length=" + length + ",slices={" + str + "}" );
- }
- }
-
- protected static class
- ChunkSlice
- {
- private int file_index;
- private long file_offset;
- private long length;
-
- private int piece_start;
- private int piece_end;
-
- protected
- ChunkSlice(
- int _file_index,
- long _file_offset,
- long _length,
- int _piece_start,
- int _piece_end )
- {
- file_index = _file_index;
- file_offset = _file_offset;
- length = _length;
-
- piece_start = _piece_start;
- piece_end = _piece_end;
- }
-
- protected int
- getFileIndex()
- {
- return( file_index );
- }
-
- protected long
- getFileOffset()
- {
- return( file_offset );
- }
-
- protected long
- getLength()
- {
- return( length );
- }
-
- protected int
- getPieceStart()
- {
- return( piece_start );
- }
-
- protected int
- getPieceEnd()
- {
- return( piece_end );
- }
-
- protected String
- getString()
- {
- return( "fi=" + file_index + ",fo=" + file_offset + ",len=" + length + ",ps=" + piece_start + ",pe=" + piece_end);
- }
- }
-}
diff --git a/test/src/com/aelitis/azureus/ui/swt/Sleak.java b/test/src/com/aelitis/azureus/ui/swt/Sleak.java
deleted file mode 100644
index 490f801..0000000
--- a/test/src/com/aelitis/azureus/ui/swt/Sleak.java
+++ /dev/null
@@ -1,461 +0,0 @@
-package com.aelitis.azureus.ui.swt;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved.
- * This file is made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.widgets.List;
-
-import com.aelitis.azureus.core.AzureusCore;
-import com.aelitis.azureus.core.AzureusCoreFactory;
-import com.aelitis.azureus.launcher.Launcher;
-
-/**
- * Code to detect swt leak
- *
- */
-public class Sleak
-{
- Display display;
-
- Shell shell;
-
- List list;
-
- Canvas canvas;
-
- Button start, stop, check;
-
- Text text;
-
- Text label;
-
- Object[] oldObjects = new Object[0];
-
- Error[] oldErrors = new Error[0];
-
- Object[] objects = new Object[0];
-
- Error[] errors = new Error[0];
-
- Map all = new HashMap();
-
- ArrayList oldNonResources = new ArrayList();
-
- public void open() {
- display = Display.getCurrent();
- shell = new Shell(display);
- shell.setText("S-Leak");
- list = new List(shell, SWT.BORDER | SWT.V_SCROLL);
- list.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- refreshObject();
- }
- });
- text = new Text(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- canvas = new Canvas(shell, SWT.BORDER);
- canvas.addListener(SWT.Paint, new Listener() {
- public void handleEvent(Event event) {
- paintCanvas(event);
- }
- });
- check = new Button(shell, SWT.CHECK);
- check.setText("Stack");
- check.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- toggleStackTrace();
- }
- });
- start = new Button(shell, SWT.PUSH);
- start.setText("Snap");
- start.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- refreshAll();
- }
- });
- stop = new Button(shell, SWT.PUSH);
- stop.setText("Diff");
- stop.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- refreshDifference();
- }
- });
- label = new Text(shell, SWT.BORDER | SWT.READ_ONLY + SWT.MULTI);
- label.setText("0 object(s)");
- shell.addListener(SWT.Resize, new Listener() {
- public void handleEvent(Event e) {
- layout();
- }
- });
- check.setSelection(false);
- text.setVisible(false);
- Point size = shell.getSize();
- shell.setSize(size.x / 2, size.y / 2);
- shell.open();
- }
-
- void refreshLabel() {
- int colors = 0, cursors = 0, fonts = 0, gcs = 0, images = 0, regions = 0, others = 0, composites = 0, labels = 0;
- for (int i = 0; i < objects.length; i++) {
- Object object = objects[i];
- if (object instanceof Color) {
- colors++;
- } else if (object instanceof Cursor) {
- cursors++;
- } else if (object instanceof Font) {
- fonts++;
- } else if (object instanceof GC) {
- gcs++;
- } else if (object instanceof Image) {
- images++;
- } else if (object instanceof Region) {
- regions++;
- } else if (object instanceof Composite) {
- composites++;
- } else if (object instanceof Label) {
- labels++;
- } else {
- others++;
- }
- }
- String string = "";
- if (colors != 0) {
- string += colors + " Color(s)\n";
- }
- if (cursors != 0) {
- string += cursors + " Cursor(s)\n";
- }
- if (fonts != 0) {
- string += fonts + " Font(s)\n";
- }
- if (gcs != 0) {
- string += gcs + " GC(s)\n";
- }
- if (images != 0) {
- string += images + " Image(s)\n";
- }
- if (composites != 0) {
- string += composites + " composite(s)\n";
- }
- if (labels != 0) {
- string += labels + " label(s)\n";
- }
- if (others != 0) {
- string += others + " Other(s)\n";
- }
- /* Currently regions are not counted. */
- // if (regions != 0) string += regions + " Region(s)\n";
- if (string.length() != 0) {
- string = string.substring(0, string.length() - 1);
- }
- label.setText(string);
- }
-
- void refreshDifference() {
- DeviceData info = display.getDeviceData();
- if (!info.tracking) {
- MessageBox dialog = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
- dialog.setText(shell.getText());
- dialog.setMessage("Warning: Device is not tracking resource allocation");
- dialog.open();
- }
- Object[] newObjects = info.objects;
- Error[] newErrors = info.errors;
- Object[] diffObjects = new Object[newObjects.length];
- Error[] diffErrors = new Error[newErrors.length];
- int countResourceType = 0;
- for (int i = 0; i < newObjects.length; i++) {
- int index = 0;
- while (index < oldObjects.length) {
- if (newObjects[i] == oldObjects[index]) {
- break;
- }
- index++;
- }
- if (index == oldObjects.length) {
- diffObjects[countResourceType] = newObjects[i];
- diffErrors[countResourceType] = newErrors[i];
- countResourceType++;
- }
- }
-
- Shell[] shells = display.getShells();
- ArrayList nonResourceList = new ArrayList();
- for (int i = 0; i < shells.length; i++) {
- Shell shell = shells[i];
- if (shell != this.shell) {
- buildObjectList(shell, nonResourceList);
- }
- }
- oldNonResources = nonResourceList;
- Object[] nonResources = nonResourceList.toArray();
- int countNonResources = nonResources.length;
-
- int total = countResourceType + countNonResources;
-
- objects = new Object[total];
- errors = new Error[total];
- System.arraycopy(diffObjects, 0, objects, 0, countResourceType);
- System.arraycopy(diffErrors, 0, errors, 0, countResourceType);
- System.arraycopy(nonResources, 0, objects, countResourceType,
- countNonResources);
- list.removeAll();
- text.setText("");
- canvas.redraw();
- for (int i = 0; i < objects.length; i++) {
- list.add(objectName(objects[i]));
- }
- System.out.println(countResourceType);
- refreshLabel();
- layout();
- }
-
- /**
- * @param shell2
- * @param list2
- */
- private void buildObjectList(Control control, ArrayList list) {
- if (!oldNonResources.contains(control)) {
- list.add(control);
- }
-
- if (control instanceof Composite) {
- Composite c = (Composite) control;
- Control[] children = c.getChildren();
- for (int i = 0; i < children.length; i++) {
- Control control2 = children[i];
- buildObjectList(control2, list);
- }
- }
- }
-
- String objectName(Object object) {
- Date timeAdded = (Date)all.get(object);
- if (timeAdded == null) {
- timeAdded = new Date();
- all.put(object, timeAdded);
- }
-
- String string = timeAdded + "] " + object.toString();
- if (object instanceof Resource) {
- return string;
- }
-
- int index = string.indexOf(" {");
- if (index == -1) {
- return string;
- }
- string = string.substring(0, index);
- if (object instanceof Composite) {
- Control[] children = ((Composite) object).getChildren();
- string += ": " + children.length + " kids";
- }
- return string;
- }
-
- void toggleStackTrace() {
- refreshObject();
- layout();
- }
-
- void paintCanvas(Event event) {
- canvas.setCursor(null);
- int index = list.getSelectionIndex();
- if (index == -1) {
- return;
- }
- GC gc = event.gc;
- Object object = objects[index];
- if (object instanceof Color) {
- if (((Color) object).isDisposed()) {
- gc.drawString("Color disposed", 0, 0);
- return;
- }
- gc.setBackground((Color) object);
- gc.fillRectangle(canvas.getClientArea());
- return;
- }
- if (object instanceof Cursor) {
- if (((Cursor) object).isDisposed()) {
- gc.drawString("Cursor disposed", 0, 0);
- return;
- }
- canvas.setCursor((Cursor) object);
- return;
- }
- if (object instanceof Font) {
- if (((Font) object).isDisposed()) {
- gc.drawString("Font disposed", 0, 0);
- return;
- }
- gc.setFont((Font) object);
- FontData[] array = gc.getFont().getFontData();
- String string = "";
- String lf = text.getLineDelimiter();
- for (int i = 0; i < array.length; i++) {
- FontData data = array[i];
- String style = "NORMAL";
- int bits = data.getStyle();
- if (bits != 0) {
- if ((bits & SWT.BOLD) != 0) {
- style = "BOLD ";
- }
- if ((bits & SWT.ITALIC) != 0) {
- style += "ITALIC";
- }
- }
- string += data.getName() + " " + data.getHeight() + " " + style + lf;
- }
- gc.drawString(string, 0, 0);
- return;
- }
- //NOTHING TO DRAW FOR GC
- // if (object instanceof GC) {
- // return;
- // }
- if (object instanceof Image) {
- if (((Image) object).isDisposed()) {
- gc.drawString("Image disposed", 0, 0);
- return;
- }
- Image image = (Image) object;
- gc.drawString(image.getBounds().toString(), 0, 0);
- gc.drawImage(image, 0, 15);
- return;
- }
- if (object instanceof Region) {
- if (((Region) object).isDisposed()) {
- return;
- }
- String string = ((Region) object).getBounds().toString();
- gc.drawString(string, 0, 0);
- return;
- }
-
- if (object instanceof Control) {
- Control control = (Control) object;
- if (control.isDisposed()) {
- return;
- }
- Rectangle bounds = control.getBounds();
-
- gc.drawString(object.toString(), 0, 0);
- gc.drawString(bounds.toString(), 0, 20);
-
- if (object instanceof Widget) {
- Object data = ((Widget)object).getData("sleak");
- if (data != null) {
- gc.drawString(data.toString(), 0, 35);
- }
- }
-
-
- GC gcControl = new GC(control);
- try {
- Image img = new Image(control.getDisplay(), bounds.width, bounds.height);
- gcControl.copyArea(img, 0, 0);
-
- gc.drawImage(img, 0, 45);
-
- img.dispose();
- } catch (Exception e) {
- } finally {
- gcControl.dispose();
-
- }
- return;
- }
- }
-
- void refreshObject() {
- int index = list.getSelectionIndex();
- if (index == -1) {
- return;
- }
- if (check.getSelection() && index < errors.length && errors[index] != null) {
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- PrintStream s = new PrintStream(stream);
- errors[index].printStackTrace(s);
- text.setText(stream.toString());
- text.setVisible(true);
- canvas.setVisible(false);
- } else {
- canvas.setVisible(true);
- text.setVisible(false);
- canvas.redraw();
- }
- }
-
- void refreshAll() {
- oldObjects = new Object[0];
- oldErrors = new Error[0];
- oldNonResources = new ArrayList();
- refreshDifference();
- oldObjects = objects;
- oldErrors = errors;
- }
-
- void layout() {
- Rectangle rect = shell.getClientArea();
- int width = 0;
- String[] items = list.getItems();
- GC gc = new GC(list);
- for (int i = 0; i < objects.length; i++) {
- width = Math.max(width, gc.stringExtent(items[i]).x);
- }
- gc.dispose();
- Point size1 = start.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Point size2 = stop.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Point size3 = check.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Point size4 = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- width = Math.max(size1.x, Math.max(size2.x, Math.max(size3.x, width)));
- width = Math.max(64, Math.max(size4.x,
- list.computeSize(width, SWT.DEFAULT).x));
- start.setBounds(0, 0, width, size1.y);
- stop.setBounds(0, size1.y, width, size2.y);
- check.setBounds(0, size1.y + size2.y, width, size3.y);
- label.setBounds(0, rect.height - size4.y, width, size4.y);
- int height = size1.y + size2.y + size3.y;
- list.setBounds(0, height, width, rect.height - height - size4.y);
- text.setBounds(width, 0, rect.width - width, rect.height);
- canvas.setBounds(width, 0, rect.width - width, rect.height);
- }
-
- public static void main(String[] args) {
- if(Launcher.checkAndLaunch(Sleak.class, args))
- return;
- DeviceData data = new DeviceData();
- data.tracking = true;
- Display display = new Display(data);
- Sleak sleak = new Sleak();
- sleak.open();
-
- AzureusCore core = AzureusCoreFactory.create();
- new Initializer( core, null,args);
-
- while (!sleak.shell.isDisposed()) {
- if (!display.readAndDispatch()) {
- display.sleep();
- }
- }
- try {
- if (!display.isDisposed()) {
- display.dispose();
- }
-
- } catch (Exception e) {
- // TODO: handle exception
- }
- }
-
-}
\ No newline at end of file
diff --git a/test/src/com/aelitis/azureus/ui/swt/utils/ImageResizeException.java b/test/src/com/aelitis/azureus/ui/swt/utils/ImageResizeException.java
deleted file mode 100644
index cc7462e..0000000
--- a/test/src/com/aelitis/azureus/ui/swt/utils/ImageResizeException.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.aelitis.azureus.ui.swt.utils;
-
-public class ImageResizeException
- extends Exception
-{
-
- public ImageResizeException(String message) {
- super(message);
- }
-}
diff --git a/test/src/com/aelitis/azureus/ui/swt/utils/ImageResizer.java b/test/src/com/aelitis/azureus/ui/swt/utils/ImageResizer.java
deleted file mode 100644
index e976c85..0000000
--- a/test/src/com/aelitis/azureus/ui/swt/utils/ImageResizer.java
+++ /dev/null
@@ -1,612 +0,0 @@
-package com.aelitis.azureus.ui.swt.utils;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.*;
-
-import org.gudy.azureus2.core3.internat.MessageText;
-import org.gudy.azureus2.core3.util.AEThread;
-import org.gudy.azureus2.core3.util.SystemTime;
-import org.gudy.azureus2.ui.swt.Utils;
-import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;
-
-public class ImageResizer
-{
-
- static private final int RESIZE_STEPS = 100000;
-
- static private final int MARGIN = 20;
-
- private int minWidth, minHeight;
-
- private int displayWidth, displayHeight;
-
- private Display display;
-
- private Shell parent;
-
- private Shell shell;
-
- private Cursor cursor;
-
- private Canvas canvas;
-
- private Scale scale;
-
- private long lastUpdate = 0l;
-
- private Image original;
-
- private int originalWidth, originalHeight;
-
- private Image currentImage;
-
- private Image overlay;
-
- private Image overlayDragging;
-
- private Image overlayNotDragging;
-
- private boolean done;
-
- private Image result;
-
- private float zoomRatio;
-
- private float minZoomRatio;
-
- private float maxZoomRatio;
-
- private Point offset;
-
- private Listener moveImageListener = new Listener() {
-
- private boolean mouseDown = false;
-
- private Point pointDown;
-
- public void handleEvent(Event event) {
- //System.out.println(event);
- switch (event.type) {
- case SWT.MouseDown:
- mouseDown = true;
- pointDown = new Point(event.x, event.y);
- overlay = overlayDragging;
- drawCurrentImage();
- break;
- case SWT.MouseUp:
- mouseDown = false;
- overlay = overlayNotDragging;
- drawCurrentImage();
- break;
- case SWT.MouseMove:
- if (!mouseDown) {
- break;
- }
- offset.x = offset.x + event.x - pointDown.x;
- offset.y = offset.y + event.y - pointDown.y;
- insureOffsetIsCorrect();
-
- pointDown.x = event.x;
- pointDown.y = event.y;
- drawCurrentImage();
- break;
- case SWT.MouseEnter:
-
- break;
- case SWT.MouseExit:
-
- break;
- }
-
- }
- };
-
- private ImageResizerListener imageResizerListener;
-
- public ImageResizer(Display display, int width, int height, Shell parent) {
- this.parent = parent;
- this.display = display;
- this.minWidth = width;
- this.minHeight = height;
- }
-
- public void resize(Image original, ImageResizerListener l) throws ImageResizeException {
-
- this.original = original;
- this.imageResizerListener = l;
-
- //If the image is too small, let's just not deal with it
- if (!checkSize(original)) {
- dispose();
- throw new ImageResizeException(MessageText.getString(
- "ImageResizer.image.too.small", new String[] {
- minWidth + "",
- minHeight + ""
- }));
- }
-
- originalWidth = original.getBounds().width;
- originalHeight = original.getBounds().height;
-
- currentImage = new Image(display, internalResize(original,
- (int) (originalWidth * zoomRatio), (int) (originalHeight * zoomRatio)));
- offset = new Point(0, 0);
-
- if (minWidth != original.getBounds().width
- || minHeight != original.getBounds().height) {
-
- displayWidth = minWidth + 2 * (MARGIN + 1);
- displayHeight = minHeight + 2 * (MARGIN + 1);
-
- overlay = overlayNotDragging = createOverlayImage((byte) 255, 0x00FFFFFF,
- (byte) 255, 0x00000000);
- overlayDragging = createOverlayImage((byte) 80, 0x00FFFFFF, (byte) 255,
- 0x00FFFFFF);
-
- initUI();
-
- done = false;
- } else {
- result = computeResultImage();
- l.imageResized(result);
- }
- }
-
- private void initUI() {
-
- cursor = new Cursor(display, SWT.CURSOR_HAND);
-
- if (parent != null) {
- shell = ShellFactory.createShell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- } else {
- shell = ShellFactory.createMainShell(SWT.CLOSE | SWT.BORDER);
- }
- shell.setText("Thumbnail Assistant");
-
- Utils.setShellIcon(shell);
-
- shell.addListener(SWT.Close, new Listener() {
- public void handleEvent(Event event) {
- event.doit = false;
- result = null;
- done = true;
- shell = null;
- dispose();
- imageResizerListener.imageResized(result);
- }
- });
-
- FormLayout layout = new FormLayout();
- layout.marginBottom = 5;
- layout.marginTop = 5;
- layout.marginLeft = 5;
- layout.marginRight = 5;
-
- FormData data;
- shell.setLayout(layout);
-
- Label title = new Label(shell, SWT.WRAP);
- title.setText(MessageText.getString("ImageResizer.title"));
-
- data = new FormData();
- data.width = displayWidth;
- title.setLayoutData(data);
-
- canvas = new Canvas(shell, SWT.BORDER);
- canvas.setCursor(cursor);
- data = new FormData();
- data.width = displayWidth;
- data.height = displayHeight;
- data.top = new FormAttachment(title, 5);
- canvas.setLayoutData(data);
-
- canvas.addListener(SWT.MouseDown, moveImageListener);
- canvas.addListener(SWT.MouseUp, moveImageListener);
- canvas.addListener(SWT.MouseMove, moveImageListener);
-
- canvas.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent arg0) {
- drawCurrentImage();
- }
- });
-
- offset.x = (minWidth - currentImage.getBounds().width) / 2;
- offset.y = (minHeight - currentImage.getBounds().height) / 2;
-
- Label label = new Label(shell, SWT.WRAP);
- //The label text depends on the presence of the scale,
- //Thefore we delay the size computation as well as
- //Assiging any FormData (layout) to it see (1)
-
- //The Control to witch the Buttons OK and Cancel are going to be attached
- //Depends on the presence of the scale
- Control attach = label;
-
- if (minZoomRatio < 1) {
- scale = new Scale(shell, SWT.HORIZONTAL);
- data = new FormData();
- data.width = displayWidth;
- data.top = new FormAttachment(label, 5);
- scale.setLayoutData(data);
- scale.setMaximum((int) (RESIZE_STEPS * maxZoomRatio));
- scale.setMinimum((int) (RESIZE_STEPS * minZoomRatio));
- scale.setIncrement((int) ((maxZoomRatio - minZoomRatio) * RESIZE_STEPS / 10));
- scale.setPageIncrement((int) ((maxZoomRatio - minZoomRatio)
- * RESIZE_STEPS / 10));
-
- scale.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event arg0) {
- final long timestamp = SystemTime.getCurrentTime();
- lastUpdate = timestamp;
-
- final int position = scale.getSelection();
-
- AEThread t = new AEThread("") {
- public void runSupport() {
- try {
- Thread.sleep(150);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- if (timestamp == lastUpdate) {
- if (display != null && !display.isDisposed()) {
- display.asyncExec(new Runnable() {
- public void run() {
- refreshCurrentImage(position);
- }
- });
- }
- }
- }
- };
- t.setDaemon(true);
- t.start();
-
- }
- });
- attach = scale;
- label.setText(MessageText.getString("ImageResizer.move.image.with.slider"));
- } else {
- label.setText(MessageText.getString("ImageResizer.move.image"));
- }
-
- // (1) Layout of the label, depending on the text in it
- int width = label.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
- if (width > displayWidth) {
- width = displayWidth;
- }
-
- data = new FormData();
- data.width = width;
- data.top = new FormAttachment(canvas, 5);
- data.left = new FormAttachment(canvas, 0, SWT.CENTER);
- label.setLayoutData(data);
-
- Button btnCancel = new Button(shell, SWT.PUSH);
- btnCancel.setText("Cancel");
- data = new FormData();
- data.width = 70;
- data.top = new FormAttachment(attach, 10);
- data.right = new FormAttachment(100, -10);
- btnCancel.setLayoutData(data);
- btnCancel.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event arg0) {
- result = null;
- done = true;
- dispose();
- imageResizerListener.imageResized(result);
- }
- });
-
- Button btnOk = new Button(shell, SWT.PUSH);
- btnOk.setText("OK");
- data = new FormData();
- data.width = 70;
- data.top = new FormAttachment(attach, 10);
- data.right = new FormAttachment(btnCancel, -10);
- btnOk.setLayoutData(data);
- btnOk.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event arg0) {
- result = computeResultImage();
- done = true;
- dispose();
- imageResizerListener.imageResized(result);
- }
- });
-
- shell.setDefaultButton(btnOk);
- btnOk.setFocus();
- shell.setSize(shell.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
- if (parent != null) {
- Utils.centerWindowRelativeTo(shell, parent);
- }
-
- shell.open();
- drawCurrentImage();
-
- }
-
- private boolean checkSize(Image image) {
- //If the image is smaller than the minimal size, we shouldn't accept it
- Rectangle size = image.getBounds();
- if (size.width < minWidth || size.height < minHeight) {
- return false;
- }
-
- float minHRatio = (float) (minHeight) / size.height;
- float minWRatio = (float) (minWidth) / size.width;
-
- float maxHRatio = (float) (minHeight * 4) / size.height;
- float maxWRatio = (float) (minWidth * 4) / size.width;
-
- //We must keep the min zoom bigger than the "biggest" ratio (ie, smallest zoom out)
- minZoomRatio = minHRatio > minWRatio ? minHRatio : minWRatio;
- maxZoomRatio = maxHRatio > maxWRatio ? maxHRatio : maxWRatio;
-
- if (maxZoomRatio > 1) {
- maxZoomRatio = 1;
- }
-
- zoomRatio = minZoomRatio;
-
- return true;
- }
-
- private ImageData internalResize(Image image, int newWidth, int newHeight) {
-
- ImageData srcData = image.getImageData();
-
- //int width = srcData.width,height = srcData.height;
-
- ImageData data = srcData;
- //int newWidth = (int)(width*zoomRatio);
- //int newHeight = (int)(height*zoomRatio);
-
- final ImageData copy = new ImageData(newWidth, newHeight, 24,
- new PaletteData(0x00FF0000, 0x0000FF00, 0x000000FF));
-
- Image src = new Image(display, srcData);
- Image dst = new Image(display, copy);
-
- GC gc = new GC(dst);
- gc.setAdvanced(true);
- try {
- gc.setInterpolation(SWT.HIGH);
- } catch (Exception e) {
- // may not be avail
- }
- gc.drawImage(src, 0, 0, srcData.width, srcData.height, 0, 0, copy.width,
- copy.height);
- //gc.setAlpha(50);
- //gc.drawImage(src,2,2,srcData.width-2,srcData.height-2,0,0,copy.width,copy.height);
- gc.dispose();
-
- data = dst.getImageData();
-
- src.dispose();
- dst.dispose();
-
- return data;
- }
-
- private void drawCurrentImage() {
- GC gcCanvas = new GC(canvas);
-
- Image temp = new Image(display, displayWidth, displayHeight);
- GC gc = new GC(temp);
- gc.drawImage(currentImage, offset.x + MARGIN + 1, offset.y + MARGIN + 1);
- //gc.setAlpha(128);
- gc.drawImage(overlay, 0, 0);
- //gc.setTextAntialias(SWT.ON);
- //gc.drawText("This is a test", 15, displayHeight-15,true);
- gc.dispose();
-
- gcCanvas.drawImage(temp, 0, 0);
- temp.dispose();
-
- gcCanvas.dispose();
- }
-
- private void insureOffsetIsCorrect() {
- int minX = minWidth - currentImage.getBounds().width;
- if (offset.x < minX) {
- offset.x = minX;
- }
-
- int minY = minHeight - currentImage.getBounds().height;
- if (offset.y < minY) {
- offset.y = minY;
- }
-
- if (offset.x > 0) {
- offset.x = 0;
- }
-
- if (offset.y > 0) {
- offset.y = 0;
- }
-
- }
-
- private void dispose() {
- if (shell != null && !shell.isDisposed()) {
- shell.dispose();
- }
-
- if (currentImage != null && !currentImage.isDisposed()) {
- currentImage.dispose();
- }
-
- if (overlayDragging != null && !overlayDragging.isDisposed()) {
- overlayDragging.dispose();
- }
-
- if (overlayNotDragging != null && !overlayNotDragging.isDisposed()) {
- overlayNotDragging.dispose();
- }
-
- if (cursor != null && !cursor.isDisposed()) {
- cursor.dispose();
- }
- }
-
- private Image computeResultImage() {
- Image img = new Image(display, minWidth, minHeight);
-
- /*ImageData srcData = original.getImageData();
- ImageData dstData = new ImageData(
- currentImage.getBounds().width,
- currentImage.getBounds().height,
- 32,
- new PaletteData(0xFF,0xFF00,0xFF0000));
- Resample resample = new Resample();
- resample.setFilter(Resample.FILTER_TYPE_LANCZOS3, 7.0f);
- resample.process(srcData, dstData);
- Image filtered = new Image(display,dstData);
- */
- GC gc = new GC(img);
- gc.drawImage(currentImage, offset.x, offset.y);
- gc.dispose();
- //filtered.dispose();
- return img;
- }
-
- private Image createOverlayImage(final byte marginAlpha,
- final int marginColor, final byte borderAlpha, final int borderColor) {
-
- int width = displayWidth;
- int height = displayHeight;
-
- ImageData data = new ImageData(width, height, 32, new PaletteData(
- 0x000000FF, 0x0000FF00, 0x00FF0000));
-
- byte[] transparency = new byte[width * height];
- int[] pixels = new int[width * height];
-
- byte rowAlpha[] = new byte[width];
- int rowPixels[] = new int[width];
- //Top
- //Pattern
- for (int i = 0; i < width; i++) {
- rowAlpha[i] = marginAlpha;
- rowPixels[i] = marginColor;
- }
- //Fill
- for (int i = 0; i < MARGIN; i++) {
- System.arraycopy(rowAlpha, 0, transparency, i * width, width);
- System.arraycopy(rowPixels, 0, pixels, i * width, width);
- }
-
- //Main area
- //Pattern
- for (int i = 0; i < MARGIN; i++) {
- rowAlpha[i] = marginAlpha;
- rowAlpha[width - i - 1] = marginAlpha;
- }
- for (int i = MARGIN; i < width - MARGIN; i++) {
- rowAlpha[i] = 0;
- }
- //Fill
- for (int i = MARGIN; i < height - MARGIN; i++) {
- System.arraycopy(rowAlpha, 0, transparency, i * width, width);
- System.arraycopy(rowPixels, 0, pixels, i * width, width);
- }
-
- //Bottom
- //Pattern
- for (int i = 0; i < width; i++) {
- rowAlpha[i] = marginAlpha;
- }
- //Fill
- for (int i = height - MARGIN - 1; i < height; i++) {
- System.arraycopy(rowAlpha, 0, transparency, i * width, width);
- System.arraycopy(rowPixels, 0, pixels, i * width, width);
- }
-
- //Let's do the border part
- for (int i = MARGIN; i < width - MARGIN; i++) {
- transparency[width * MARGIN + i] = borderAlpha;
- pixels[width * MARGIN + i] = borderColor;
- }
- for (int j = MARGIN; j < height - MARGIN; j++) {
-
- transparency[j * width + MARGIN] = borderAlpha;
- pixels[j * width + MARGIN] = borderColor;
-
- transparency[j * width + width - MARGIN - 1] = borderAlpha;
- pixels[j * width + width - MARGIN - 1] = borderColor;
-
- }
- for (int i = MARGIN; i < width - MARGIN; i++) {
- transparency[width * (height - MARGIN - 1) + i] = borderAlpha;
- pixels[width * (height - MARGIN - 1) + i] = borderColor;
- }
-
- data.alphaData = transparency;
- data.setPixels(0, 0, width * height, pixels, 0);
-
- Image overlay = new Image(display, data);
-
- return overlay;
- }
-
- private void refreshCurrentImage(int position) {
- float previousZoom = zoomRatio;
- zoomRatio = (float) position / RESIZE_STEPS;
- if (zoomRatio > 1) {
- zoomRatio = 1;
- }
- if (zoomRatio < minZoomRatio) {
- zoomRatio = minZoomRatio;
- }
- if (previousZoom != zoomRatio) {
- Image previous = currentImage;
- currentImage = new Image(display,
- internalResize(original, (int) (originalWidth * zoomRatio),
- (int) (originalHeight * zoomRatio)));
-
- //float ratio = zoomRatio / previousZoom;
- offset.x += (previous.getBounds().width - currentImage.getBounds().width) / 2;
- offset.y += (previous.getBounds().height - currentImage.getBounds().height) / 2;
-
- if (previous != null && !previous.isDisposed()) {
- previous.dispose();
- }
-
- insureOffsetIsCorrect();
- drawCurrentImage();
- }
- }
-
- public interface ImageResizerListener {
- void imageResized(Image image);
- }
-
- public static void main(final String args[]) throws Exception {
- final Display display = Display.getDefault();
- final Shell test = new Shell(display);
- ImageResizer resizer = new ImageResizer(display, 228, 128, null);
- String file = new FileDialog(test).open();
- Image img = new Image(display, file);
- resizer.resize(img, new ImageResizerListener() {
- public void imageResized(Image thumbnail) {
- System.out.println(thumbnail);
-
- thumbnail.dispose();
- test.dispose();
- if (args.length == 0) {
- display.dispose();
- }
- }
- });
-
- }
-}
\ No newline at end of file
diff --git a/test/src/com/vuze/tests/FileUtilWriteTest.java b/test/src/com/vuze/tests/FileUtilWriteTest.java
deleted file mode 100644
index b9229d5..0000000
--- a/test/src/com/vuze/tests/FileUtilWriteTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * Created on Nov 22, 2010
- *
- * Copyright 2010 Vuze, Inc. All rights reserved.
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License only.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package com.vuze.tests;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.HashMap;
-
-import org.gudy.azureus2.core3.util.AEThread2;
-import org.gudy.azureus2.core3.util.FileUtil;
-
-/**
- * @author TuxPaper
- * @created Nov 22, 2010
- *
- */
-public class FileUtilWriteTest
-{
- public static void main(String[] args) {
- int total = 15;
- while (total-- > 0) {
- try {
- new AEThread2("foo " + total) {
- public void run() {
- while (true) {
- File file = new File("c:\\temp\\TMP" + (long) (Math.random() * 6) + ".config");
- try {
- Thread.sleep((long) (Math.random() * 10000));
- writeOne(file);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }.start();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- try {
- Thread.sleep(100000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.println("done");
- }
-
- private static File writeOne(File file) throws IOException {
- byte[] b = new byte[(int) (Math.random() * 165535)];
- HashMap map = new HashMap();
- map.put("info", b);
-
- if (!file.exists()) {
- FileOutputStream os = new FileOutputStream(file);
- os.write(b);
- os.close();
- }
-
- System.out.println(file);
- FileUtil.writeResilientFile(file, map);
-
- return file;
- }
-}
diff --git a/test/src/com/vuze/tests/RunnableVsReflect.java b/test/src/com/vuze/tests/RunnableVsReflect.java
deleted file mode 100644
index 187fbe1..0000000
--- a/test/src/com/vuze/tests/RunnableVsReflect.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * Created on Jun 4, 2010
- *
- * Copyright 2008 Vuze, Inc. All rights reserved.
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License only.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package com.vuze.tests;
-
-import java.lang.reflect.Method;
-
-import org.gudy.azureus2.core3.util.AERunnable;
-
-/**
- * @author TuxPaper
- * @created Jun 4, 2010
- *
- * My Results:
-
-10000000 calls:
-direct took 9ms
-reflect with cache took 210ms
-basic reflect took 2693ms
-AERunnable took 127ms
-
- */
-public class RunnableVsReflect
-{
- private static final int COUNT = 10000000;
- private int x;
-
- public RunnableVsReflect() throws SecurityException, NoSuchMethodException {
- long start;
- long diff;
-
- System.out.println(COUNT + " calls:");
- Class<? extends RunnableVsReflect> cla = this.getClass();
- Method meth = cla.getMethod("foo");
-
-
- start = System.currentTimeMillis();
- for (int i = 0; i < COUNT; i++) {
- try {
- foo();
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- diff = System.currentTimeMillis() - start;
- System.out.println("direct took " + diff + "ms" );
-
- start = System.currentTimeMillis();
- for (int i = 0; i < COUNT; i++) {
- try {
- //this.getClass().getMethod("foo").invoke(this);
- //cla.getMethod("foo").invoke(this);
- meth.invoke(this);
- //reflectTo("foo", this);
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- diff = System.currentTimeMillis() - start;
- System.out.println("reflect with cache took " + diff + "ms" );
-
- start = System.currentTimeMillis();
- for (int i = 0; i < COUNT; i++) {
- try {
- reflectTo("foo", this);
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- diff = System.currentTimeMillis() - start;
- System.out.println("basic reflect took " + diff + "ms" );
-
- start = System.currentTimeMillis();
- for (int i = 0; i < COUNT; i++) {
- try {
- AERunnable runnable = new AERunnable() {
- public void runSupport() {
- foo();
- }
- };
- runnable.run();
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- diff = System.currentTimeMillis() - start;
- System.out.println("AERunnable took " + diff + "ms" );
-
- start = System.currentTimeMillis();
- for (int i = 0; i < COUNT; i++) {
- try {
- Runnable runnable = new Runnable() {
- public void run() {
- foo();
- }
- };
- runnable.run();
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- diff = System.currentTimeMillis() - start;
- System.out.println("Runnable took " + diff + "ms" );
- }
-
- public void reflectTo(String name, Object o) throws Throwable {
- o.getClass().getMethod(name).invoke(o);
- }
-
- public void foo() {
- // do something
- x++;
- }
-
- public static void main(String[] args) {
- try {
- RunnableVsReflect runnableVsReflect = new RunnableVsReflect();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
-}
diff --git a/test/src/com/vuze/tests/swt/BrowserFlicker.java b/test/src/com/vuze/tests/swt/BrowserFlicker.java
deleted file mode 100644
index f55183d..0000000
--- a/test/src/com/vuze/tests/swt/BrowserFlicker.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * Copyright (C) 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 63.529,40 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.*;
-import org.gudy.azureus2.ui.swt.Utils;
-
-/**
- * Eclipse Bug 164512:
- * seizure inducing flicker on resize in Browser w/parent having paint listener
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=164512
- *
- * @author TuxPaper
- * @created Nov 13, 2006
- *
- */
-public class BrowserFlicker
-{
- final static int INDENT = 10;
-
- public static void main(String[] args) {
- final Display display = new Display();
- final Shell shell = new Shell(display, SWT.SHELL_TRIM);
-
- FormData fd;
-
- shell.setLayout(new FormLayout());
-
- final Composite right = new Composite(shell, SWT.NONE);
- right.setLayout(new FormLayout());
-
- final Browser b = new Browser(right, Utils.getInitialBrowserStyle(SWT.NONE));
- fd = new FormData();
- fd.top = new FormAttachment(0, INDENT);
- fd.left = new FormAttachment(0, INDENT);
- fd.right = new FormAttachment(100, -INDENT);
- fd.bottom = new FormAttachment(100, -INDENT);
- b.setLayoutData(fd);
- // black so we can see the flicker better
- b.setText("<html><body BGCOLOR=black></body></html>");
-
- fd = new FormData();
- fd.top = new FormAttachment(0);
- fd.left = new FormAttachment(50);
- fd.bottom = new FormAttachment(100);
- fd.right = new FormAttachment(100);
- right.setLayoutData(fd);
-
- shell.addListener(SWT.Resize, new Listener() {
- public void handleEvent(Event event) {
- // code here to resulting in a need to re-layout
-
- right.getParent().layout();
- }
- });
-
- Listener l = new Listener() {
- public void handleEvent(Event event) {
- Point size = ((Control) event.widget).getSize();
- event.gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
- event.gc.fillOval(0, 0, INDENT, INDENT);
- event.gc.fillOval(size.x - INDENT, 0, INDENT, INDENT);
- event.gc.fillOval(size.x - INDENT, size.y - INDENT, INDENT, INDENT);
- event.gc.fillOval(0, size.y - INDENT, INDENT, INDENT);
-
- // mimic other work
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- };
-
- right.addListener(SWT.Paint, l);
- shell.setSize(200, 200);
- shell.open();
-
- while (!shell.isDisposed()) {
- if (display.readAndDispatch()) {
- display.sleep();
- }
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/BrowserStatusBar.java b/test/src/com/vuze/tests/swt/BrowserStatusBar.java
deleted file mode 100644
index 25b6f89..0000000
--- a/test/src/com/vuze/tests/swt/BrowserStatusBar.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Created on Oct 6, 2010
- *
- * Copyright 2010 Vuze, Inc. All rights reserved.
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License only.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.StatusTextEvent;
-import org.eclipse.swt.browser.StatusTextListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-import org.gudy.azureus2.core3.util.AERunnable;
-import org.gudy.azureus2.core3.util.Debug;
-import org.gudy.azureus2.ui.swt.Utils;
-
-/**
- * @author TuxPaper
- * @created Oct 6, 2010
- *
- */
-public class BrowserStatusBar
-{
- public static void main(String[] args) {
- Display display = new Display();
- final Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- final Browser b1 = new Browser(shell, SWT.NONE);
- //b1.setUrl(" http://www.vuze.com/client/update.php");
- //b1.setUrl("file://c:/temp/update.html");
- b1.setUrl(" http://192.168.0.88/client/update.php");
-
- b1.addStatusTextListener(new StatusTextListener() {
- public void changed(StatusTextEvent event) {
- System.out.println("changed " + event.text);
- if ( event.text.contains("accept")){
- Utils.execSWTThreadLater(0, new AERunnable() {
- public void runSupport(){
-
- try{
- System.out.println("FOOOOOOOOOO");
-
- }catch( Throwable e ){
-
- Debug.out( e );
- }
-
- shell.dispose();
- }
- });
- }
- }
- });
- shell.open();
-
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ())
- display.sleep ();
- }
- display.dispose ();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/ImageOverImage.java b/test/src/com/vuze/tests/swt/ImageOverImage.java
deleted file mode 100644
index d661824..0000000
--- a/test/src/com/vuze/tests/swt/ImageOverImage.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class ImageOverImage
-{
- public static void main(String[] args) {
- FormData formData;
-
- Display display = new Display();
-
- Shell shell = new Shell(display, SWT.DIALOG_TRIM);
-
- FormLayout layout = new FormLayout();
- shell.setLayout(layout);
-
- Image image1 = new Image(display, 100, 100);
-
- GC gc = new GC(image1);
- gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
- gc.fillRectangle(0, 0, 100, 100);
- gc.dispose();
-
- final Image image2 = new Image(display, 50, 50);
- gc = new GC(image2);
- gc.setBackground(display.getSystemColor(SWT.COLOR_RED));
- gc.fillRectangle(0, 0, 50, 50);
- gc.dispose();
-
- final Image image3 = new Image(display, 50, 50);
- gc = new GC(image2);
- gc.setBackground(display.getSystemColor(SWT.COLOR_GREEN));
- gc.fillRectangle(0, 0, 50, 50);
- gc.dispose();
-
- Composite c1 = new Composite(shell, SWT.BORDER);
- formData = new FormData();
- formData.top = new FormAttachment(0, 0);
- formData.left = new FormAttachment(0, 0);
- formData.right = new FormAttachment(100);
- formData.bottom = new FormAttachment(100);
- c1.setLayoutData(formData);
- c1.setLayout(new FormLayout());
-
- final Composite c2 = new Composite(c1, SWT.BORDER);
- formData = new FormData();
- formData.top = new FormAttachment(00, 10);
- formData.left = new FormAttachment(00, 10);
- formData.right = new FormAttachment(100, -10);
- formData.bottom = new FormAttachment(100, -10);
- c2.setLayoutData(formData);
-
- c1.setBackgroundImage(image1);
- c2.setBackgroundImage(image2);
-
- c2.addMouseTrackListener(new MouseTrackListener() {
-
- public void mouseHover(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- public void mouseExit(MouseEvent e) {
- c2.setBackgroundImage(image2);
- }
-
- public void mouseEnter(MouseEvent e) {
- c2.setBackgroundImage(image3);
- }
-
- });
-
- shell.setSize(100, 100);
- shell.open();
-
- while (!display.isDisposed()) {
- if (!display.readAndDispatch()) {
- display.sleep();
- }
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/OnTopProblem.java b/test/src/com/vuze/tests/swt/OnTopProblem.java
deleted file mode 100644
index 3223974..0000000
--- a/test/src/com/vuze/tests/swt/OnTopProblem.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Created on Apr 9, 2004
- * Created by Alon Rohter
- * Copyright (C) 2004, 2005, 2006 Alon Rohter, All Rights Reserved.
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tray;
-import org.eclipse.swt.widgets.TrayItem;
-
-import org.gudy.azureus2.core3.util.AERunnable;
-import org.gudy.azureus2.core3.util.AEThread;
-
-/**
- *
- */
-public class OnTopProblem {
- private static int[] sizes = {100,120,140};
-
- Display display;
- Shell mainShell;
- Shell onTopShell;
-
- Label labelIter;
-
- int iter;
-
-
- public OnTopProblem() {
- display = new Display();
- mainShell = new Shell(display,SWT.SHELL_TRIM);
- mainShell.setText("OnTopProblem");
-
- mainShell.setLayout(new FillLayout());
-
- Button btnClose = new Button(mainShell,SWT.PUSH);
- btnClose.setText("Close");
- btnClose.addListener(SWT.Selection,new Listener() {
- public void handleEvent(Event arg0) {
- mainShell.dispose();
- }
- });
-
- mainShell.setSize(300,200);
- mainShell.open();
-
- onTopShell = new Shell(mainShell,SWT.ON_TOP);
- onTopShell.setSize(200,30);
- onTopShell.open();
-
- onTopShell.setLayout(new FillLayout());
-
- labelIter = new Label(onTopShell,SWT.NULL);
-
- Tray tray = display.getSystemTray();
- TrayItem trayItem = new TrayItem(tray,SWT.NULL);
- trayItem.addListener(SWT.DefaultSelection, new Listener() {
- public void handleEvent(Event e) {
- mainShell.setVisible(true);
- }
- });
-
- mainShell.addListener(SWT.Close, new Listener(){
- public void handleEvent(Event e) {
- e.doit = false;
- mainShell.setVisible(false);
- onTopShell.setVisible(true);
- }
- });
-
- Thread t = new AEThread("OnTopProblem") {
- public void runSupport() {
- while(updateDisplay()) {
- try { Thread.sleep(100); } catch(Exception ignore) {}
- }
- }
- };
-
- t.start();
-
- waitForDispose();
- display.dispose();
- }
-
-
-
- public void waitForDispose() {
- while(!mainShell.isDisposed()) {
- if(!display.readAndDispatch())
- display.sleep();
- }
- }
-
- public boolean updateDisplay() {
- if(display != null && ! display.isDisposed() ) {
- display.asyncExec(new AERunnable() {
- public void runSupport() {
- iter++;
- labelIter.setText("" + iter);
- onTopShell.setSize(sizes[iter % sizes.length],20);
- }
- });
- return true;
- }
- return false;
- }
-
- public static void main(String args[]) {
- new OnTopProblem();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/PaintCircleText.java b/test/src/com/vuze/tests/swt/PaintCircleText.java
deleted file mode 100644
index f10a4cc..0000000
--- a/test/src/com/vuze/tests/swt/PaintCircleText.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Transform;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class PaintCircleText
-{
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- shellMain.setLayout(new FillLayout());
-
-
- shellMain.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent e) {
- String text = "round and around goes the text";
- Transform transform = new Transform(e.display);
- System.out.println(e.width);
- transform.translate(e.width / 2, e.height / 2);
- transform.rotate(-90);
- int r = 0;
- int ofs = e.gc.textExtent("" + text.charAt(0)).x;
- for (int i = 0; i < text.length(); i++) {
- String c = "" + text.charAt(i);
- e.gc.setTransform(transform);
-
- float pct = 1.0f - ((float) i) / ((text.length() - 1) / 2.0f);
-
- e.gc.drawText(c, (i >= text.length() / 2) ? 0 : (int) (-ofs * pct), e.height / -2, true);
- e.gc.drawText(c, 0, 0, true);
-
- transform.rotate(180.0f / (text.length() - 1));
- r += 10;
- }
-
- transform.dispose();
- }
- });
-
-
- shellMain.setSize(200, 200);
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- try {
- if (!display.readAndDispatch())
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/Snippet.java b/test/src/com/vuze/tests/swt/Snippet.java
deleted file mode 100644
index f789efb..0000000
--- a/test/src/com/vuze/tests/swt/Snippet.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Created on Aug 17, 2010
- *
- * Copyright 2008 Vuze, Inc. All rights reserved.
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License only.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.TextLayout;
-import org.eclipse.swt.widgets.*;
-
-/**
- * @author TuxPaper
- * @created Aug 17, 2010
- *
- */
-public class Snippet
-{
- public static void main (String[] args) {
- Display d = new Display();
- Shell shell = new Shell(d);
- shell.setSize(500, 500);
- shell.addListener(SWT.Paint, new Listener() {
- public void handleEvent(Event e) {
- TextLayout layout = new TextLayout(e.display);
- //U+07C0 to U+07FA
- layout.setText("1) Magic Symbol - \u07d0");
- layout.draw(e.gc, 10, 10);
- e.gc.drawText("2) Magic Symbol - \u07d0", 160, 10);
- e.gc.setAlpha(127);
- layout.draw(e.gc, 10, 50);
- e.gc.drawText("3) Magic Symbol - \u07d0", 160, 50);
- layout.dispose();
- }
- });
- shell.open();
- while (!shell.isDisposed()) {
- if (!d.readAndDispatch())
- d.sleep();
- }
- d.dispose();
- }
-
-}
-
diff --git a/test/src/com/vuze/tests/swt/TableWith0sizedColumn.java b/test/src/com/vuze/tests/swt/TableWith0sizedColumn.java
deleted file mode 100644
index d508fd8..0000000
--- a/test/src/com/vuze/tests/swt/TableWith0sizedColumn.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Created on Apr 9, 2004
- * Created by Alon Rohter
- * Copyright (C) 2004, 2005, 2006 Alon Rohter, All Rights Reserved.
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-package com.vuze.tests.swt;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-import org.gudy.azureus2.core3.util.AERunnable;
-import org.gudy.azureus2.core3.util.AEThread;
-
-/**
- *
- */
-public class TableWith0sizedColumn {
- public static void main(String[] args) {
- final Display display = new Display();
- final Shell shell = new Shell(display,SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- final Table table = new Table(shell,SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
- table.setHeaderVisible(true);
-
- TableColumn column0sized = new TableColumn(table,SWT.NULL);
- TableColumn column1 = new TableColumn(table,SWT.NULL);
- TableColumn column2 = new TableColumn(table,SWT.NULL);
- column0sized.setWidth(0);
- column0sized.setResizable(false);
-
- column1.setWidth(200);
- column1.setText("Column 1");
- column2.setWidth(200);
- column2.setText("Column 2");
-
- for(int i = 0 ; i < 5 ; i++) {
- TableItem item = new TableItem(table,0);
- item.setText(new String[] {null,"col 1 row " + i , "col 2 row " + i});
- }
-
- Thread tUpdateValues = new AEThread("TableWith0sizedColumn") {
- public void runSupport() {
- final int[] t = new int[1];
- t[0] = 0;
- while(!display.isDisposed()) {
- t[0]++;
- display.asyncExec(new AERunnable(){
- public void runSupport() {
- if(table.isDisposed())
- return;
- TableItem[] items = table.getItems();
- for(int i = 0 ; i < items.length ; i++) {
- TableItem item = items[i];
- item.setText(new String[] {null,"col 1 row " + i + " / " + t[0] , "col 2 row " + i + " / " + t[0]});
- }
- }
- });
- try { Thread.sleep(1000); } catch(Exception ignore) {}
- }
- }
- };
-
- tUpdateValues.start();
-
- shell.setSize(300,300);
- shell.open();
-
- while(!shell.isDisposed()) {
- if(!display.readAndDispatch())
- display.sleep();
- }
-
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/TorrentThumbnail.java b/test/src/com/vuze/tests/swt/TorrentThumbnail.java
deleted file mode 100644
index b510cbf..0000000
--- a/test/src/com/vuze/tests/swt/TorrentThumbnail.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * Copyright (C) 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 63.529,40 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package com.vuze.tests.swt;
-
-import java.io.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-import org.gudy.azureus2.core3.torrent.TOTorrent;
-import org.gudy.azureus2.core3.torrent.TOTorrentException;
-import org.gudy.azureus2.core3.util.TorrentUtils;
-
-import com.aelitis.azureus.core.torrent.PlatformTorrentUtils;
-
-/**
- * @author TuxPaper
- * @created Sep 28, 2006
- *
- */
-public class TorrentThumbnail
-{
- public static byte[] b;
-
- public static TOTorrent torrent;
-
- public static String sFileName;
-
- public static void main(String[] args) {
- final Display display = new Display();
- final Shell shell = new Shell(display, SWT.DIALOG_TRIM);
-
- shell.setLayout(new FillLayout());
-
- final Label image = new Label(shell, SWT.NONE);
-
- Button btnGetTorrent = new Button(shell, SWT.PUSH);
- btnGetTorrent.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- FileDialog fd = new FileDialog(shell);
- sFileName = fd.open();
- try {
- torrent = TorrentUtils.readFromFile(new File(sFileName), false);
- } catch (TOTorrentException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- b = PlatformTorrentUtils.getContentThumbnail(torrent);
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- });
- btnGetTorrent.setText("Get Torrent");
-
- Button btnShowImage = new Button(shell, SWT.PUSH);
- btnShowImage.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- if (b == null) {
- System.out.println("null");
- return;
- }
- ByteArrayInputStream bis = new ByteArrayInputStream(b);
- Image img = new Image(display, bis);
- image.setImage(img);
- shell.layout(true, true);
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- });
- btnShowImage.setText("Show Image");
-
- Button btnGetFile = new Button(shell, SWT.PUSH);
- btnGetFile.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- FileDialog fd = new FileDialog(shell);
- String sTFileName = fd.open();
- b = getFileContents(sTFileName);
- PlatformTorrentUtils.setContentThumbnail(torrent, b);
- System.out.println("yay");
- try {
- TorrentUtils.writeToFile(torrent, new File(sFileName));
- } catch (TOTorrentException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- });
- btnGetFile.setText("Add thumb to torrent");
-
- shell.open();
-
- while (!shell.isDisposed()) {
- if (display.readAndDispatch()) {
- display.sleep();
- }
- }
- }
-
- public static byte[] getFileContents(String sFile) {
- File f = new File(sFile);
-
- try {
- FileInputStream fs = new FileInputStream(f);
-
- byte b[] = new byte[(int) f.length()];
-
- fs.read(b);
-
- fs.close();
-
- return b;
-
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return null;
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_ID.java b/test/src/com/vuze/tests/swt/tableview/CT_ID.java
deleted file mode 100644
index fb01730..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_ID.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.core3.util.Debug;
-import org.gudy.azureus2.plugins.ui.tables.*;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.ui.common.table.TableCellCore;
-import com.aelitis.azureus.ui.common.table.TableRowCore;
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_ID
- extends CoreTableColumn
- implements TableCellAddedListener, TableCellSWTPaintListener, TableCellRefreshListener, TableCellToolTipListener
-{
- public static double id = 0;
- public static String name = new Object() { }.getClass().getEnclosingClass().getSimpleName();
-
- public CT_ID() {
- super(name, 170, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_INVALID_ONLY);
- setVisible(true);
- }
-
- public void cellAdded(TableCell cell) {
- TableRowCore row = (cell.getTableRow() instanceof TableRowCore) ? (TableRowCore)cell.getTableRow() : null;
-// if (row != null) {
-// row.setHeight((int) (16 + (Math.random() * 100)));
-// }
- String indent = row == null || row.getParentRowCore() == null ? "" : " ";
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- Object mapObject = MapUtils.getMapObject(ds.map, "ID", null, Number.class);
- if (mapObject instanceof Number) {
- double overideID = ((Double) mapObject).doubleValue();
- cell.setSortValue(overideID);
- cell.setText(indent + overideID + (row == null ? "" : ":" + row.getHeight()));
- } else {
- id++;
- cell.setSortValue(id);
- cell.setText(indent + Double.toString(id) + (row == null ? "" : ":" + row.getHeight()));
- ds.map.put("ID", id);
- }
- }
-
- public void refresh(TableCell cell) {
- int id = ((Number) cell.getSortValue()).intValue();
- if (id % 10 == 1) {
- cell.setForeground(200, 0, 0);
- cell.getTableRow().setForeground(150, 0, 0);
- }
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, name + ".numCP", 0) + 1;
- ds.map.put(name + ".numCP", num);
- GCStringPrinter.printString(gc, Integer.toString(num), cell.getBounds(), true, true, SWT.RIGHT);
- }
-
- public void cellHover(TableCell cell) {
- TableRow row = cell.getTableRow();
- if (row instanceof TableRowCore) {
- TableRowCore rowCore = (TableRowCore)cell.getTableRow();
- TableCellCore cellCore = (TableCellCore) cell;
- cell.setToolTip(rowCore.getIndex() + ". r.vis? " + rowCore.isVisible());
- }
- }
-
- public void cellHoverComplete(TableCell cell) {
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_InvOnlyExt.java b/test/src/com/vuze/tests/swt/tableview/CT_InvOnlyExt.java
deleted file mode 100644
index 655854e..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_InvOnlyExt.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.plugins.ui.tables.*;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_InvOnlyExt
- extends CoreTableColumn
- implements TableCellRefreshListener, TableCellSWTPaintListener,
- TableCellAddedListener
-{
- public static String name = new Object() {
- }.getClass().getEnclosingClass().getSimpleName();
-
- private static Timer timer;
-
- private static List<TableCell> cells = new ArrayList<TableCell>();
-
- private static String ID_TICS = name + ".num1";
-
- private static String ID_CELLPAINTS = name + ".numCP";
-
- private static String ID_REFRESHES = name + ".num2";
-
- static {
- timer = new Timer("Simple Timer", 1);
-
- timer.setIndestructable();
-
- timer.setWarnWhenFull();
-
- timer.addEvent("updateLiveExt", SystemTime.getOffsetTime(1000),
- new TimerEventPerformer() {
- public void perform(TimerEvent event) {
- TableCell[] array = cells.toArray(new TableCell[0]);
- for (TableCell cell : array) {
- if (cell.isDisposed()) {
- synchronized (cells) {
- cells.remove(cell);
- }
- continue;
- }
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0) + 1;
- ds.map.put(ID_TICS, num);
- cell.invalidate();
- }
- timer.addEvent("updateLiveExt", SystemTime.getOffsetTime(1000),
- this);
- }
- });
- }
-
- public CT_InvOnlyExt() {
- super(name, 190, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_INVALID_ONLY);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0);
-
- int num2 = MapUtils.getMapInt(ds.map, ID_REFRESHES, 0) + 1;
- ds.map.put(ID_REFRESHES, num2);
-
- cell.setSortValue(0);
- cell.setText("tics=" + num + ";refr=" + num2);
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_CELLPAINTS, 0) + 1;
- ds.map.put(ID_CELLPAINTS, num);
- GCStringPrinter.printString(gc, "" + num, cell.getBounds(), true, true,
- SWT.RIGHT);
- }
-
- public void cellAdded(final TableCell cell) {
- synchronized (cells) {
- cells.add(cell);
- }
- }
-
- // @see org.gudy.azureus2.plugins.ui.tables.TableCellDisposeListener#dispose(org.gudy.azureus2.plugins.ui.tables.TableCell)
- public void dispose(TableCell cell) {
- synchronized (cells) {
- cells.remove(cell);
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_InvOnlyReord.java b/test/src/com/vuze/tests/swt/tableview/CT_InvOnlyReord.java
deleted file mode 100644
index bc6413d..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_InvOnlyReord.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.plugins.ui.tables.*;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_InvOnlyReord
- extends CoreTableColumn
- implements TableCellRefreshListener, TableCellSWTPaintListener,
- TableCellAddedListener
-{
- public static String name = new Object() {
- }.getClass().getEnclosingClass().getSimpleName();
-
- private static Timer timer;
-
- private static List<TableCell> cells = new ArrayList<TableCell>();
-
- private static String ID_TICS = name + ".num1";
-
- private static String ID_CELLPAINTS = name + ".numCP";
-
- private static String ID_REFRESHES = name + ".num2";
-
- static {
- timer = new Timer("Simple Timer", 1);
-
- timer.setIndestructable();
-
- timer.setWarnWhenFull();
-
- timer.addEvent("updateInvOnlyRoord", SystemTime.getOffsetTime(10000),
- new TimerEventPerformer() {
- public void perform(TimerEvent event) {
- TableCell[] array = cells.toArray(new TableCell[0]);
- for (TableCell cell : array) {
- if (cell.isDisposed()) {
- synchronized (cells) {
- cells.remove(cell);
- }
- continue;
- }
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0)
- + ((int) (Math.random() * 3)) - 1;
- ds.map.put(ID_TICS, num);
- cell.invalidate();
- }
-
- timer.addEvent("updateInvOnlyRoord",
- SystemTime.getOffsetTime(10000), this);
- }
- });
- }
-
- public CT_InvOnlyReord() {
- super(name, 190, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_INVALID_ONLY);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0);
-
- int num2 = MapUtils.getMapInt(ds.map, ID_REFRESHES, 0) + 1;
- ds.map.put(ID_REFRESHES, num2);
-
- cell.setSortValue(num);
- cell.setText("val=" + num + ";refr=" + num2);
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_CELLPAINTS, 0) + 1;
- ds.map.put(ID_CELLPAINTS, num);
- GCStringPrinter.printString(gc, "" + num, cell.getBounds(), true, true,
- SWT.RIGHT);
- }
-
- public void cellAdded(final TableCell cell) {
- synchronized (cells) {
- cells.add(cell);
- }
- }
-
- // @see org.gudy.azureus2.plugins.ui.tables.TableCellDisposeListener#dispose(org.gudy.azureus2.plugins.ui.tables.TableCell)
- public void dispose(TableCell cell) {
- synchronized (cells) {
- cells.remove(cell);
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_InvalidOnly.java b/test/src/com/vuze/tests/swt/tableview/CT_InvalidOnly.java
deleted file mode 100644
index 7077c7d..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_InvalidOnly.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.plugins.ui.tables.TableCell;
-import org.gudy.azureus2.plugins.ui.tables.TableCellRefreshListener;
-import org.gudy.azureus2.plugins.ui.tables.TableColumn;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_InvalidOnly
- extends CoreTableColumn
- implements TableCellRefreshListener, TableCellSWTPaintListener
-{
- public static String name = new Object() { }.getClass().getEnclosingClass().getSimpleName();
- private static String ID_TICS = name + ".num1";
- private static String ID_CELLPAINTS = name + ".numCP";
-
- public CT_InvalidOnly() {
- super(name, 110, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_INVALID_ONLY);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0) + 1;
- ds.map.put(ID_TICS, num);
-
- cell.setSortValue(0);
- cell.setText(Integer.toString(num));
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_CELLPAINTS, 0) + 1;
- ds.map.put(ID_CELLPAINTS, num);
- GCStringPrinter.printString(gc, Integer.toString(num), cell.getBounds(), true, true,
- SWT.RIGHT);
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_Live.java b/test/src/com/vuze/tests/swt/tableview/CT_Live.java
deleted file mode 100644
index cfb8d37..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_Live.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.core3.util.Debug;
-import org.gudy.azureus2.plugins.ui.tables.TableCell;
-import org.gudy.azureus2.plugins.ui.tables.TableCellRefreshListener;
-import org.gudy.azureus2.plugins.ui.tables.TableColumn;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_Live
- extends CoreTableColumn
- implements TableCellRefreshListener,
- TableCellSWTPaintListener
-{
- public static String name = new Object() { }.getClass().getEnclosingClass().getSimpleName();
- private static String ID_CELLPAINTS = name + ".numCP";
-
- public CT_Live() {
- super(name, 110, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_LIVE);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, name + ".num1", 0) + 1;
- ds.map.put(name + ".num1", num);
-
- cell.setSortValue(num);
- cell.setText(Integer.toString(num));
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- int num = MapUtils.getMapInt(ds.map, ID_CELLPAINTS, 0) + 1;
- ds.map.put(ID_CELLPAINTS, num);
- GCStringPrinter.printString(gc, "p=" + Integer.toString(num), cell.getBounds(), true, true, SWT.RIGHT);
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_LiveExt.java b/test/src/com/vuze/tests/swt/tableview/CT_LiveExt.java
deleted file mode 100644
index d28ad38..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_LiveExt.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.plugins.ui.tables.*;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_LiveExt
- extends CoreTableColumn
- implements TableCellRefreshListener,
- TableCellSWTPaintListener,
- TableCellAddedListener,
- TableCellDisposeListener
-{
- public static String name = new Object() { }.getClass().getEnclosingClass().getSimpleName();
- private static Timer timer;
- private static List<TableCell> cells = new ArrayList<TableCell>();
- private static String ID_TICS = name + ".num1";
- private static String ID_CELLPAINTS = name + ".numCP";
- private static String ID_REFRESHES = name + ".num2";
-
- static {
- timer = new Timer("Simple Timer", 1);
-
- timer.setIndestructable();
-
- timer.setWarnWhenFull();
-
- timer.addEvent("updateLiveExt", SystemTime.getOffsetTime(1000), new TimerEventPerformer() {
- public void perform(TimerEvent event) {
- TableCell[] array = cells.toArray(new TableCell[0]);
- for (TableCell cell : array) {
- if (cell.isDisposed()) {
- synchronized (cells) {
- cells.remove(cell);
- }
- continue;
- }
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0) + 1;
- ds.map.put(ID_TICS, num);
- cell.invalidate();
- }
-
- timer.addEvent("updateLiveExt", SystemTime.getOffsetTime(1000), this);
- }
- });
- }
-
- public CT_LiveExt() {
- super(name, 190, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_LIVE);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0);
-
- int num2 = MapUtils.getMapInt(ds.map, ID_REFRESHES, 0) + 1;
- ds.map.put(ID_REFRESHES, num2);
-
- cell.setSortValue(0);
- cell.setText("tics=" + num + ";refr=" + num2);
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_CELLPAINTS, 0) + 1;
- ds.map.put(ID_CELLPAINTS, num);
- //System.out.println("draw " + cell.getBounds());
- GCStringPrinter.printString(gc, "" + num, cell.getBounds(), true, true, SWT.RIGHT);
- }
-
- public void cellAdded(final TableCell cell) {
- if (cell == null) {
- System.out.println("CELL NULL? " + Debug.getCompressedStackTrace());
- }
- synchronized (cells) {
- cells.add(cell);
- }
- }
-
- // @see org.gudy.azureus2.plugins.ui.tables.TableCellDisposeListener#dispose(org.gudy.azureus2.plugins.ui.tables.TableCell)
- public void dispose(TableCell cell) {
- synchronized (cells) {
- cells.remove(cell);
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_LivePaintOnly.java b/test/src/com/vuze/tests/swt/tableview/CT_LivePaintOnly.java
deleted file mode 100644
index 36cd055..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_LivePaintOnly.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.plugins.ui.tables.TableCell;
-import org.gudy.azureus2.plugins.ui.tables.TableCellRefreshListener;
-import org.gudy.azureus2.plugins.ui.tables.TableColumn;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_LivePaintOnly
- extends CoreTableColumn
- implements TableCellRefreshListener, TableCellSWTPaintListener
-{
- public static String name = new Object() {
- }.getClass().getEnclosingClass().getSimpleName();
-
- private static String ID_CELLPAINTS = name + ".numCP";
-
- private static String ID_CELLREFRESHES = name + ".numR";
-
- public CT_LivePaintOnly() {
- super(name, 110, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_LIVE);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_CELLREFRESHES, 0) + 1;
- ds.map.put(ID_CELLREFRESHES, num);
-
- cell.setSortValue(num);
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- int numP = MapUtils.getMapInt(ds.map, ID_CELLPAINTS, 0) + 1;
- int numR = MapUtils.getMapInt(ds.map, ID_CELLREFRESHES, 0);
- ds.map.put(ID_CELLPAINTS, numP);
- GCStringPrinter.printString(gc, "r=" + Integer.toString(numR) + ";p="
- + Integer.toString(numP), cell.getBounds(), true, true, SWT.RIGHT);
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_LivePaintOnlyExt.java b/test/src/com/vuze/tests/swt/tableview/CT_LivePaintOnlyExt.java
deleted file mode 100644
index c05387d..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_LivePaintOnlyExt.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-
-import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.plugins.ui.tables.*;
-import org.gudy.azureus2.ui.swt.shells.GCStringPrinter;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_LivePaintOnlyExt
- extends CoreTableColumn
- implements TableCellRefreshListener, TableCellSWTPaintListener,
- TableCellAddedListener, TableCellDisposeListener
-{
- public static String name = new Object() {
- }.getClass().getEnclosingClass().getSimpleName();
-
- private static Timer timer;
-
- private static List<TableCell> cells = new ArrayList<TableCell>();
-
- private static String ID_TICS = name + ".num1";
-
- private static String ID_CELLPAINTS = name + ".numCP";
-
- private static String ID_CELLREFRESHES = name + ".numR";
-
- static {
- timer = new Timer("Simple Timer", 1);
-
- timer.setIndestructable();
-
- timer.setWarnWhenFull();
-
- timer.addEvent("updateLivePOExt", SystemTime.getOffsetTime(1000),
- new TimerEventPerformer() {
- public void perform(TimerEvent event) {
- TableCell[] array = cells.toArray(new TableCell[0]);
- for (TableCell cell : array) {
- if (cell.isDisposed()) {
- synchronized (cells) {
- cells.remove(cell);
- }
- continue;
- }
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0) + 1;
- ds.map.put(ID_TICS, num);
- cell.invalidate();
- }
- timer.addEvent("updateLiveExt", SystemTime.getOffsetTime(1000),
- this);
- }
- });
- }
-
- public CT_LivePaintOnlyExt() {
- super(name, 110, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_LIVE);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_CELLREFRESHES, 0) + 1;
- ds.map.put(ID_CELLREFRESHES, num);
-
-// cell.setSortValue(num);
- }
-
- public void cellPaint(GC gc, TableCellSWT cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
- int numP = MapUtils.getMapInt(ds.map, ID_CELLPAINTS, 0) + 1;
- int numR = MapUtils.getMapInt(ds.map, ID_CELLREFRESHES, 0);
- int numT = MapUtils.getMapInt(ds.map, ID_TICS, 0);
- ds.map.put(ID_CELLPAINTS, numP);
- GCStringPrinter.printString(gc, "t=" + Integer.toString(numT) + ";r=" + Integer.toString(numR) + ";p="
- + Integer.toString(numP), cell.getBounds(), true, true, SWT.RIGHT);
- }
-
- public void cellAdded(final TableCell cell) {
- synchronized (cells) {
- cells.add(cell);
- }
- }
-
- // @see org.gudy.azureus2.plugins.ui.tables.TableCellDisposeListener#dispose(org.gudy.azureus2.plugins.ui.tables.TableCell)
- public void dispose(TableCell cell) {
- synchronized (cells) {
- cells.remove(cell);
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/CT_Text.java b/test/src/com/vuze/tests/swt/tableview/CT_Text.java
deleted file mode 100644
index 7008179..0000000
--- a/test/src/com/vuze/tests/swt/tableview/CT_Text.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import org.gudy.azureus2.plugins.ui.tables.*;
-import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;
-
-import com.aelitis.azureus.util.MapUtils;
-
-public class CT_Text
- extends CoreTableColumn
- implements TableCellRefreshListener, TableCellAddedListener
-{
- public static String name = new Object() { }.getClass().getEnclosingClass().getSimpleName();
- private static String ID_TICS = name + ".num1";
-
- public CT_Text() {
- super(name, 110, "test");
- addDataSourceType(TableViewTestDS.class);
- setRefreshInterval(TableColumn.INTERVAL_INVALID_ONLY);
- setVisible(true);
- }
-
- public void refresh(TableCell cell) {
- TableViewTestDS ds = (TableViewTestDS) cell.getDataSource();
-
- int num = MapUtils.getMapInt(ds.map, ID_TICS, 0) + 1;
- ds.map.put(ID_TICS, num);
-
- cell.setText((String) ds.map.get("text"));
- }
-
- public void cellAdded(TableCell cell) {
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/TableViewTestDS.java b/test/src/com/vuze/tests/swt/tableview/TableViewTestDS.java
deleted file mode 100644
index 8fa5c5f..0000000
--- a/test/src/com/vuze/tests/swt/tableview/TableViewTestDS.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class TableViewTestDS
-{
- Map<String, Object> map = new HashMap<String, Object>();
-
- public TableViewTestDS() {
- map.put("text", getRandomWord());
- }
-
-
- private static String getRandomWord() {
- int len = (int) (Math.random() * 10) + 2;
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < len; i ++) {
- double f = Math.random();
- char c;
- if (f < 0.1) {
- c = (char) ((Math.random() * 12) + '0');
- } else if (f < 0.2) {
- c = (char) ((Math.random() * 26) + 'A');
- } else if (f < 0.98) {
- c = (char) ((Math.random() * 26) + 'a');
- } else {
- c = ' ';
- }
- sb.append(c);
- }
- return sb.toString();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/testTableView.java b/test/src/com/vuze/tests/swt/tableview/testTableView.java
deleted file mode 100644
index efbd931..0000000
--- a/test/src/com/vuze/tests/swt/tableview/testTableView.java
+++ /dev/null
@@ -1,589 +0,0 @@
-package com.vuze.tests.swt.tableview;
-
-import java.util.List;
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.gudy.azureus2.core3.config.COConfigurationManager;
-import org.gudy.azureus2.core3.internat.MessageText;
-import org.gudy.azureus2.core3.util.*;
-import org.gudy.azureus2.plugins.ui.UIInputReceiver;
-import org.gudy.azureus2.plugins.ui.UIInputReceiverListener;
-import org.gudy.azureus2.ui.swt.SimpleTextEntryWindow;
-import org.gudy.azureus2.ui.swt.UIConfigDefaultsSWT;
-import org.gudy.azureus2.ui.swt.Utils;
-import org.gudy.azureus2.ui.swt.mainwindow.Colors;
-import org.gudy.azureus2.ui.swt.views.table.TableViewSWT;
-import org.gudy.azureus2.ui.swt.views.table.TableViewSWTMenuFillListener;
-import org.gudy.azureus2.ui.swt.views.table.impl.TableViewFactory;
-import org.gudy.azureus2.ui.swt.views.table.painted.TableViewPainted;
-
-import com.aelitis.azureus.ui.common.table.*;
-import com.aelitis.azureus.ui.common.table.impl.TableColumnManager;
-import com.aelitis.azureus.ui.common.updater.UIUpdatable;
-import com.aelitis.azureus.ui.swt.columns.utils.TableColumnCreatorV3;
-import com.aelitis.azureus.ui.swt.uiupdater.UIUpdaterSWT;
-
-public class testTableView
-{
- private static TableViewSWT tv;
-
- private static boolean pause = true;
-
- private static boolean printDiff;
-
- private static int numChaos = 6;
- private static Thread[] chaosThreads;
-
- @SuppressWarnings({
- "unchecked",
- "rawtypes"
- })
- public static void main(String[] args) {
- Display display = new Display();
- FormData fd;
-
-
- COConfigurationManager.initialise();
- COConfigurationManager.setParameter("Table.useTree", true);
- COConfigurationManager.setParameter("Table.extendedErase", true);
- //COConfigurationManager.setParameter("GUI Refresh", 15000);
- UIConfigDefaultsSWT.initialize();
-
- Colors.getInstance();
-
- ResourceBundle bundle = ResourceBundle.getBundle("com.vuze.tests.swt.tableview.text");
- MessageText.integratePluginMessages(bundle);
-
- TableColumnCreatorV3.initCoreColumns();
-
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setText("testTableView");
- shell.setSize(800, 400);
- FormLayout fl = new FormLayout();
- shell.setLayout(fl);
-
- Composite cTop = new Composite(shell, SWT.BORDER);
-
- Composite cTV = new Composite(shell, SWT.BORDER);
-
- Composite cBottom = new Composite(shell, SWT.BORDER);
- Composite cToggles = new Composite(shell, SWT.BORDER);
-
- fd = Utils.getFilledFormData();
- fd.bottom = null;
- cTop.setLayoutData(fd);
-
- fd = Utils.getFilledFormData();
- fd.top = new FormAttachment(cTop, 5);
- fd.bottom = new FormAttachment(cToggles, -5);
- cTV.setLayout(new FillLayout());
- cTV.setLayoutData(fd);
-
- fd = Utils.getFilledFormData();
- fd.top = null;
- fd.bottom = new FormAttachment(cBottom);
- cToggles.setLayout(new RowLayout());
- cToggles.setLayoutData(fd);
-
- fd = Utils.getFilledFormData();
- fd.top = null;
- cBottom.setLayout(new RowLayout());
- cBottom.setLayoutData(fd);
-
- TableColumnCore[] columns = {
- new CT_ID(),
- new CT_Text(),
- new CT_InvalidOnly(),
- new CT_Live(),
- new CT_LivePaintOnly(),
- new CT_LivePaintOnlyExt(),
- new CT_LiveExt(),
- new CT_InvOnlyExt(),
- new CT_InvOnlyReord(),
- };
-
- TableColumnManager tcm = com.aelitis.azureus.ui.common.table.impl.TableColumnManager.getInstance();
- tcm.addColumns(columns);
- String names[] = new String[columns.length];
- for (int i = 0; i < columns.length; i++) {
- TableColumnCore c = columns[i];
- names[i] = c.getName();
- }
- tcm.setDefaultColumnNames("test", names);
-
- tv = TableViewFactory.createTableViewSWT(true, TableViewTestDS.class,
- "test", "", columns, CT_ID.name, SWT.MULTI | SWT.FULL_SELECTION
- | SWT.VIRTUAL | SWT.CASCADE);
-
- tv.initialize(cTV);
-
- tv.setRowDefaultHeight(40);
- // tv.setRowDefaultHeight(16);
-
- tv.addCountChangeListener(new TableCountChangeListener() {
- public void rowRemoved(TableRowCore row) {
- }
-
- public void rowAdded(TableRowCore row) {
- //row.setHeight((int) (16 + (Math.random() * 100)));
- }
- });
-
- tv.addSelectionListener(new TableSelectionListener() {
- public void selected(TableRowCore[] row) {
- }
-
- public void mouseExit(TableRowCore row) {
- }
-
- public void mouseEnter(TableRowCore row) {
- }
-
- public void focusChanged(TableRowCore focus) {
- }
-
- public void deselected(TableRowCore[] rows) {
- }
-
- public void defaultSelected(TableRowCore[] rows, int stateMask) {
- System.out.println("Selected " + rows.length);
- }
- }, false);
-
- //addRows(500);
-
- tv.addKeyListener(new KeyListener() {
-
- public void keyReleased(KeyEvent e) {
- }
-
- public void keyPressed(KeyEvent e) {
- if (e.keyCode == SWT.DEL) {
- System.out.println("SMURF");
- List<Object> sources = tv.getSelectedDataSources();
- int count = sources.size();
- if (count == 0) {
- return;
- }
- tv.removeDataSources(sources.toArray());
-// int i = tv.getRow((TableViewTestDS) sources.get(count - 1)).getIndex();
-// if (i >= tv.getRowCount() - 1) {
-// i -= count;
-// } else {
-// i++;
-// }
-// TableRowCore[] newSelRows = i < 0 || i >= tv.getRowCount()
-// ? new TableRowCore[0] : new TableRowCore[] {
-// tv.getRow(i)
-// };
-// tv.removeDataSources(sources.toArray(new TableViewTestDS[0]));
-// tv.setSelectedRows(newSelRows);
- } else if (e.keyCode == SWT.INSERT) {
- TableViewTestDS ds = new TableViewTestDS();
- ds.map.put("ID", new Double(3.1));
- tv.addDataSource(ds);
- }
- }
- });
-
- tv.addMenuFillListener(new TableViewSWTMenuFillListener() {
-
- public void fillMenu(String sColumnName, Menu menu) {
- MenuItem menuItem = new MenuItem(menu, SWT.PUSH);
- menuItem.setText("MenuFrom fillMenu");
- }
-
- public void addThisColumnSubMenu(String sColumnName, Menu menuThisColumn) {
- MenuItem menuItem = new MenuItem(menuThisColumn, SWT.PUSH);
- menuItem.setText("MenuFrom addThisColumnSubMenu");
- }
- });
-
- UIUpdaterSWT.getInstance().addUpdater(new UIUpdatable() {
-
- public void updateUI() {
- if (pause) {
- return;
- }
- tv.refreshTable(false);
- }
-
- public String getUpdateUIName() {
- return "tableTest";
- }
- });
-
- Button btnPauseRefresh = new Button(cToggles, SWT.TOGGLE);
- btnPauseRefresh.setText("Pause Refresh");
- btnPauseRefresh.setSelection(pause);
- btnPauseRefresh.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- pause = !pause;
-/*
- SimpleTimer.addEvent("YourKitS", SystemTime.getOffsetTime(1000l * 9),
- new TimerEventPerformer() {
- public void perform(TimerEvent event) {
- try {
- Controller controller;
- controller = new Controller();
- System.out.println("STARTING");
- controller.startCPUProfiling(ProfilingModes.CPU_TRACING,
- Controller.DEFAULT_FILTERS,
- Controller.DEFAULT_WALLTIME_SPEC);
- System.out.println("STARTED");
-
- SimpleTimer.addEvent("YourKitE",
- SystemTime.getOffsetTime(1000l * 60),
- new TimerEventPerformer() {
- public void perform(TimerEvent event) {
- try {
- Controller controller;
- controller = new Controller();
- controller.stopCPUProfiling();
- System.out.println("STOPPED");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
-*/
- }
- });
-
- chaosThreads = new Thread[numChaos];
- for (int i = 0; i < numChaos; i++) {
- final boolean[] enabled = { false };
- final Thread thread = chaosThreads[i] = new Thread("Chaos " + i) {
- public void run() {
- while (!enabled[0]) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- while (enabled[0]) {
- if (Math.random() > 0.5) {
- rndDel((int) (Math.random() * 100));
- } else {
- rndInsert((int) (Math.random() * 100));
- }
-
- if (!enabled[0]) {
- break;
- }
-
- long sleepFor = (long) (Math.random() * 200);
-
- try {
- Thread.sleep(sleepFor);
- } catch (InterruptedException e) {
- }
- }
- }
- };
- thread.setDaemon(true);
- thread.start();
- final Button btnRndChaos = new Button(cToggles, SWT.TOGGLE);
- btnRndChaos.setText("RndChaos " + i);
- btnRndChaos.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- enabled[0] = btnRndChaos.getSelection();
- }
- });
- }
-
-
- /////////////
-
- Button btnAdd1 = new Button(cBottom, SWT.PUSH);
- btnAdd1.setText("Add 1");
- btnAdd1.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- addRows(1);
- }
- });
-
- Button btnAdd10 = new Button(cBottom, SWT.PUSH);
- btnAdd10.setText("Add 10");
- btnAdd10.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- addRows(10);
- }
- });
-
- Button btnAdd100 = new Button(cBottom, SWT.PUSH);
- btnAdd100.setText("Add 100");
- btnAdd100.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- addRows(100);
- }
- });
-
- Button btnAddX = new Button(cBottom, SWT.PUSH);
- btnAddX.setText("Add...");
- btnAddX.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow("!Add!",
- "!How Many?!");
- entryWindow.prompt(new UIInputReceiverListener() {
- public void UIInputReceiverClosed(UIInputReceiver receiver) {
- if (receiver.hasSubmittedInput()) {
- final int parseInt = Integer.parseInt(receiver.getSubmittedInput());
- Utils.getOffOfSWTThread(new AERunnable() {
- public void runSupport() {
- addRows(parseInt);
- }
- });
- }
- }
- });
- }
- });
-
- Button btnAddSame = new Button(cBottom, SWT.PUSH);
- btnAddSame.setText("Add 5 Same + 1");
- btnAddSame.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- List<TableViewTestDS> dataSources = tv.getDataSources();
- int i = 0;
- int count = 5;
- TableViewTestDS[] add = new TableViewTestDS[count + 1];
- for (TableViewTestDS ds : dataSources) {
- add[i++] = ds;
- if (i >= count) {
- break;
- }
- }
- add[i] = new TableViewTestDS();
- tv.addDataSources(add);
- }
- });
-
- Button btnAddSubs = new Button(cBottom, SWT.PUSH);
- btnAddSubs.setText("Add Subs to Selected");
- btnAddSubs.setSelection(pause);
- btnAddSubs.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- addSubs(-1);
- }
- });
-
- Button btnAddXSubs = new Button(cBottom, SWT.PUSH);
- btnAddXSubs.setText("Add Subs...");
- btnAddXSubs.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow("!Add Subs!",
- "!How Many?!");
- entryWindow.prompt(new UIInputReceiverListener() {
- public void UIInputReceiverClosed(UIInputReceiver receiver) {
- if (receiver.hasSubmittedInput()) {
- int parseInt = Integer.parseInt(receiver.getSubmittedInput());
- addSubs(parseInt);
- }
- }
- });
- }
- });
-
-
- Button btnClear = new Button(cBottom, SWT.PUSH);
- btnClear.setText("Clear");
- btnClear.setSelection(pause);
- btnClear.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- tv.removeAllTableRows();
- }
- });
-
- Button btnManualRefresh = new Button(cBottom, SWT.PUSH);
- btnManualRefresh.setText("Manual Refresh");
- btnManualRefresh.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- tv.refreshTable(false);
- }
- });
-
- Button btnRedraw = new Button(cBottom, SWT.PUSH);
- btnRedraw.setText("redraw");
- btnRedraw.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- Composite composite = tv.getComposite();
- Rectangle ca = composite.getClientArea();
- composite.redraw(ca.x, ca.y, ca.width, ca.height, true);
- composite.update();
- }
- });
- Button btnRedraw1 = new Button(cBottom, SWT.PUSH);
- btnRedraw1.setText("redraw1");
- btnRedraw1.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- ((TableViewPainted) tv).swt_updateCanvasImage(false);
- }
- });
-
- Button btnRndInsert = new Button(cBottom, SWT.PUSH);
- btnRndInsert.setText("RndInsert");
- btnRndInsert.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- rndInsert(1);
- }
- });
-
- Button btnRndDel = new Button(cBottom, SWT.PUSH);
- btnRndDel.setText("RndDel");
- btnRndDel.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- rndDel(1);
- }
- });
-
- Button btnRndDel5 = new Button(cBottom, SWT.PUSH);
- btnRndDel5.setText("RndDelx5");
- btnRndDel5.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- rndDel(5);
- }
- });
-
- Button btnRndAddDell5 = new Button(cBottom, SWT.PUSH);
- btnRndAddDell5.setText("RndAddDelx5");
- btnRndAddDell5.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- rndInsert(5);
- rndDel(5);
- }
- });
-
- Button chkPrintDiff = new Button(cBottom, SWT.CHECK);
- chkPrintDiff.setText("PrintDiff");
- chkPrintDiff.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- printDiff = !printDiff;
- }
- });
-
-
-
-
- //////////////////
-
-
-
- cTop.setLayout(new FillLayout());
- Text txtFilter = new Text(cTop, SWT.BORDER);
- tv.enableFilterCheck(txtFilter, new TableViewFilterCheck() {
- public void filterSet(String filter) {
- System.out.println("Filter set to " + filter.length() + "; " + filter);
- }
-
- public boolean filterCheck(Object ds, String filter, boolean regex) {
- if (filter == null || filter.length() == 0) {
- return true;
- }
- if (ds instanceof TableViewTestDS) {
- TableViewTestDS tds = (TableViewTestDS) ds;
- String s = (String) tds.map.get("text");
- if (s == null || s.length() == 0) {
- System.out.println("BURP");
- return true;
- }
- return s.contains(filter);
- }
- return true;
- }
- });
-
-
- //////////////////
-
- shell.open();
-
- while (!shell.isDisposed()) {
- try {
- long last = System.currentTimeMillis();
-
- while (!display.isDisposed() && display.readAndDispatch())
- ;
- if (display.isDisposed()) {
- return;
- }
-
- long now = System.currentTimeMillis();
- long diff = now - last;
- last = now;
-
- if (diff > 1 && printDiff) {
- System.out.println(diff);
- }
-
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- }
-
- protected static void addSubs(int num) {
- TableRowCore[] selectedRows = tv.getSelectedRows();
- for (TableRowCore row : selectedRows) {
- if (num < 0) {
- num = (int) (Math.random() * (-num));
- }
- //row.setSubItemCount(num);
- TableViewTestDS[] subitems = new TableViewTestDS[num];
- for (int i = 0; i < num; i++) {
- TableViewTestDS ds = new TableViewTestDS();
- ds.map.put("ID", new Double(i));
- subitems[i] = ds;
- }
- row.setSubItems(subitems);
- row.setExpanded(true);
- }
- }
-
- private static void addRows(int num) {
- for (int i = 0; i < num; i++) {
- tv.addDataSource(new TableViewTestDS());
- }
- }
-
- protected static void rndDel(int num) {
- int size = tv.size(false);
- if (size <= 0) {
- return;
- }
- TableViewTestDS[] ds = new TableViewTestDS[num];
- for (int i = 0; i < ds.length; i++) {
- int pos = (int) (Math.random() * size);
- TableRowCore row = tv.getRowQuick(pos);
- if (row != null) {
- ds[i] = (TableViewTestDS) row.getDataSource(true);
- }
- }
- tv.removeDataSources(ds);
- }
-
- protected static void rndInsert(int num) {
- for (int i = 0; i < num; i++) {
- int size = tv.size(false);
- double pos = Math.random() * size;
- TableViewTestDS ds = new TableViewTestDS();
- ds.map.put("ID", new Double(pos));
- tv.addDataSource(ds);
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/tableview/text.properties b/test/src/com/vuze/tests/swt/tableview/text.properties
deleted file mode 100644
index 2dd1c27..0000000
--- a/test/src/com/vuze/tests/swt/tableview/text.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-TableColumn.header.CT_ID=ID
-TableColumn.header.CT_InvalidOnly=Invalid Only
-TableColumn.header.CT_InvOnlyExt=Invalid Only w/Timer
-TableColumn.header.CT_InvOnlyReord=rndVal;Invalid Only w/Timer
-TableColumn.header.CT_Live=Live
-TableColumn.header.CT_LiveExt=Live w/Timer
-TableColumn.header.CT_LivePaintOnly=Live (Only Paints)
-TableColumn.header.CT_Text=Random Text
\ No newline at end of file
diff --git a/test/src/com/vuze/tests/swt/testAppModal.java b/test/src/com/vuze/tests/swt/testAppModal.java
deleted file mode 100644
index 161434d..0000000
--- a/test/src/com/vuze/tests/swt/testAppModal.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testAppModal
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- shellMain.setLayout(new FillLayout());
-
- final Label label = new Label(shellMain, SWT.NONE);
- label.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));
- label.setText("Main");
-
-
- final Shell shellModal = new Shell(shellMain, SWT.SHELL_TRIM | SWT.PRIMARY_MODAL);
- Button btnAbove = new Button(shellModal, SWT.PUSH);
- btnAbove.setText("PUSH");
- shellModal.setLayout(new FillLayout());
-
- shellModal.open();
-
-
- final Shell shell2 = new Shell(shellMain, SWT.SHELL_TRIM);
- shell2.setText("NonModal");
- shell2.open();
-
- btnAbove.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- shellModal.moveAbove(null);
- shellModal.forceActive();
- }
- });
-
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testBrowserDispose.java b/test/src/com/vuze/tests/swt/testBrowserDispose.java
deleted file mode 100644
index a6cabe4..0000000
--- a/test/src/com/vuze/tests/swt/testBrowserDispose.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.vuze.tests.swt;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testBrowserDispose
-{
-
- static Browser b2;
-
- public static void main(String[] args) {
- Display display = new Display();
- final Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- final Browser b1 = new Browser(shell, SWT.NONE);
- b1.setUrl("http://vuze.com/welcome.start");
-
- Button btn = new Button(shell, SWT.PUSH);
- btn.setText("add/remove");
-
- b2 = new Browser(shell, SWT.NONE);
- b2.setUrl("http://vuze.com/browse.start");
-
- btn.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (b2.isDisposed()) {
- b2 = new Browser(shell, SWT.NONE);
- b2.setUrl("http://vuze.com/browse.start");
- shell.layout();
- } else {
- //b2.setUrl("about:blank");
- //b2.setVisible(false);
- b2.dispose();
- }
- }
- });
-
- shell.open();
-
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ())
- display.sleep ();
- }
- display.dispose ();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testBrowserFunc.java b/test/src/com/vuze/tests/swt/testBrowserFunc.java
deleted file mode 100644
index 88e9323..0000000
--- a/test/src/com/vuze/tests/swt/testBrowserFunc.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package com.vuze.tests.swt;
-
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.BrowserFunction;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-import org.bouncycastle.util.Strings;
-import org.gudy.azureus2.core3.config.COConfigurationManager;
-import org.gudy.azureus2.core3.util.AERunnable;
-import org.gudy.azureus2.ui.swt.Utils;
-
-import com.aelitis.azureus.core.AzureusCore;
-import com.aelitis.azureus.core.AzureusCoreFactory;
-import com.aelitis.azureus.core.AzureusCoreLifecycleAdapter;
-
-public class testBrowserFunc
-{
-
- public static void main(String[] args) {
- Display display = new Display();
-
- AzureusCore core = AzureusCoreFactory.create();
- core.addLifecycleListener(new AzureusCoreLifecycleAdapter() {
- public void started(final AzureusCore core) {
- Utils.execSWTThread(new AERunnable() {
- public void runSupport() {
- open(core);
- }
-
- });
- }
- });
- core.start();
-
- while (!display.isDisposed ()) {
- if (!display.readAndDispatch ())
- display.sleep ();
- }
-
- }
-
- private static void open(final AzureusCore core) {
-
-
- Display display = Display.getDefault();
- final Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- final Browser b1 = new Browser(shell, SWT.NONE);
-
- String s = "" +
- "<SCRIPT type=\"text/javascript\">" +
- "" +
- "var btapp = {" +
- "peer_id : eval(bt2vuze('peer_id')), " +
- "settings : \n {" +
- " all : function() { return eval(bt2vuze('settings.all')) }, \n" +
- " keys : function() { return eval(bt2vuze('settings.keys')) }, \n" +
- " get : function(key) { return eval(bt2vuze('settings.get', key)) }, \n" +
- " set : function(key, val) { return eval(bt2vuze('settings.set', key, val)) }, \n" +
- "},\n" +
- "add : \n {" +
- " torrent : function(tor) { return eval(bt2vuze('add.torrent', tor)) }, \n" +
- " rss_feed : function() { return eval(bt2vuze('add.rss_feed')) }, \n" +
- " rss_filter : function() { return eval(bt2vuze('add.rss_filter')) }, \n" +
- "},\n" +
- "events : \n {" +
- " set : function(key, func) { return eval(bt2vuze('events.set', key, func)) }, \n" +
- "},\n" +
- "torrent : \n {" +
- " all : function() { return eval(bt2vuze('torrent.all')) }, \n" +
- " keys : function() { return eval(bt2vuze('torrent.keys')) }, \n" +
- " get : function(key) { return eval(bt2vuze('torrent.get', key)) }, \n" +
- "},\n" +
- "}\n" +
-// "var foo =btapp.peer_id; " +
-// "alert(foo);\n" +
-// "alert(btapp.settings.all());\n" +
- "</script>\n" +
- "<A HREF=\"\" ONCLICK=\"alert(btapp.peer_id); return false;\">peer_id</A><BR>" +
- "<A HREF=\"\" ONCLICK=\"alert(btapp.settings.all()); return false;\">settings.all()</A><BR>" +
- "<A HREF=\"\" ONCLICK=\"alert(btapp.settings.keys()); return false;\">settings.keys()</A><BR>" +
- "<A HREF=\"\" ONCLICK=\"alert(btapp.settings.get('max_downloads')); return false;\">settings.get('max_downloads')</A><BR>" +
- "<A HREF=\"\" ONCLICK=\"var foo = btapp.settings.all(); alert(foo.toString()); return false;\">Test1</A><BR>" +
- "<A HREF=\"\" ONCLICK=\"alert(String(btapp.settings.all())); return false;\">Test1</A><BR>" +
- "<A HREF=\"\" ONCLICK=\"alert(btapp.settings.all()); return false;\">Test1</A><BR>" +
- "";
-
-
- new BrowserFunction(b1, "btapp") {
- public Object function(Object[] arguments) {
- System.out.println("GOO");
- return "{ id : 'foo' }";
- }
- };
-
- new BrowserFunction(b1, "bt2vuze_peer_id") {
- public Object function(Object[] arguments) {
- System.out.println("GOO");
- return "({ id : \"foo\" })";
- }
- };
- new BrowserFunction(b1, "bt2vuze") {
-
- public Object function(Object[] arguments) {
- if (arguments.length == 0) {
- return null;
- }
- if (!(arguments[0] instanceof String)) {
- return null;
- }
- String func = (String) arguments[0];
- String result = process(func, arguments);
- System.out.println("Func " + Arrays.toString(arguments) + ": " + result);
- return result;
- }
-
- private String process(String func, Object[] args) {
- String lfunc = func.toLowerCase();
- if (lfunc.equals("peer_id")) {
- // We generate peer_id per torrent.. so just fudge this
- return "('VuzeConstantPeerID')";
- } else if (lfunc.equals("settings.all")) {
- StringBuffer sb = new StringBuffer();
- sb.append("({");
- Map<String, Object> allSettings = getAllSettings();
- boolean first = true;
- for (Iterator<String> iter = allSettings.keySet().iterator(); iter.hasNext();) {
- String key = iter.next();
- if (first) {
- first = false;
- } else {
- sb.append(", ");
- }
- sb.append('\"');
- sb.append(key);
- sb.append("\" : \"");
- sb.append(allSettings.get(key));
- sb.append('\"');
- }
- sb.append("})");
- return sb.toString();
- } else if (lfunc.equals("settings.keys")) {
- StringBuffer sb = new StringBuffer();
- sb.append("([");
- Map<String, Object> allSettings = getAllSettings();
- boolean first = true;
- for (Iterator<String> iter = allSettings.keySet().iterator(); iter.hasNext();) {
- String key = iter.next();
- if (first) {
- first = false;
- } else {
- sb.append(", ");
- }
- sb.append('\"');
- sb.append(key);
- sb.append('\"');
- }
- sb.append("])");
- return sb.toString();
- } else if (lfunc.equals("settings.get")) {
- Map<String, Object> allSettings = getAllSettings();
- Object object = allSettings.get(args[1]);
-
-
- StringBuffer sb = new StringBuffer();
- sb.append("(\"");
- sb.append(object);
- sb.append("\")");
- return sb.toString();
- } else if (lfunc.equals("settings.set")) {
- } else if (lfunc.equals("add.torrent")) {
- }
- return null;
- }
- };
-
- shell.open();
-
-
- b1.setText(s);
-
-
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ())
- display.sleep ();
- }
- display.dispose ();
- core.stop();
-
- }
-
- protected static Map<String, Object> getAllSettings() {
- Map<String, Object> map = new HashMap<String, Object>();
- String[] keys = { "max_downloads", "max downloads" };
- for (int i = 0; i < keys.length; i += 2) {
- String btKey = keys[i];
- String azKey = keys[i + 1];
- map.put(btKey, COConfigurationManager.getParameter(azKey));
- }
- return map;
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testGroupBG.java b/test/src/com/vuze/tests/swt/testGroupBG.java
deleted file mode 100644
index 87c6e66..0000000
--- a/test/src/com/vuze/tests/swt/testGroupBG.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-public class testGroupBG
-{
- public static void main(String[] args) {
- Display display = new Display();
- Color color = new Color(display, 180, 180, 200);
-
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- Composite c1 = new Composite(shell, SWT.NONE);
- c1.setLayout(new FillLayout());
- c1.setBackground(color);
- c1.setBackgroundMode(SWT.INHERIT_DEFAULT);
-
- Composite c2 = new Composite(shell, SWT.NONE);
- c2.setLayout(new FillLayout());
- c2.setBackgroundMode(SWT.INHERIT_DEFAULT);
-
- makeGroup(c1, "Group Test (BG)");
- makeGroup(c2, "Group Test (No BG)");
-
- shell.open();
- while (!shell.isDisposed())
- if (!display.readAndDispatch())
- display.sleep();
- }
-
- private static void makeGroup(Composite parent, String title) {
- Group group = new Group(parent, SWT.NONE);
- group.setText(title);
- group.setLayout(new RowLayout());
-
- String s = "This is a line on SWT " + SWT.getPlatform() + "/"
- + SWT.getVersion();
- for (int i = 0; i < 10; i++) {
- new Label(group, SWT.LEFT).setText(s);
- new Button(group, SWT.CHECK).setText("Checkbox");
- }
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testLabelMouseUp.java b/test/src/com/vuze/tests/swt/testLabelMouseUp.java
deleted file mode 100644
index 6c075cd..0000000
--- a/test/src/com/vuze/tests/swt/testLabelMouseUp.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testLabelMouseUp
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- final Button checkbox = new Button(shell, SWT.CHECK);
- checkbox.setSelection(true);
- checkbox.setText("SetImage in MouseDown");
-
- final Label label = new Label(shell, SWT.NONE);
- label.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));
- label.setText("Click Me");
-
- label.addListener(SWT.MouseDown, new Listener() {
- public void handleEvent(Event event) {
- System.out.println("Mouse Down");
-
- // This prevents MouseUp from firing
- if (checkbox.getSelection()) {
- label.setImage(null);
- }
- }
- });
-
- label.addListener(SWT.MouseUp, new Listener() {
- public void handleEvent(Event event) {
- System.out.println("Mouse Up");
- }
- });
-
- shell.open();
-
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testOSX.java b/test/src/com/vuze/tests/swt/testOSX.java
deleted file mode 100644
index cfada64..0000000
--- a/test/src/com/vuze/tests/swt/testOSX.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Created on 25 juin 2003
- * Copyright (C) 2003, 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.gudy.azureus2.core3.util.Debug;
-
-/**
- * @author Olivier
- *
- */
-public class testOSX extends Object{
-
- private Display display;
- private Shell mainWindow;
-
-
- public testOSX() {
-
- //The Main Window
- display = new Display();
- mainWindow = new Shell(display, SWT.RESIZE | SWT.BORDER | SWT.CLOSE | SWT.MAX | SWT.MIN);
- mainWindow.setText("Test OSX"); //$NON-NLS-1$
-
- /*Listener printer = new Listener() {
- public void handleEvent(Event evt) {
- System.out.println("-->" + evt.type);
- }
- };
- mainWindow.addListener(SWT.Close,printer);
- mainWindow.addListener(SWT.Dispose,printer);
- mainWindow.addListener(SWT.KeyDown,printer);
- mainWindow.addListener(SWT.KeyUp,printer);
- */
-
- mainWindow.open();
- //mainWindow.forceActive();
-
- /*
- mainWindow.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent arg0) {
- System.out.println("NICO disposelistener 002\n");
- if (mainWindow != null) {
- System.out.println("NICO disposelistener 002a\n");
- mainWindow.removeDisposeListener(this);
- System.out.println("NICO disposelistener 002b\n");
- dispose();
- System.out.println("NICO disposelistener 002c\n");
- }
- System.out.println("NICO disposelistener 003\n");
- }
- });
- */
-
- mainWindow.addShellListener(new ShellAdapter() {
- public void shellClosed(ShellEvent event) {
- if(getExitConfirmation()) {
- dispose();
- } else {
- event.doit = false;
- }
- }
- });
- }
-
-
- public void waitForClose() {
- while (!mainWindow.isDisposed()) {
- try {
- if (!display.readAndDispatch())
- display.sleep();
- }
- catch (Exception e) {
- Debug.printStackTrace( e );
- }
- }
- display.dispose();
- }
-
- public static void main(String args[]) {
- testOSX mw = new testOSX();
- mw.waitForClose();
- }
-
-
-
- public void dispose() {
- if(mainWindow != null && ! mainWindow.isDisposed())
- mainWindow.dispose();
- }
-
- /**
- * @return true, if the user choosed OK in the exit dialog
- *
- * @author Rene Leonhardt
- */
- private boolean getExitConfirmation() {
- MessageBox mb = new MessageBox(mainWindow, SWT.ICON_WARNING | SWT.YES | SWT.NO);
- mb.setText("Confirm");
- mb.setMessage("Do you really want to exit?");
- if(mb.open() == SWT.YES)
- return true;
- return false;
- }
-
-
-
-
-}
diff --git a/test/src/com/vuze/tests/swt/testScrollbar.java b/test/src/com/vuze/tests/swt/testScrollbar.java
deleted file mode 100644
index 8d9408c..0000000
--- a/test/src/com/vuze/tests/swt/testScrollbar.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testScrollbar
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
-
- final Table c = new Table(shell, SWT.VIRTUAL);
-
- c.setItemCount(5000);
-
- ScrollBar bar = c.getVerticalBar();
-
- bar.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- System.out.println(event.time + "] Selection! Top now " + c.getTopIndex());
- }
- });
-
- c.addListener(SWT.MouseWheel, new Listener() {
- public void handleEvent(Event event) {
- System.out.println(event.time + "] MouseWheel! Top now " + c.getTopIndex());
- }
- });
-
- shell.open();
-
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTableBackground.java b/test/src/com/vuze/tests/swt/testTableBackground.java
deleted file mode 100644
index 59ea358..0000000
--- a/test/src/com/vuze/tests/swt/testTableBackground.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTableBackground
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- GridLayout l = new GridLayout();
- l.marginHeight = l.marginWidth = 10;
- shellMain.setLayout(l);
-
- final Tree tree = new Tree(shellMain, SWT.BORDER | SWT.VIRTUAL
- | SWT.FULL_SELECTION);
- GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
- tree.setLayoutData(gridData);
-
- new TreeColumn(tree, SWT.RIGHT);
-
- tree.setHeaderVisible(true);
- tree.getColumn(0).setWidth(300);
-
- int size = 200;
- Image image = new Image(display, size, size);
- GC gc = new GC(image);
- gc.setForeground(display.getSystemColor(SWT.COLOR_GRAY));
- gc.drawOval(0, 0, size, size);
- gc.dispose();
- tree.setBackgroundImage(image);
-
- Button button = new Button(shellMain, SWT.PUSH);
- button.setText("Add Row");
- button.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- new TreeItem(tree, SWT.NONE).setText("row");
- }
- });
-
- Button button2 = new Button(shellMain, SWT.PUSH);
- button2.setText("Add Row And Redraw");
- button2.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- new TreeItem(tree, SWT.NONE).setText("row");
- tree.redraw();
- }
- });
-
- ////////////////
-
- shellMain.setSize(400, 600);
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- try {
- if (!display.readAndDispatch())
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTableColumnMenu.java b/test/src/com/vuze/tests/swt/testTableColumnMenu.java
deleted file mode 100644
index 06e3ea8..0000000
--- a/test/src/com/vuze/tests/swt/testTableColumnMenu.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTableColumnMenu
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- shellMain.setLayout(new FillLayout(SWT.VERTICAL));
-
- Table table = new Table(shellMain, SWT.BORDER);
- table.setHeaderVisible(true);
- TableColumn column = new TableColumn(table, SWT.RIGHT);
- column.setText("Column");
- table.setSortColumn(column);
- table.setSortDirection(SWT.UP);
- new TableItem(table, SWT.NONE).setText("No EraseItem");
- table.getColumn(0).setWidth(300);
-
- table.select(0);
-
- ////////////////
-
- shellMain.setSize(400, 200);
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- try {
- if (!display.readAndDispatch())
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTableDrop.java b/test/src/com/vuze/tests/swt/testTableDrop.java
deleted file mode 100644
index d7f8136..0000000
--- a/test/src/com/vuze/tests/swt/testTableDrop.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTableDrop
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- shellMain.setLayout(new FillLayout());
-
- Table table = new Table(shellMain, SWT.BORDER);
- table.setHeaderVisible(true);
- new TableColumn(table, 0);
- table.getColumn(0).setText("Drag a file to the table");
- table.getColumn(0).setWidth(300);
-
- Transfer[] transferList = new Transfer[] {
- FileTransfer.getInstance(),
- };
-
- DropTarget dropTarget = new DropTarget(table, DND.DROP_DEFAULT | DND.DROP_MOVE);
- dropTarget.setTransfer(transferList);
-
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- try {
- if (!display.readAndDispatch())
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTableFG.java b/test/src/com/vuze/tests/swt/testTableFG.java
deleted file mode 100644
index c285039..0000000
--- a/test/src/com/vuze/tests/swt/testTableFG.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTableFG
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- shellMain.setLayout(new FillLayout(SWT.VERTICAL));
-
- Table table = new Table(shellMain, SWT.BORDER);
- new TableColumn(table, SWT.RIGHT);
- new TableItem(table, SWT.NONE).setText("setText");
- table.getColumn(0).setWidth(300);
-
- table.addListener(SWT.PaintItem, new Listener() {
- public void handleEvent(Event event) {
- Rectangle bounds = ((TableItem) event.item).getBounds(event.index);
- event.gc.fillRectangle(bounds.x + 5, bounds.y, 10, bounds.height);
- event.gc.drawText("drawnText/No EraseItem", bounds.x + 20, bounds.y, true);
- }
- });
-
- /////////////////////
-
- Table table2 = new Table(shellMain, SWT.BORDER);
- new TableColumn(table2, SWT.RIGHT);
- new TableItem(table2, SWT.NONE).setText("setText");
- table2.getColumn(0).setWidth(300);
-
- table2.addListener(SWT.PaintItem, new Listener() {
- public void handleEvent(Event event) {
- Rectangle bounds = ((TableItem) event.item).getBounds(event.index);
- event.gc.fillRectangle(bounds.x + 5, bounds.y, 10, bounds.height);
- event.gc.drawText("drawnText/EraseItem", bounds.x + 20, bounds.y, true);
-
- }
- });
-
- table2.addListener(SWT.EraseItem, new Listener() {
- public void handleEvent(Event event) {
- }
- });
-
- ////////////////
-
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- try {
- if (!display.readAndDispatch())
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTableFullRow.java b/test/src/com/vuze/tests/swt/testTableFullRow.java
deleted file mode 100644
index b245f4f..0000000
--- a/test/src/com/vuze/tests/swt/testTableFullRow.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTableFullRow
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- shellMain.setLayout(new FillLayout(SWT.VERTICAL));
-
- Table table = new Table(shellMain, SWT.BORDER);
- new TableColumn(table, SWT.RIGHT);
- new TableItem(table, SWT.NONE).setText("No EraseItem");
- table.getColumn(0).setWidth(300);
-
- table.select(0);
-
- /////////////////////
-
- Table table2 = new Table(shellMain, SWT.BORDER);
- new TableColumn(table2, SWT.RIGHT);
- new TableItem(table2, SWT.NONE).setText("Has EraseItem");
- table2.getColumn(0).setWidth(300);
-
- table2.addListener(SWT.EraseItem, new Listener() {
- public void handleEvent(Event event) {
- }
- });
-
- table2.select(0);
-
- ////////////////
-
- shellMain.setSize(400, 200);
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- try {
- if (!display.readAndDispatch())
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTableMouseUp.java b/test/src/com/vuze/tests/swt/testTableMouseUp.java
deleted file mode 100644
index f4c2cc7..0000000
--- a/test/src/com/vuze/tests/swt/testTableMouseUp.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTableMouseUp
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- shellMain.setLayout(new FillLayout());
-
- Table table = new Table(shellMain, SWT.NONE);
- table.setLinesVisible(true);
- table.addMouseListener(new MouseListener() {
-
- public void mouseUp(MouseEvent e) {
- System.out.println("MouseUp " + e.time);
- }
-
- public void mouseDown(MouseEvent e) {
- System.out.println("\n\nMouseDown");
- }
-
- public void mouseDoubleClick(MouseEvent e) {
- }
- });
-
- new TableColumn(table, 0).setWidth(1000);
- new TableColumn(table, 0).setWidth(1000);
-
- table.setSortColumn(table.getColumn(0));
- table.setSortDirection(SWT.UP);
-
- table.addListener(SWT.PaintItem, new Listener() {
-
- public void handleEvent(Event event) {
- // TODO Auto-generated method stub
- event.gc.drawText("Hi", event.x + 100, event.y, true);
- }
- });
-
- System.out.println(SWT.getPlatform() + ";" + SWT.getVersion());
- TableItem tableItem = new TableItem(table, SWT.NONE);
- tableItem.setText(" click me");
- tableItem = new TableItem(table, SWT.NONE);
- tableItem.setText(" click me");
- tableItem = new TableItem(table, SWT.NONE);
- tableItem.setText(" click me");
- tableItem = new TableItem(table, SWT.NONE);
- tableItem.setText(" click me");
- tableItem.setBackground(display.getSystemColor(SWT.COLOR_GREEN));
-
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
- table.addListener(SWT.PaintItem, new Listener() {
-
- public void handleEvent(Event event) {
- event.gc.drawText("WOW", 0, 0, true);
- }
- });
- table.addListener(SWT.EraseItem, new Listener() {
-
- public void handleEvent(Event event) {
- }
- });
-
- // XXX Remove this line to get only one MouseUp
- new DragSource(table, DND.DROP_COPY);
-
-
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTableRedraw.java b/test/src/com/vuze/tests/swt/testTableRedraw.java
deleted file mode 100644
index 57d2031..0000000
--- a/test/src/com/vuze/tests/swt/testTableRedraw.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Created on Jan 18, 2011
- *
- * Copyright 2010 Vuze, Inc. All rights reserved.
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License only.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-
-/**
- * @author TuxPaper
- * @created Jan 18, 2011
- *
- */
-public class testTableRedraw
-{
-
- public static void main(String[] args) {
- final Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- GridLayout l = new GridLayout();
- l.marginHeight = l.marginWidth = 10;
- shellMain.setLayout(l);
-
-
- final Tree table = new Tree(shellMain, SWT.DOUBLE_BUFFERED | SWT.FULL_SELECTION);
- table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- table.setHeaderVisible(true);
-
- for (int i = 0; i < 6; i++) {
- TreeColumn tableColumn = new TreeColumn(table, SWT.NONE);
- tableColumn.setWidth(99);
- tableColumn.setText("" + i);
- }
-
- for (int i = 0; i < 20; i++) {
- TreeItem tableItem = new TreeItem(table, SWT.None);
- tableItem.setText(new String[] { "Some", "Text", "For", "Testing", "Tree", "Speed" });
- }
-
- Runnable runRedrawCell = new Runnable() {
- public void run() {
- //System.out.println(System.currentTimeMillis());
- if (table.isDisposed()) {
- return;
- }
- display.timerExec(500, this);
-
- for (int i = 0; i < 10; i++) {
- int row = (int) (Math.random() * table.getItemCount());
- int col = (int) (Math.random() * table.getColumnCount());
- TreeItem item = table.getItem(row);
- Rectangle bounds = item.getBounds(col);
-
- //System.out.print(row + "x" + col + ",");
-
- GC gc = new GC(table);
- gc.drawRectangle(bounds.x, bounds.y, bounds.width - 1, bounds.height - 1);
- gc.dispose();
-
- table.redraw(bounds.x, bounds.y, bounds.width, bounds.height, true);
- }
- //System.out.println();
- }
- };
-
- display.timerExec(500, runRedrawCell);
-
- final Listener listenerPaintItem = new Listener() {
- public void handleEvent(Event event) {
- //System.out.println("Paint");
- }
- };
- final Listener listenerEraseItem = new Listener() {
- public void handleEvent(Event event) {
- event.gc.setBackground(event.display.getSystemColor((int)(Math.random() * 16)));
- event.gc.fillRectangle(event.getBounds());
- }
- };
-
- Button btnToggleListeners = new Button(shellMain, SWT.TOGGLE);
- btnToggleListeners.setText("PaintListeners");
- btnToggleListeners.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (((Button) event.widget).getSelection()) {
- table.addListener(SWT.PaintItem, listenerPaintItem);
- table.addListener(SWT.EraseItem, listenerEraseItem);
- } else {
- table.removeListener(SWT.PaintItem, listenerPaintItem);
- table.removeListener(SWT.EraseItem, listenerEraseItem);
- }
- }
- });
-
-
- ////////////////
-
- shellMain.setSize(800, 600);
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- try {
- long last = System.currentTimeMillis();
-
- while (display.readAndDispatch());
-
- long now = System.currentTimeMillis();
- long diff = now - last;
- last = now;
-
- if (diff > 0) {
- System.out.println(diff);
- }
-
- display.sleep();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTreeBrowser.java b/test/src/com/vuze/tests/swt/testTreeBrowser.java
deleted file mode 100644
index ffe6927..0000000
--- a/test/src/com/vuze/tests/swt/testTreeBrowser.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTreeBrowser
-{
- public static void main(String[] args) {
- Display display = new Display();
- System.out.println(SWT.getVersion());
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout(SWT.HORIZONTAL));
-
- Tree tree = new Tree(shell, SWT.BORDER);
- tree.addListener(SWT.PaintItem, new Listener() {
-
- public void handleEvent(Event event) {
- }
- });
- TreeItem item1 = new TreeItem(tree, SWT.NONE);
- item1.setText("Google");
- item1.setData(
- "url",
- "http://google.com/about");
-// "http://client.vuze.com:80/xsearch/index.php?subscription=5UNUJ6QJE522MYOZ&azid=P3WFILH5KAAKGEUXXTKV33SCJYRMZPPW&azv=4.3.0.5_CVS&locale=&os.name=Mac OS X");
- TreeItem item2 = new TreeItem(tree, SWT.NONE);
- item2.setText("Yahoo");
- item2.setData(
- "url",
- "http://yahoo.com/about.html");
-// "http://client.vuze.com:80/xsearch/index.php?subscription=SWZUYGQ7ICJR2CLS&azid=P3WFILH5KAAKGEUXXTKV33SCJYRMZPPW&azv=4.3.0.5_CVS&locale=&os.name=Mac OS X");
-
- final Composite c = new Composite(shell, SWT.NONE);
- c.setLayout(new FillLayout());
-
- tree.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- String url = (String) e.item.getData("url");
- Control[] children = c.getChildren();
- for (Control control : children) {
- control.dispose();
- }
- final Browser browser = new Browser(c, SWT.NONE);
- final BrowserFunction browserFunction = new BrowserFunction(browser,
- "sendMessageToAZ") {
- public Object function(Object[] args) {
- return null;
- }
- };
- browser.addProgressListener(new ProgressListener() {
-
- public void completed(ProgressEvent event) {
- }
-
- public void changed(ProgressEvent event) {
- }
- });
-
- browser.addLocationListener(new LocationListener() {
-
- public void changing(LocationEvent event) {
- System.out.println("changing " + event.location);
- }
-
- public void changed(LocationEvent event) {
- System.out.println("changed " + event.location);
- }
- });
-
- c.layout(true);
- browser.setUrl(url);
-
- browser.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- browserFunction.dispose();
- }
- });
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- });
-
- shell.open();
- while (!shell.isDisposed())
- if (!display.readAndDispatch())
- display.sleep();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/testTreeClickDraw.java b/test/src/com/vuze/tests/swt/testTreeClickDraw.java
deleted file mode 100644
index 3550226..0000000
--- a/test/src/com/vuze/tests/swt/testTreeClickDraw.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class testTreeClickDraw
-{
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shellMain = new Shell(display, SWT.SHELL_TRIM);
- FillLayout fillLayout = new FillLayout();
- fillLayout.marginHeight = 10;
- shellMain.setLayout(fillLayout);
-
- Composite c = new Composite(shellMain, SWT.NONE);
- c.setLayout(new FillLayout());
-
- final Tree tree = new Tree(c, SWT.NONE);
-
- TreeItem treeItem = new TreeItem(tree, SWT.NONE);
- treeItem.setText("New Item 1");
- treeItem = new TreeItem(tree, SWT.NONE);
- treeItem.setText("New Item 2");
- treeItem = new TreeItem(treeItem, SWT.NONE);
- treeItem.setText("New Item 2a");
- treeItem = new TreeItem(tree, SWT.NONE);
- treeItem.setText("New Item 3");
- treeItem = new TreeItem(tree, SWT.NONE);
- treeItem.setText("New Item 4");
- treeItem = new TreeItem(tree, SWT.NONE);
- treeItem.setText("New Item 5");
-
- tree.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent e) {
- Point ptDisplayCursor = e.display.getCursorLocation();
- Point pt = tree.toControl(ptDisplayCursor);
- e.gc.setAntialias(SWT.OFF);
- e.gc.drawLine(pt.x - 2, pt.y - 2, pt.x + 2, pt.y + 2);
- e.gc.drawLine(pt.x - 2, pt.y + 2, pt.x + 2, pt.y - 2);
-
- TreeItem item = tree.getItem(pt);
- if (item != null) {
- Rectangle bounds = item.getBounds();
- bounds.height--;
- bounds.width--;
- e.gc.drawRectangle(bounds);
- }
- }
- });
-
- tree.addListener(SWT.MouseMove, new Listener() {
- public void handleEvent(Event event) {
- tree.redraw();
- }
- });
-
- shellMain.open();
-
- while (!shellMain.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-}
diff --git a/test/src/com/vuze/tests/swt/textComboColor.java b/test/src/com/vuze/tests/swt/textComboColor.java
deleted file mode 100644
index ac6a614..0000000
--- a/test/src/com/vuze/tests/swt/textComboColor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.vuze.tests.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.*;
-
-public class textComboColor
-{
-
- public static void main(String[] args) {
- final Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout(SWT.VERTICAL));
-
- final Combo combo = new Combo(shell, SWT.DROP_DOWN);
- combo.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- Color color = combo.getText().length() % 2 == 0 ? null
- : display.getSystemColor(SWT.COLOR_BLUE);
- combo.setBackground(color);
- }
- });
-
- Text btn = new Text(shell, SWT.PUSH);
- btn.setText("text to tab to");
-
- shell.open();
- combo.setFocus();
-
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-}
diff --git a/test/src/org/gudy/azureus2/core3/torrent/test/Main.java b/test/src/org/gudy/azureus2/core3/torrent/test/Main.java
deleted file mode 100644
index 1f0edbd..0000000
--- a/test/src/org/gudy/azureus2/core3/torrent/test/Main.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * File : Main.java
- * Created : 5 Oct. 2003
- * By : Parg
- *
- * Azureus - a Java Bittorrent client
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details ( see the LICENSE file ).
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package org.gudy.azureus2.core3.torrent.test;
-
-
-import java.io.*;
-import java.net.*;
-
-import org.gudy.azureus2.core3.security.SESecurityManager;
-import org.gudy.azureus2.core3.torrent.*;
-import org.gudy.azureus2.core3.util.Debug;
-
-public class
-Main
-{
- static int TT_ENCODE = 1;
- static int TT_DECODE = 2;
- static int TT_CREATE = 3;
-
- static void
- usage()
- {
- System.err.println( "Usage: encode|decode|create" );
-
- SESecurityManager.exitVM(1);
- }
-
- public static void
- main(
- String[] args )
- {
- int test_type= 0;
-
- if ( args.length != 1 ){
-
- usage();
- }
-
- if ( args[0].equalsIgnoreCase( "encode" )){
-
- test_type = TT_ENCODE;
-
- }else if ( args[0].equalsIgnoreCase( "decode" )){
-
- test_type = TT_DECODE;
-
- }else if ( args[0].equalsIgnoreCase( "create" )){
-
- test_type = TT_CREATE;
-
- }else{
-
- usage();
- }
-
- try{
- if ( test_type == TT_ENCODE ){
-
- /*
- File f = new File("D:\\az2060-broken.torrent");
-
- TOTorrent torrent = TOTorrentFactory.deserialiseFromBEncodedFile( f );
-
- TOTorrentAnnounceURLSet set = torrent.getAnnounceURLGroup().createAnnounceURLSet(new URL[]{ new URL("http://localhost:6970/announce"), new URL("http://localhost:6969/announce")});
-
- torrent.getAnnounceURLGroup().setAnnounceURLSets( new TOTorrentAnnounceURLSet[]{ set });
-
- torrent.setAdditionalStringProperty( "Wibble", "wobble" );
-
- torrent.print();
-
- torrent.serialiseToBEncodedFile( new File("c:\\temp\\test2.torrent"));
-
- */
-
- }else if ( test_type == TT_DECODE ){
-
- File f = new File("c:\\temp\\az3008-broken.torrent" );
-
- TOTorrent torrent = TOTorrentFactory.deserialiseFromBEncodedFile( f );
-
- // System.out.println( "\turl group sets = " + torrent.getAnnounceURLGroup().getAnnounceURLSets().length);
-
- torrent.print();
-
- }else if ( test_type == TT_CREATE ){
-
- TOTorrentProgressListener list = new TOTorrentProgressListener()
- {
- public void
- reportProgress(
- int p )
- {
- System.out.println( "" + p );
- }
- public void
- reportCurrentTask(
- String task_description )
- {
- System.out.println( "task = " + task_description );
- }
- };
-
- boolean do_file = false;
- boolean do_fixed = false;
-
- TOTorrent t;
-
- if ( do_fixed ){
-
- if ( do_file ){
-
- TOTorrentCreator c = TOTorrentFactory.createFromFileOrDirWithFixedPieceLength(
- new File("c:\\temp\\test.wmf"),
- new URL( "http://127.0.0.1:6969/announce" ),
- 1024*10 );
-
- c.addListener( list );
-
- t = c.create();
- }else{
-
- TOTorrentCreator c = TOTorrentFactory.createFromFileOrDirWithFixedPieceLength(
- new File("c:\\temp\\scans"),
- new URL("http://127.0.0.1:6969/announce" ),
- 1024*256 );
-
-
- c.addListener( list );
-
- t = c.create();
- }
- }else{
- if ( do_file ){
-
- TOTorrentCreator c = TOTorrentFactory.createFromFileOrDirWithComputedPieceLength(
- new File("c:\\temp\\test.wmf"),
- new URL( "http://127.0.0.1:6969/announce" ));
-
-
-
- c.addListener( list );
-
- t = c.create();
-
- }else{
-
- TOTorrentCreator c = TOTorrentFactory.createFromFileOrDirWithComputedPieceLength(
- new File("c:\\temp\\qqq"),
- new URL("http://127.0.0.1:6969/announce" ));
-
-
-
- c.addListener( list );
-
- t = c.create();
-
- t.setCreationDate( 12345L );
-
- t.setComment( "poo pee plop mcjock");
- }
- }
-
- t.print();
-
- t.serialiseToBEncodedFile( new File("c:\\temp\\test.torrent" ));
- }
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
-
- }
- }
-}
\ No newline at end of file
diff --git a/test/src/org/gudy/azureus2/core3/util/jar/Test.java b/test/src/org/gudy/azureus2/core3/util/jar/Test.java
deleted file mode 100644
index 0b50f11..0000000
--- a/test/src/org/gudy/azureus2/core3/util/jar/Test.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Created on 07-Jun-2004
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.core3.util.jar;
-
-/**
- * @author parg
- *
- */
-
-import java.io.*;
-
-import org.gudy.azureus2.core3.security.*;
-import org.gudy.azureus2.core3.util.Debug;
-
-public class
-Test
-{
- public static void
- main(
- String[] args )
- {
- try{
- SESecurityManager.initialise();
-
- System.out.println( System.getProperty( "java.home" ));
-
- String alias = "Azureus"; // SESecurityManager.DEFAULT_ALIAS;
-
- // SEKeyDetails kd = SESecurityManager.getKeyDetails( alias );
- // WUJarSigner signer = new WUJarSigner(alias, (PrivateKey)kd.getKey(), kd.getCertificateChain());
-
- AEJarSigner2 signer =
- new AEJarSigner2(
- alias,
- SESecurityManager.getKeystoreName(),
- SESecurityManager.getKeystorePassword());
-
- FileOutputStream fos = new FileOutputStream( "c:\\temp\\sj.jar");
-
- signer.signJarFile( new File( "c:\\temp\\si.jar"), fos );
-
- fos.close();
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
-
- System.out.println("normal exit");
- }
-}
diff --git a/test/src/org/gudy/azureus2/core3/util/test/Md5AlgorithmHelper.java b/test/src/org/gudy/azureus2/core3/util/test/Md5AlgorithmHelper.java
deleted file mode 100644
index 60a1e01..0000000
--- a/test/src/org/gudy/azureus2/core3/util/test/Md5AlgorithmHelper.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * File : Md5AlgorithmHelper.java
- * Created : 16 avr. 2004
- * By : Olivier
- *
- * Azureus - a Java Bittorrent client
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details ( see the LICENSE file ).
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package org.gudy.azureus2.core3.util.test;
-
-/**
- * @author Olivier Chalouhi
- *
- */
-public class Md5AlgorithmHelper {
-
- public static final int S11 = 7;
- public static final int S12 = 12;
- public static final int S13 = 17;
- public static final int S14 = 22;
- public static final int S21 = 5;
- public static final int S22 = 9;
- public static final int S23 = 14;
- public static final int S24 = 20;
- public static final int S31 = 4;
- public static final int S32 = 11;
- public static final int S33 = 16;
- public static final int S34 = 23;
- public static final int S41 = 6;
- public static final int S42 = 10;
- public static final int S43 = 15;
- public static final int S44 = 21;
-
- public static void main(String args[]) {
- /* Round 1 */
- String a = "a";
- String b = "b";
- String c = "c";
- String d = "d";
-
- pFF (a, b, c, d, 0, S11, "0xd76aa478"); /* 1 */
- pFF (d, a, b, c, 1, S12, "0xe8c7b756"); /* 2 */
- pFF (c, d, a, b, 2, S13, "0x242070db"); /* 3 */
- pFF (b, c, d, a, 3, S14, "0xc1bdceee"); /* 4 */
- pFF (a, b, c, d, 4, S11, "0xf57c0faf"); /* 5 */
- pFF (d, a, b, c, 5, S12, "0x4787c62a"); /* 6 */
- pFF (c, d, a, b, 6, S13, "0xa8304613"); /* 7 */
- pFF (b, c, d, a, 7, S14, "0xfd469501"); /* 8 */
- pFF (a, b, c, d, 8, S11, "0x698098d8"); /* 9 */
- pFF (d, a, b, c, 9, S12, "0x8b44f7af"); /* 10 */
- pFF (c, d, a, b, 10, S13,"0xffff5bb1"); /* 11 */
- pFF (b, c, d, a, 11, S14,"0x895cd7be"); /* 12 */
- pFF (a, b, c, d, 12, S11,"0x6b901122"); /* 13 */
- pFF (d, a, b, c, 13, S12,"0xfd987193"); /* 14 */
- pFF (c, d, a, b, 14, S13,"0xa679438e"); /* 15 */
- pFF (b, c, d, a, 15, S14,"0x49b40821"); /* 16 */
-
- /* Round 2 */
- pGG (a, b, c, d, 1, S21, "0xf61e2562"); /* 17 */
- pGG (d, a, b, c, 6, S22, "0xc040b340"); /* 18 */
- pGG (c, d, a, b, 11, S23,"0x265e5a51"); /* 19 */
- pGG (b, c, d, a, 0, S24, "0xe9b6c7aa"); /* 20 */
- pGG (a, b, c, d, 5, S21, "0xd62f105d"); /* 21 */
- pGG (d, a, b, c, 10, S22,"0x02441453"); /* 22 */
- pGG (c, d, a, b, 15, S23,"0xd8a1e681"); /* 23 */
- pGG (b, c, d, a, 4, S24, "0xe7d3fbc8"); /* 24 */
- pGG (a, b, c, d, 9, S21, "0x21e1cde6"); /* 25 */
- pGG (d, a, b, c, 14, S22,"0xc33707d6"); /* 26 */
- pGG (c, d, a, b, 3, S23, "0xf4d50d87"); /* 27 */
- pGG (b, c, d, a, 8, S24, "0x455a14ed"); /* 28 */
- pGG (a, b, c, d, 13, S21,"0xa9e3e905"); /* 29 */
- pGG (d, a, b, c, 2, S22, "0xfcefa3f8"); /* 30 */
- pGG (c, d, a, b, 7, S23, "0x676f02d9"); /* 31 */
- pGG (b, c, d, a, 12, S24,"0x8d2a4c8a"); /* 32 */
-
- /* Round 3 */
- pHH (a, b, c, d, 5, S31, "0xfffa3942"); /* 33 */
- pHH (d, a, b, c, 8, S32, "0x8771f681"); /* 34 */
- pHH (c, d, a, b, 11, S33,"0x6d9d6122"); /* 35 */
- pHH (b, c, d, a, 14, S34,"0xfde5380c"); /* 36 */
- pHH (a, b, c, d, 1, S31, "0xa4beea44"); /* 37 */
- pHH (d, a, b, c, 4, S32, "0x4bdecfa9"); /* 38 */
- pHH (c, d, a, b, 7, S33, "0xf6bb4b60"); /* 39 */
- pHH (b, c, d, a, 10, S34,"0xbebfbc70"); /* 40 */
- pHH (a, b, c, d, 13, S31,"0x289b7ec6"); /* 41 */
- pHH (d, a, b, c, 0, S32, "0xeaa127fa"); /* 42 */
- pHH (c, d, a, b, 3, S33, "0xd4ef3085"); /* 43 */
- pHH (b, c, d, a, 6, S34, "0x04881d05"); /* 44 */
- pHH (a, b, c, d, 9, S31, "0xd9d4d039"); /* 45 */
- pHH (d, a, b, c, 12, S32,"0xe6db99e5"); /* 46 */
- pHH (c, d, a, b, 15, S33,"0x1fa27cf8"); /* 47 */
- pHH (b, c, d, a, 2, S34, "0xc4ac5665"); /* 48 */
-
- /* Round 4 */
- pII (a, b, c, d, 0, S41, "0xf4292244"); /* 49 */
- pII (d, a, b, c, 7, S42, "0x432aff97"); /* 50 */
- pII (c, d, a, b, 14, S43,"0xab9423a7"); /* 51 */
- pII (b, c, d, a, 5, S44, "0xfc93a039"); /* 52 */
- pII (a, b, c, d, 12, S41,"0x655b59c3"); /* 53 */
- pII (d, a, b, c, 3, S42, "0x8f0ccc92"); /* 54 */
- pII (c, d, a, b, 10, S43,"0xffeff47d"); /* 55 */
- pII (b, c, d, a, 1, S44, "0x85845dd1"); /* 56 */
- pII (a, b, c, d, 8, S41, "0x6fa87e4f"); /* 57 */
- pII (d, a, b, c, 15, S42,"0xfe2ce6e0"); /* 58 */
- pII (c, d, a, b, 6, S43, "0xa3014314"); /* 59 */
- pII (b, c, d, a, 13, S44,"0x4e0811a1"); /* 60 */
- pII (a, b, c, d, 4, S41, "0xf7537e82"); /* 61 */
- pII (d, a, b, c, 11, S42,"0xbd3af235"); /* 62 */
- pII (c, d, a, b, 2, S43, "0x2ad7d2bb"); /* 63 */
- pII (b, c, d, a, 9, S44, "0xeb86d391"); /* 64 */
- }
-
- public static String F(String x,String y,String z) {
- return "((" + x + " & " + y + ") | ( ~" + x + " & " + z + "))";
- }
-
- public static String G(String x,String y,String z) {
- return "((" + x + " & " + z + ") | (" + y + " & ~" + z + "))";
- }
-
- public static String H(String x,String y,String z) {
- return "(" + x + " ^ " + y + " ^ " + z + ")";
- }
-
- public static String I(String x,String y,String z) {
- return "(" + y + " ^ (" + x + " | ~" + z + "))";
- }
-
- public static String rotateLeft(String x,int n) {
- return "((" + x + " << " + n + ") | (" + x + " >>> " + (32-n) + "))";
- }
-
- public static int T(int i) {
- return (int) (4294967296.0 * Math.abs(Math.sin(i)));
- }
-
- public static String pFF(String a,String b,String c,String d,int x, int s, String Ti) {
- String result = a + " += " + F(b,c,d) + " + x" + x + " + " + Ti + ";";
- result += "\n";
- result += a + " = " + b + " + " + rotateLeft(a,s) + ";";
- System.out.println(result);
- return result;
- }
-
- public static String pGG(String a,String b,String c,String d,int x, int s, String Ti) {
- String result = a + " += " + G(b,c,d) + " + x" + x + " + " + Ti + ";";
- result += "\n";
- result += a + " = " + b + " + " + rotateLeft(a,s) + ";";
- System.out.println(result);
- return result;
- }
-
- public static String pHH(String a,String b,String c,String d,int x, int s, String Ti) {
- String result = a + " += " + H(b,c,d) + " + x" + x + " + " + Ti + ";";
- result += "\n";
- result += a + " = " + b + " + " + rotateLeft(a,s) + ";";
- System.out.println(result);
- return result;
- }
-
- public static String pII(String a,String b,String c,String d,int x, int s, String Ti) {
- String result = a + " += " + I(b,c,d) + " + x" + x + " + " + Ti + ";";
- result += "\n";
- result += a + " = " + b + " + " + rotateLeft(a,s) + ";";
- System.out.println(result);
- return result;
- }
-
-}
diff --git a/test/src/org/gudy/azureus2/core3/util/test/SHA1Old.java b/test/src/org/gudy/azureus2/core3/util/test/SHA1Old.java
deleted file mode 100644
index 6185a5f..0000000
--- a/test/src/org/gudy/azureus2/core3/util/test/SHA1Old.java
+++ /dev/null
@@ -1,475 +0,0 @@
- /*
- * Created on Apr 12, 2004
- * Created by Olivier Chalouhi
- * Modified Apr 13, 2004 by Alon Rohter
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.core3.util.test;
-
-import java.nio.ByteBuffer;
-
-
-/**
- * SHA-1 message digest class.
- */
-public final class SHA1Old {
-
- private int h0,h1,h2,h3,h4;
- private ByteBuffer finalBuffer;
-
- private ByteBuffer saveBuffer;
- private int s0,s1,s2,s3,s4;
-
- long length;
- long saveLength;
-
-
- /**
- * Create a new SHA-1 message digest hasher.
- */
- public SHA1Old() {
- finalBuffer = ByteBuffer.allocate(64);
- finalBuffer.position(0);
- finalBuffer.limit(64);
-
- saveBuffer = ByteBuffer.allocate(64);
- saveBuffer.position(0);
- saveBuffer.limit(64);
-
- reset();
- }
-
-
- private void transform(ByteBuffer M) {
- int w0 , w1 , w2 , w3 , w4 , w5 , w6 , w7 , w8 , w9 ,
- w10, w11, w12, w13, w14, w15;
-
- int a,b,c,d,e;
-
- w0 = M.getInt();
- w1 = M.getInt();
- w2 = M.getInt();
- w3 = M.getInt();
- w4 = M.getInt();
- w5 = M.getInt();
- w6 = M.getInt();
- w7 = M.getInt();
- w8 = M.getInt();
- w9 = M.getInt();
- w10 = M.getInt();
- w11 = M.getInt();
- w12 = M.getInt();
- w13 = M.getInt();
- w14 = M.getInt();
- w15 = M.getInt();
-
- a = h0 ; b = h1 ; c = h2 ; d = h3 ; e = h4;
- e += ((a << 5) | ( a >>> 27)) + w0 + ((b & c) | ((~b ) & d)) + 0x5A827999 ;
- b = (b << 30) | (b >>> 2) ;
- d += ((e << 5) | ( e >>> 27)) + w1 + ((a & b) | ((~a ) & c)) + 0x5A827999 ;
- a = (a << 30) | (a >>> 2) ;
- c += ((d << 5) | ( d >>> 27)) + w2 + ((e & a) | ((~e ) & b)) + 0x5A827999 ;
- e = (e << 30) | (e >>> 2) ;
- b += ((c << 5) | ( c >>> 27)) + w3 + ((d & e) | ((~d ) & a)) + 0x5A827999 ;
- d = (d << 30) | (d >>> 2) ;
- a += ((b << 5) | ( b >>> 27)) + w4 + ((c & d) | ((~c ) & e)) + 0x5A827999 ;
- c = (c << 30) | (c >>> 2) ;
- e += ((a << 5) | ( a >>> 27)) + w5 + ((b & c) | ((~b ) & d)) + 0x5A827999 ;
- b = (b << 30) | (b >>> 2) ;
- d += ((e << 5) | ( e >>> 27)) + w6 + ((a & b) | ((~a ) & c)) + 0x5A827999 ;
- a = (a << 30) | (a >>> 2) ;
- c += ((d << 5) | ( d >>> 27)) + w7 + ((e & a) | ((~e ) & b)) + 0x5A827999 ;
- e = (e << 30) | (e >>> 2) ;
- b += ((c << 5) | ( c >>> 27)) + w8 + ((d & e) | ((~d ) & a)) + 0x5A827999 ;
- d = (d << 30) | (d >>> 2) ;
- a += ((b << 5) | ( b >>> 27)) + w9 + ((c & d) | ((~c ) & e)) + 0x5A827999 ;
- c = (c << 30) | (c >>> 2) ;
- e += ((a << 5) | ( a >>> 27)) + w10 + ((b & c) | ((~b ) & d)) + 0x5A827999 ;
- b = (b << 30) | (b >>> 2) ;
- d += ((e << 5) | ( e >>> 27)) + w11 + ((a & b) | ((~a ) & c)) + 0x5A827999 ;
- a = (a << 30) | (a >>> 2) ;
- c += ((d << 5) | ( d >>> 27)) + w12 + ((e & a) | ((~e ) & b)) + 0x5A827999 ;
- e = (e << 30) | (e >>> 2) ;
- b += ((c << 5) | ( c >>> 27)) + w13 + ((d & e) | ((~d ) & a)) + 0x5A827999 ;
- d = (d << 30) | (d >>> 2) ;
- a += ((b << 5) | ( b >>> 27)) + w14 + ((c & d) | ((~c ) & e)) + 0x5A827999 ;
- c = (c << 30) | (c >>> 2) ;
- e += ((a << 5) | ( a >>> 27)) + w15 + ((b & c) | ((~b ) & d)) + 0x5A827999 ;
- b = (b << 30) | (b >>> 2) ;
- w0 = w13 ^ w8 ^ w2 ^ w0; w0 = (w0 << 1) | (w0 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w0 + ((a & b) | ((~a ) & c)) + 0x5A827999 ;
- a = (a << 30) | (a >>> 2) ;
- w1 = w14 ^ w9 ^ w3 ^ w1; w1 = (w1 << 1) | (w1 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w1 + ((e & a) | ((~e ) & b)) + 0x5A827999 ;
- e = (e << 30) | (e >>> 2) ;
- w2 = w15 ^ w10 ^ w4 ^ w2; w2 = (w2 << 1) | (w2 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w2 + ((d & e) | ((~d ) & a)) + 0x5A827999 ;
- d = (d << 30) | (d >>> 2) ;
- w3 = w0 ^ w11 ^ w5 ^ w3; w3 = (w3 << 1) | (w3 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w3 + ((c & d) | ((~c ) & e)) + 0x5A827999 ;
- c = (c << 30) | (c >>> 2) ;
- w4 = w1 ^ w12 ^ w6 ^ w4; w4 = (w4 << 1) | (w4 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w4 + (b ^ c ^ d) + 0x6ED9EBA1 ;
- b = (b << 30) | (b >>> 2) ;
- w5 = w2 ^ w13 ^ w7 ^ w5; w5 = (w5 << 1) | (w5 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w5 + (a ^ b ^ c) + 0x6ED9EBA1 ;
- a = (a << 30) | (a >>> 2) ;
- w6 = w3 ^ w14 ^ w8 ^ w6; w6 = (w6 << 1) | (w6 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w6 + (e ^ a ^ b) + 0x6ED9EBA1 ;
- e = (e << 30) | (e >>> 2) ;
- w7 = w4 ^ w15 ^ w9 ^ w7; w7 = (w7 << 1) | (w7 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w7 + (d ^ e ^ a) + 0x6ED9EBA1 ;
- d = (d << 30) | (d >>> 2) ;
- w8 = w5 ^ w0 ^ w10 ^ w8; w8 = (w8 << 1) | (w8 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w8 + (c ^ d ^ e) + 0x6ED9EBA1 ;
- c = (c << 30) | (c >>> 2) ;
- w9 = w6 ^ w1 ^ w11 ^ w9; w9 = (w9 << 1) | (w9 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w9 + (b ^ c ^ d) + 0x6ED9EBA1 ;
- b = (b << 30) | (b >>> 2) ;
- w10 = w7 ^ w2 ^ w12 ^ w10; w10 = (w10 << 1) | (w10 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w10 + (a ^ b ^ c) + 0x6ED9EBA1 ;
- a = (a << 30) | (a >>> 2) ;
- w11 = w8 ^ w3 ^ w13 ^ w11; w11 = (w11 << 1) | (w11 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w11 + (e ^ a ^ b) + 0x6ED9EBA1 ;
- e = (e << 30) | (e >>> 2) ;
- w12 = w9 ^ w4 ^ w14 ^ w12; w12 = (w12 << 1) | (w12 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w12 + (d ^ e ^ a) + 0x6ED9EBA1 ;
- d = (d << 30) | (d >>> 2) ;
- w13 = w10 ^ w5 ^ w15 ^ w13; w13 = (w13 << 1) | (w13 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w13 + (c ^ d ^ e) + 0x6ED9EBA1 ;
- c = (c << 30) | (c >>> 2) ;
- w14 = w11 ^ w6 ^ w0 ^ w14; w14 = (w14 << 1) | (w14 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w14 + (b ^ c ^ d) + 0x6ED9EBA1 ;
- b = (b << 30) | (b >>> 2) ;
- w15 = w12 ^ w7 ^ w1 ^ w15; w15 = (w15 << 1) | (w15 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w15 + (a ^ b ^ c) + 0x6ED9EBA1 ;
- a = (a << 30) | (a >>> 2) ;
- w0 = w13 ^ w8 ^ w2 ^ w0; w0 = (w0 << 1) | (w0 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w0 + (e ^ a ^ b) + 0x6ED9EBA1 ;
- e = (e << 30) | (e >>> 2) ;
- w1 = w14 ^ w9 ^ w3 ^ w1; w1 = (w1 << 1) | (w1 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w1 + (d ^ e ^ a) + 0x6ED9EBA1 ;
- d = (d << 30) | (d >>> 2) ;
- w2 = w15 ^ w10 ^ w4 ^ w2; w2 = (w2 << 1) | (w2 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w2 + (c ^ d ^ e) + 0x6ED9EBA1 ;
- c = (c << 30) | (c >>> 2) ;
- w3 = w0 ^ w11 ^ w5 ^ w3; w3 = (w3 << 1) | (w3 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w3 + (b ^ c ^ d) + 0x6ED9EBA1 ;
- b = (b << 30) | (b >>> 2) ;
- w4 = w1 ^ w12 ^ w6 ^ w4; w4 = (w4 << 1) | (w4 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w4 + (a ^ b ^ c) + 0x6ED9EBA1 ;
- a = (a << 30) | (a >>> 2) ;
- w5 = w2 ^ w13 ^ w7 ^ w5; w5 = (w5 << 1) | (w5 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w5 + (e ^ a ^ b) + 0x6ED9EBA1 ;
- e = (e << 30) | (e >>> 2) ;
- w6 = w3 ^ w14 ^ w8 ^ w6; w6 = (w6 << 1) | (w6 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w6 + (d ^ e ^ a) + 0x6ED9EBA1 ;
- d = (d << 30) | (d >>> 2) ;
- w7 = w4 ^ w15 ^ w9 ^ w7; w7 = (w7 << 1) | (w7 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w7 + (c ^ d ^ e) + 0x6ED9EBA1 ;
- c = (c << 30) | (c >>> 2) ;
- w8 = w5 ^ w0 ^ w10 ^ w8; w8 = (w8 << 1) | (w8 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w8 + ((b & c) | (b & d) | (c & d)) + 0x8F1BBCDC ;
- b = (b << 30) | (b >>> 2) ;
- w9 = w6 ^ w1 ^ w11 ^ w9; w9 = (w9 << 1) | (w9 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w9 + ((a & b) | (a & c) | (b & c)) + 0x8F1BBCDC ;
- a = (a << 30) | (a >>> 2) ;
- w10 = w7 ^ w2 ^ w12 ^ w10; w10 = (w10 << 1) | (w10 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w10 + ((e & a) | (e & b) | (a & b)) + 0x8F1BBCDC ;
- e = (e << 30) | (e >>> 2) ;
- w11 = w8 ^ w3 ^ w13 ^ w11; w11 = (w11 << 1) | (w11 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w11 + ((d & e) | (d & a) | (e & a)) + 0x8F1BBCDC ;
- d = (d << 30) | (d >>> 2) ;
- w12 = w9 ^ w4 ^ w14 ^ w12; w12 = (w12 << 1) | (w12 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w12 + ((c & d) | (c & e) | (d & e)) + 0x8F1BBCDC ;
- c = (c << 30) | (c >>> 2) ;
- w13 = w10 ^ w5 ^ w15 ^ w13; w13 = (w13 << 1) | (w13 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w13 + ((b & c) | (b & d) | (c & d)) + 0x8F1BBCDC ;
- b = (b << 30) | (b >>> 2) ;
- w14 = w11 ^ w6 ^ w0 ^ w14; w14 = (w14 << 1) | (w14 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w14 + ((a & b) | (a & c) | (b & c)) + 0x8F1BBCDC ;
- a = (a << 30) | (a >>> 2) ;
- w15 = w12 ^ w7 ^ w1 ^ w15; w15 = (w15 << 1) | (w15 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w15 + ((e & a) | (e & b) | (a & b)) + 0x8F1BBCDC ;
- e = (e << 30) | (e >>> 2) ;
- w0 = w13 ^ w8 ^ w2 ^ w0; w0 = (w0 << 1) | (w0 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w0 + ((d & e) | (d & a) | (e & a)) + 0x8F1BBCDC ;
- d = (d << 30) | (d >>> 2) ;
- w1 = w14 ^ w9 ^ w3 ^ w1; w1 = (w1 << 1) | (w1 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w1 + ((c & d) | (c & e) | (d & e)) + 0x8F1BBCDC ;
- c = (c << 30) | (c >>> 2) ;
- w2 = w15 ^ w10 ^ w4 ^ w2; w2 = (w2 << 1) | (w2 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w2 + ((b & c) | (b & d) | (c & d)) + 0x8F1BBCDC ;
- b = (b << 30) | (b >>> 2) ;
- w3 = w0 ^ w11 ^ w5 ^ w3; w3 = (w3 << 1) | (w3 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w3 + ((a & b) | (a & c) | (b & c)) + 0x8F1BBCDC ;
- a = (a << 30) | (a >>> 2) ;
- w4 = w1 ^ w12 ^ w6 ^ w4; w4 = (w4 << 1) | (w4 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w4 + ((e & a) | (e & b) | (a & b)) + 0x8F1BBCDC ;
- e = (e << 30) | (e >>> 2) ;
- w5 = w2 ^ w13 ^ w7 ^ w5; w5 = (w5 << 1) | (w5 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w5 + ((d & e) | (d & a) | (e & a)) + 0x8F1BBCDC ;
- d = (d << 30) | (d >>> 2) ;
- w6 = w3 ^ w14 ^ w8 ^ w6; w6 = (w6 << 1) | (w6 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w6 + ((c & d) | (c & e) | (d & e)) + 0x8F1BBCDC ;
- c = (c << 30) | (c >>> 2) ;
- w7 = w4 ^ w15 ^ w9 ^ w7; w7 = (w7 << 1) | (w7 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w7 + ((b & c) | (b & d) | (c & d)) + 0x8F1BBCDC ;
- b = (b << 30) | (b >>> 2) ;
- w8 = w5 ^ w0 ^ w10 ^ w8; w8 = (w8 << 1) | (w8 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w8 + ((a & b) | (a & c) | (b & c)) + 0x8F1BBCDC ;
- a = (a << 30) | (a >>> 2) ;
- w9 = w6 ^ w1 ^ w11 ^ w9; w9 = (w9 << 1) | (w9 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w9 + ((e & a) | (e & b) | (a & b)) + 0x8F1BBCDC ;
- e = (e << 30) | (e >>> 2) ;
- w10 = w7 ^ w2 ^ w12 ^ w10; w10 = (w10 << 1) | (w10 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w10 + ((d & e) | (d & a) | (e & a)) + 0x8F1BBCDC ;
- d = (d << 30) | (d >>> 2) ;
- w11 = w8 ^ w3 ^ w13 ^ w11; w11 = (w11 << 1) | (w11 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w11 + ((c & d) | (c & e) | (d & e)) + 0x8F1BBCDC ;
- c = (c << 30) | (c >>> 2) ;
- w12 = w9 ^ w4 ^ w14 ^ w12; w12 = (w12 << 1) | (w12 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w12 + (b ^ c ^ d) + 0xCA62C1D6 ;
- b = (b << 30) | (b >>> 2) ;
- w13 = w10 ^ w5 ^ w15 ^ w13; w13 = (w13 << 1) | (w13 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w13 + (a ^ b ^ c) + 0xCA62C1D6 ;
- a = (a << 30) | (a >>> 2) ;
- w14 = w11 ^ w6 ^ w0 ^ w14; w14 = (w14 << 1) | (w14 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w14 + (e ^ a ^ b) + 0xCA62C1D6 ;
- e = (e << 30) | (e >>> 2) ;
- w15 = w12 ^ w7 ^ w1 ^ w15; w15 = (w15 << 1) | (w15 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w15 + (d ^ e ^ a) + 0xCA62C1D6 ;
- d = (d << 30) | (d >>> 2) ;
- w0 = w13 ^ w8 ^ w2 ^ w0; w0 = (w0 << 1) | (w0 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w0 + (c ^ d ^ e) + 0xCA62C1D6 ;
- c = (c << 30) | (c >>> 2) ;
- w1 = w14 ^ w9 ^ w3 ^ w1; w1 = (w1 << 1) | (w1 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w1 + (b ^ c ^ d) + 0xCA62C1D6 ;
- b = (b << 30) | (b >>> 2) ;
- w2 = w15 ^ w10 ^ w4 ^ w2; w2 = (w2 << 1) | (w2 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w2 + (a ^ b ^ c) + 0xCA62C1D6 ;
- a = (a << 30) | (a >>> 2) ;
- w3 = w0 ^ w11 ^ w5 ^ w3; w3 = (w3 << 1) | (w3 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w3 + (e ^ a ^ b) + 0xCA62C1D6 ;
- e = (e << 30) | (e >>> 2) ;
- w4 = w1 ^ w12 ^ w6 ^ w4; w4 = (w4 << 1) | (w4 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w4 + (d ^ e ^ a) + 0xCA62C1D6 ;
- d = (d << 30) | (d >>> 2) ;
- w5 = w2 ^ w13 ^ w7 ^ w5; w5 = (w5 << 1) | (w5 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w5 + (c ^ d ^ e) + 0xCA62C1D6 ;
- c = (c << 30) | (c >>> 2) ;
- w6 = w3 ^ w14 ^ w8 ^ w6; w6 = (w6 << 1) | (w6 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w6 + (b ^ c ^ d) + 0xCA62C1D6 ;
- b = (b << 30) | (b >>> 2) ;
- w7 = w4 ^ w15 ^ w9 ^ w7; w7 = (w7 << 1) | (w7 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w7 + (a ^ b ^ c) + 0xCA62C1D6 ;
- a = (a << 30) | (a >>> 2) ;
- w8 = w5 ^ w0 ^ w10 ^ w8; w8 = (w8 << 1) | (w8 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w8 + (e ^ a ^ b) + 0xCA62C1D6 ;
- e = (e << 30) | (e >>> 2) ;
- w9 = w6 ^ w1 ^ w11 ^ w9; w9 = (w9 << 1) | (w9 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w9 + (d ^ e ^ a) + 0xCA62C1D6 ;
- d = (d << 30) | (d >>> 2) ;
- w10 = w7 ^ w2 ^ w12 ^ w10; w10 = (w10 << 1) | (w10 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w10 + (c ^ d ^ e) + 0xCA62C1D6 ;
- c = (c << 30) | (c >>> 2) ;
- w11 = w8 ^ w3 ^ w13 ^ w11; w11 = (w11 << 1) | (w11 >>> 31) ;
- e += ((a << 5) | ( a >>> 27)) + w11 + (b ^ c ^ d) + 0xCA62C1D6 ;
- b = (b << 30) | (b >>> 2) ;
- w12 = w9 ^ w4 ^ w14 ^ w12; w12 = (w12 << 1) | (w12 >>> 31) ;
- d += ((e << 5) | ( e >>> 27)) + w12 + (a ^ b ^ c) + 0xCA62C1D6 ;
- a = (a << 30) | (a >>> 2) ;
- w13 = w10 ^ w5 ^ w15 ^ w13; w13 = (w13 << 1) | (w13 >>> 31) ;
- c += ((d << 5) | ( d >>> 27)) + w13 + (e ^ a ^ b) + 0xCA62C1D6 ;
- e = (e << 30) | (e >>> 2) ;
- w14 = w11 ^ w6 ^ w0 ^ w14; w14 = (w14 << 1) | (w14 >>> 31) ;
- b += ((c << 5) | ( c >>> 27)) + w14 + (d ^ e ^ a) + 0xCA62C1D6 ;
- d = (d << 30) | (d >>> 2) ;
- w15 = w12 ^ w7 ^ w1 ^ w15; w15 = (w15 << 1) | (w15 >>> 31) ;
- a += ((b << 5) | ( b >>> 27)) + w15 + (c ^ d ^ e) + 0xCA62C1D6 ;
- c = (c << 30) | (c >>> 2) ;
-
- h0 += a;
- h1 += b;
- h2 += c;
- h3 += d;
- h4 += e;
- }
-
-
- private void completeFinalBuffer(ByteBuffer buffer) {
- if(finalBuffer.position() == 0)
- return;
-
- while(buffer.remaining() > 0 && finalBuffer.remaining() > 0) {
- finalBuffer.put(buffer.get());
- }
-
- if(finalBuffer.remaining() == 0) {
- finalBuffer.position(0);
- transform(finalBuffer);
- finalBuffer.position(0);
- }
- }
-
-
-
- /**
- * Resets the SHA-1 to initial state for a new message digest calculation.
- * Must be called before starting a new hash calculation.
- */
- public void reset() {
- h0 = 0x67452301;
- h1 = 0xEFCDAB89;
- h2 = 0x98BADCFE;
- h3 = 0x10325476;
- h4 = 0xC3D2E1F0;
-
- length = 0;
-
- finalBuffer.clear();
- }
-
-
- /**
- * Starts or continues a SHA-1 message digest calculation.
- * Only the remaining bytes of the given ByteBuffer are used.
- * @param buffer input data
- */
- public void update(ByteBuffer buffer) {
- length += buffer.remaining();
- //Save current position to leave given buffer unchanged
- int position = buffer.position();
-
- //Complete the final buffer if needed
- completeFinalBuffer(buffer);
-
- while(buffer.remaining() >= 64) {
- transform(buffer);
- }
-
- if(buffer.remaining() != 0) {
- finalBuffer.put(buffer);
- }
-
- buffer.position(position);
- }
-
-
- /**
- * Finishes the SHA-1 message digest calculation.
- * @return 20-byte hash result
- */
- public byte[] digest() {
- byte[] result = new byte[20];
-
- finalBuffer.put((byte)0x80);
- if(finalBuffer.remaining() < 8) {
- while(finalBuffer.remaining() > 0) {
- finalBuffer.put((byte)0);
- }
- finalBuffer.position(0);
- transform(finalBuffer);
- finalBuffer.position(0);
- }
-
- while(finalBuffer.remaining() > 8) {
- finalBuffer.put((byte)0);
- }
-
- finalBuffer.putLong(length << 3);
- finalBuffer.position(0);
- transform(finalBuffer);
-
- finalBuffer.position(0);
- finalBuffer.putInt(h0);
- finalBuffer.putInt(h1);
- finalBuffer.putInt(h2);
- finalBuffer.putInt(h3);
- finalBuffer.putInt(h4);
- finalBuffer.position(0);
-
- for(int i = 0 ; i < 20 ; i++) {
- result[i] = finalBuffer.get();
- }
-
- return result;
- }
-
-
- /**
- * Finishes the SHA-1 message digest calculation, by first performing a final update
- * from the given input buffer, then completing the calculation as with digest().
- * @param buffer input data
- * @return 20-byte hash result
- */
- public byte[] digest(ByteBuffer buffer) {
- update( buffer );
- return digest();
- }
-
-
-
- /**
- * Save the current digest state.
- * This allows the resuming of a SHA-1 calculation, even after a digest calculation
- * is finished with digest().
- */
- public void saveState() {
- s0=h0;
- s1=h1;
- s2=h2;
- s3=h3;
- s4=h4;
-
- saveLength = length;
-
- int position = finalBuffer.position();
-
- finalBuffer.position(0);
- finalBuffer.limit(position);
-
- saveBuffer.clear();
- saveBuffer.put(finalBuffer);
- saveBuffer.flip();
-
- finalBuffer.limit(64);
- finalBuffer.position( position );
- }
-
-
- /**
- * Restore the digest to its previously-saved state.
- */
- public void restoreState() {
- h0=s0;
- h1=s1;
- h2=s2;
- h3=s3;
- h4=s4;
-
- length = saveLength;
-
- finalBuffer.clear();
- finalBuffer.put(saveBuffer);
- }
-
-
-}
diff --git a/test/src/org/gudy/azureus2/core3/util/test/SHA1SpeedTest.java b/test/src/org/gudy/azureus2/core3/util/test/SHA1SpeedTest.java
deleted file mode 100644
index 7cab21e..0000000
--- a/test/src/org/gudy/azureus2/core3/util/test/SHA1SpeedTest.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Created on Mar 12, 2004
- * Created by Alon Rohter
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- */
-package org.gudy.azureus2.core3.util.test;
-
-import java.nio.*;
-import java.util.Arrays;
-import java.util.Random;
-
-// import org.gudy.azureus2.core3.util.SHA1;
-import org.gudy.azureus2.core3.util.ByteFormatter;
-import org.gudy.azureus2.core3.util.SHA1;
-
-/**
- */
-public class SHA1SpeedTest {
-
- private static final int BUFF_MAX_SIZE = 4 * 1024 * 1024;
-
- private static final int[] LOOPS = { 1000000, 30000, 15000, 4000, 3000, 2000, 1200, 800 };
- private static final int[] TESTS = { 1, 16, 64, 256, 512, 1024, 2048, 4096 };
-
- private static final int TEST_SPEED_FACTOR = 1; // use larger numbers for less tests
-
- public static void main(String[] args)
- {
-
- Random rnd = new Random();
-
- SHA1Old oldsha = new SHA1Old();
- SHA1 newsha = new SHA1();
-
- ByteBuffer dBuffer = ByteBuffer.allocateDirect(BUFF_MAX_SIZE);
- ByteBuffer hBuffer = ByteBuffer.allocate(BUFF_MAX_SIZE);
-
- for (int i = 0; i < BUFF_MAX_SIZE; i++)
- {
- byte b = (byte) (rnd.nextInt()&0xFF);
- dBuffer.put(b);
- }
-
- dBuffer.rewind();
- hBuffer.put(dBuffer);
- hBuffer.rewind();
- dBuffer.rewind();
-
-
- // allow time for setting thread to high-priority
- try
- {
- System.out.println("Setting high thread priority to decrease test jitter");
- Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
- Thread.sleep(2000);
- } catch (Exception ignore)
- {
- }
-
- for (int t = 0; t < TESTS.length; t++)
- {
-
- int buffsize = TESTS[t] * 1024;
-
- dBuffer.position(0);
- dBuffer.limit(buffsize);
- hBuffer.position(0);
- hBuffer.limit(buffsize);
-
-
- int loops = LOOPS[t]/TEST_SPEED_FACTOR;
-
- String info = " [" + buffsize / 1024 + "KB, " + loops + "x] = ";
-
- double totalMBytes = ((double) buffsize / (1024 * 1024)) * loops;
-
-
- long time;
- double speed;
-
-
- System.out.println("direct:");
-
- System.out.print("Old SHA1");
- time = System.currentTimeMillis();
- for (int i = 0; i < loops; i++)
- {
- oldsha.reset();
- oldsha.digest(dBuffer);
- }
- time = System.currentTimeMillis() - time;
- speed = totalMBytes / (time / (double)1024);
- System.out.println(info + time + " ms @ " + speed + " MiB/s");
-
-
- System.out.print("New SHA1 ");
- time = System.currentTimeMillis();
- for (int i = 0; i < loops; i++)
- {
- newsha.reset();
- newsha.digest(dBuffer);
- }
- time = System.currentTimeMillis() - time;
- speed = totalMBytes / (time / (double)1024);
- System.out.println(info + time + " ms @ " + speed + " MiB/s");
-
- System.out.println("heap:");
-
- System.out.print("Old SHA1");
- time = System.currentTimeMillis();
- for (int i = 0; i < loops; i++)
- {
- oldsha.reset();
- oldsha.digest(hBuffer);
- }
- time = System.currentTimeMillis() - time;
- speed = totalMBytes / (time / (double)1024);
- System.out.println(info + time + " ms @ " + speed + " MiB/s");
-
-
- System.out.print("New SHA1 ");
- time = System.currentTimeMillis();
- for (int i = 0; i < loops; i++)
- {
- newsha.reset();
- newsha.digest(hBuffer);
- }
- time = System.currentTimeMillis() - time;
- speed = totalMBytes / (time / (double)1024);
- System.out.println(info + time + " ms @ " + speed + " MiB/s");
-
- System.out.println();
- }
-
-
- System.out.println("performing randomized buffer windowing checks, this may take a while");
-
- byte[] oldd;
- byte[] newd;
- byte[] oldh;
- byte[] newh;
-
- int size;
- int offset;
-
- ByteBuffer dview;
- ByteBuffer hview;
-
- for(int i=0;i<LOOPS[1]/TEST_SPEED_FACTOR;i++)
- {
- size = rnd.nextInt(BUFF_MAX_SIZE);
- offset = rnd.nextInt(BUFF_MAX_SIZE-size-1);
-
- hBuffer.limit(offset+size);
- hBuffer.position(offset);
- dBuffer.limit(offset+size);
- dBuffer.position(offset);
-
- oldsha.reset();
- newsha.reset();
- oldh = oldsha.digest(hBuffer);
- newh = newsha.digest(hBuffer);
- oldsha.reset();
- newsha.reset();
- oldd = oldsha.digest(dBuffer);
- newd = newsha.digest(dBuffer);
-
-
- if(!Arrays.equals(oldh, newh) || !Arrays.equals(oldd, newd) || !Arrays.equals(oldd, oldh))
- {
- System.out.println("hash mismatch at offset: "+offset+" size: "+size);
- System.out.println("\t\t"+ByteFormatter.nicePrint(oldh));
- System.out.println("\t\t"+ByteFormatter.nicePrint(newh));
- System.out.println("\t\t"+ByteFormatter.nicePrint(oldd));
- System.out.println("\t\t"+ByteFormatter.nicePrint(newd));
- }
-
- if(hBuffer.limit() != offset+size || dBuffer.limit() != offset+size || hBuffer.position() != offset || dBuffer.position() != offset)
- System.out.println("buffer does not match its original state");
-
- dview = dBuffer.slice();
- hview = hBuffer.slice();
-
- oldsha.reset();
- newsha.reset();
- oldh = oldsha.digest(hview);
- newh = newsha.digest(hview);
- oldsha.reset();
- newsha.reset();
- oldd = oldsha.digest(dview);
- newd = newsha.digest(dview);
-
-
- if(!Arrays.equals(oldh, newh) || !Arrays.equals(oldd, newd) || !Arrays.equals(oldd, oldh))
- {
- System.out.println("(view) hash mismatch at offset: "+offset+" size: "+size);
- System.out.println("\t\t"+ByteFormatter.nicePrint(oldh));
- System.out.println("\t\t"+ByteFormatter.nicePrint(newh));
- System.out.println("\t\t"+ByteFormatter.nicePrint(oldd));
- System.out.println("\t\t"+ByteFormatter.nicePrint(newd));
- }
-
- if(hview.limit() != hview.capacity() || dview.limit() != dview.capacity() || hview.position() != 0 || dview.position() != 0)
- System.out.println("view buffer does not match its original state");
- }
- System.out.println("DONE");
-
- }
-
-}
diff --git a/test/src/org/gudy/azureus2/core3/util/test/SHA1Verification.java b/test/src/org/gudy/azureus2/core3/util/test/SHA1Verification.java
deleted file mode 100644
index d27cfcf..0000000
--- a/test/src/org/gudy/azureus2/core3/util/test/SHA1Verification.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Created on Apr 4, 2004
- * Created by Alon Rohter
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-package org.gudy.azureus2.core3.util.test;
-
-
-import java.io.*;
-import java.nio.*;
-import java.nio.channels.*;
-import java.util.*;
-
-import org.gudy.azureus2.core3.util.Debug;
-import org.gudy.azureus2.core3.util.FileUtil;
-import org.gudy.azureus2.core3.util.SHA1;
-import java.security.MessageDigest;
-
-/**
- *
- */
-public class SHA1Verification {
-
- public static final String dirname = "D:" + System.getProperty("file.separator") + "testdir";
-
- public static void main(String[] args) {
- if (! new File( dirname ).exists()) createTestFiles();
- runTests();
- }
-
- public static void createTestFiles() {
- try {
- System.out.println("Creating test files ... ");
- Random rand = new Random();
- String rootname = "f-";
-
- long[] sizes = { 0, 1, 50000000 };
-
- File testdir = new File( dirname );
- FileUtil.mkdirs(testdir);
-
-
-
- for (int i=0; i < sizes.length; i++) {
- long size = sizes[i];
- File file = new File( testdir, rootname + String.valueOf( size ));
- System.out.println( file.getName() + "...");
- FileChannel fc = new RandomAccessFile( file, "rw" ).getChannel();
-
- long position = 0;
- while ( position < size ) {
- long remaining = size - position;
- if ( remaining > 1024000 ) remaining = 1024000;
- byte[] buffer = new byte[ new Long(remaining).intValue() ];
- rand.nextBytes( buffer );
- ByteBuffer bb = ByteBuffer.wrap( buffer );
- position += fc.write( bb );
- }
-
- fc.close();
- }
- System.out.println("DONE\n");
- }
- catch (Exception e) { Debug.printStackTrace( e ); }
- }
-
-
- public static void runTests() {
- try {
-
- //SHA1 sha1Jmule = new SHA1();
- MessageDigest sha1Sun = MessageDigest.getInstance("SHA-1");
- SHA1 sha1Gudy = new SHA1();
- //SHA1Az shaGudyResume = new SHA1Az();
-
- ByteBuffer buffer = ByteBuffer.allocate( 1024 * 1024 );
-
- File dir = new File( dirname );
- File[] files = dir.listFiles();
-
- for (int i=0; i < files.length; i++) {
- FileChannel fc = new RandomAccessFile( files[i], "r" ).getChannel();
-
- System.out.println("Testing " + files[i].getName() + " ...");
-
- while( fc.position() < fc.size() ) {
- fc.read( buffer );
- buffer.flip();
-
- byte[] raw = new byte[ buffer.limit() ];
- System.arraycopy( buffer.array(), 0, raw, 0, raw.length );
-
- sha1Gudy.update( buffer );
- sha1Gudy.saveState();
- ByteBuffer bb = ByteBuffer.wrap( new byte[56081] );
- sha1Gudy.digest( bb );
- sha1Gudy.restoreState();
-
- sha1Sun.update( raw );
-
- buffer.clear();
- }
-
- byte[] sun = sha1Sun.digest();
- sha1Sun.reset();
-
- byte[] gudy = sha1Gudy.digest();
- sha1Gudy.reset();
-
- if ( Arrays.equals( sun, gudy ) ) {
- System.out.println(" SHA1-Gudy: OK");
- }
- else {
- System.out.println(" SHA1-Gudy: FAILED");
- }
-
- buffer.clear();
- fc.close();
- System.out.println();
- }
-
- }
- catch (Throwable e) { Debug.printStackTrace( e );}
- }
-
-
-}
diff --git a/test/src/org/gudy/azureus2/core3/util/test/Sha1AlgorithmHelper.java b/test/src/org/gudy/azureus2/core3/util/test/Sha1AlgorithmHelper.java
deleted file mode 100644
index f98a052..0000000
--- a/test/src/org/gudy/azureus2/core3/util/test/Sha1AlgorithmHelper.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * File : Sha1AlgorithmHelper.java
- * Created : 12 mars 2004
- * By : Olivier
- *
- * Azureus - a Java Bittorrent client
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details ( see the LICENSE file ).
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package org.gudy.azureus2.core3.util.test;
-
-/**
- * @author Olivier
- *
- */
-public class Sha1AlgorithmHelper {
-
- public static void main(String args[]) {
- algorithm2NoShift();
- }
-
- //SHA1 Algorithm v2 using only 16 ints and changing variable meaning
- //Over a period of 5 iterations.
-
- // A SHA-1 Basic operation can be discribed as:
- // temp = F(a,b,c,d,e);
- // e = d ; d = c ; c = G(b) ; b = a ; a = temp;
- // The Goal of changing the variable meaning is to remove the allocations
- // made.
- // In order to do, let's replace the role of :
- //
- // e by d,
- // d by c,
- // c by b
- // b by a
- // a by e
- //
- // If we rewrite the 1st equation, we can see that :
- // e = F(a,b,c,d,e); and b = G(b);
- // However, next line will be :
- // d = F(b,c,d,e,a); and a = G(a);
- // Next will be :
- // c = F(c,d,e,a,b); and e = G(e);
- // b = F(d,e,a,b,c); and d = G(d);
- // a = F(e,a,b,c,d); and c = G(c);
- // And we loop to first 'kind' where :
- // e = F(a,b,c,d,e), and b = G(b);
-
- // On 80th iteration (that is for t=79), we've looped 80 = 5 * 16,
- // so we're back to the classic representation of variables a,b,c,d,e
- // and we can directly use them to increment the h0,h1,h2,h3,h4 variables.
-
- public static void algorithm2NoShift() {
- String variables = "abcde";
- int mask = 0x0000000F;
- for(int t = 0 ; t <= 79 ; t++) {
- String a = "" + variables.charAt((85-t)%5);
- String b = "" + variables.charAt((85-t+1)%5);
- String c = "" + variables.charAt((85-t+2)%5);
- String d = "" + variables.charAt((85-t+3)%5);
- String e = "" + variables.charAt((85-t+4)%5);
-
- int s = t & mask;
- if(t >= 16) {
- System.out.println("w" + s + " = w" + ((s+13) & mask) + " ^ w" + ((s+8) & mask) + " ^ w" + ((s+2) & mask) + " ^ w" + s + "; w" + s + " = (w" + s + " << 1) | (w" + s + " >>> 31) ;");
- }
- System.out.print(e + " += ((" + a + " << 5) | ( " + a + " >>> 27)) + w" + s + " + ");
- int ft = t / 20;
- if(ft == 0) {
- System.out.println("((" + b +" & " + c + ") | ((~" + b +" ) & " + d + ")) + 0x5A827999 ;");
- }
- if(ft == 1) {
- System.out.println("(" + b +" ^ " + c + " ^ " + d + ") + 0x6ED9EBA1 ;");
- }
- if(ft == 2) {
- System.out.println("((" + b +" & " + c + ") | (" + b + " & " + d + ") | (" + c + " & " + d + ")) + 0x8F1BBCDC ;");
- }
- if(ft == 3) {
- System.out.println("(" + b + " ^ " + c + " ^ " + d + ") + 0xCA62C1D6 ;");
- }
- System.out.println(b + " = (" + b + " << 30) | (" + b + " >>> 2) ;");
- }
- }
-
-
- //SHA1 Algorithm v2 using only 16 ints (+ a,b,c,d,e and temp)
- public static void algorithm2() {
- int mask = 0x0000000F;
- for(int t = 0 ; t <= 79 ; t++) {
- int s = t & mask;
- if(t >= 16) {
- System.out.println("w" + s + " = w" + ((s+13) & mask) + " ^ w" + ((s+8) & mask) + " ^ w" + ((s+2) & mask) + " ^ w" + s + "; w" + s + " = (w" + s + " << 1) | (w" + s + " >>> 31) ;");
- }
- System.out.print("temp = ((a << 5) | (a >>> 27)) + e + w" + s + " + ");
- int ft = t / 20;
- if(ft == 0) {
- System.out.println("((b & c) | ((~b) & d)) + 0x5A827999 ;");
- }
- if(ft == 1) {
- System.out.println("(b ^ c ^ d) + 0x6ED9EBA1 ;");
- }
- if(ft == 2) {
- System.out.println("((b & c) | (b & d) | (c & d)) + 0x8F1BBCDC ;");
- }
- if(ft == 3) {
- System.out.println("(b ^ c ^ d) + 0xCA62C1D6 ;");
- }
- System.out.println("e=d ; d=c ; c = (b << 30) | (b >>> 2) ; b=a ; a=temp;");
- }
- }
-
- public static void part1() {
- for(int t = 16 ; t <= 79 ; t++) {
- System.out.println( "w" + t + " = w" + (t-3) + " ^ w" + (t-8) + " ^ w" + (t-14) + " ^ w" + (t-16) + ";");
- System.out.println( "w" + t + " = (w" + t + " << 1) | (w" + t + " >>> 31);");
- }
- }
-
- public static void part2() {
- for(int t=0; t<= 79 ; t++) {
- int fn = t / 20;
- System.out.print("temp = ((a << 5) | (a >>> 27)) + e + w" + t + " + ");
- if(fn == 0) {
- System.out.println("((b & c) | ((~b) & d)) + 0x5A827999 ;");
- }
- if(fn == 1) {
- System.out.println("(b ^ c ^ d) + 0x6ED9EBA1 ;");
- }
- if(fn == 2) {
- System.out.println("((b & c) | (b & d) | (c & d)) + 0x8F1BBCDC ;");
- }
- if(fn == 3) {
- System.out.println("(b ^ c ^ d) + 0xCA62C1D6 ;");
- }
- System.out.println("e = d ; d = c ; c = (b<<30) | (b >>> 2); b = a; a = temp;");
- }
- }
-
-}
diff --git a/test/src/org/gudy/azureus2/core3/util/test/SystemClockSpeedup.java b/test/src/org/gudy/azureus2/core3/util/test/SystemClockSpeedup.java
deleted file mode 100644
index 73be994..0000000
--- a/test/src/org/gudy/azureus2/core3/util/test/SystemClockSpeedup.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Created on Apr 11, 2004
- * Created by Alon Rohter
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-package org.gudy.azureus2.core3.util.test;
-
-import org.gudy.azureus2.core3.util.Debug;
-
-
-public class SystemClockSpeedup {
- public static void main(String[] args) {
- for (int i=0; i < 20; i++) {
- new tester().start();
- }
- }
-
-
-
- public static class tester extends Thread {
- public void run() {
- try {
- int count = 0;
- while (true) {
- System.currentTimeMillis();
- count++;
- if (count == 30000) {
- count = 0;
- Thread.sleep(100);
- }
- }
- } catch (Exception e) {
- Debug.printStackTrace( e );
- }
- }
- }
-
-
-
-
-
-}
diff --git a/test/src/org/gudy/azureus2/platform/win32/access/impl/Test.java b/test/src/org/gudy/azureus2/platform/win32/access/impl/Test.java
deleted file mode 100644
index f87025f..0000000
--- a/test/src/org/gudy/azureus2/platform/win32/access/impl/Test.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Created on Apr 16, 2004
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.platform.win32.access.impl;
-
-/**
- * @author parg
- *
- */
-
-import java.io.File;
-import java.net.InetAddress;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.gudy.azureus2.platform.PlatformManagerPingCallback;
-import org.gudy.azureus2.platform.win32.access.AEWin32Access;
-import org.gudy.azureus2.platform.win32.access.AEWin32Manager;
-
-public class
-Test
-{
- public static void
- main(
- String[] args )
- {
- try{
- AEWin32Access access = AEWin32Manager.getAccessor(true);
-
- String app_data = access.getUserAppData();
-
- System.out.println( "AppData = " + app_data );
-
- String local_app_data = access.getLocalAppData();
-
- System.out.println( "Local AppData = " + local_app_data );
-
-
- List availableDrives = AEWin32AccessInterface.getAvailableDrives();
-
- for (Object object : availableDrives) {
- File f = (File) object;
- System.out.println(f.getAbsolutePath());
-
- Map driveInfo = AEWin32AccessInterface.getDriveInfo(f.getPath().charAt(0));
- for (Iterator iter = driveInfo.keySet().iterator(); iter.hasNext();) {
- Object key = (Object) iter.next();
- Object val = driveInfo.get(key);
- System.out.println(key + ": " + val);
- }
-
- }
-
- if (true)
- return;
- /*
- AEWin32Access access = AEWin32Manager.getAccessor();
-
- String app_data = access.getUserAppData();
-
- System.out.println( "AppData = " + app_data );
-
- String az_home = access.getApplicationInstallDir("azureus");
-
- File az_exe = new File( az_home + File.separator + "Azureus.exe" ).getAbsoluteFile();
-
- if ( az_exe.exists()){
-
- //<Nolar> WriteRegStr HKCR ".torrent" "" "BitTorrent"
- //<Nolar> WriteRegStr HKCR "BitTorrent" "" "Bittorrent File"
- //<Nolar> WriteRegStr HKCR "BitTorrent\shell" "" "open"
- //<Nolar> WriteRegStr HKCR "BitTorrent\DefaultIcon" "" $INSTDIR\Azureus.exe,1
- //<Nolar> WriteRegStr HKCR "BitTorrent\shell\open\command" "" '"$INSTDIR\Azureus.exe" "%1"'
- //<Nolar> WriteRegStr HKCR "BitTorrent\Content Type" "" "application/x-bittorrent"
-
- System.out.println( "current = " +
- access.readStringValue(
- AEWin32Access.HKEY_CLASSES_ROOT,
- "BitTorrent\\shell\\open\\command",
- "" ));
-
- access.deleteKey( AEWin32Access.HKEY_CLASSES_ROOT,
- ".torrent" );
-
- access.deleteKey( AEWin32Access.HKEY_CLASSES_ROOT,
- "BitTorrent",
- true );
-
- access.writeStringValue( AEWin32Access.HKEY_CLASSES_ROOT,
- ".torrent",
- "",
- "BitTorrent" );
-
- access.writeStringValue(
- AEWin32Access.HKEY_CLASSES_ROOT,
- "BitTorrent",
- "",
- "Bittorrent File" );
-
- access.writeStringValue(
- AEWin32Access.HKEY_CLASSES_ROOT,
- "BitTorrent\\shell",
- "",
- "open" );
-
- access.writeStringValue(
- AEWin32Access.HKEY_CLASSES_ROOT,
- "BitTorrent\\DefaultIcon",
- "",
- az_exe.toString() + ",1" );
-
- access.writeStringValue(
- AEWin32Access.HKEY_CLASSES_ROOT,
- "BitTorrent\\shell\\open\\command",
- "",
- "\"" + az_exe.toString() + "\" \"%1\"" );
-
- access.writeStringValue(
- AEWin32Access.HKEY_CLASSES_ROOT,
- "BitTorrent\\Content Type" ,
- "",
- "application/x-bittorrent" );
-
- }else{
-
- System.out.println( "can't find Azureus.exe");
- }
- */
-
- //AEWin32AccessInterface.copyPermission( "C:\\temp\\fred", "C:\\temp\\bill" );
-
- /*
- AEWin32AccessImpl.getSingleton( false ).traceRoute(
- InetAddress.getByName( "192.168.1.143" ),
- InetAddress.getByName( "www.google.com"),
- new PlatformManagerPingCallback()
- {
- public boolean
- reportNode(
- int distance,
- InetAddress address,
- int millis )
- {
- System.out.println( distance + ": " + address + " - " + millis );
-
- return( true );
- }
- });
- */
-
- // AEWin32AccessInterface.ping( "www.google.com" );
-
- int res = AEWin32AccessImpl.getSingleton( false ).shellExecuteAndWait(
- "c:\\temp\\3110\\Vuze_3.1.1.0_windows.exe",
- "-VFORCE_LAUNCH=1" );
-
- System.out.println( "res=" + res );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-}
diff --git a/test/src/org/gudy/azureus2/pluginsimpl/local/installer/Test.java b/test/src/org/gudy/azureus2/pluginsimpl/local/installer/Test.java
deleted file mode 100644
index 16cbf31..0000000
--- a/test/src/org/gudy/azureus2/pluginsimpl/local/installer/Test.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Created on 28-Nov-2004
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.pluginsimpl.local.installer;
-
-import java.util.Properties;
-
-import org.gudy.azureus2.core3.util.AEThread;
-import org.gudy.azureus2.plugins.*;
-//import org.gudy.azureus2.plugins.installer.PluginInstaller;
-
-/**
- * @author parg
- *
- */
-public class
-Test
- implements Plugin, PluginListener
-{
- protected PluginManager manager;
-
- public
- Test()
- {
- // constructor for Plugin
- }
-
- public
- Test(
- boolean ignore )
- {
- Properties props = new Properties();
-
- props.put( PluginManager.PR_MULTI_INSTANCE, "true" );
-
- PluginManager.registerPlugin( Test.class );
-
- PluginManager.startAzureus( PluginManager.UI_SWT, props );
- }
-
- public void
- initialize(
- PluginInterface pi )
-
- throws PluginException
- {
- manager = pi.getPluginManager();
-
- pi.addListener( this );
- }
-
- public void
- initializationComplete()
- {
- new AEThread("install tester" )
- {
- public void
- runSupport()
- {
- try{
- sleep(10000);
-
- /*
- PluginInstaller installer = manager.getPluginInstaller();
-
- StandardPlugin[] sps = installer.getStandardPlugins();
-
- String install_name = "azshareexporter";
-
- StandardPlugin install_act = null;
-
- for (int i=0;i<sps.length;i++){
-
- StandardPlugin sp = sps[i];
-
- System.out.println( "Standard Plugin: " + sp.getId() + " - " + sp.getVersion() + ", installed = " + sp.getAlreadyInstalledPlugin());
-
- if ( sp.getId().equals( install_name )){
-
- install_act = sp;
- }
- }
-
- install_act.install( true );
- */
-
- /*
- FilePluginInstaller inst = installer.installFromFile(new File("C:\\temp\\azshareexporter_0.1.jar"));
-
- inst.install( false );
- */
-
- PluginInterface pi = manager.getPluginInterfaceByID("azshareexporter");
-
- pi.getPluginState().uninstall();
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
- }.start();
- }
-
- public void
- closedownInitiated()
- {
-
- }
-
- public void
- closedownComplete()
- {
-
- }
-
- public static void
- main(
- String[] args )
- {
- new Test(true);
- }
-}
diff --git a/test/src/org/gudy/azureus2/pluginsimpl/local/sharing/test/ShareTester.java b/test/src/org/gudy/azureus2/pluginsimpl/local/sharing/test/ShareTester.java
deleted file mode 100644
index ddd676e..0000000
--- a/test/src/org/gudy/azureus2/pluginsimpl/local/sharing/test/ShareTester.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * File : ShareTester.java
- * Created : 30-Dec-2003
- * By : parg
- *
- * Azureus - a Java Bittorrent client
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details ( see the LICENSE file ).
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-package org.gudy.azureus2.pluginsimpl.local.sharing.test;
-
-
-
-import java.util.*;
-
-import org.gudy.azureus2.plugins.*;
-import org.gudy.azureus2.plugins.logging.*;
-import org.gudy.azureus2.plugins.sharing.*;
-import org.gudy.azureus2.plugins.download.*;
-import org.gudy.azureus2.plugins.peers.*;
-import org.gudy.azureus2.core3.util.*;
-
-public class
-ShareTester
- implements Plugin, PluginListener, ShareManagerListener
-{
- protected static AESemaphore init_sem = new AESemaphore("ShareTester");
- private static AEMonitor class_mon = new AEMonitor( "ShareTester" );
-
- protected static ShareTester singleton;
-
- protected Map seed_transport_map = new HashMap();
-
-
- public static ShareTester
- getSingleton()
- {
- try{
- class_mon.enter();
-
- if ( singleton == null ){
-
- new AEThread( "plugin initialiser ")
- {
- public void
- runSupport()
- {
- PluginManager.registerPlugin( ShareTester.class );
-
- Properties props = new Properties();
-
- props.put( PluginManager.PR_MULTI_INSTANCE, "true" );
-
- PluginManager.startAzureus( PluginManager.UI_SWT, props );
- }
- }.start();
-
- init_sem.reserve();
- }
-
- return( singleton );
-
- }finally{
-
- class_mon.exit();
- }
- }
-
- protected PluginInterface plugin_interface;
-
- public void
- initialize(
- PluginInterface _pi )
- {
- plugin_interface = _pi;
-
- singleton = this;
-
- init_sem.release();
-
- LoggerChannel log = plugin_interface.getLogger().getChannel("Plugin Test");
-
- log.log(LoggerChannel.LT_INFORMATION, "Plugin Initialised");
-
- plugin_interface.addListener( this );
- }
-
- public void
- initializationComplete()
- {
- try{
- DownloadManager dm = plugin_interface.getDownloadManager();
-
- dm.addListener(
- new DownloadManagerListener()
- {
- public void
- downloadAdded(
- final Download download )
- {
- System.out.println("downloadAdded: " + download );
-
- download.addListener(
- new DownloadListener()
- {
- public void
- stateChanged(
- Download dl,
- int old,
- int cur )
- {
- System.out.println( "statechange:" + old + "-> " + cur + " (" + download + ")");
- }
- public void
- positionChanged(
- Download download,
- int old,
- int cur)
- {
- System.out.println( "statechange:" + old + "-> " + cur + " (" + download + ")");
- }
- });
-
- download.addTrackerListener(
- new DownloadTrackerListener()
- {
- public void
- scrapeResult(
- DownloadScrapeResult result )
- {
- System.out.println( "scrapeResult:" + result.getSeedCount() + "/" + result.getNonSeedCount());
- }
-
- public void
- announceResult(
- DownloadAnnounceResult result )
- {
- if ( result.getResponseType() == DownloadAnnounceResult.RT_SUCCESS ){
-
- System.out.println( "announceResult:" + result.getReportedPeerCount() + "/" + result.getSeedCount() + "/" + result.getNonSeedCount());
-
- }else{
-
- System.out.println( "announceResult:" + result.getError());
- }
- }
- });
-
- download.addPeerListener(
- new DownloadPeerListener()
- {
- public void
- peerManagerAdded(
- Download download,
- PeerManager peer_manager )
- {
- peer_manager.addListener(
- new PeerManagerListener()
- {
- public void
- peerAdded(
- PeerManager manager,
- Peer peer )
- {
- System.out.println( "peerAdded:" + peer.getIp());
- }
-
- public void
- peerRemoved(
- PeerManager manager,
- Peer peer )
- {
- System.out.println( "peerRemoved:" + peer.getIp());
- }
- });
- }
-
- public void
- peerManagerRemoved(
- Download download,
- PeerManager peer_manager )
- {
- }
- });
- }
- public void
- downloadRemoved(
- Download download )
- {
- System.out.println("downloadRemoved" + download );
- }
- });
-
- ShareManager sm = plugin_interface.getShareManager();
-
- sm.addListener( this );
-
- sm.initialise();
-
- // ShareResourceFile res = sm.addFile( new File("c:\\temp\\shares\\test.wmf"));
- // ShareResourceDirContents res = sm.addDirContents( new File("D:\\music\\cd1"), false);
-
- //Torrent t = res.getItem().getTorrent();
-
- //System.out.println( t.getHash());
-
- }catch( ShareException e ){
-
- Debug.printStackTrace( e );
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
-
- }
-
- public void
- closedownInitiated()
- {
- }
-
- public void
- closedownComplete()
- {
- }
-
- public void
- resourceAdded(
- ShareResource resource )
- {
- System.out.println( "resource added:" + resource.getName());
-
- if ( resource.getType() == ShareResource.ST_DIR_CONTENTS ){
-
- ShareResourceDirContents c = (ShareResourceDirContents)resource;
-
- ShareResource[] kids = c.getChildren();
-
- for (int i=0;i<kids.length;i++){
-
- System.out.println( "\t" + kids[i].getName());
- }
- }
- }
-
- public void
- resourceModified(
- ShareResource old_resource ,
- ShareResource new_resource )
- {
- System.out.println( "resource modified:" + old_resource.getName());
- }
-
- public void
- resourceDeleted(
- ShareResource resource )
- {
- System.out.println( "resource deleted:" + resource.getName());
- }
-
- public void
- reportProgress(
- int percent_complete )
- {
- }
-
- public void
- reportCurrentTask(
- String task_description )
- {
- System.out.println( task_description );
- }
-
- public static void
- main(
- String[] args )
- {
- getSingleton();
- }
-}
diff --git a/test/src/org/gudy/azureus2/pluginsimpl/local/test/Test.java b/test/src/org/gudy/azureus2/pluginsimpl/local/test/Test.java
deleted file mode 100644
index 88fb681..0000000
--- a/test/src/org/gudy/azureus2/pluginsimpl/local/test/Test.java
+++ /dev/null
@@ -1,1266 +0,0 @@
-/*
- * Created on 02-Jan-2005
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.pluginsimpl.local.test;
-
-
-import org.gudy.azureus2.core3.util.AEMonitor;
-import org.gudy.azureus2.core3.util.AESemaphore;
-import org.gudy.azureus2.core3.util.AEThread;
-import org.gudy.azureus2.core3.util.AEThread2;
-import org.gudy.azureus2.core3.util.ByteFormatter;
-import org.gudy.azureus2.core3.util.Debug;
-import org.gudy.azureus2.plugins.Plugin;
-import org.gudy.azureus2.plugins.PluginInterface;
-import org.gudy.azureus2.plugins.PluginListener;
-import org.gudy.azureus2.plugins.PluginManager;
-import org.gudy.azureus2.plugins.ddb.*;
-import org.gudy.azureus2.plugins.disk.DiskManager;
-import org.gudy.azureus2.plugins.disk.DiskManagerException;
-import org.gudy.azureus2.plugins.disk.DiskManagerFileInfo;
-import org.gudy.azureus2.plugins.disk.DiskManagerReadRequest;
-import org.gudy.azureus2.plugins.disk.DiskManagerReadRequestListener;
-import org.gudy.azureus2.plugins.disk.DiskManagerWriteRequest;
-import org.gudy.azureus2.plugins.disk.DiskManagerWriteRequestListener;
-import org.gudy.azureus2.plugins.download.Download;
-import org.gudy.azureus2.plugins.download.DownloadManagerListener;
-import org.gudy.azureus2.plugins.download.DownloadPeerListener;
-import org.gudy.azureus2.plugins.messaging.Message;
-import org.gudy.azureus2.plugins.messaging.MessageException;
-import org.gudy.azureus2.plugins.messaging.MessageManager;
-import org.gudy.azureus2.plugins.messaging.MessageManagerListener;
-import org.gudy.azureus2.plugins.messaging.bittorrent.BTMessageCancel;
-import org.gudy.azureus2.plugins.messaging.bittorrent.BTMessagePiece;
-import org.gudy.azureus2.plugins.messaging.bittorrent.BTMessageRequest;
-import org.gudy.azureus2.plugins.messaging.generic.GenericMessageConnection;
-import org.gudy.azureus2.plugins.messaging.generic.GenericMessageConnectionListener;
-import org.gudy.azureus2.plugins.messaging.generic.GenericMessageEndpoint;
-import org.gudy.azureus2.plugins.messaging.generic.GenericMessageHandler;
-import org.gudy.azureus2.plugins.messaging.generic.GenericMessageRegistration;
-import org.gudy.azureus2.plugins.network.IncomingMessageQueueListener;
-import org.gudy.azureus2.plugins.peers.Peer;
-import org.gudy.azureus2.plugins.peers.PeerManager;
-import org.gudy.azureus2.plugins.peers.PeerManagerEvent;
-import org.gudy.azureus2.plugins.peers.PeerManagerListener2;
-import org.gudy.azureus2.plugins.peers.Piece;
-import org.gudy.azureus2.plugins.torrent.TorrentAttribute;
-import org.gudy.azureus2.plugins.torrent.TorrentAttributeEvent;
-import org.gudy.azureus2.plugins.torrent.TorrentAttributeListener;
-import org.gudy.azureus2.plugins.utils.PooledByteBuffer;
-import org.gudy.azureus2.plugins.utils.Utilities;
-import org.gudy.azureus2.plugins.utils.search.Search;
-import org.gudy.azureus2.plugins.utils.search.SearchInitiator;
-import org.gudy.azureus2.plugins.utils.search.SearchListener;
-import org.gudy.azureus2.plugins.utils.search.SearchProvider;
-import org.gudy.azureus2.plugins.utils.search.SearchProviderResults;
-import org.gudy.azureus2.plugins.utils.search.SearchResult;
-import org.gudy.azureus2.plugins.utils.security.SEPublicKey;
-import org.gudy.azureus2.plugins.utils.security.SEPublicKeyLocator;
-import org.gudy.azureus2.plugins.utils.security.SESecurityManager;
-import org.gudy.azureus2.plugins.utils.subscriptions.Subscription;
-import org.gudy.azureus2.plugins.utils.subscriptions.SubscriptionManager;
-import org.gudy.azureus2.plugins.utils.subscriptions.SubscriptionResult;
-
-import com.aelitis.azureus.core.AzureusCoreFactory;
-import com.aelitis.azureus.core.security.CryptoManagerPasswordHandler;
-import com.aelitis.azureus.core.security.CryptoManagerPasswordHandler.passwordDetails;
-
-import java.io.File;
-import java.io.RandomAccessFile;
-import java.net.InetSocketAddress;
-import java.nio.ByteBuffer;
-import java.util.*;
-
-
-/**
- * @author parg
- *
- */
-
-
-public class
-Test
- implements Plugin
-{
-
- protected PluginInterface plugin_interface;
-
- public void
- initialize(
- PluginInterface _pi )
- {
- plugin_interface = _pi;
-
- plugin_interface.addListener(
- new PluginListener()
- {
- public void
- initializationComplete()
- {
- Thread t =
- new AEThread("test")
- {
- public void
- runSupport()
- {
-
- testBTMessageHandler();
-
- }
- };
-
- t.setDaemon(true);
-
- t.start();
- }
-
- public void
- closedownInitiated()
- {
- }
-
- public void
- closedownComplete()
- {
- }
- });
- }
-
- private void
- testBTMessageHandler()
- {
- try{
- MessageManager man = plugin_interface.getMessageManager();
-
- man.registerMessageType( new BorkMessage( "" ));
-
- man.locateCompatiblePeers(
- plugin_interface,
- new TestMessage( "" ),
- new MessageManagerListener()
- {
- public void
- compatiblePeerFound(
- Download download,
- final Peer peer,
- Message message )
- {
- System.out.println( "Compatible peer found: " + peer.getIp());
-
- peer.getConnection().getIncomingMessageQueue().registerPriorityListener(
- new IncomingMessageQueueListener()
- {
- public boolean
- messageReceived(
- Message message )
- {
- System.out.println( peer.getIp() + ": " + message.getDescription() + " (" + message + ")");
-
- if ( message instanceof BorkMessage ){
-
- System.out.println( "Got a borker: " + ((BorkMessage)message).getArg());
-
- return( true );
- }
-
- return( false );
- }
-
- public void
- bytesReceived(
- int byte_count )
- {
- }
- });
-
- //peer.getConnection().getOutgoingMessageQueue().sendMessage( new BorkMessage( "Hello Mr Borker" ));
- }
-
- public void
- peerRemoved(
- Download download,
- Peer peer )
- {
- }
- });
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
-
- /*
- plugin_interface.getDownloadManager().addListener(
- new DownloadManagerListener()
- {
- public void
- downloadAdded(
- Download download )
- {
- download.addPeerListener(
- new DownloadPeerListener()
- {
- public void
- peerManagerAdded(
- final Download download,
- final PeerManager peer_manager )
- {
- peer_manager.addListener(
- new PeerManagerListener2()
- {
- public void
- eventOccurred(
- PeerManagerEvent event )
- {
- if ( event.getType() == PeerManagerEvent.ET_PEER_ADDED ){
-
- event.getPeer().getConnection().getIncomingMessageQueue().registerPriorityListener(
- new IncomingMessageQueueListener()
- {
- public boolean
- messageReceived(
- Message message )
- {
- if ( message instanceof BTMessageRequest ){
-
- BTMessageRequest request = (BTMessageRequest)message;
-
- System.out.println( "BT_REQUEST: " + request.getPieceNumber() + "/" + request.getPieceOffset() + "/" + request.getLength());
-
- }else if ( message instanceof BTMessageCancel ){
-
- BTMessageCancel cancel = (BTMessageCancel)message;
-
- System.out.println( "BT_CANCEL: " + cancel.getPieceNumber() + "/" + cancel.getPieceOffset() + "/" + cancel.getLength());
-
- }else if ( message instanceof BTMessagePiece ){
-
- BTMessagePiece piece = (BTMessagePiece)message;
-
- System.out.println( "BT_PIECE: " + piece.getPieceNumber() + "/" + piece.getPieceOffset() + "/" + piece.getPieceData().remaining());
- }
-
- return( false );
- }
-
- public void
- bytesReceived(
- int byte_count )
- {
-
- }
- });
- }
- }
- });
- }
-
- public void
- peerManagerRemoved(
- Download download,
- PeerManager peer_manager )
- {
-
- }
- });
- }
-
- public void
- downloadRemoved(
- Download download )
- {
-
- }
- });
- */
- }
-
- private class
- BorkMessage
- implements Message
- {
- private ByteBuffer buffer;
- private String arg;
-
- private
- BorkMessage(
- String _arg )
- {
- arg = _arg;
-
- try{
- byte[] arg_bytes = arg.getBytes( "UTF-8" );
-
- buffer = ByteBuffer.allocate( 4 + arg_bytes.length );
-
- buffer.putInt( arg_bytes.length );
-
- buffer.put( arg_bytes );
-
- buffer.flip();
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public String
- getID()
- {
- return( "BORK_MESSAGE" );
- }
-
- public int
- getType()
- {
- return( TYPE_PROTOCOL_PAYLOAD );
- }
-
- public String
- getDescription()
- {
- return( "borker message" );
- }
-
- public ByteBuffer[]
- getPayload()
- {
- return new ByteBuffer[] { buffer };
- }
-
- public String
- getArg()
- {
- return( arg );
- }
-
- public Message
- create(
- ByteBuffer data )
-
- throws MessageException
- {
- try{
- int size = data.getInt();
-
- byte[] bytes = new byte[ size ];
-
- data.get( bytes );
-
- return( new BorkMessage(new String(bytes, "UTF-8" )));
-
- }catch( Throwable e ){
-
- throw( new MessageException( "create failed", e ));
- }
- }
-
- public void
- destroy()
- {
- }
- }
-
- private class
- TestMessage
- implements Message
- {
- private ByteBuffer buffer;
- private String arg;
-
- private
- TestMessage(
- String _arg )
- {
- arg = _arg;
-
- try{
- byte[] arg_bytes = arg.getBytes( "UTF-8" );
-
- buffer = ByteBuffer.allocate( 4 + arg_bytes.length );
-
- buffer.putInt( arg_bytes.length );
-
- buffer.put( arg_bytes );
-
- buffer.flip();
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public String
- getID()
- {
- return( "BT_REQUEST" );
- }
-
- public int
- getType()
- {
- return( TYPE_PROTOCOL_PAYLOAD );
- }
-
- public String
- getDescription()
- {
- return( "borker message" );
- }
-
- public ByteBuffer[]
- getPayload()
- {
- return new ByteBuffer[] { buffer };
- }
-
- public String
- getArg()
- {
- return( arg );
- }
-
- public Message
- create(
- ByteBuffer data )
-
- throws MessageException
- {
- try{
- int size = data.getInt();
-
- byte[] bytes = new byte[ size ];
-
- data.get( bytes );
-
- return( new BorkMessage(new String(bytes, "UTF-8" )));
-
- }catch( Throwable e ){
-
- throw( new MessageException( "create failed", e ));
- }
- }
-
- public void
- destroy()
- {
- }
- }
-
- private void
- testPluginWrite()
- {
- plugin_interface.getDownloadManager().addListener(
- new DownloadManagerListener()
- {
- public void
- downloadAdded(
- Download download )
- {
- download.addPeerListener(
- new DownloadPeerListener()
- {
- public void
- peerManagerAdded(
- final Download download,
- final PeerManager peer_manager )
- {
- new AEThread2( "" )
- {
- public void
- run()
- {
- DiskManager dm = peer_manager.getDiskManager();
-
- File f = new File( "C:\\temp\\capture2.pcap" );
-
- long len = f.length();
-
- int piece_size = (int)download.getTorrent().getPieceSize();
-
- int max_blocks = piece_size / DiskManager.BLOCK_SIZE;
-
- List<long[]> chunks = new ArrayList<long[]>();
-
- long i = 0;
-
- while( i < len ){
-
- int blocks = ((int)(Math.random()*max_blocks))+1;
-
- long rem_in_piece = i - ((i/piece_size)*piece_size);
-
- if ( rem_in_piece == 0 ){
-
- rem_in_piece = piece_size;
- }
-
- rem_in_piece = Math.min( len-i, rem_in_piece);
-
- long chunk_size = Math.min(rem_in_piece,blocks*DiskManager.BLOCK_SIZE);
-
- chunks.add( new long[]{ i, chunk_size });
-
- i += chunk_size;
- }
-
- Utilities utils = plugin_interface.getUtilities();
-
- try{
- RandomAccessFile raf = new RandomAccessFile(f, "r" );
-
- while( !chunks.isEmpty()){
-
- long[] chunk = chunks.remove((int)(Math.random()*chunks.size()));
-
- final long position = chunk[0];
- final int size = (int)chunk[1];
-
- raf.seek( position );
-
- byte[] buffer = new byte[ size ];
-
- raf.read( buffer );
-
- int piece_number = (int)(position/piece_size);
- int piece_offset = (int)(position % piece_size);
-
- dm.write(
- piece_number,
- piece_offset,
- utils.allocatePooledByteBuffer( buffer ),
- new DiskManagerWriteRequestListener()
- {
- public void
- complete(
- DiskManagerWriteRequest request )
- {
- System.out.println( "write ok: offset=" + position + ",size=" + size );
- }
-
- public void
- failed(
- DiskManagerWriteRequest request,
- DiskManagerException error )
- {
- System.out.println( "write failed" );
-
- error.printStackTrace();
- }
- });
-
- Thread.sleep(10);
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
- }.start();
- }
-
- public void
- peerManagerRemoved(
- Download download,
- PeerManager peer_manager )
- {
-
- }
- });
- }
-
- public void
- downloadRemoved(
- Download download )
- {
-
- }
- });
- }
-
- private void
- testPieceListener()
- {
- plugin_interface.getDownloadManager().addListener(
- new DownloadManagerListener()
- {
- public void
- downloadAdded(
- Download download )
- {
- download.addPeerListener(
- new DownloadPeerListener()
- {
- public void
- peerManagerAdded(
- Download download,
- final PeerManager peer_manager )
- {
- peer_manager.addListener(
- new PeerManagerListener2()
- {
- public void
- eventOccurred(
- PeerManagerEvent event )
- {
- if ( event.getType() == PeerManagerEvent.ET_PIECE_COMPLETION_CHANGED ){
-
- Piece piece = (Piece)event.getData();
-
- System.out.println( "piece: " + piece.getIndex() + ", done=" + piece.isDone());
-
- try{
- peer_manager.getDiskManager().read(
- piece.getIndex(),
- 0,
- piece.getLength(),
- new DiskManagerReadRequestListener()
- {
- public void
- complete(
- DiskManagerReadRequest request,
- PooledByteBuffer buffer )
- {
- System.out.println( " read ok" );
-
- buffer.returnToPool();
- }
-
- public void
- failed(
- DiskManagerReadRequest request,
- DiskManagerException error )
- {
- System.out.println( " read failed: " + Debug.getNestedExceptionMessage( error ));
- }
- });
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
- }
- });
- }
-
- public void
- peerManagerRemoved(
- Download download,
- PeerManager peer_manager )
- {
-
- }
- });
- }
-
- public void
- downloadRemoved(
- Download download )
- {
-
- }
- });
- }
-
- private void
- testSubs()
- {
- try{
- SubscriptionManager sm = plugin_interface.getUtilities().getSubscriptionManager();
-
- Subscription[] subs = sm.getSubscriptions();
-
- for ( Subscription s: subs ){
-
- System.out.println( "subs: " + s.getName());
-
- SubscriptionResult[] results = s.getResults();
-
- for ( SubscriptionResult result: results ){
-
- System.out.println( " " + result.getProperty( SearchResult.PR_NAME ) + ", read=" + result.isRead());
- }
-
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- private void
- testMessaging()
- {
- try{
- AzureusCoreFactory.getSingleton().getCryptoManager().addPasswordHandler(
- new CryptoManagerPasswordHandler()
- {
- public int
- getHandlerType()
- {
- return( HANDLER_TYPE_USER );
- }
-
- public passwordDetails
- getPassword(
- int handler_type,
- int action_type,
- boolean last_pw_incorrect,
- String reason )
- {
- System.out.println( "CryptoPassword (" + reason + ")");
-
- return(
- new passwordDetails()
- {
- public char[]
- getPassword()
- {
- return( "changeit".toCharArray());
- }
-
- public int
- getPersistForSeconds()
- {
- return( 0 );
- }
- });
- }
-
- public void
- passwordOK(
- int handler_type,
- passwordDetails details)
- {
- }
- });
-
- final SESecurityManager sec_man = plugin_interface.getUtilities().getSecurityManager();
-
- final SEPublicKey my_key = sec_man.getPublicKey( SEPublicKey.KEY_TYPE_ECC_192, "test" );
-
- final int stream_crypto = MessageManager.STREAM_ENCRYPTION_RC4_REQUIRED;
- final boolean use_sts = true;
- final int block_crypto = SESecurityManager.BLOCK_ENCRYPTION_AES;
-
- GenericMessageRegistration reg =
- plugin_interface.getMessageManager().registerGenericMessageType(
- "GENTEST", "Gen test desc",
- stream_crypto,
- new GenericMessageHandler()
- {
- public boolean
- accept(
- GenericMessageConnection connection )
-
- throws MessageException
- {
- System.out.println( "accept" );
-
- try{
- if ( use_sts ){
-
- connection = sec_man.getSTSConnection(
- connection,
- my_key,
- new SEPublicKeyLocator()
- {
- public boolean
- accept(
- Object context,
- SEPublicKey other_key )
- {
- System.out.println( "acceptKey" );
-
- return( true );
- }
- },
- "test",
- block_crypto );
- }
-
- connection.addListener(
- new GenericMessageConnectionListener()
- {
- public void
- connected(
- GenericMessageConnection connection )
- {
- }
-
- public void
- receive(
- GenericMessageConnection connection,
- PooledByteBuffer message )
-
- throws MessageException
- {
- System.out.println( "receive: " + message.toByteArray().length );
-
- PooledByteBuffer reply =
- plugin_interface.getUtilities().allocatePooledByteBuffer(
- new byte[connection.getMaximumMessageSize()]);
-
- connection.send( reply );
- }
-
- public void
- failed(
- GenericMessageConnection connection,
- Throwable error )
-
- throws MessageException
- {
- System.out.println( "Responder connection error:" );
-
- error.printStackTrace();
- }
- });
-
- }catch( Throwable e ){
-
- connection.close();
-
- e.printStackTrace();
- }
-
- return( true );
- }
- });
-
- InetSocketAddress tcp_target = new InetSocketAddress( "127.0.0.1", 6889 );
- InetSocketAddress udp_target = new InetSocketAddress( "212.159.18.92", 6881 );
-
- GenericMessageEndpoint endpoint = reg.createEndpoint( tcp_target );
-
- endpoint.addTCP( tcp_target );
- endpoint.addUDP( udp_target );
-
- while( true ){
-
- try{
- for (int i=0;i<1000;i++){
-
- System.out.println( "Test: initiating connection" );
-
- final AESemaphore sem = new AESemaphore( "wait!" );
-
- GenericMessageConnection con = reg.createConnection( endpoint );
-
- if ( use_sts ){
-
- con = sec_man.getSTSConnection(
- con, my_key,
- new SEPublicKeyLocator()
- {
- public boolean
- accept(
- Object context,
- SEPublicKey other_key )
- {
- System.out.println( "acceptKey" );
-
- return( true );
- }
- },
- "test", block_crypto );
- }
-
- con.addListener(
- new GenericMessageConnectionListener()
- {
- public void
- connected(
- GenericMessageConnection connection )
- {
- System.out.println( "connected" );
-
- PooledByteBuffer data = plugin_interface.getUtilities().allocatePooledByteBuffer( "1234".getBytes());
-
- try{
- connection.send( data );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public void
- receive(
- GenericMessageConnection connection,
- PooledByteBuffer message )
-
- throws MessageException
- {
- System.out.println( "receive: " + message.toByteArray().length );
-
-
- try{
- Thread.sleep(30000);
- }catch( Throwable e ){
-
- }
-
- /*
- PooledByteBuffer reply =
- plugin_interface.getUtilities().allocatePooledByteBuffer( new byte[16*1024]);
-
-
- connection.send( reply );
- */
-
- System.out.println( "closing connection" );
-
- connection.close();
-
- sem.release();
- }
-
- public void
- failed(
- GenericMessageConnection connection,
- Throwable error )
-
- throws MessageException
- {
- System.out.println( "Initiator connection error:" );
-
- error.printStackTrace();
-
- sem.release();
- }
- });
-
-
- con.connect();
-
- sem.reserve();
-
- Thread.sleep( 1000 );
- }
-
- }catch( Throwable e ){
-
- e.printStackTrace();
-
- try{
- System.out.println( "Sleeping before retrying" );
-
- Thread.sleep( 30000 );
-
- }catch( Throwable f ){
- }
- }
- }
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- private void
- testSearch()
- {
- while( true ){
-
- try{
- Thread.sleep(1000);
-
- SearchInitiator si = plugin_interface.getUtilities().getSearchInitiator();
-
- SearchProvider[] providers = si.getProviders();
-
- System.out.println( "search providers=" + providers.length );
-
- if ( providers.length > 0 ){
-
- Map<String,String> properties = new HashMap<String,String>();
-
- properties.put( SearchInitiator.PR_SEARCH_TERM, "monkey" );
- properties.put( SearchInitiator.PR_MATURE, "true" );
-
- /*
- *
- final boolean[] complete = {false};
-
- Search s =
- si.createSearch(
- providers,
- properties,
- new SearchListener()
- {
- public void
- receivedResults(
- SearchProviderResults[] results )
- {
- System.out.println( "received results" );
-
- for ( SearchProviderResults result: results ){
-
- System.out.println( " " + result.getProvider().getProperty( SearchProvider.PR_NAME ) + ": comp=" + result.isComplete() + ", error=" + result.getError());
-
- SearchResult[] srs = result.getResults();
-
- for ( SearchResult sr: srs ){
-
- System.out.println( " " + sr.getProperty( SearchResult.PR_NAME ));
- }
- }
- }
-
- public void
- completed()
- {
- System.out.println( "received completed" );
-
- complete[0] = true;
- }
- });
-
- while( !complete[0] ){
-
- Thread.sleep(1000);
-
- System.out.println( "waiting for results" );
- }
- */
-
-
- Search s = si.createSearch( providers, properties, null );
-
- while( !s.isComplete()){
-
- Thread.sleep(1000);
-
- SearchProviderResults[] results = s.getResults();
-
- if ( results.length > 0 ){
-
- System.out.println( "Got results: " + results.length );
-
- for ( SearchProviderResults result: results ){
-
- System.out.println( " " + result.getProvider().getProperty( SearchProvider.PR_NAME ) + ": comp=" + result.isComplete() + ", error=" + result.getError());
-
- SearchResult[] srs = result.getResults();
-
- for ( SearchResult sr: srs ){
-
- System.out.println( " " + sr.getProperty( SearchResult.PR_NAME ));
- }
- }
- }
- }
-
- break;
- }
- }catch( Throwable e){
-
- e.printStackTrace();
- }
- }
- }
-
- private void
- testLinks()
- {
- plugin_interface.getDownloadManager().addListener(
- new DownloadManagerListener()
- {
- public void
- downloadAdded(
- Download download )
- {
- DiskManagerFileInfo[] info = download.getDiskManagerFileInfo();
-
- for (int i=0;i<info.length;i++){
-
- info[i].setLink( new File( "C:\\temp" ));
- }
- }
-
- public void
- downloadRemoved(
- Download download )
- {
-
- }
- });
- }
-
- private void
- testDDB()
- {
- try{
- DistributedDatabase db = plugin_interface.getDistributedDatabase();
-
- DistributedDatabaseKey key = db.createKey( new byte[]{ 4,7,1,2,5,8 });
-
- boolean do_write = false;
-
- if ( do_write ){
-
- DistributedDatabaseValue[] values = new DistributedDatabaseValue[500];
-
- for (int i=0;i<values.length;i++){
-
- byte[] val = new byte[20];
-
- Arrays.fill( val, (byte)i );
-
- values[i] = db.createValue( val );
- }
-
-
- db.write(
- new DistributedDatabaseListener()
- {
- public void
- event(
- DistributedDatabaseEvent event )
- {
- System.out.println( "Event:" + event.getType());
-
- if ( event.getType() == DistributedDatabaseEvent.ET_VALUE_WRITTEN ){
-
- try{
- System.out.println(
- " write - key = " +
- ByteFormatter.encodeString((byte[])event.getKey().getKey()) +
- ", val = " + ByteFormatter.encodeString((byte[]) event.getValue().getValue(byte[].class)));
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
- }
- },
- key,
- values );
- }else{
-
- db.read(
- new DistributedDatabaseListener()
- {
- public void
- event(
- DistributedDatabaseEvent event )
- {
- System.out.println( "Event:" + event.getType());
-
- if ( event.getType() == DistributedDatabaseEvent.ET_VALUE_READ ){
-
- try{
- System.out.println(
- " read - key = " +
- ByteFormatter.encodeString((byte[])event.getKey().getKey()) +
- ", val = " + ByteFormatter.encodeString((byte[]) event.getValue().getValue(byte[].class)));
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
- }
- },
- key,
- 60000 );
- }
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- private void
- taTest()
- {
- try{
-
- final TorrentAttribute ta = plugin_interface.getTorrentManager().getAttribute(TorrentAttribute.TA_CATEGORY);
-
- ta.addTorrentAttributeListener(
- new TorrentAttributeListener()
- {
- public void
- event(
- TorrentAttributeEvent ev )
- {
- System.out.println( "ev: " + ev.getType() + ", " + ev.getData());
-
- if ( ev.getType() == TorrentAttributeEvent.ET_ATTRIBUTE_VALUE_ADDED ){
-
- if ( "plop".equals( ev.getData())){
-
- ta.removeDefinedValue( "plop" );
- }
- }
- }
- });
-
- ta.addDefinedValue( "wibble" );
-
-
- plugin_interface.getDownloadManager().addListener(
- new DownloadManagerListener()
- {
- public void
- downloadAdded(
- Download download )
- {
- try{
- download.setAttribute( ta, "wibble" );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public void
- downloadRemoved(
- Download download )
- {
-
- }
- });
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public static void
- main(
- String[] args )
- {
- System.setProperty( "azureus.dynamic.plugins", "org.gudy.azureus2.pluginsimpl.local.test.Test" );
-
- org.gudy.azureus2.ui.swt.Main.main( args );
- }
-}
diff --git a/test/src/org/gudy/azureus2/pluginsimpl/local/update/Test.java b/test/src/org/gudy/azureus2/pluginsimpl/local/update/Test.java
deleted file mode 100644
index f3e404d..0000000
--- a/test/src/org/gudy/azureus2/pluginsimpl/local/update/Test.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Created on 17-Dec-2004
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.pluginsimpl.local.update;
-
-import java.util.Properties;
-import java.io.*;
-
-import org.gudy.azureus2.core3.util.AEThread;
-import org.gudy.azureus2.plugins.Plugin;
-import org.gudy.azureus2.plugins.PluginException;
-import org.gudy.azureus2.plugins.PluginInterface;
-import org.gudy.azureus2.plugins.PluginListener;
-import org.gudy.azureus2.plugins.PluginManager;
-
-import org.gudy.azureus2.plugins.update.UpdateInstaller;
-import org.gudy.azureus2.plugins.update.UpdateManager;
-
-/**
- * @author parg
- *
- */
-public class
-Test
-implements Plugin, PluginListener
-{
- protected PluginManager manager;
-
- public
- Test()
- {
- // constructor for Plugin
- }
-
- public
- Test(
- boolean ignore )
- {
- Properties props = new Properties();
-
- props.put( PluginManager.PR_MULTI_INSTANCE, "true" );
-
- PluginManager.registerPlugin( Test.class );
-
- PluginManager.startAzureus( PluginManager.UI_SWT, props );
- }
-
- public void
- initialize(
- PluginInterface pi )
-
- throws PluginException
- {
- manager = pi.getPluginManager();
-
- pi.addListener( this );
- }
-
- public void
- initializationComplete()
- {
- new AEThread("update tester" )
- {
- public void
- runSupport()
- {
- try{
-
- UpdateManager update_man = manager.getDefaultPluginInterface().getUpdateManager();
-
- UpdateInstaller installer = update_man.createInstaller();
-
- File from_file = new File( "C:\\temp\\update_from" );
- File to_file = new File( "C:\\temp\\update_to" );
-
- PrintWriter pw = new PrintWriter( new FileWriter( from_file ));
-
- pw.println( "hello mum");
-
- pw.close();
-
- to_file.delete();
-
- installer.addMoveAction( from_file.toString(), to_file.toString());
-
- update_man.applyUpdates( false );
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
- }.start();
- }
-
- public void
- closedownInitiated()
- {
-
- }
-
- public void
- closedownComplete()
- {
-
- }
-
- public static void
- main(
- String[] args )
- {
- new Test(true);
- }
-}
diff --git a/test/src/org/gudy/azureus2/pluginsimpl/local/utils/resourcedownloader/Test.java b/test/src/org/gudy/azureus2/pluginsimpl/local/utils/resourcedownloader/Test.java
deleted file mode 100644
index d5bb341..0000000
--- a/test/src/org/gudy/azureus2/pluginsimpl/local/utils/resourcedownloader/Test.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Created on 25-Apr-2004
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.pluginsimpl.local.utils.resourcedownloader;
-
-/**
- * @author parg
- *
- */
-
-import java.io.*;
-import java.net.*;
-import java.util.Properties;
-
-import org.gudy.azureus2.core3.util.Debug;
-import org.gudy.azureus2.core3.util.FileUtil;
-import org.gudy.azureus2.plugins.*;
-import org.gudy.azureus2.plugins.utils.resourcedownloader.*;
-
-public class
-Test
- implements ResourceDownloaderListener, Plugin
-{
- public void
- initialize(
- PluginInterface pi )
- {
- try{
- ResourceDownloaderFactory rdf = pi.getUtilities().getResourceDownloaderFactory();
-
- // ResourceDownloader rd_t = rdf.create(new URL("http://torrent.vuze.com:88/torrents/Azureus2201-B22.jar.torrent"));
-
- //rd_t = rdf.getMetaRefreshDownloader(rd_t);
-
- //rd_t = rdf.getRetryDownloader(rd_t, 3);
-
- //rd_t = rdf.getTimeoutDownloader(rd_t,1000);
-
- //rd_t = rdf.getTorrentDownloader(rd_t, true, new File("C:\\temp"));
-
- //ResourceDownloader rd_u = rdf.create(new URL("http://azureus.sourceforge.net/cvs/Azureus2201-B22.jar"));
-
- //rd_u = rdf.getMetaRefreshDownloader(rd_u);
-
- //rd_u = rdf.getRetryDownloader(rd_u, 3);
-
- //rd_u = rdf.getSuffixBasedDownloader(rd_u);
-
- ResourceDownloader rd_u = rdf.create( new URL( "http://torrent.vuze.com:88/files/Azureus3009-B5.jar" ));
-
- // rd_u = rdf.getTorrentDownloader( rd_u, true );
-
- rd_u.addListener(
- new ResourceDownloaderAdapter()
- {
- public boolean
- completed(
- ResourceDownloader downloader,
- InputStream data )
- {
- System.out.println( "complete" );
-
- return( true );
- }
-
- public void
- reportPercentComplete(
- ResourceDownloader downloader,
- final int percentage )
- {
- System.out.println( "percentage = " + percentage );
- }
-
- public void
- reportAmountComplete(
- ResourceDownloader downloader,
- long amount )
- {
- System.out.println( "amount = " + amount );
- }
-
- public void
- reportActivity(
- ResourceDownloader downloader,
- String activity)
- {
- System.out.println( "activity = " + activity );
- }
-
- public void
- failed(
- ResourceDownloader downloader,
- ResourceDownloaderException e)
- {
- System.out.println( "failed" );
-
- e.printStackTrace();
- }
- });
-
- InputStream is = rd_u.download();
-
- FileUtil.copyFile( is, new File( "C:\\temp\\file.jar" ));
-
- is.close();
-
- /*
- ResourceDownloader top_downloader =
- rdf.getAlternateDownloader(
- new ResourceDownloader[]{rd_t,rd_u,});
-
- final long totalk = top_downloader.getSize();
-
- top_downloader.addListener(
- new ResourceDownloaderListener()
- {
- public boolean
- completed(
- final ResourceDownloader downloader,
- InputStream data )
- {
- System.out.println( "top - complete" );
-
- return( true );
- }
-
- public void
- reportPercentComplete(
- ResourceDownloader downloader,
- final int percentage )
- {
- System.out.println( "top - percentage = " + percentage );
- }
-
-
- public void
- reportActivity(
- ResourceDownloader downloader,
- String activity)
- {
- System.out.println( "top - activity = " + activity );
- }
-
- public void
- failed(
- ResourceDownloader downloader,
- ResourceDownloaderException e)
- {
- System.out.println( "top - failed" );
- }
- });
-
- top_downloader.asyncDownload();
- */
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
- }
-
- public void
- reportPercentComplete(
- ResourceDownloader downloader,
- int percentage )
- {
- System.out.println( "percent = " + percentage );
- }
-
- public void
- reportAmountComplete(
- ResourceDownloader downloader,
- long amount )
- {
- }
-
- public void
- reportActivity(
- ResourceDownloader downloader,
- String activity )
- {
- System.out.println( "activity = " + activity );
- }
-
- public boolean
- completed(
- ResourceDownloader downloader,
- InputStream data )
- {
- System.out.println( "Completed" );
-
- return( true );
- }
-
- public void
- failed(
- ResourceDownloader downloader,
- ResourceDownloaderException e )
- {
- System.out.println( "Failed");
-
- Debug.printStackTrace( e );
- }
-
- public static void
- main(
- String[] args )
- {
- try{
- PluginManager.registerPlugin( Test.class );
-
- PluginManager.startAzureus( PluginManager.UI_NONE, new Properties() );
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
- }
-}
diff --git a/test/src/org/gudy/azureus2/pluginsimpl/local/utils/xml/rss/Test.java b/test/src/org/gudy/azureus2/pluginsimpl/local/utils/xml/rss/Test.java
deleted file mode 100644
index 7080d7b..0000000
--- a/test/src/org/gudy/azureus2/pluginsimpl/local/utils/xml/rss/Test.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Created on 02-Jan-2005
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.pluginsimpl.local.utils.xml.rss;
-
-import java.net.URL;
-import java.util.Properties;
-
-import org.gudy.azureus2.core3.util.AEMonitor;
-import org.gudy.azureus2.core3.util.AESemaphore;
-import org.gudy.azureus2.core3.util.AEThread;
-import org.gudy.azureus2.plugins.Plugin;
-import org.gudy.azureus2.plugins.PluginInterface;
-import org.gudy.azureus2.plugins.PluginManager;
-import org.gudy.azureus2.plugins.utils.xml.rss.RSSChannel;
-import org.gudy.azureus2.plugins.utils.xml.rss.RSSFeed;
-import org.gudy.azureus2.plugins.utils.xml.rss.RSSItem;
-import org.gudy.azureus2.plugins.utils.xml.simpleparser.SimpleXMLParserDocumentNode;
-
-/**
- * @author parg
- *
- */
-
-
-public class
-Test
- implements Plugin
-{
- private static AESemaphore init_sem = new AESemaphore("RSSTester");
- private static AEMonitor class_mon = new AEMonitor( "RSSTester" );
-
- private static Test singleton;
-
-
- public static Test
- getSingleton()
- {
- try{
- class_mon.enter();
-
- if ( singleton == null ){
-
- new AEThread( "plugin initialiser" )
- {
- public void
- runSupport()
- {
- PluginManager.registerPlugin( Test.class );
-
- Properties props = new Properties();
-
- props.put( PluginManager.PR_MULTI_INSTANCE, "true" );
-
- PluginManager.startAzureus( PluginManager.UI_SWT, props );
- }
- }.start();
-
- init_sem.reserve();
- }
-
- return( singleton );
-
- }finally{
-
- class_mon.exit();
- }
- }
-
- protected PluginInterface plugin_interface;
-
- public void
- initialize(
- PluginInterface _pi )
- {
- plugin_interface = _pi;
-
- singleton = this;
-
- init_sem.release();
-
- try{
- RSSFeed feed = plugin_interface.getUtilities().getRSSFeed(new URL("http://aelitis.com:7979/rss_feed.xml"));
-
- RSSChannel[] channels = feed.getChannels();
-
- for (int i=0;i<channels.length;i++){
-
- RSSChannel channel = channels[i];
-
- System.out.println( "chan: title = " + channel.getTitle() + ", desc = " + channel.getDescription() +
- ", link = " + channel.getLink() + ", pub = " + channel.getPublicationDate());
-
- RSSItem[] items = channel.getItems();
-
- for (int j=0;j<items.length;j++){
-
- RSSItem item = items[j];
-
- System.out.println( " item:" + item.getTitle() + ", desc = " + item.getDescription() + ", link = " + item.getLink());
-
- SimpleXMLParserDocumentNode node = item.getNode();
-
- System.out.println( " [hash] " + node.getChild( "torrent_sha1" ).getValue());
- System.out.println( " [size] " + node.getChild( "torrent_size" ).getValue());
- System.out.println( " [seed] " + node.getChild( "torrent_seeders" ).getValue());
- System.out.println( " [leec] " + node.getChild( "torrent_leechers" ).getValue());
- }
- }
-
- }catch( Throwable e ){
-
- e.printStackTrace();
- }
- }
-
- public static void
- main(
- String[] args )
- {
- getSingleton();
- }
-}
diff --git a/test/src/org/gudy/azureus2/ui/swt/test/Main.java b/test/src/org/gudy/azureus2/ui/swt/test/Main.java
deleted file mode 100644
index a6dbfb3..0000000
--- a/test/src/org/gudy/azureus2/ui/swt/test/Main.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 2000, 2003 IBM Corp. All rights reserved.
- * This file is made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-/*
- * Table example snippet: place arbitrary controls in a table
- *
- * For a list of all SWT example snippets see
- * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
- */
-
-package org.gudy.azureus2.ui.swt.test;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-
-public class Main {
-
- private Color blue;
- private Table table;
-
-
- private boolean mousePressed;
- private TableItem selectedItem;
- Rectangle oldBounds;
- Image oldImage;
-
- public Main() {
- final Display display = new Display ();
- blue = new Color(display,0,0,128);
- final Shell shell = new Shell (display);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- GridData gridData;
- shell.setLayout (layout);
- table = new Table (shell, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
- gridData = new GridData(GridData.FILL_BOTH);
- gridData.horizontalSpan = 3;
- table.setLayoutData(gridData);
- table.setLinesVisible (true);
- Font f = table.getFont();
- FontData fd = f.getFontData()[0];
- fd.setHeight(9);
- Font font = new Font(display, fd);
- table.setFont(font);
-
- Button bOk = new Button(shell,SWT.PUSH);
- bOk.setText("Ok");
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_END | GridData.HORIZONTAL_ALIGN_FILL);
- gridData.grabExcessHorizontalSpace = true;
- gridData.widthHint = 70;
- bOk.setLayoutData(gridData);
-
- Button bCancel = new Button(shell,SWT.PUSH);
- bCancel.setText("Cancel");
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
- gridData.grabExcessHorizontalSpace = false;
- gridData.widthHint = 70;
- bCancel.setLayoutData(gridData);
-
- Button bApply = new Button(shell,SWT.PUSH);
- bApply.setText("Apply");
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
- gridData.grabExcessHorizontalSpace = false;
- gridData.widthHint = 70;
- bApply.setLayoutData(gridData);
-
- for (int i=0; i<2; i++) {
- new TableColumn(table, SWT.NONE);
- }
- for (int i=0; i<12; i++) {
- createTableRow(-1,"Toto" + i , false);
- }
- TableItem item = new TableItem(table,SWT.NULL);
- item.setText(1,"---");
- //Hack to get a correct width
- table.getColumn(0).setWidth(20);
- table.getColumn(1).setWidth(200);
-
-
- table.addMouseListener(new MouseAdapter() {
-
- public void mouseDown(MouseEvent arg0) {
- mousePressed = true;
- selectedItem = table.getItem(new Point(arg0.x,arg0.y));
- if(selectedItem.getText(1).equals("---")) {
- selectedItem = null;
- }
- }
-
- public void mouseUp(MouseEvent e) {
- mousePressed = false;
- //1. Restore old image
- if(oldBounds != null && oldImage != null) {
- GC gc = new GC(table);
- gc.drawImage(oldImage,oldBounds.x,oldBounds.y);
- oldImage.dispose();
- oldImage = null;
- oldBounds = null;
- }
- Point p = new Point(e.x,e.y);
- TableItem item = table.getItem(p);
- if(item != null && selectedItem != null) {
- int index = table.indexOf(item);
- int oldIndex = table.indexOf(selectedItem);
- if(index == oldIndex)
- return;
- String name = (String) selectedItem.getData("name");
- Button oldBtn = (Button)selectedItem.getData("button");
- boolean selected = oldBtn.getSelection();
- oldBtn.dispose();
- createTableRow(index,name,selected);
- selectedItem.dispose();
- Point size = shell.getSize();
- shell.setSize(size.x+1,size.y+1);
- shell.setSize(size);
- }
- }
- });
-
- table.addMouseMoveListener(new MouseMoveListener(){
- public void mouseMove(MouseEvent e) {
- if(mousePressed && selectedItem != null) {
- Point p = new Point(e.x,e.y);
- TableItem item = table.getItem(p);
- if(item != null) {
- GC gc = new GC(table);
- Rectangle bounds = item.getBounds(1);
- //1. Restore old image
- if(oldBounds != null && oldImage != null) {
- gc.drawImage(oldImage,oldBounds.x,oldBounds.y);
- oldImage.dispose();
- oldImage = null;
- oldBounds = null;
- }
- //2. Store the image
- oldImage = new Image(display,bounds.width,2);
- gc.copyArea(oldImage,bounds.x,bounds.y);
- oldBounds = bounds;
-
- //3. Draw a thick line
- gc.setBackground(blue);
- gc.fillRectangle(bounds.x,bounds.y,bounds.width,2);
- }
- }
- }
- });
- shell.pack ();
- shell.open ();
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- display.dispose ();
- if (font != null && !font.isDisposed()) {
- font.dispose();
- }
-}
-
- private void createTableRow(int index,String name,boolean selected) {
- TableItem item;
-
- if(index == -1)
- item = new TableItem (table, SWT.NONE);
- else
- item = new TableItem (table, SWT.NONE,index);
-
- item.setText(1,name);
- item.setData("name",name);
- TableEditor editor = new TableEditor (table);
- Button button = new Button (table, SWT.CHECK);
- button.setSelection(selected);
- button.pack ();
- editor.minimumWidth = button.getSize ().x;
- editor.horizontalAlignment = SWT.CENTER;
- editor.setEditor (button, item, 0);
- item.setData("button",button);
- }
-
-public static void main(String[] args) {
- new Main();
-}
-}
-
diff --git a/test/src/org/gudy/azureus2/ui/swt/test/PrintTransferTypes.java b/test/src/org/gudy/azureus2/ui/swt/test/PrintTransferTypes.java
deleted file mode 100644
index b1bc280..0000000
--- a/test/src/org/gudy/azureus2/ui/swt/test/PrintTransferTypes.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.gudy.azureus2.ui.swt.test;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * Application to identify supported URL drag and drop IDs from different
- * browsers.
- *
- * @see org.gudy.azureus2.ui.swt.URLTransfer
- * @author Rene Leonhardt
- */
-public class PrintTransferTypes extends ByteArrayTransfer {
-
- private static PrintTransferTypes _instance = new PrintTransferTypes();
- private int[] ids;
- private String[] names;
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
- Canvas canvas = new Canvas(shell, SWT.NONE);
- DropTarget target = new DropTarget(canvas, DND.DROP_DEFAULT | DND.DROP_COPY | DND.DROP_LINK | DND.DROP_MOVE | DND.DROP_TARGET_MOVE | DND.DROP_NONE);
- target.setTransfer(new Transfer[] { PrintTransferTypes.getInstance(), TextTransfer.getInstance(), FileTransfer.getInstance()});
- target.addDropListener(new DropTargetAdapter() {
- public void dragEnter(DropTargetEvent event) {
- // if(event.detail == DND.DROP_NONE)
- event.detail = DND.DROP_LINK;
- String ops = "";
- if ((event.operations & DND.DROP_COPY) != 0)
- ops += "Copy;";
- if ((event.operations & DND.DROP_MOVE) != 0)
- ops += "Move;";
- if ((event.operations & DND.DROP_LINK) != 0)
- ops += "Link;";
- System.out.println("Allowed Operations are " + ops);
-
- TransferData[] data = event.dataTypes;
- for (int i = 0; i < data.length; i++) {
- int id = data[i].type;
- String name = getNameFromId(id);
- System.out.println("Data type is " + id + " " + name);
- }
- }
- public void dragOver(DropTargetEvent event) {
- event.detail = DND.DROP_LINK;
- }
- public void drop(DropTargetEvent event) {
- System.out.println("URL dropped: " + event.data);
- System.out.println("Data type is " + event.currentDataType.type + " " + getNameFromId(event.currentDataType.type));
- }
- });
-
- shell.setSize(400, 400);
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-
- public static PrintTransferTypes getInstance() {
- return _instance;
- }
- PrintTransferTypes() {
- ids = new int[50000];
- names = new String[50000];
- for (int i = 0; i < ids.length; i++) {
- ids[i] = i;
- names[i] = getNameFromId(i);
- }
- }
- public void javaToNative(Object object, TransferData transferData) {}
- public Object nativeToJava(TransferData transferData) {
- byte[] buffer = (byte[]) super.nativeToJava(transferData);
- if (buffer == null)
- return null;
- int size = buffer.length;
- byte[] text = new byte[size];
- int j = 0;
- for (int i = 0; i < buffer.length; i++) {
- if (buffer[i] != 0)
- text[j++] = buffer[i];
- }
- String data = new String(text, 0, j);
- int end = data.indexOf("\n");
- return end >= 0 ? data.substring(0, end) : data;
- }
- protected String[] getTypeNames() {
- return names;
- }
- protected int[] getTypeIds() {
- return ids;
- }
- static String getNameFromId(int id) {
- switch (id) {
- case 1 :
- return "CF_TEXT";
- case 8 :
- return "CF_DIB";
- case 13 :
- return "CF_UNICODETEXT";
- case 15 :
- return "CF_HDROP";
- case 49158 :
- return "FileName";
- case 49159 :
- return "FileNameW";
- case 49267 :
- return "Shell IDList Array";
- case 49350 :
- return "FileContents";
- case 49351 :
- return "FileGroupDescriptor";
- case 49352 :
- return "FileGroupDescriptorW";
- case 49356 :
- return "HTML Format";
- case 49357 :
- return "Preferred DropEffect";
- case 49361 :
- return "UniformResourceLocator";
- case 49362 :
- return "UniformResourceLocator"; // or InShellDragLoop
- case 49368 :
- return "UniformResourceLocator";
- case 49429 :
- return "UniformResourceLocatorW";
- case 49458 :
- return "UniformResourceLocatorW";
- case 49569 :
- return "text/html";
- case 49570 :
- return "text/_moz_htmlcontext";
- case 49571 :
- return "text/_moz_htmlinfo";
- case 49624 :
- return "application/x-moz-nativeimage";
-
- }
- return "*UNKNOWN_TYPE*";
- }
-}
\ No newline at end of file
diff --git a/test/src/org/gudy/azureus2/ui/swt/test/SashFormTest.java b/test/src/org/gudy/azureus2/ui/swt/test/SashFormTest.java
deleted file mode 100644
index 1201d77..0000000
--- a/test/src/org/gudy/azureus2/ui/swt/test/SashFormTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Copyright (C) 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 63.529,40 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.ui.swt.test;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @author TuxPaper
- * @created Dec 1, 2006
- *
- */
-public class SashFormTest
-{
- public static void main(String[] args) {
- Display display = Display.getDefault();
-
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- SashForm sf = new SashForm(shell, SWT.VERTICAL);
- sf.SASH_WIDTH = 10;
- sf.setLayout(new FillLayout());
-
- new Composite(sf, SWT.BORDER);
- new Composite(sf, SWT.BORDER);
-
- shell.open();
-
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch()) {
- display.sleep();
- }
- }
- }
-}
diff --git a/test/src/org/gudy/azureus2/ui/swt/test/TableTest.java b/test/src/org/gudy/azureus2/ui/swt/test/TableTest.java
deleted file mode 100644
index d200182..0000000
--- a/test/src/org/gudy/azureus2/ui/swt/test/TableTest.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Created on Jul 18, 2006 11:13:05 AM
- * Copyright (C) 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- */
-package org.gudy.azureus2.ui.swt.test;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * @author TuxPaper
- * @created Jul 18, 2006
- *
- */
-public class TableTest
-{
- static Table tableNormal;
-
- private static Table tableVirtual;
-
- static Display display;
-
- public static void main(String[] args) {
- display = Display.getDefault();
-
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
-
- tableNormal = new Table(shell, SWT.BORDER);
- tableVirtual = new Table(shell, SWT.BORDER | SWT.VIRTUAL);
-
- Button btnStart = new Button(shell, SWT.PUSH);
- btnStart.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- runtest();
- }
- });
-
- shell.open();
-
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch()) {
- display.sleep();
- }
- }
- }
-
- /**
- *
- */
- protected static void runtest() {
- tableNormal.clearAll();
- waitForComplete();
- runtest1();
-
- tableNormal.clearAll();
- waitForComplete();
-
- runtest2();
-
- tableNormal.clearAll();
- waitForComplete();
- runtest3();
-
- tableNormal.clearAll();
- waitForComplete();
- runtest4();
-
- tableNormal.clearAll();
- waitForComplete();
- runtest5();
-
- tableNormal.clearAll();
- waitForComplete();
- runtest6();
-
- tableNormal.clearAll();
- waitForComplete();
- runtest7();
- }
-
- static void runtest1() {
- long lStartTime = System.currentTimeMillis();
-
- for (int i = 0; i < 500; i++) {
- new TableItem(tableNormal, SWT.None);
- }
- waitForComplete();
-
- long lEndTime = System.currentTimeMillis();
- System.out.println("NVI: " + (lEndTime - lStartTime));
- }
-
- static void runtest2() {
- long lStartTime = System.currentTimeMillis();
-
- tableNormal.setItemCount(500);
- waitForComplete();
-
- long lEndTime = System.currentTimeMillis();
- System.out.println("NVS: " + (lEndTime - lStartTime));
-
- }
-
- static void runtest3() {
- long lStartTime = System.currentTimeMillis();
-
- for (int i = 0; i < 500; i++) {
- new TableItem(tableVirtual, SWT.None);
- }
- waitForComplete();
-
- long lEndTime = System.currentTimeMillis();
- System.out.println("VI:" + (lEndTime - lStartTime));
- }
-
- static void runtest4() {
- long lStartTime = System.currentTimeMillis();
-
- tableVirtual.setItemCount(500);
-
- waitForComplete();
-
- long lEndTime = System.currentTimeMillis();
- System.out.println("Vs:" + (lEndTime - lStartTime));
- }
-
- static void waitForComplete() {
- while (display.readAndDispatch()) {}
- }
-
- static void runtest5() {
- tableNormal.setItemCount(1000);
- waitForComplete();
-
- long lStartTime = System.currentTimeMillis();
-
- tableNormal.setItemCount(500);
-
- long lEndTime = System.currentTimeMillis();
- System.out.println("NVD1: " + (lEndTime - lStartTime));
-
- }
-
- static void runtest6() {
- tableNormal.setItemCount(1000);
- waitForComplete();
-
- long lStartTime = System.currentTimeMillis();
-
- for (int i = 0; i < 500; i++) {
- tableNormal.getItem(2).dispose();
- }
-
- long lEndTime = System.currentTimeMillis();
- System.out.println("NVD2: " + (lEndTime - lStartTime));
- }
-
- static void runtest7() {
- tableNormal.setItemCount(1000);
- waitForComplete();
-
-
- int indexes[] = new int[500];
- for (int i = 0; i < 200; i++) {
- indexes[i] = i * 2;
- }
- int x = 400;
- for (int i = 200; i < 500; i++) {
- indexes[i] = x++;
- }
-
- long lStartTime = System.currentTimeMillis();
-
- tableNormal.remove(indexes);
-
- long lEndTime = System.currentTimeMillis();
- System.out.println("NVD3: " + (lEndTime - lStartTime));
- }
-}
diff --git a/test/src/org/gudy/azureus2/ui/swt/test/Win32TransferTypes.java b/test/src/org/gudy/azureus2/ui/swt/test/Win32TransferTypes.java
deleted file mode 100644
index 638a9ea..0000000
--- a/test/src/org/gudy/azureus2/ui/swt/test/Win32TransferTypes.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package org.gudy.azureus2.ui.swt.test;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.internal.ole.win32.*;
-import org.eclipse.swt.internal.win32.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * Application to identify supported URL drag and drop IDs from different browsers on Windows.
- *
- * @see org.gudy.azureus2.ui.swt.URLTransfer
- * @author Rene Leonhardt
- */
-public class Win32TransferTypes extends ByteArrayTransfer {
-
- private static Win32TransferTypes _instance = new Win32TransferTypes();
- private int[] ids;
- private String[] names;
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
- Canvas canvas = new Canvas(shell, SWT.NONE);
- DropTarget target = new DropTarget(canvas, DND.DROP_DEFAULT | DND.DROP_COPY | DND.DROP_LINK | DND.DROP_MOVE | DND.DROP_TARGET_MOVE | DND.DROP_NONE);
- target.setTransfer(new Transfer[] { Win32TransferTypes.getInstance(), TextTransfer.getInstance(), FileTransfer.getInstance()});
- target.addDropListener(new DropTargetAdapter() {
- public void dragEnter(DropTargetEvent event) {
-// if(event.detail == DND.DROP_NONE)
- event.detail = DND.DROP_LINK;
- String ops = "";
- if ((event.operations & DND.DROP_COPY) != 0)
- ops += "Copy;";
- if ((event.operations & DND.DROP_MOVE) != 0)
- ops += "Move;";
- if ((event.operations & DND.DROP_LINK) != 0)
- ops += "Link;";
- System.out.println("Allowed Operations are " + ops);
-
- TransferData[] data = event.dataTypes;
- for (int i = 0; i < data.length; i++) {
- int id = data[i].type;
- String name = getNameFromId(id);
- System.out.println("Data type is " + id + " " + name);
- }
- }
- public void dragOver(DropTargetEvent event) {
- event.detail = DND.DROP_LINK;
- }
- public void drop(DropTargetEvent event) {
- System.out.println("URL dropped: " + event.data);
- System.out.println("Data type is " + event.currentDataType.type + " " + getNameFromId(event.currentDataType.type));
- }
- });
-
- shell.setSize(400, 400);
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-
- public static Win32TransferTypes getInstance() {
- return _instance;
- }
- Win32TransferTypes() {
- ids = new int[50000];
- names = new String[50000];
- for (int i = 0; i < ids.length; i++) {
- ids[i] = i;
- names[i] = getNameFromId(i);
- }
- }
- public void javaToNative(Object object, TransferData transferData) {}
- public Object nativeToJava(TransferData transferData) {
- byte[] buffer = (byte[]) super.nativeToJava(transferData);
- if (buffer == null)
- return null;
- int size = buffer.length;
- byte[] text = new byte[size];
- int j = 0;
- for (int i = 0; i < buffer.length; i++) {
- if (buffer[i] != 0)
- text[j++] = buffer[i];
- }
- String data = new String(text, 0, j);
- int end = data.indexOf("\n");
- return end >= 0 ? data.substring(0, end) : data;
- }
- protected String[] getTypeNames() {
- return names;
- }
- protected int[] getTypeIds() {
- return ids;
- }
- static String getNameFromId(int id) {
- String name = null;
- int maxSize = 128;
- TCHAR buffer = new TCHAR(0, maxSize);
- int size = COM.GetClipboardFormatName(id, buffer, maxSize);
- if (size != 0) {
- name = buffer.toString(0, size);
- } else {
- switch (id) {
- case COM.CF_HDROP :
- name = "CF_HDROP";
- break;
- case COM.CF_TEXT :
- name = "CF_TEXT";
- break;
- case COM.CF_BITMAP :
- name = "CF_BITMAP";
- break;
- case COM.CF_METAFILEPICT :
- name = "CF_METAFILEPICT";
- break;
- case COM.CF_SYLK :
- name = "CF_SYLK";
- break;
- case COM.CF_DIF :
- name = "CF_DIF";
- break;
- case COM.CF_TIFF :
- name = "CF_TIFF";
- break;
- case COM.CF_OEMTEXT :
- name = "CF_OEMTEXT";
- break;
- case COM.CF_DIB :
- name = "CF_DIB";
- break;
- case COM.CF_PALETTE :
- name = "CF_PALETTE";
- break;
- case COM.CF_PENDATA :
- name = "CF_PENDATA";
- break;
- case COM.CF_RIFF :
- name = "CF_RIFF";
- break;
- case COM.CF_WAVE :
- name = "CF_WAVE";
- break;
- case COM.CF_UNICODETEXT :
- name = "CF_UNICODETEXT";
- break;
- case COM.CF_ENHMETAFILE :
- name = "CF_ENHMETAFILE";
- break;
- case COM.CF_LOCALE :
- name = "CF_LOCALE";
- break;
- case COM.CF_MAX :
- name = "CF_MAX";
- break;
- }
- }
- return name;
- }
-}
\ No newline at end of file
diff --git a/test/src/org/gudy/azureus2/ui/systray/Main.java b/test/src/org/gudy/azureus2/ui/systray/Main.java
deleted file mode 100644
index 7af8ae7..0000000
--- a/test/src/org/gudy/azureus2/ui/systray/Main.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * File : Main.java
- * Created : 2 avr. 2004
- * By : Olivier
- *
- * Azureus - a Java Bittorrent client
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details ( see the LICENSE file ).
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package org.gudy.azureus2.ui.systray;
-
- import org.eclipse.swt.*;
- import org.eclipse.swt.graphics.*;
- import org.eclipse.swt.widgets.*;
-
-
-
- public class Main {
-
- public static void main(String[] args) {
- Display display = new Display ();
- Shell shell = new Shell (display);
- Image image = new Image (display, 16, 16);
- final Tray tray = display.getSystemTray ();
- final TrayItem item = new TrayItem (tray, SWT.NONE);
- item.setToolTipText("SWT TrayItem");
- item.addListener (SWT.Show, new Listener () {
- public void handleEvent (Event event) {
- System.out.println("show");
- }
- });
- item.addListener (SWT.Hide, new Listener () {
- public void handleEvent (Event event) {
- System.out.println("hide");
- }
- });
- item.addListener (SWT.Selection, new Listener () {
- public void handleEvent (Event event) {
- System.out.println("selection");
- }
- });
- item.addListener (SWT.DefaultSelection, new Listener () {
- public void handleEvent (Event event) {
- System.out.println("default selection");
- }
- });
- final Menu menu = new Menu (shell, SWT.POP_UP);
- for (int i = 0; i < 8; i++) {
- MenuItem mi = new MenuItem (menu, SWT.PUSH);
- mi.setText ("Item" + i);
- }
- item.addListener (SWT.MenuDetect, new Listener () {
- public void handleEvent (Event event) {
- menu.setVisible (true);
- }
- });
- item.setImage (image);
- shell.setBounds(50, 50, 300, 200);
- shell.open ();
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- image.dispose ();
- display.dispose ();
- }
-}
diff --git a/test/src/org/gudy/azureus2/update/Test.java b/test/src/org/gudy/azureus2/update/Test.java
deleted file mode 100644
index 1e7d005..0000000
--- a/test/src/org/gudy/azureus2/update/Test.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Created on 25-May-2004
- * Created by Paul Gardner
- * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * AELITIS, SAS au capital de 46,603.30 euros
- * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
- *
- */
-
-package org.gudy.azureus2.update;
-
-/**
- * @author parg
- *
- */
-
-import java.io.*;
-
-import org.gudy.azureus2.core3.util.Debug;
-
-public class
-Test
-{
- protected
- Test()
- {
- try{
- InputStream is = new FileInputStream( "Azureus2.jar" );
-
- InputStream pis = new FileInputStream( "plugins" + File.separator + "azupdater" + File.separator + "Azureus2_2.0.8.5_P1.pat" );
-
- OutputStream os = new FileOutputStream( "test.jar" );
-
- new UpdateJarPatcher( is, pis, os, null );
-
- is.close();
-
- pis.close();
-
- os.close();
-
- }catch( Throwable e ){
-
- Debug.printStackTrace( e );
- }
-
- }
-
- public static void
- main(
- String[] args )
- {
- new Test();
- }
-}
diff --git a/uis/src/org/gudy/azureus2/ui/common/StartServer.java b/uis/src/org/gudy/azureus2/ui/common/StartServer.java
index 6e49cd1..b370670 100644
--- a/uis/src/org/gudy/azureus2/ui/common/StartServer.java
+++ b/uis/src/org/gudy/azureus2/ui/common/StartServer.java
@@ -6,6 +6,7 @@ package org.gudy.azureus2.ui.common;
import java.io.BufferedReader;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
@@ -55,6 +56,9 @@ public class StartServer extends Thread {
BufferedReader br = null;
try {
Socket sck = socket.accept();
+
+ AzureusCoreSingleInstanceClient.sendReply( sck );
+
String address = sck.getInetAddress().getHostAddress();
if (address.equals("localhost") || address.equals("127.0.0.1")) {
br = new BufferedReader(new InputStreamReader(sck.getInputStream()));
@@ -84,6 +88,7 @@ public class StartServer extends Thread {
}
}
}
+
sck.close();
} catch (Exception e) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/azureus.git
More information about the pkg-java-commits
mailing list