From 90bc79d4e1641b6f0be06df47d73fe3224bcb6fc Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Fri, 6 Apr 2007 00:39:58 +0000 Subject: [PATCH] - Allow to compile with libtorrent v0.11 --- Changelog | 1 + INSTALL | 2 +- configure | 24 ++-- qcm/libtorrent.qcm | 24 ++-- src/GUI.cpp | 21 +++- src/Icons/splash.jpg | Bin 40238 -> 50238 bytes src/bittorrent.cpp | 99 ++++++++++++--- src/bittorrent.h | 18 ++- src/createtorrent_imp.cpp | 9 +- src/lang/qbittorrent_bg.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_ca.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_da.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_de.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_el.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_en.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_es.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_fi.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_fr.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_it.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_ko.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_nb.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_nl.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_pl.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_pt.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_ro.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_ru.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_sk.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_sv.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_tr.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_uk.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_zh.ts | 230 +++++++++++++++++----------------- src/lang/qbittorrent_zh_HK.ts | 230 +++++++++++++++++----------------- src/options_imp.cpp | 15 ++- src/options_imp.h | 2 + src/src.pro | 2 +- 35 files changed, 2819 insertions(+), 2688 deletions(-) diff --git a/Changelog b/Changelog index 5a3834571..e0e4674df 100644 --- a/Changelog +++ b/Changelog @@ -1,6 +1,7 @@ * Unknown - Christophe Dumez - v0.9.2 - BUGFIX: Window can now stay maximized on exit - BUGFIX: Use PKGCONFIG again for configuring libtorrent + - BUGFIX: Allow to compile with libtorrent v0.11 * Wed Apr 04 2007 - Christophe Dumez - v0.9.1 - BUGFIX: A lot of fixes in configure file diff --git a/INSTALL b/INSTALL index ff981cf8f..f6b48df47 100644 --- a/INSTALL +++ b/INSTALL @@ -16,7 +16,7 @@ will install and execute qBittorrent hopefully without any problems. Dependencies: - Qt >= 4.2 (libqt-devel, libqtgui, libqtcore, libqtnetwork) -- libtorrent by Arvid Norberg (>= v0.12 REQUIRED) +- libtorrent by Arvid Norberg (>= v0.11 REQUIRED, >= 0.12 ADVISED) -> http://libtorrent.sf.net Be carefull: another library (the one used by rtorrent) use the same name. These are TWO different libraries and qBittorrent will only work with the one provided diff --git a/configure b/configure index 3096f88b9..c5a6ddc7c 100755 --- a/configure +++ b/configure @@ -295,14 +295,18 @@ class qc_libtorrent : public ConfObj { public: qc_libtorrent(Conf *c) : ConfObj(c) {} - QString name() const { return "libtorrent >= 0.12"; } + QString name() const { return "libtorrent >= 0.11 (>= 0.12 ADVISED)"; } QString shortname() const { return "libtorrent"; } bool exec(){ QString s; s = conf->getenv("QC_WITH_LIBTORRENT_INC"); if(!s.isEmpty()) { - if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) { + if(!conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){ return false; + } + if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) { + qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled."); + conf->addDefine("NO_PEX"); } }else{ QStringList sl; @@ -310,14 +314,16 @@ public: sl << "/usr/local/include"; bool found = false; foreach(s, sl){ - if(conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")){ - found = true; - break; - } + if(conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){ + found = true; + break; + } } - if(!found) { - return false; - } + if(!found) return false; + if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")){ + qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled."); + conf->addDefine("NO_PEX"); + } } conf->addIncludePath(s); conf->addIncludePath(s+QDir::separator()+"libtorrent"); diff --git a/qcm/libtorrent.qcm b/qcm/libtorrent.qcm index 80c3c0f41..4acd6755a 100644 --- a/qcm/libtorrent.qcm +++ b/qcm/libtorrent.qcm @@ -9,14 +9,18 @@ class qc_libtorrent : public ConfObj { public: qc_libtorrent(Conf *c) : ConfObj(c) {} - QString name() const { return "libtorrent >= 0.12"; } + QString name() const { return "libtorrent >= 0.11 (>= 0.12 ADVISED)"; } QString shortname() const { return "libtorrent"; } bool exec(){ QString s; s = conf->getenv("QC_WITH_LIBTORRENT_INC"); if(!s.isEmpty()) { - if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) { + if(!conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){ return false; + } + if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) { + qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled."); + conf->addDefine("NO_PEX"); } }else{ QStringList sl; @@ -24,14 +28,16 @@ public: sl << "/usr/local/include"; bool found = false; foreach(s, sl){ - if(conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")){ - found = true; - break; - } + if(conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){ + found = true; + break; + } } - if(!found) { - return false; - } + if(!found) return false; + if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")){ + qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled."); + conf->addDefine("NO_PEX"); + } } conf->addIncludePath(s); conf->addIncludePath(s+QDir::separator()+"libtorrent"); diff --git a/src/GUI.cpp b/src/GUI.cpp index f8a943ced..b3772afdf 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -34,8 +34,10 @@ #include #include +#ifndef NO_PEX #include #include +#endif #include "GUI.h" #include "misc.h" @@ -470,8 +472,13 @@ void GUI::updateDlList(bool force){ LCD_UpSpeed->display(tmp); // UP LCD LCD_DownSpeed->display(tmp2); // DL LCD // browse handles +#ifndef NO_PEX std::vector handles = BTSession.getTorrentHandles(); - for(unsigned int i=0; i handles = BTSession.getTorrentHandles(); +#endif + for(unsigned int i=0; i<(unsigned int)handles.size(); ++i){ torrent_handle h = handles[i]; try{ torrent_status torrentStatus = h.status(); @@ -1025,7 +1032,7 @@ void GUI::torrentAdded(const QString& path, torrent_handle& h, bool fastResume){ QString hash = QString(misc::toString(h.info_hash()).c_str()); // Adding torrent to download list DLListModel->insertRow(row); - DLListModel->setData(DLListModel->index(row, NAME), QVariant(h.name().c_str())); + DLListModel->setData(DLListModel->index(row, NAME), QVariant(h.get_torrent_info().name().c_str())); DLListModel->setData(DLListModel->index(row, SIZE), QVariant((qlonglong)h.get_torrent_info().total_size())); DLListModel->setData(DLListModel->index(row, DLSPEED), QVariant((double)0.)); DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.)); @@ -1169,12 +1176,14 @@ void GUI::configureSession(bool deleteOptions){ }else{ BTSession.disableDHT(); } +#ifndef NO_PEX if(!options->isPeXDisabled()){ qDebug("Enabling Peer eXchange (PeX)"); BTSession.enablePeerExchange(); }else{ qDebug("Peer eXchange (PeX) disabled"); } +#endif // Apply filtering settings if(options->isFilteringEnabled()){ BTSession.enableIPFilter(options->getFilter()); @@ -1245,7 +1254,7 @@ void GUI::pauseSelection(){ DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.0)); DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Paused"))); DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)-1)); - setInfoBar(tr("'%1' paused.", "xxx.avi paused.").arg(QString(BTSession.getTorrentHandle(fileHash).name().c_str()))); + setInfoBar(tr("'%1' paused.", "xxx.avi paused.").arg(QString(BTSession.getTorrentHandle(fileHash).get_torrent_info().name().c_str()))); DLListModel->setData(DLListModel->index(row, NAME), QIcon(":/Icons/skin/paused.png"), Qt::DecorationRole); DLListModel->setData(DLListModel->index(row, SEEDSLEECH), QVariant("0/0")); setRowColor(row, "red"); @@ -1288,7 +1297,7 @@ void GUI::startSelection(){ // Update DL status int row = index.row(); DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Connecting..."))); - setInfoBar(tr("'%1' resumed.", "e.g: xxx.avi resumed.").arg(QString(BTSession.getTorrentHandle(fileHash).name().c_str()))); + setInfoBar(tr("'%1' resumed.", "e.g: xxx.avi resumed.").arg(QString(BTSession.getTorrentHandle(fileHash).get_torrent_info().name().c_str()))); DLListModel->setData(DLListModel->index(row, NAME), QVariant(QIcon(":/Icons/skin/connecting.png")), Qt::DecorationRole); setRowColor(row, "grey"); } @@ -1317,7 +1326,7 @@ void GUI::propertiesSelection(){ // called when a torrent has finished void GUI::finishedTorrent(torrent_handle& h){ QSettings settings("qBittorrent", "qBittorrent"); - QString fileName = QString(h.name().c_str()); + QString fileName = QString(h.get_torrent_info().name().c_str()); setInfoBar(tr("%1 has finished downloading.", "e.g: xxx.avi has finished downloading.").arg(fileName)); int useOSD = settings.value("Options/OSDEnabled", 1).toInt(); if(useOSD == 1 || (useOSD == 2 && (isMinimized() || isHidden()))) { @@ -1330,7 +1339,7 @@ void GUI::fullDiskError(torrent_handle& h){ QSettings settings("qBittorrent", "qBittorrent"); int useOSD = settings.value("Options/OSDEnabled", 1).toInt(); if(useOSD == 1 || (useOSD == 2 && (isMinimized() || isHidden()))) { - myTrayIcon->showMessage(tr("I/O Error", "i.e: Input/Output Error"), tr("An error occured when trying to read or write %1. The disk is probably full, download has been paused", "e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused").arg(QString(h.name().c_str())), QSystemTrayIcon::Critical, TIME_TRAY_BALLOON); + myTrayIcon->showMessage(tr("I/O Error", "i.e: Input/Output Error"), tr("An error occured when trying to read or write %1. The disk is probably full, download has been paused", "e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused").arg(QString(h.get_torrent_info().name().c_str())), QSystemTrayIcon::Critical, TIME_TRAY_BALLOON); } // Download will be paused by libtorrent. Updating GUI information accordingly int row = getRowFromHash(QString(misc::toString(h.info_hash()).c_str())); diff --git a/src/Icons/splash.jpg b/src/Icons/splash.jpg index 1477e2fae893cc55b1289eb5692b1a1dcdc174c1..4b28d48e747ccd948b164e03093bc2d1e8330199 100644 GIT binary patch literal 50238 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 literal 40238 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
K91Ln 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 WAQH%TwxV1seglU%UvcjA@BabB41dr7 diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index 2a29dcae3..576837881 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -27,6 +27,8 @@ // Main constructor bittorrent::bittorrent(){ + // To avoid some exceptions + fs::path::default_name_check(fs::no_check); // Supported preview extensions // XXX: might be incomplete supported_preview_extensions << "AVI" << "DIVX" << "MPG" << "MPEG" << "MP3" << "OGG" << "WMV" << "WMA" << "RMV" << "RMVB" << "ASF" << "MOV" << "WAV" << "MP2" << "SWF" << "AC3"; @@ -36,8 +38,10 @@ bittorrent::bittorrent(){ s->set_severity_level(alert::info); // DHT (Trackerless), disabled until told otherwise DHTEnabled = false; +#ifndef NO_PEX // Enabling metadata plugin s->add_extension(&create_metadata_plugin); +#endif timerAlerts = new QTimer(this); connect(timerAlerts, SIGNAL(timeout()), this, SLOT(readAlerts())); timerAlerts->start(3000); @@ -61,13 +65,23 @@ bittorrent::~bittorrent(){ // Return the torrent handle, given its hash torrent_handle bittorrent::getTorrentHandle(const QString& hash) const{ +#ifndef NO_PEX return s->find_torrent(misc::fromString((hash.toStdString()))); +#endif +#ifdef NO_PEX + return torrent_list.value(hash); +#endif } // Return true if the torrent corresponding to the // hash is paused bool bittorrent::isPaused(const QString& hash) const{ +#ifndef NO_PEX torrent_handle h = s->find_torrent(misc::fromString((hash.toStdString()))); +#endif +#ifdef NO_PEX + torrent_handle h = torrent_list.value(hash); +#endif if(!h.is_valid()){ qDebug("/!\\ Error: Invalid handle"); return true; @@ -78,13 +92,18 @@ bool bittorrent::isPaused(const QString& hash) const{ // Delete a torrent from the session, given its hash // permanent = true means that the torrent will be removed from the hard-drive too void bittorrent::deleteTorrent(const QString& hash, bool permanent){ - torrent_handle h = s->find_torrent(misc::fromString((hash.toStdString()))); - if(!h.is_valid()){ + #ifndef NO_PEX + torrent_handle h = s->find_torrent(misc::fromString((hash.toStdString()))); + #endif + #ifdef NO_PEX + torrent_handle h = torrent_list.value(hash); + #endif + if(!h.is_valid()){ qDebug("/!\\ Error: Invalid handle"); return; } QString savePath = QString::fromUtf8(h.save_path().string().c_str()); - QString fileName = QString(h.name().c_str()); + QString fileName = QString(h.get_torrent_info().name().c_str()); // Remove it from session s->remove_torrent(h); // Remove it from torrent backup directory @@ -112,7 +131,12 @@ void bittorrent::cleanDeleter(deleteThread* deleter){ // Pause a running torrent void bittorrent::pauseTorrent(const QString& hash){ +#ifndef NO_PEX torrent_handle h = s->find_torrent(misc::fromString((hash.toStdString()))); +#endif +#ifdef NO_PEX + torrent_handle h = torrent_list.value(hash); +#endif if(h.is_valid() && !h.is_paused()){ h.pause(); // Create .paused file @@ -124,7 +148,12 @@ void bittorrent::pauseTorrent(const QString& hash){ // Resume a torrent in paused state void bittorrent::resumeTorrent(const QString& hash){ +#ifndef NO_PEX torrent_handle h = s->find_torrent(misc::fromString((hash.toStdString()))); +#endif +#ifdef NO_PEX + torrent_handle h = torrent_list.value(hash); +#endif if(h.is_valid() && h.is_paused()){ h.resume(); // Delete .paused file @@ -162,7 +191,12 @@ void bittorrent::addTorrent(const QString& path, bool fromScanDir, const QString // Getting torrent file informations torrent_info t(e); QString hash = QString(misc::toString(t.info_hash()).c_str()); +#ifndef NO_PEX if(s->find_torrent(t.info_hash()).is_valid()){ +#endif +#ifdef NO_PEX + if(torrent_list.value(hash, torrent_handle()).is_valid()){ +#endif // Update info Bar if(!fromScanDir){ if(!from_url.isNull()){ @@ -212,6 +246,9 @@ void bittorrent::addTorrent(const QString& path, bool fromScanDir, const QString qDebug("/!\\ Error: Invalid handle"); return; } +#ifdef NO_PEX + torrent_list.insert(QString(misc::toString(h.info_hash()).c_str()), h); +#endif // Is this really useful and appropriate ? //h.set_max_connections(60); h.set_max_uploads(-1); @@ -320,12 +357,12 @@ bool bittorrent::isDHTEnabled() const{ // Enable DHT void bittorrent::enableDHT(){ if(!DHTEnabled){ - boost::filesystem::ifstream dht_state_file((const char*)(misc::qBittorrentPath()+QString("dht_state")).toUtf8(), std::ios_base::binary); - dht_state_file.unsetf(std::ios_base::skipws); - entry dht_state; - try{ - dht_state = bdecode(std::istream_iterator(dht_state_file), std::istream_iterator()); - }catch (std::exception&) {} + entry dht_state; + try{ + boost::filesystem::ifstream dht_state_file((const char*)(misc::qBittorrentPath()+QString("dht_state")).toUtf8(), std::ios_base::binary); + dht_state_file.unsetf(std::ios_base::skipws); + dht_state = bdecode(std::istream_iterator(dht_state_file), std::istream_iterator()); + }catch(std::exception&) { } s->start_dht(dht_state); s->add_dht_router(std::make_pair(std::string("router.bittorrent.com"), 6881)); s->add_dht_router(std::make_pair(std::string("router.utorrent.com"), 6881)); @@ -388,8 +425,13 @@ void bittorrent::saveFastResumeData(){ torrentBackup.mkpath(torrentBackup.path()); } // Write fast resume data +#ifndef NO_PEX std::vector handles = s->get_torrents(); - for(unsigned int i=0; i handles = torrent_list.values(); +#endif + for(unsigned int i=0; i<(unsigned int)handles.size(); ++i){ torrent_handle &h = handles[i]; if(!h.is_valid()){ qDebug("/!\\ Error: Invalid handle"); @@ -419,7 +461,12 @@ void bittorrent::saveFastResumeData(){ bool bittorrent::isFilePreviewPossible(const QString& hash) const{ // See if there are supported files in the torrent +#ifndef NO_PEX torrent_handle h = s->find_torrent(misc::fromString((hash.toStdString()))); +#endif +#ifdef NO_PEX + torrent_handle h = torrent_list.value(hash); +#endif if(!h.is_valid()){ qDebug("/!\\ Error: Invalid handle"); return false; @@ -500,8 +547,13 @@ void bittorrent::setUploadRateLimit(int rate){ // libtorrent allow to adjust ratio for each torrent // This function will apply to same ratio to all torrents void bittorrent::setGlobalRatio(float ratio){ +#ifndef NO_PEX std::vector handles = s->get_torrents(); - for(unsigned int i=0; i handles = torrent_list.values(); +#endif + for(unsigned int i=0; i<(unsigned int)handles.size(); ++i){ torrent_handle h = handles[i]; if(!h.is_valid()){ qDebug("/!\\ Error: Invalid handle"); @@ -513,8 +565,13 @@ void bittorrent::setGlobalRatio(float ratio){ // Pause all torrents in session void bittorrent::pauseAllTorrents(){ +#ifndef NO_PEX std::vector handles = s->get_torrents(); - for(unsigned int i=0; i handles = torrent_list.values(); +#endif + for(unsigned int i=0; i<(unsigned int)handles.size(); ++i){ torrent_handle h = handles[i]; if(h.is_valid() && !h.is_paused()){ h.pause(); @@ -524,8 +581,13 @@ void bittorrent::pauseAllTorrents(){ // Resume all torrents in session void bittorrent::resumeAllTorrents(){ +#ifndef NO_PEX std::vector handles = s->get_torrents(); - for(unsigned int i=0; i handles = torrent_list.values(); +#endif + for(unsigned int i=0; i<(unsigned int)handles.size(); ++i){ torrent_handle h = handles[i]; if(h.is_valid() && h.is_paused()){ h.resume(); @@ -533,10 +595,12 @@ void bittorrent::resumeAllTorrents(){ } } +#ifndef NO_PEX // Add uT PeX extension to bittorrent session void bittorrent::enablePeerExchange(){ s->add_extension(&create_ut_pex_plugin); } +#endif // Set DHT port (>= 1000) void bittorrent::setDHTPort(int dht_port){ @@ -598,7 +662,7 @@ void bittorrent::reloadTorrent(const torrent_handle &h, bool compact_mode){ } QDir torrentBackup(misc::qBittorrentPath() + "BT_backup"); fs::path saveDir = h.save_path(); - QString fileName = QString(h.name().c_str()); + QString fileName = QString(h.get_torrent_info().name().c_str()); QString fileHash = QString(misc::toString(h.info_hash()).c_str()); qDebug("Reloading torrent: %s", (const char*)fileName.toUtf8()); torrent_handle new_h; @@ -731,9 +795,16 @@ float bittorrent::getPayloadUploadRate() const{ } // Return a vector with all torrent handles in it +#ifndef NO_PEX std::vector bittorrent::getTorrentHandles() const{ return s->get_torrents(); } +#endif +#ifdef NO_PEX +QList bittorrent::getTorrentHandles() const { + return torrent_list.values(); +} +#endif // Return a vector with all finished torrent handles in it QList bittorrent::getFinishedTorrentHandles() const{ diff --git a/src/bittorrent.h b/src/bittorrent.h index 6e70319d4..dccfb4b2d 100644 --- a/src/bittorrent.h +++ b/src/bittorrent.h @@ -30,9 +30,15 @@ #include #include #include +#include + +#ifndef NO_PEX #include #include -#include +#endif +#ifdef NO_PEX +#include +#endif #include #include @@ -57,6 +63,9 @@ class bittorrent : public QObject{ downloadThread *downloader; QStringList supported_preview_extensions; QString defaultSavePath; +#ifdef NO_PEX + QHash torrent_list; +#endif protected: QString getSavePath(const QString& hash); @@ -66,7 +75,12 @@ class bittorrent : public QObject{ bittorrent(); ~bittorrent(); torrent_handle getTorrentHandle(const QString& hash) const; +#ifndef NO_PEX std::vector getTorrentHandles() const; +#endif +#ifdef NO_PEX + QList getTorrentHandles() const; +#endif bool isPaused(const QString& hash) const; bool hasFilteredFiles(const QString& fileHash) const; bool isFilePreviewPossible(const QString& fileHash) const; @@ -92,7 +106,9 @@ class bittorrent : public QObject{ void saveFastResumeData(); void enableDirectoryScanning(const QString& scan_dir); void disableDirectoryScanning(); +#ifndef NO_PEX void enablePeerExchange(); +#endif void enableIPFilter(ip_filter filter); void disableIPFilter(); void reloadTorrent(const torrent_handle &h, bool compact_mode = true); diff --git a/src/createtorrent_imp.cpp b/src/createtorrent_imp.cpp index 55103f609..5d0a23ebf 100644 --- a/src/createtorrent_imp.cpp +++ b/src/createtorrent_imp.cpp @@ -32,7 +32,10 @@ #include #include #include + +#ifndef NO_PEX #include +#endif #include "createtorrent_imp.h" @@ -105,9 +108,13 @@ void createtorrent::on_createButton_clicked(){ add_files(t, full_path.branch_path(), full_path.leaf()); t.set_piece_size(piece_size); - +#ifndef NO_PEX file_pool fp; storage st(t, full_path.branch_path(), fp); +#endif +#ifdef NO_PEX + storage st(t, full_path.branch_path()); +#endif QStringList trackers = txt_announce->toPlainText().split('\n'); for(int i=0; i GUI - + Open Torrent Files Отвори Торент Файлове @@ -613,7 +613,7 @@ Copyright © 2006 на Christophe Dumez<br> Неизвестен - + This file is either corrupted or this isn't a torrent. Файла или е разрушен или не е торент. @@ -623,17 +623,17 @@ Copyright © 2006 на Christophe Dumez<br> Сигурни ли сте че искате да изтриете всички файлове от списъка за сваляне? - + &Yes &Да - + &No &Не - + Are you sure you want to delete the selected item(s) in download list? Сигурни ли сте че искате да изтриете избраните файлове от списъка за сваляне? @@ -663,12 +663,12 @@ Copyright © 2006 на Christophe Dumez<br> Проверка... - + Connecting... Свързване... - + Downloading... Сваляне... @@ -708,7 +708,7 @@ Copyright © 2006 на Christophe Dumez<br> Не мога да създам директория: - + Torrent Files Торент Файлове @@ -780,12 +780,12 @@ Copyright © 2006 на Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Сигурни ли сте? -- qBittorrent @@ -826,7 +826,7 @@ Copyright © 2006 на Christophe Dumez<br> е завършил свалянето. - + Couldn't listen on any of the given ports. Невъзможно изчакване от дадените портове. @@ -856,12 +856,12 @@ Copyright © 2006 на Christophe Dumez<br> KiB/с - + Empty search pattern - + Please type a search pattern first Моля първо изберете тип на търсене @@ -871,7 +871,7 @@ Copyright © 2006 на Christophe Dumez<br> Не е избрана търсачка - + You must select at least one search engine. Трябва да изберете поне една търсачка. @@ -881,7 +881,7 @@ Copyright © 2006 на Christophe Dumez<br> Невъзможно създаване на допълнение за търсене. - + Searching... Търсене... @@ -941,17 +941,17 @@ Copyright © 2006 на Christophe Dumez<br> Търсенето завърши - + An error occured during search... Намерена грешка при търсенето... - + Search aborted Търсенето е прекъснато - + Search returned no results Търсене без резултат @@ -961,12 +961,12 @@ Copyright © 2006 на Christophe Dumez<br> Търсенето е завършено - + Search plugin update -- qBittorrent Обновяване на добавката за търсене -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -977,17 +977,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Съжалявам, сървъра за обновяване е временно недостъпен. - + Your search plugin is already up to date. Вашата добавка за търсене е вече обновена. - + Results Резултати @@ -1017,7 +1017,7 @@ Changelog: UP Скорост - + Status Състояние @@ -1037,7 +1037,7 @@ Changelog: Вземащи - + Search engine Програма за търсене @@ -1048,17 +1048,17 @@ Changelog: Отложен - + Paused Пауза - + Preview process already running Процеса на оглед се изпълнява - + There is already another preview process running. Please close the other one first. Вече се изпълнява друг процес на оглед. @@ -1088,22 +1088,22 @@ Please close the other one first. Моля, изчакайте... - + Transfers Трансфери - + Are you sure you want to quit qBittorrent? Сигурни ли сте че искате да напуснете qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Сигурни ли сте че искате да изтриете избраните файлове от списъка за сваляне и от твърдия диск? - + Download finished Свалянето завърши @@ -1114,210 +1114,210 @@ Please close the other one first. е завършил свалянето. - + Search Engine Търсачка - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Състояние на връзката: - + Offline Извън мрежата - + No peers found... Няма връзки... - + Name i.e: file name Име - + Size i.e: file size Размер - + Progress i.e: % downloaded Изпълнение - + DL Speed i.e: Download speed DL Скорост - + UP Speed i.e: Upload speed UP Скорост - + Seeds/Leechs i.e: full/partial sources Даващи/Вземащи - + ETA i.e: Estimated Time of Arrival / Time left ЕТА - + Seeders i.e: Number of full sources Даващи - + Leechers i.e: Number of partial sources Вземащи - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 стартиран. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s DL Скорост %1 KB/с - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s UL Скорост %1 KB/с - + Finished i.e: Torrent has finished downloading Завършен - + Checking... i.e: Checking already downloaded parts... Проверка... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Отложен - + Are you sure you want to quit? Сигурни ли сте че искате да напуснете? - + '%1' was removed. 'xxx.avi' was removed. '%1' бе премахнат. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' добавен в листа за сваляне. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' бе възстановен. (бързо възстановяване) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' вече е в листа за сваляне. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Не мога да декодирам торент-файла: '%1' - + None i.e: No error message Няма - + Listening on port: %1 e.g: Listening on port: 1666 Прослушване на порт: %1 - + All downloads were paused. Всички сваляния са в пауза. - + '%1' paused. xxx.avi paused. '%1' е в пауза. - + Connecting... i.e: Connecting to the tracker... Свързване... - + All downloads were resumed. Всички сваляния са възстановени. - + '%1' resumed. e.g: xxx.avi resumed. '%1' бе възстановен. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. '%1' завърши свалянето. - + I/O Error i.e: Input/Output Error В/И Грешка - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Намерена грешка при четене или записване на %1. Вероятно диска е пълен, свалянето е в пауза @@ -1329,55 +1329,55 @@ Please close the other one first. Намерена грешка (пълен диск?), '%1' е в пауза. - + Connection Status: Състояние на връзката: - + Online Свързан - + Firewalled? i.e: Behind a firewall/router? Проблем с Firewall-а? - + No incoming connections... Няма входящи връзки... - + No search engine selected Не е избрана търсачка - + Search plugin update Допълнението за търсене е обновено - + Search has finished Търсенето завърши - + Results i.e: Search results Резултати - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Сваляне на '%1', моля изчакайте... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Намерена грешка (пълен диск?), '%1' е в пауза. @@ -1952,42 +1952,42 @@ Please close the other one first. createtorrent - + Select destination torrent file Избери торент файл получател - + Torrent Files Торент Файлове - + Select input directory or file Избери входна директория или файл - + No destination path set Не е избран път за получаване - + Please type a destination path first Моля първо напишете път за получаване - + No input path set Не е избран входящ път - + Please type an input path first Моля първо напишете входящ път - + Input path does not exist Входящият път не съществува @@ -1997,17 +1997,17 @@ Please close the other one first. Моля първо напишете правилен входящ път - + Torrent creation Създаване на Торент - + Torrent was created successfully: Торента бе създаден успешно: - + Please type a valid input path first Моля първо напишете валиден входящ път @@ -2043,31 +2043,31 @@ Please close the other one first. misc - + B bytes Б - + KiB kibibytes (1024 bytes) КБ - + MiB mebibytes (1024 kibibytes) МБ - + GiB gibibytes (1024 mibibytes) ГБ - + TiB tebibytes (1024 gibibytes) ТБ @@ -2097,36 +2097,36 @@ Please close the other one first. ч - + Unknown Неизвестно - + Unknown Unknown (size) Неизвестен - + < 1m < 1 minute < 1мин - + %1m e.g: 10minutes %1мин - + %1h%2m e.g: 3hours 5minutes %1ч%2мин - + %1d%2h%3m e.g: 2days 10hours 2minutes %1д%2ч%3мин @@ -2185,12 +2185,12 @@ Please close the other one first. е повреден. - + Range Start IP IP Стартова Област - + Start IP: IP на Старт: @@ -2205,22 +2205,22 @@ Please close the other one first. Това IP е некоректно. - + Range End IP IP Крайна Област - + End IP: Крайно IP: - + IP Range Comment Коментар IP Област - + Comment: Коментар: @@ -2231,48 +2231,48 @@ Please close the other one first. до - + Choose your favourite preview program Моля, изберете любима програма за оглед - + Invalid IP Невалиден IP - + This IP is invalid. Този IP е невалиден. - + Options were saved successfully. Опциите бяха съхранени успешно. - + Choose scan directory Изберете директория за сканиране - + Choose an ipfilter.dat file Изберете ipfilter.dat файл - + Choose a save directory Изберете директория за съхранение - + I/O Error Input/Output Error В/И Грешка - + Couldn't open %1 in read mode. Не мога да отворя %1 в режим четене. diff --git a/src/lang/qbittorrent_ca.ts b/src/lang/qbittorrent_ca.ts index 6d74704cd..4dec8a3ce 100644 --- a/src/lang/qbittorrent_ca.ts +++ b/src/lang/qbittorrent_ca.ts @@ -641,7 +641,7 @@ Copyright © 2006 by Christophe Dumez<br> iniciat. - + qBittorrent qBittorrent @@ -661,12 +661,12 @@ Copyright © 2006 by Christophe Dumez<br> Vel. Pujada: - + Open Torrent Files Arxius Torrent oberts - + Torrent Files Arxius Torrent @@ -707,12 +707,12 @@ Copyright © 2006 by Christophe Dumez<br> Deshabilita el decodificador d' arxius torrent: - + This file is either corrupted or this isn't a torrent. Aquest arxiu està corrupte o no es un arxiu torrent. - + Are you sure? -- qBittorrent Estàs segur? -- qBittorrent @@ -722,12 +722,12 @@ Copyright © 2006 by Christophe Dumez<br> Estàs segur de que vols buidar la llista de descàrregues? - + &Yes &Yes - + &No &No @@ -737,7 +737,7 @@ Copyright © 2006 by Christophe Dumez<br> Llista de descàrregues buidada. - + Are you sure you want to delete the selected item(s) in download list? Estàs segur de que vols esborrar les descàrregues seleccionades? @@ -805,7 +805,7 @@ Copyright © 2006 by Christophe Dumez<br> ha finalitzat la descàrrega. - + Couldn't listen on any of the given ports. No es pot obrir el port especificat. @@ -831,12 +831,12 @@ Copyright © 2006 by Christophe Dumez<br> Validant... - + Connecting... Conectant... - + Downloading... Descàrregant... @@ -864,12 +864,12 @@ Copyright © 2006 by Christophe Dumez<br> Res - + Empty search pattern Busqueda pare buida - + Please type a search pattern first Si us plau introduïu una busqueda pare primer @@ -879,12 +879,12 @@ Copyright © 2006 by Christophe Dumez<br> No as seleccionat motor per cercar - + You must select at least one search engine. Has de seleccionar un motor de busqueda. - + Searching... Cercant... @@ -994,17 +994,17 @@ Copyright © 2006 by Christophe Dumez<br> La Recerca ha finalitzat - + An error occured during search... Hi ha hagut un error durant la recerca... - + Search aborted Recerca abortada - + Search returned no results La recerca no ha tornat Resultats @@ -1014,12 +1014,12 @@ Copyright © 2006 by Christophe Dumez<br> La recerca a finalitzat - + Search plugin update -- qBittorrent Actualització plugin de recerca -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -1030,17 +1030,17 @@ Log: - + Sorry, update server is temporarily unavailable. Ho sento, el servidor per actualitzar està temporalment no disponible. - + Your search plugin is already up to date. El teu plugin de recerca torna a estar actualitzat. - + Results Resultats @@ -1070,7 +1070,7 @@ Log: Vel. Pujada - + Status Estat @@ -1090,7 +1090,7 @@ Log: Leechers - + Search engine Motor per cercar @@ -1101,17 +1101,17 @@ Log: Parat - + Paused Pausat - + Preview process already running Previsualitzar els processos que corren - + There is already another preview process running. Please close the other one first. Hi ha un altre procés corrent. @@ -1141,22 +1141,22 @@ Si et plau tanca l'altre primer. Espera ... - + Transfers Transferits - + Are you sure you want to quit qBittorrent? Estas segur que vols sortir de qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Estàs segur que vols esborrar els objectes seleccionats de la llista de descàrregues i del disc dur? - + Download finished @@ -1167,264 +1167,264 @@ Si et plau tanca l'altre primer. ha finalitzat la descàrrega. - + Search Engine Motor de Busqueda - + qBittorrent %1 e.g: qBittorrent v0.x - + Connection status: - + Offline - + No peers found... - + Name i.e: file name Nom - + Size i.e: file size Mida - + Progress i.e: % downloaded Progrès - + DL Speed i.e: Download speed Vel. Desc - + UP Speed i.e: Upload speed Vel. Pujada - + Seeds/Leechs i.e: full/partial sources - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + qBittorrent %1 started. e.g: qBittorrent v0.x started. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s - + Finished i.e: Torrent has finished downloading Finalitzat - + Checking... i.e: Checking already downloaded parts... Validant... - + Stalled i.e: State of a torrent whose download speed is 0kb/s - + Are you sure you want to quit? - + '%1' was removed. 'xxx.avi' was removed. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' - + None i.e: No error message Res - + Listening on port: %1 e.g: Listening on port: 1666 - + All downloads were paused. - + '%1' paused. xxx.avi paused. - + Connecting... i.e: Connecting to the tracker... Conectant... - + All downloads were resumed. - + '%1' resumed. e.g: xxx.avi resumed. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. - + I/O Error i.e: Input/Output Error I/O Error - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused - + Connection Status: - + Online - + Firewalled? i.e: Behind a firewall/router? - + No incoming connections... - + No search engine selected - + Search plugin update - + Search has finished - + Results i.e: Search results Resultats - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. @@ -1999,42 +1999,42 @@ Si et plau tanca l'altre primer. createtorrent - + Select destination torrent file Seleccionar arxiu torrent destí - + Torrent Files Arxius Torrent - + Select input directory or file Selecciona arxiu o directori d'entrada - + No destination path set Ruta destí no especificada - + Please type a destination path first Si us plau, especifica una ruta destí primer - + No input path set Ruta d'entrada no especificada - + Please type an input path first Si us plau escriu una ruta d'entrada primer - + Input path does not exist La ruta d'entrada no existeix @@ -2044,17 +2044,17 @@ Si et plau tanca l'altre primer. Si us plau escriu una ruta d'entrada primer - + Torrent creation Crear Torrent - + Torrent was created successfully: Torrent creatamb éxit: - + Please type a valid input path first Entra una ruta vàlida primer si us plau @@ -2090,31 +2090,31 @@ Si et plau tanca l'altre primer. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -2138,36 +2138,36 @@ Si et plau tanca l'altre primer. d - + Unknown Desconegut - + Unknown Unknown (size) Desconegut - + < 1m < 1 minute - + %1m e.g: 10minutes - + %1h%2m e.g: 3hours 5minutes - + %1d%2h%3m e.g: 2days 10hours 2minutes @@ -2226,12 +2226,12 @@ Si et plau tanca l'altre primer. està malformada. - + Range Start IP Rang IP Inicial - + Start IP: IP Inicial: @@ -2246,22 +2246,22 @@ Si et plau tanca l'altre primer. Aquesta IP es incorrecta. - + Range End IP Rang IP Final - + End IP: IP Final: - + IP Range Comment Comentari Rang IP - + Comment: Comentari: @@ -2272,48 +2272,48 @@ Si et plau tanca l'altre primer. a - + Choose your favourite preview program Escull el teu programa per previsualitzar - + Invalid IP IP Invàlida - + This IP is invalid. Aquesta IP es invalida. - + Options were saved successfully. - + Choose scan directory - + Choose an ipfilter.dat file - + Choose a save directory - + I/O Error Input/Output Error I/O Error - + Couldn't open %1 in read mode. diff --git a/src/lang/qbittorrent_da.ts b/src/lang/qbittorrent_da.ts index 1c30ecefa..9cde87932 100644 --- a/src/lang/qbittorrent_da.ts +++ b/src/lang/qbittorrent_da.ts @@ -440,97 +440,97 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files Åbn Torrent Filer - + This file is either corrupted or this isn't a torrent. Denne fil er enten korrupt eller ikke en torrent. - + &Yes &Ja - + &No &Nej - + Are you sure you want to delete the selected item(s) in download list? Er du sikker på at du vil slette det markerede fra download listen? - + Connecting... Forbinder... - + Downloading... Downloader... - + Torrent Files Torrent Filer - + Are you sure? -- qBittorrent Er du sikker? -- qBittorrent - + Couldn't listen on any of the given ports. Kunne ikke lytte på de opgivne porte. - + Empty search pattern Tomt søge kriterie - + Please type a search pattern first Indtast venligst et søge kriterie først - + You must select at least one search engine. Du skal vælge mindst en søgemaskine. - + Searching... Søger... - + An error occured during search... Der opstod en fejl under søgningen... - + Search aborted Søgning afbrudt - + Search returned no results Søgningen gav intet resultat - + Search plugin update -- qBittorrent Søge plugin opdatering -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -541,331 +541,331 @@ Changelog: - + Sorry, update server is temporarily unavailable. Beklager, opdaterings-serveren er midlertidigt utilgængelig. - + Your search plugin is already up to date. Dit søge plugin er allerede opdateret fuldt ud. - + Results Resultater - + Status Status - + Search engine Søgemaskine - + Paused Pauset - + Preview process already running Smugkig kører allerede - + There is already another preview process running. Please close the other one first. En anden Smugkigs proces kører allerede. Luk venglist denne først. - + Transfers Overførsler - + Download finished Download afsluttet - + Search Engine Søgemaskine - + Are you sure you want to quit qBittorrent? Er du sikker på at du vil afslutte qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Er du sikker på at du vil slette de markerede elementer i download listen og på harddisken? - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Forbindelses status: - + Offline Offline - + No peers found... Ingen kilder fundet... - + Name i.e: file name Navn - + Size i.e: file size Størrelse - + Progress i.e: % downloaded Hentet - + DL Speed i.e: Download speed DL hastighed - + UP Speed i.e: Upload speed UP hastighed - + Seeds/Leechs i.e: full/partial sources Seedere/Leechere - + ETA i.e: Estimated Time of Arrival / Time left Tid Tilbage - + Seeders i.e: Number of full sources Seedere - + Leechers i.e: Number of partial sources Leechere - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 startet. - + qBittorrent qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s DL hastighed: %1 KB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s UP hastighed: %1 KB/s - + Finished i.e: Torrent has finished downloading Færdig - + Checking... i.e: Checking already downloaded parts... Kontrollerer... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Gået i stå - + Are you sure you want to quit? Er du sikker på at du vil afslutte? - + '%1' was removed. 'xxx.avi' was removed. '%1' blev fjernet. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' lagt til download listen. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' fortsat. (hurtig fortsættelse) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' findes allerede i download listen. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Kan ikke dekode torrent filen: '%1' - + None i.e: No error message Intet - + Listening on port: %1 e.g: Listening on port: 1666 Lytter på port: %1 - + All downloads were paused. Alle downloads blev sat på pause. - + '%1' paused. xxx.avi paused. '%1' blev sat på pause. - + Connecting... i.e: Connecting to the tracker... Forbinder... - + All downloads were resumed. Alle downloads fortsættes. - + '%1' resumed. e.g: xxx.avi resumed. '%1' fortsat. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 er hentet færdig. - + I/O Error i.e: Input/Output Error I/O Fejl - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Der opstod en fejl under forsøget på at skrive %1. Disken er måske fuld, downloaden er sat på pause - + Connection Status: Forbindelses Status: - + Online Online - + Firewalled? i.e: Behind a firewall/router? Bag en Firewall? - + No incoming connections... Ingen indkommende forbindelser... - + No search engine selected Der er ikke valgt nogen søgemaskine - + Search plugin update Søge plugin opdatering - + Search has finished Søgningen er færdig - + Results i.e: Search results Resultater - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Downloader '%1', vent venligst... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Der opstod en fejl (fuld disk?), '%1' sat på pause. @@ -1287,57 +1287,57 @@ Luk venglist denne først. createtorrent - + Select destination torrent file Vælg destinations torrent fil - + Torrent Files Torrent FIler - + Select input directory or file Vælg input mapper eller fil - + No destination path set Ingen destionations sti sat - + Please type a destination path first Indtast venligst en destinations sti først - + No input path set Der er ikke sat nogen sti til input - + Please type an input path first Indtast venligst en input sti først - + Input path does not exist Stien til input findes ikke - + Torrent creation Torrent oprettelse - + Torrent was created successfully: Torrent blev oprettet succesfuldt: - + Please type a valid input path first Indtast venligst en gyldig sti til input først @@ -1373,66 +1373,66 @@ Luk venglist denne først. misc - + B bytes B - + KiB kibibytes (1024 bytes) KB - + MiB mebibytes (1024 kibibytes) MB - + GiB gibibytes (1024 mibibytes) GB - + TiB tebibytes (1024 gibibytes) TB - + Unknown Ukendt - + Unknown Unknown (size) Ukendt - + < 1m < 1 minute < 1 m - + %1m e.g: 10minutes %1m - + %1h%2m e.g: 3hours 5minutes %1h%2m - + %1d%2h%3m e.g: 2days 10hours 2minutes %1d%2h%3m @@ -1441,32 +1441,32 @@ Luk venglist denne først. options_imp - + Range Start IP Første IP i rækken - + Start IP: Første IP: - + Range End IP Sidste IP i rækken - + End IP: Sidste IP: - + IP Range Comment IP Række Kommentar - + Comment: Kommentar: @@ -1477,48 +1477,48 @@ Luk venglist denne først. til - + Choose your favourite preview program Vælg dit foretrukne smugkig program - + Invalid IP Ugyldig IP - + This IP is invalid. Denne IP er ugyldig. - + Options were saved successfully. Indstillingerne blev gemt. - + Choose scan directory Vælg mappe til scan - + Choose an ipfilter.dat file Vælg en ipfilter.dat fil - + Choose a save directory Vælg en standart mappe - + I/O Error Input/Output Error I/O Fejl - + Couldn't open %1 in read mode. Kunne ikke åbne %1 til læsning. diff --git a/src/lang/qbittorrent_de.ts b/src/lang/qbittorrent_de.ts index 081df32de..e87d9280e 100644 --- a/src/lang/qbittorrent_de.ts +++ b/src/lang/qbittorrent_de.ts @@ -544,7 +544,7 @@ Copyright (c) 2006 Christophe Dumez<br> :: By Christophe Dumez :: Copyright (c) 2006 - + qBittorrent qBittorrent @@ -569,12 +569,12 @@ Copyright (c) 2006 Christophe Dumez<br> UP Geschwindigkeit: - + Open Torrent Files Öffne Torrent Dateien - + Torrent Files Torrent Dateien @@ -620,12 +620,12 @@ Copyright (c) 2006 Christophe Dumez<br> Torrent Datei kann nicht dekodiert werden: - + This file is either corrupted or this isn't a torrent. Diese Datei ist entweder beschädigt, oder kein torrent. - + Are you sure? -- qBittorrent Sind Sie sicher? -- qBittorrent @@ -635,12 +635,12 @@ Copyright (c) 2006 Christophe Dumez<br> Wollen Sie wirklich alle Dateien aus der Download Liste löschen? - + &Yes &Ja - + &No &Nein @@ -650,7 +650,7 @@ Copyright (c) 2006 Christophe Dumez<br> Download Liste gelöscht. - + Are you sure you want to delete the selected item(s) in download list? Wollen Sie wirklich die ausgewählten Elemente aus der Download Liste löschen? @@ -733,12 +733,12 @@ Copyright (c) 2006 Christophe Dumez<br> Überprüfe... - + Connecting... Verbinde... - + Downloading... Herunterladen... @@ -772,7 +772,7 @@ Copyright (c) 2006 Christophe Dumez<br> Konnte nicht auf den angegebenen Ports lauschen. - + Couldn't listen on any of the given ports. Konnte nicht auf den angegebenen Ports lauschen. @@ -782,12 +782,12 @@ Copyright (c) 2006 Christophe Dumez<br> Kein - + Empty search pattern Leere Suchanfrage - + Please type a search pattern first Bitte geben Sie zuerst eine Suchanfrage ein @@ -797,12 +797,12 @@ Copyright (c) 2006 Christophe Dumez<br> Keine Suchmaschine ausgewählt - + You must select at least one search engine. Sie müssen mindestens eine Suchmaschine auswählen. - + Searching... Suche... @@ -882,17 +882,17 @@ Copyright (c) 2006 Christophe Dumez<br> Suche abgeschlossen - + An error occured during search... Während der Suche ist ein Fehler aufgetreten ... - + Search aborted Suche abgebrochen - + Search returned no results Suche lieferte keine Ergebnisse @@ -902,12 +902,12 @@ Copyright (c) 2006 Christophe Dumez<br> Suche abgeschlossen - + Search plugin update -- qBittorrent "Such"-Plugin update -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -918,17 +918,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Update Server vorübergehend nicht erreichbar. - + Your search plugin is already up to date. "Such"-Plugin ist schon auf dem neuesten Stand. - + Results Ergebnisse @@ -958,7 +958,7 @@ Changelog: UP Geschwindigkeit - + Status Status @@ -978,7 +978,7 @@ Changelog: Leecher - + Search engine Suchmaschine @@ -989,17 +989,17 @@ Changelog: Stehen geblieben - + Paused Pausiert - + Preview process already running Preview Prozess läuft bereits - + There is already another preview process running. Please close the other one first. Ein anderer Preview Prozess läuft zu Zeit. @@ -1029,22 +1029,22 @@ Bitte schliessen Sie diesen zuerst. Bitte warten... - + Transfers Transfer - + Are you sure you want to quit qBittorrent? Wollen Sie qBittorrent wirklich beenden? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Wollen Sie wirklich die ausgewählten Elemente aus der Download Liste und von der Festplatte löschen? - + Download finished Download abgeschlossen @@ -1055,210 +1055,210 @@ Bitte schliessen Sie diesen zuerst. ist vollständig heruntergeladen. - + Search Engine Suchmaschine - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Verbindungs Status: - + Offline Offline - + No peers found... Keine Peers gefunden... - + Name i.e: file name Name - + Size i.e: file size Größe - + Progress i.e: % downloaded Verlauf - + DL Speed i.e: Download speed DL Geschwindigkeit - + UP Speed i.e: Upload speed UP Geschwindigkeit - + Seeds/Leechs i.e: full/partial sources Seeder/Leecher - + ETA i.e: Estimated Time of Arrival / Time left voraussichtliche Ankunftszeit - + Seeders i.e: Number of full sources Seeder - + Leechers i.e: Number of partial sources Leecher - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 gestartet. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s DL Geschwindigkeit: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s UP Geschwindigkeit: %1 KiB/s - + Finished i.e: Torrent has finished downloading Beendet - + Checking... i.e: Checking already downloaded parts... Überprüfe... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Angehalten - + Are you sure you want to quit? Wollen Sie wirklich beenden? - + '%1' was removed. 'xxx.avi' was removed. '%1' wurde entfernt. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' wurde der Download Liste hinzugefügt. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' wird fortgesetzt. (Schnelles Fortsetzen) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' befindet sich bereits in der Download Liste. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Kann Torrent Datei '%1' nicht dekodieren - + None i.e: No error message Nichts - + Listening on port: %1 e.g: Listening on port: 1666 Lausche auf Port: %1 - + All downloads were paused. Alle Downloads wurden angehalten. - + '%1' paused. xxx.avi paused. '%1' angehalten. - + Connecting... i.e: Connecting to the tracker... Verbinde... - + All downloads were resumed. Alle Downloads wurden fortgesetzt. - + '%1' resumed. e.g: xxx.avi resumed. '%1' fortgesetzt. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 vollständig heruntergeladen. - + I/O Error i.e: Input/Output Error I/O Error - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Es ist ein Fehler beim lesen oder schreiben von %1 aufgetreten. Die Festplatte ist vermutlich voll. Der Download wurde angehalten @@ -1270,55 +1270,55 @@ Bitte schliessen Sie diesen zuerst. Ein Fehler ist aufgetreten (Festplatte voll?), '%1' angehalten. - + Connection Status: Verbindungs-Status: - + Online Online - + Firewalled? i.e: Behind a firewall/router? Hinter einer Firewall/Router? - + No incoming connections... Keine eingehenden Verbindungen... - + No search engine selected Keine Suchmaschine ausgewählt - + Search plugin update Such-Plugin update - + Search has finished Suche abgeschlossen - + Results i.e: Search results Ergebnisse - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Lade '%1', bitte warten... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Ein Fehler ist aufgetreten (Festplatte voll?), '%1' angehalten. @@ -1883,42 +1883,42 @@ Bitte schliessen Sie diesen zuerst. createtorrent - + Select destination torrent file Ziel-Torrent Datei auswählen - + Torrent Files Torrent Dateien - + Select input directory or file Eingangs-Datei oder -Verzeichnis wählen - + No destination path set Kein Ziel-Pfad gesetzt - + Please type a destination path first Bitte geben Sie zuerst einen Zielpfad ein - + No input path set Kein Eingangs-Pfad gesetzt - + Please type an input path first Bitte geben Sie zuerst einen Eingangspfad an - + Input path does not exist Eingangs-Pfad existiert nicht @@ -1928,17 +1928,17 @@ Bitte schliessen Sie diesen zuerst. Bitte geben Sie einen gültigen Eingangs-Pfad an - + Torrent creation Torrent Erstellung - + Torrent was created successfully: Torrent erfolgreich erstellt: - + Please type a valid input path first Bitte geben Sie zuerst einen gültigen Eingangs Pfad ein @@ -1974,31 +1974,31 @@ Bitte schliessen Sie diesen zuerst. misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) @@ -2022,36 +2022,36 @@ Bitte schliessen Sie diesen zuerst. d - + Unknown Unbekannt - + Unknown Unknown (size) Unbekannt - + < 1m < 1 minute < 1 Minute - + %1m e.g: 10minutes %1 Minuten - + %1h%2m e.g: 3hours 5minutes %1 Minuten %2 Stunden - + %1d%2h%3m e.g: 2days 10hours 2minutes %1 Tage %2 Stunden %3 Minuten @@ -2105,12 +2105,12 @@ Bitte schliessen Sie diesen zuerst. ist fehlerhaft. - + Range Start IP Bereich Start IP - + Start IP: Start IP: @@ -2125,22 +2125,22 @@ Bitte schliessen Sie diesen zuerst. Diese IP ist fehlerhaft. - + Range End IP Bereich End IP - + End IP: End IP: - + IP Range Comment IP Bereich Kommentar - + Comment: Kommentar: @@ -2151,48 +2151,48 @@ Bitte schliessen Sie diesen zuerst. bis - + Choose your favourite preview program Wählen Sie ihr bevorzugtes Vorschau Programm - + Invalid IP Ungültige IP - + This IP is invalid. Diese IP ist ungültig. - + Options were saved successfully. Optionen wurden erfolgreich gespeichert. - + Choose scan directory Verzeichnis zum scannen auswählen - + Choose an ipfilter.dat file ipfilter.dat Datei auswählen - + Choose a save directory Verzeichnis zum Speichern auswählen - + I/O Error Input/Output Error - + Couldn't open %1 in read mode. Kein Lesezugriff auf %1. diff --git a/src/lang/qbittorrent_el.ts b/src/lang/qbittorrent_el.ts index db7416709..c42bf7676 100644 --- a/src/lang/qbittorrent_el.ts +++ b/src/lang/qbittorrent_el.ts @@ -616,7 +616,7 @@ Copyright © 2006 από τον Christophe Dumez<br> GUI - + Open Torrent Files Άνοιγμα Αρχείων τορεντ @@ -631,7 +631,7 @@ Copyright © 2006 από τον Christophe Dumez<br> Άγνωστο - + This file is either corrupted or this isn't a torrent. Το αρχείο είτε είναι κατεστραμμένο, ή δεν ειναι ενα τορεντ. @@ -641,17 +641,17 @@ Copyright © 2006 από τον Christophe Dumez<br> Σίγουρα θέλετε να διαγράψετε όλα τα αρχεία στην λίστα κατεβάσματος? - + &Yes &Ναι - + &No &Όχι - + Are you sure you want to delete the selected item(s) in download list? Είστε σίγουρος οτι θέλετε να διαγράψετε το(α) επιλεγμλένα αντικείμενο(α) από την λίστα κατεβάσματος? @@ -681,12 +681,12 @@ Copyright © 2006 από τον Christophe Dumez<br> Έλεγχος... - + Connecting... Σύνδεση... - + Downloading... Κατέβασμα... @@ -726,7 +726,7 @@ Copyright © 2006 από τον Christophe Dumez<br> Δεν μπόρεσε να δημιουργηθεί η κατηγορία: - + Torrent Files Αρχεία Τορεντ @@ -798,12 +798,12 @@ Copyright © 2006 από τον Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Είστε σίγουρος? -- qBittorrent @@ -844,7 +844,7 @@ Copyright © 2006 από τον Christophe Dumez<br> έχει τελειώσει το κατέβασμα. - + Couldn't listen on any of the given ports. Δεν "ακροάστηκα" καμία σπό τις δωσμένες θύρες. @@ -854,12 +854,12 @@ Copyright © 2006 από τον Christophe Dumez<br> Κανένα - + Empty search pattern Κενό πρότυπο εύρεσης - + Please type a search pattern first Παρακαλώ εισάγετε ένα σχέδιο εύρεσης πρώτα @@ -869,12 +869,12 @@ Copyright © 2006 από τον Christophe Dumez<br> Δεν έχει επιλεχθεί μηχανή αναζήτησης - + You must select at least one search engine. Πρέπει να επιλέξετε τουλάχιστο μια μηχανή αναζήτησης. - + Searching... Αναζήτηση... @@ -984,17 +984,17 @@ Copyright © 2006 από τον Christophe Dumez<br> Αναζήτηση τελείωσε - + An error occured during search... Σφάλμα κατά την εύρεση... - + Search aborted Αναζήτηση διεκόπη - + Search returned no results Η αναζήτηση δεν έφερε αποτελέσματα @@ -1004,12 +1004,12 @@ Copyright © 2006 από τον Christophe Dumez<br> Αναζήτηση τελείωσε - + Search plugin update -- qBittorrent Αναβάθμιση plugin αναζήτησης -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -1020,17 +1020,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Λυπούμαστε, ο εξηπυρετητής αναβάθμισης δεν είναι προσωρινά διαθέσιμος. - + Your search plugin is already up to date. Το plugin αναζήτησης είναι ήδη αναβαθμισμένο. - + Results Αποτελέσματα @@ -1060,7 +1060,7 @@ Changelog: UP Ταχύτητα - + Status Κατάσταση @@ -1080,7 +1080,7 @@ Changelog: Συνδέσεις - + Search engine Μηχανή αναζήτησης @@ -1091,17 +1091,17 @@ Changelog: Αποτυχία λειτουργίας - + Paused Παύση - + Preview process already running Προεπισκόπηση ήδη ανοικτή - + There is already another preview process running. Please close the other one first. Υπάρχει ήδη άλλη προεπισκόπηση ανοιχτή. @@ -1131,22 +1131,22 @@ Please close the other one first. Παρακαλώ περιμένετε... - + Transfers Μεταφορές - + Are you sure you want to quit qBittorrent? Είστε σίγουρος/η οτι θέλετε να κλείσετε το qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Είστε σίγουρος/η οτι θέλετε να διαγράψετε το(α) επιλεγμένο(α) αντικείμενο(α) από τη λίστα κατεβάσματος και το σκληρό δίσκο? - + Download finished Το κατέβασμα τελείωσε @@ -1157,210 +1157,210 @@ Please close the other one first. έχει τελειώσει το κατέβασμα. - + Search Engine Μηχανή Αναζήτησης - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Κατάσταση Σύνδεσης: - + Offline Offline - + No peers found... Δεν βρέθηκαν συνδέσεις... - + Name i.e: file name Όνομα αρχείου - + Size i.e: file size Μέγεθος - + Progress i.e: % downloaded Πρόοδος - + DL Speed i.e: Download speed DL Ταχύτητα - + UP Speed i.e: Upload speed UP Ταχύτητα - + Seeds/Leechs i.e: full/partial sources Διαμοιραστές/Συνδέσεις - + ETA i.e: Estimated Time of Arrival / Time left Χρόνος που απομένει - + Seeders i.e: Number of full sources Διαμοιραστές - + Leechers i.e: Number of partial sources Συνδέσεις - + qBittorrent %1 started. e.g: qBittorrent v0.x started. Εκκινήθηκε το qBittorrent %1. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Ταχύτητα Κατεβάσματος: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Ταχύτητα Ανεβάσματος: %1 KiB/s - + Finished i.e: Torrent has finished downloading Τελείωσε - + Checking... i.e: Checking already downloaded parts... Έλεγχος... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Αποτυχία λειτουργίας - + Are you sure you want to quit? Είστε σίγουρος/η οτι θέλετε να κλείσετε την εφαρμογή? - + '%1' was removed. 'xxx.avi' was removed. Το '%1' αφαιρέθηκε. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. Το '%1' προστέθηκε στη λίστα κατεβάσματος. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) Το '%1' ξανάρχισε. (γρήγορη επανασύνδεση) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. Το '%1' είναι ήδη στη λίστα κατεβάσματος. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Αδύνατο να αποκωδικοποιηθεί το αρχείο τορεντ: '%1' - + None i.e: No error message Κανένα - + Listening on port: %1 e.g: Listening on port: 1666 Ακρόαση στη θύρα: %1 - + All downloads were paused. Όλα τα κατεβάσματα είναι σε παύση. - + '%1' paused. xxx.avi paused. '%1' σε παύση. - + Connecting... i.e: Connecting to the tracker... Σύνδεση... - + All downloads were resumed. Όλα τα κατεβάσματα ξανάρχισαν. - + '%1' resumed. e.g: xxx.avi resumed. Το '%1' ξανάρχισε. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. Έχει τελειώσει το κατέβασμα του '%1'. - + I/O Error i.e: Input/Output Error I/O Λάθος - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Ένα σφάλμα προέκυψε κατά την προσπάθεια ανάγνωσης ή εγγραφής του %1. Ο δίσκος είναι πιθανόν πλήρης, το κατέβασμα είναι σε παύση @@ -1372,55 +1372,55 @@ Please close the other one first. Ένα σφάλμα προέκυψε (δίσκος πλήρης?), το '%1' είναι σε παύση. - + Connection Status: Κατάσταση Σύνδεσης: - + Online Online - + Firewalled? i.e: Behind a firewall/router? Σε τοίχο προστασίας (firewall)? - + No incoming connections... Καμία εισερχόμενη σύνδεση... - + No search engine selected Δεν έχει επιλεγεί μηχανή αναζήτησης - + Search plugin update Αναβάθμιση plugin αναζήτησης - + Search has finished Η αναζήτηση τελείωσε - + Results i.e: Search results Αποτελέσματα - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Κατέβασμα του '%1', παρακαλώ περιμένετε... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Ένα σφάλμα προέκυψε (δίσκος πλήρης?), το '%1' είναι σε παύση. @@ -1995,42 +1995,42 @@ Please close the other one first. createtorrent - + Select destination torrent file Επιλέξτε προορισμό αρχείου τορεντ - + Torrent Files Αρχεία Τορεντ - + Select input directory or file Επιλέξτε αρχείο ή κατηγορία εισόδου - + No destination path set Δεν έχει ρυθμιστεί η διαδρομή φακέλου - + Please type a destination path first Παρακαλώ πληκτρολογήστε έναν προορισμό διαδρομής πρώτα - + No input path set Δεν έχει ρυθμιστεί διαδρομή εισόδου - + Please type an input path first Παρακαλώ πληκτρολογήστε μία διαδρομή εισόδου πρώτα - + Input path does not exist Διαδρομή εισόδου δεν υπάρχει @@ -2040,17 +2040,17 @@ Please close the other one first. Παρακαλώ πληκτρολογήστε έναν έγκυρο προορισμό διαδρομής πρώτα - + Torrent creation Δημιουργία τορεντ - + Torrent was created successfully: Τόρεντ δημιουργήθηκε επιτυχώς: - + Please type a valid input path first Παρακαλώ πληκτρολογήστε μία έγκυρη διαδρομή εισόδου πρώτα @@ -2086,31 +2086,31 @@ Please close the other one first. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB/s - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -2134,7 +2134,7 @@ Please close the other one first. μ - + Unknown Άγνωστος @@ -2151,31 +2151,31 @@ Please close the other one first. μ - + Unknown Unknown (size) Άγνωστο - + < 1m < 1 minute < 1λ - + %1m e.g: 10minutes %1λ - + %1h%2m e.g: 3hours 5minutes %1ώ%2λ - + %1d%2h%3m e.g: 2days 10hours 2minutes %1μ%2ώ%3λ @@ -2234,12 +2234,12 @@ Please close the other one first. είναι κακοσχηματισμένη. - + Range Start IP Εύρος Αρχής ΙΡ - + Start IP: Αρχή ΙΡ: @@ -2254,22 +2254,22 @@ Please close the other one first. Η ΙΡ είναι λάθος. - + Range End IP Εύρος Τέλους ΙΡ - + End IP: Τέλος ΙΡ: - + IP Range Comment Σχόλιο Εύρους ΙΡ - + Comment: Σχόλιο: @@ -2280,48 +2280,48 @@ Please close the other one first. έως - + Choose your favourite preview program Επιλέξτε το αγαπημένο σας πρόγραμμα προεπισκόπησης - + Invalid IP Άκυρο IP - + This IP is invalid. Αυτό το IP είναι άκυρο. - + Options were saved successfully. Οι επιλογές αποθηκεύτηκαν επιτυχώς. - + Choose scan directory Επιλέξτε φάκελο αναζήτησης - + Choose an ipfilter.dat file Επιλέξτε ένα αρχείο ipfilter.dat - + Choose a save directory Επιλέξτε φάκελο αποθήκευσης - + I/O Error Input/Output Error I/O Σφάλμα - + Couldn't open %1 in read mode. Αδύνατο το άνοιγμα του %1 σε λειτουργία ανάγνωσης. diff --git a/src/lang/qbittorrent_en.ts b/src/lang/qbittorrent_en.ts index 023811f36..ac9c4a527 100644 --- a/src/lang/qbittorrent_en.ts +++ b/src/lang/qbittorrent_en.ts @@ -440,97 +440,97 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files - + This file is either corrupted or this isn't a torrent. - + &Yes - + &No - + Are you sure you want to delete the selected item(s) in download list? - + Connecting... - + Downloading... - + Torrent Files - + Are you sure? -- qBittorrent - + Couldn't listen on any of the given ports. - + Empty search pattern - + Please type a search pattern first - + You must select at least one search engine. - + Searching... - + An error occured during search... - + Search aborted - + Search returned no results - + Search plugin update -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -538,330 +538,330 @@ Changelog: - + Sorry, update server is temporarily unavailable. - + Your search plugin is already up to date. - + Results - + Status - + Search engine - + Paused - + Preview process already running - + There is already another preview process running. Please close the other one first. - + Transfers - + Download finished - + Search Engine - + Are you sure you want to quit qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? - + qBittorrent %1 e.g: qBittorrent v0.x - + Connection status: - + Offline - + No peers found... - + Name i.e: file name - + Size i.e: file size - + Progress i.e: % downloaded - + DL Speed i.e: Download speed - + UP Speed i.e: Upload speed - + Seeds/Leechs i.e: full/partial sources - + ETA i.e: Estimated Time of Arrival / Time left - + Seeders i.e: Number of full sources - + Leechers i.e: Number of partial sources - + qBittorrent %1 started. e.g: qBittorrent v0.x started. - + qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s - + Finished i.e: Torrent has finished downloading - + Checking... i.e: Checking already downloaded parts... - + Stalled i.e: State of a torrent whose download speed is 0kb/s - + Are you sure you want to quit? - + '%1' was removed. 'xxx.avi' was removed. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' - + None i.e: No error message - + Listening on port: %1 e.g: Listening on port: 1666 - + All downloads were paused. - + '%1' paused. xxx.avi paused. - + Connecting... i.e: Connecting to the tracker... - + All downloads were resumed. - + '%1' resumed. e.g: xxx.avi resumed. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. - + I/O Error i.e: Input/Output Error - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused - + Connection Status: - + Online - + Firewalled? i.e: Behind a firewall/router? - + No incoming connections... - + No search engine selected - + Search plugin update - + Search has finished - + Results i.e: Search results - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. @@ -1283,57 +1283,57 @@ Please close the other one first. createtorrent - + Select destination torrent file - + Torrent Files - + Select input directory or file - + No destination path set - + Please type a destination path first - + No input path set - + Please type an input path first - + Input path does not exist - + Torrent creation - + Torrent was created successfully: - + Please type a valid input path first @@ -1369,66 +1369,66 @@ Please close the other one first. misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) - + Unknown - + Unknown Unknown (size) - + < 1m < 1 minute - + %1m e.g: 10minutes - + %1h%2m e.g: 3hours 5minutes - + %1d%2h%3m e.g: 2days 10hours 2minutes @@ -1437,32 +1437,32 @@ Please close the other one first. options_imp - + Range Start IP - + Start IP: - + Range End IP - + End IP: - + IP Range Comment - + Comment: @@ -1473,48 +1473,48 @@ Please close the other one first. - + Choose your favourite preview program - + Invalid IP - + This IP is invalid. - + Options were saved successfully. - + Choose scan directory - + Choose an ipfilter.dat file - + Choose a save directory - + I/O Error Input/Output Error - + Couldn't open %1 in read mode. diff --git a/src/lang/qbittorrent_es.ts b/src/lang/qbittorrent_es.ts index b4a70e318..0652f8bc5 100644 --- a/src/lang/qbittorrent_es.ts +++ b/src/lang/qbittorrent_es.ts @@ -579,12 +579,12 @@ Copyright © 2006 por Christophe Dumez<br> No se pudo crear el directorio: - + Open Torrent Files Abrir archivos Torrent - + Torrent Files Archivos Torrent @@ -625,7 +625,7 @@ Copyright © 2006 por Christophe Dumez<br> Imposible decodificar el archivo torrent: - + This file is either corrupted or this isn't a torrent. Este archivo puede estar corrupto, o no ser un torrent. @@ -635,12 +635,12 @@ Copyright © 2006 por Christophe Dumez<br> ¿Seguro que quieres eliminar todos los archivos de la lista de descargas? - + &Yes &Sí - + &No &No @@ -650,7 +650,7 @@ Copyright © 2006 por Christophe Dumez<br> Lista de descargas borrada. - + Are you sure you want to delete the selected item(s) in download list? ¿Seguro que quieres borrar el o los elemento(s) seleccionados de la lista de descargas? @@ -703,12 +703,12 @@ Copyright © 2006 por Christophe Dumez<br> Verificando... - + Connecting... Conectando... - + Downloading... Bajando... @@ -746,12 +746,12 @@ Copyright © 2006 por Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent ¿Estás seguro? -- qBittorrent @@ -792,7 +792,7 @@ Copyright © 2006 por Christophe Dumez<br> No se pudo escuchar en ninguno de los puertos brindados. - + Couldn't listen on any of the given ports. No se pudo escuchar en ninguno de los puertos brindados. @@ -802,12 +802,12 @@ Copyright © 2006 por Christophe Dumez<br> Ninguno - + Empty search pattern Patrón de búsqueda vacío - + Please type a search pattern first Por favor escriba un patrón de búsqueda primero @@ -817,12 +817,12 @@ Copyright © 2006 por Christophe Dumez<br> No seleccionaste motor de búsqueda - + You must select at least one search engine. Debes seleccionar al menos un motor de búsqueda. - + Searching... Buscando... @@ -912,17 +912,17 @@ Copyright © 2006 por Christophe Dumez<br> La busqueda ha finalizado - + An error occured during search... Ocurrió un error durante la búsqueda... - + Search aborted Búsqueda abortada - + Search returned no results La búsqueda no devolvió resultados @@ -932,12 +932,12 @@ Copyright © 2006 por Christophe Dumez<br> La búsqueda ha finalizado - + Search plugin update -- qBittorrent Actualizador de plugin de búsqueda -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -948,17 +948,17 @@ Log: - + Sorry, update server is temporarily unavailable. Lo siento, el servidor de actualización esta temporalmente no disponible. - + Your search plugin is already up to date. Tu plugin de búsqueda vuelve a estar actualizado. - + Results Resultados @@ -988,7 +988,7 @@ Log: Velocidad de Subida - + Status Estado @@ -1008,7 +1008,7 @@ Log: Leechers - + Search engine Motor de búsqueda @@ -1019,17 +1019,17 @@ Log: Detenida - + Paused - + Preview process already running Previsualizar procesos activos - + There is already another preview process running. Please close the other one first. Hay otro proceso de previsualización corriendo. @@ -1059,22 +1059,22 @@ Por favor cierra el otro antes. Por favor espere... - + Transfers Transferidos - + Are you sure you want to quit qBittorrent? ¿Seguro que deseas salir de qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? ¿Seguro que deseas borrar el o los elementos seleccionados de la lista de descargas y del disco duro? - + Download finished Descarga terminada @@ -1085,210 +1085,210 @@ Por favor cierra el otro antes. se ha terminado de descargar. - + Search Engine Motor de Búsqueda - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Estado de la conexión: - + Offline Offline - + No peers found... No se encontraron peers... - + Name i.e: file name Nombre - + Size i.e: file size Tamaño - + Progress i.e: % downloaded Progreso - + DL Speed i.e: Download speed Velocidad de Descarga - + UP Speed i.e: Upload speed Velocidad de Subida - + Seeds/Leechs i.e: full/partial sources Semillas/Leechs - + ETA i.e: Estimated Time of Arrival / Time left Tiempo Restante Aproximado - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 iniciado. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Velocidad de Descarga: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Velocidad de subida: %1 KiB/s - + Finished i.e: Torrent has finished downloading Terminado - + Checking... i.e: Checking already downloaded parts... Verificando... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Detenida - + Are you sure you want to quit? ¿Estás seguro de que deseas salir? - + '%1' was removed. 'xxx.avi' was removed. '%1' fué removido. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' agregado a la lista de descargas. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' reiniciado. (reinicio rápido) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' ya está en la lista de descargas. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Imposible decodificar el archivo torrent: '%1' - + None i.e: No error message Ninguno - + Listening on port: %1 e.g: Listening on port: 1666 Escuchando en el puerto: %1 - + All downloads were paused. Todas las descargas en pausa. - + '%1' paused. xxx.avi paused. '%1' en pausa. - + Connecting... i.e: Connecting to the tracker... Conectando... - + All downloads were resumed. Todas las descargas reiniciadas. - + '%1' resumed. e.g: xxx.avi resumed. '%1' reiniciado. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 ha terminado de descargarse. - + I/O Error i.e: Input/Output Error Error de Entrada/Salida - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Un error ocurrió mientras se intentaba leer o escribir %1. El disco tal vez esté lleno, la descarga fué pausada @@ -1300,55 +1300,55 @@ Por favor cierra el otro antes. Un error ocurrió (¿disco lleno?), '%1' pausado. - + Connection Status: Estado de la conexión: - + Online En línea - + Firewalled? i.e: Behind a firewall/router? ¿Con firewall? - + No incoming connections... Sin conexiones entrantes... - + No search engine selected No se eligió ningún motor de búsqueda - + Search plugin update Actualización del plugin de búsqueda - + Search has finished Búsqueda terminada - + Results i.e: Search results Resultados - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Descargando '%1', por favor espera... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Un error ocurrió (¿disco lleno?), '%1' pausado. @@ -1923,42 +1923,42 @@ Por favor cierra el otro antes. createtorrent - + Select destination torrent file Selecciona destino para el archivo torrent - + Torrent Files Archivos Torrent - + Select input directory or file Selecciona directorio de entrara o archivo - + No destination path set No hay una ruta de destino establecida - + Please type a destination path first Por favor escribe una ruta de destino primero - + No input path set Sin ruta de destino establecida - + Please type an input path first Por favor escribe una ruta de entrara primero - + Input path does not exist La ruta de entrada no existe @@ -1968,17 +1968,17 @@ Por favor cierra el otro antes. Por favor escribe una ruta de entrada correcta primero - + Torrent creation Crear Torrent - + Torrent was created successfully: El Torrent se creó con éxito: - + Please type a valid input path first Por favor digita una ruta de entrada válida primero @@ -2014,31 +2014,31 @@ Por favor cierra el otro antes. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -2062,7 +2062,7 @@ Por favor cierra el otro antes. d - + Unknown Desconocido @@ -2079,31 +2079,31 @@ Por favor cierra el otro antes. d - + Unknown Unknown (size) Desconocido - + < 1m < 1 minute <1m - + %1m e.g: 10minutes %1m - + %1h%2m e.g: 3hours 5minutes %1h%2m - + %1d%2h%3m e.g: 2days 10hours 2minutes %1d%2h%3m @@ -2162,12 +2162,12 @@ Por favor cierra el otro antes. está mal formado. - + Range Start IP IP de inicio de Rango - + Start IP: IP de inicio: @@ -2182,22 +2182,22 @@ Por favor cierra el otro antes. Esta IP está incorrecta. - + Range End IP IP de fin de Rango - + End IP: IP Final: - + IP Range Comment Comentario del rango de IP - + Comment: Comentario: @@ -2208,48 +2208,48 @@ Por favor cierra el otro antes. hasta - + Choose your favourite preview program Escoge tu programa de previsualización favorito - + Invalid IP IP inválida - + This IP is invalid. Esta IP es inválida. - + Options were saved successfully. Opciones guardadas exitosamente. - + Choose scan directory Selecciona un directorio a inspeccionar - + Choose an ipfilter.dat file Selecciona un archivo ipfilter.dat - + Choose a save directory Selecciona un directorio para guardar - + I/O Error Input/Output Error Error de Entrada/Salida - + Couldn't open %1 in read mode. No se pudo abrir %1 en modo lectura. diff --git a/src/lang/qbittorrent_fi.ts b/src/lang/qbittorrent_fi.ts index 3aae5b5af..5330463f8 100644 --- a/src/lang/qbittorrent_fi.ts +++ b/src/lang/qbittorrent_fi.ts @@ -474,12 +474,12 @@ Tekijänoikeus © 2006 Christophe Dumez<br> on jo latauslistassa. - + An error occured during search... Haun aika tapahtui virhe... - + Are you sure? -- qBittorrent Oletko varma? — qBittorrent @@ -489,12 +489,12 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Haluatko varmasti poistaa kaikki tiedostot latauslistasta? - + Are you sure you want to delete the selected item(s) in download list? Haluatko varmasti poistaa valitut tiedostot latauslistasta? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Haluatko varmasti poistaa valitut kohteet latauslistasta ja tallennusmedialta? @@ -504,7 +504,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Haluatko varmasti lopettaa qBittorrentin? - + Are you sure you want to quit qBittorrent? Haluatko varmasti lopettaa qBittorrentin? @@ -539,7 +539,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Tarkastetaan... - + Connecting... Yhdistetään... @@ -555,7 +555,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Tiedoston lataaminen ei onnistunut: - + Couldn't listen on any of the given ports. Minkään annetun portin käyttäminen ei onnistunut. @@ -565,7 +565,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Latausnopeus - + Download finished Lataus tuli valmiiksi @@ -576,7 +576,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Ladataan torrenttia - + Downloading... Ladataan... @@ -586,7 +586,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Lataulista tyhjennettiin. - + Empty search pattern Tyhjä hakulauseke @@ -632,7 +632,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Nimi - + &No &Ei @@ -647,7 +647,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Hakupalvelua ei ole valittu - + Open Torrent Files Avaa torrent-tiedostoja @@ -658,12 +658,12 @@ Tekijänoikeus © 2006 Christophe Dumez<br> pysäytettiin. - + Paused Pysäytetty - + Please type a search pattern first Kirjoita ensin hakulauseke @@ -673,7 +673,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Odota... - + Preview process already running Esikatselu on jo käynnissä @@ -700,7 +700,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> poistettiin. - + Results Tulokset @@ -716,22 +716,22 @@ Tekijänoikeus © 2006 Christophe Dumez<br> latautuu. (pikajatkaminen) - + Search aborted Haku keskeytetty - + Search engine Hakupalvelu - + Search Engine Hakupalvelu - + Searching... Etsitään... @@ -741,7 +741,7 @@ Tekijänoikeus © 2006 Christophe Dumez<br> Haku päättyi - + Search plugin can be updated, do you want to update it? Changelog: @@ -752,12 +752,12 @@ Muutoshistoria: - + Search plugin update -- qBittorrent Hakuliitännäisen päivitys — qBittorrent - + Search returned no results Haku ei palauttanut tuloksia @@ -772,7 +772,7 @@ Muutoshistoria: Koko - + Sorry, update server is temporarily unavailable. Päivityspalvelin ei ole saavutettavissa. @@ -788,29 +788,29 @@ Muutoshistoria: käynnistettiin. - + Status Tila - + There is already another preview process running. Please close the other one first. Esikatselu on jo käynnissä. Uutta esikatselua ei voi aloittaa. - + This file is either corrupted or this isn't a torrent. Tiedosto ei ole kelvollinen torrent-tiedosto. - + Torrent Files Torrent-tiedostot - + Transfers Siirrot @@ -830,17 +830,17 @@ Uutta esikatselua ei voi aloittaa. Lähetysnopeus: - + &Yes &Kyllä - + You must select at least one search engine. Valitse ensin ainakin yksi hakupalvelu. - + Your search plugin is already up to date. Hakuliitännäinen on ajan tasalla. @@ -850,264 +850,264 @@ Uutta esikatselua ei voi aloittaa. I/O-virhe - + qBittorrent %1 e.g: qBittorrent v0.x - + Connection status: - + Offline - + No peers found... - + Name i.e: file name Nimi - + Size i.e: file size Koko - + Progress i.e: % downloaded Edistyminen - + DL Speed i.e: Download speed Latausnopeus - + UP Speed i.e: Upload speed Lähetysnopeus - + Seeds/Leechs i.e: full/partial sources - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Jakajia - + Leechers i.e: Number of partial sources Lataajia - + qBittorrent %1 started. e.g: qBittorrent v0.x started. - + qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s - + Finished i.e: Torrent has finished downloading Valmis - + Checking... i.e: Checking already downloaded parts... Tarkastetaan... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Seisahtunut - + Are you sure you want to quit? - + '%1' was removed. 'xxx.avi' was removed. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' - + None i.e: No error message Ei mikään - + Listening on port: %1 e.g: Listening on port: 1666 - + All downloads were paused. - + '%1' paused. xxx.avi paused. - + Connecting... i.e: Connecting to the tracker... Yhdistetään... - + All downloads were resumed. - + '%1' resumed. e.g: xxx.avi resumed. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. - + I/O Error i.e: Input/Output Error I/O-virhe - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused - + Connection Status: - + Online - + Firewalled? i.e: Behind a firewall/router? - + No incoming connections... - + No search engine selected - + Search plugin update - + Search has finished - + Results i.e: Search results Tulokset - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. @@ -1559,17 +1559,17 @@ Uutta esikatselua ei voi aloittaa. createtorrent - + Input path does not exist Lähdekansio ei ole olemassa - + No destination path set Kohdekansiota ei ole valittu - + No input path set Lähdekansiota ei ole asetettu @@ -1579,42 +1579,42 @@ Uutta esikatselua ei voi aloittaa. Anna kelvollinen lähdekansio - + Please type a destination path first Anna ensin kohdekansio - + Please type an input path first Anna ensin lähdekansio - + Please type a valid input path first Anna kelvollinen lähdekansio - + Select destination torrent file Valitse kohde-torrent-tiedosto - + Select input directory or file Valitse lähdekansio tai -tiedosto - + Torrent creation Torrentin luominen - + Torrent Files Torrent-tiedostot - + Torrent was created successfully: Torrent luotiin: @@ -1650,7 +1650,7 @@ Uutta esikatselua ei voi aloittaa. misc - + B bytes B @@ -1662,7 +1662,7 @@ Uutta esikatselua ei voi aloittaa. d - + GiB gibibytes (1024 mibibytes) GiB @@ -1680,7 +1680,7 @@ Uutta esikatselua ei voi aloittaa. h - + KiB kibibytes (1024 bytes) KiB @@ -1692,48 +1692,48 @@ Uutta esikatselua ei voi aloittaa. m - + MiB mebibytes (1024 kibibytes) MiB - + TiB tebibytes (1024 gibibytes) TiB - + Unknown tuntematon - + Unknown Unknown (size) tuntematon (koko) - + < 1m < 1 minute - + %1m e.g: 10minutes - + %1h%2m e.g: 3hours 5minutes - + %1d%2h%3m e.g: 2days 10hours 2minutes @@ -1757,12 +1757,12 @@ Uutta esikatselua ei voi aloittaa. Valitse hakukansio - + Choose your favourite preview program Valitse mieluinen esikatseluohjelma - + Comment: Kommentti: @@ -1772,7 +1772,7 @@ Uutta esikatselua ei voi aloittaa. Avaaminen epäonnistui: - + End IP: Loppu: @@ -1787,7 +1787,7 @@ Uutta esikatselua ei voi aloittaa. lukutilassa. - + Invalid IP Virheellinen IP @@ -1797,7 +1797,7 @@ Uutta esikatselua ei voi aloittaa. I/O-virhe - + IP Range Comment IP-alueen kommentti @@ -1807,17 +1807,17 @@ Uutta esikatselua ei voi aloittaa. Asetukset tallennettiin! - + Range End IP Alueen loppu - + Range Start IP Alueen alku - + Start IP: Alku: @@ -1827,7 +1827,7 @@ Uutta esikatselua ei voi aloittaa. Tämä IP on virheellinen. - + This IP is invalid. Tämä IP on virheellinen. @@ -1838,33 +1838,33 @@ Uutta esikatselua ei voi aloittaa. - + Options were saved successfully. - + Choose scan directory - + Choose an ipfilter.dat file - + Choose a save directory - + I/O Error Input/Output Error I/O-virhe - + Couldn't open %1 in read mode. diff --git a/src/lang/qbittorrent_fr.ts b/src/lang/qbittorrent_fr.ts index ca1640a7b..9a5bb313f 100644 --- a/src/lang/qbittorrent_fr.ts +++ b/src/lang/qbittorrent_fr.ts @@ -664,7 +664,7 @@ Copyright © 2006 par Christophe Dumez<br> Impossible de trouver le dossier : ' - + Open Torrent Files Ouvrir fichiers torrent @@ -694,12 +694,12 @@ Copyright © 2006 par Christophe Dumez<br> Impossible de décoder le fichier torrent : ' - + This file is either corrupted or this isn't a torrent. Ce fichier est corrompu ou il ne s'agit pas d'un torrent. - + Are you sure? -- qBittorrent Etes vous sûr ? -- qBittorrent @@ -709,17 +709,17 @@ Copyright © 2006 par Christophe Dumez<br> Etes-vous sûr de vouloir enlever tous les fichiers de la liste de téléchargement ? - + &Yes &Oui - + &No &Non - + Are you sure you want to delete the selected item(s) in download list? Etes-vous sûr de vouloir enlever tous les fichiers sélectionnés de la liste de téléchargement ? @@ -754,12 +754,12 @@ Copyright © 2006 par Christophe Dumez<br> Vérification... - + Connecting... Connexion... - + Downloading... Téléchargement... @@ -799,7 +799,7 @@ Copyright © 2006 par Christophe Dumez<br> Impossible de créer le dossier : - + Torrent Files Fichiers Torrent @@ -916,7 +916,7 @@ Copyright © 2006 par Christophe Dumez<br> a fini de télécharger. - + Couldn't listen on any of the given ports. Impossible d'écouter sur les ports donnés. @@ -926,12 +926,12 @@ Copyright © 2006 par Christophe Dumez<br> Aucun - + Empty search pattern Motif de recherche vide - + Please type a search pattern first Veuillez entrer un motif de recherche d'abord @@ -941,12 +941,12 @@ Copyright © 2006 par Christophe Dumez<br> Aucun moteur de recherche sélectionné - + You must select at least one search engine. Vous devez sélectionner au moins un moteur de recherche. - + Searching... Recherche en cours... @@ -1066,17 +1066,17 @@ Copyright © 2006 par Christophe Dumez<br> La recherche est terminée - + An error occured during search... Une erreur s'est produite lors de la recherche... - + Search aborted La recherché a été interrompue - + Search returned no results La recherche n'a retourné aucun résultat @@ -1086,12 +1086,12 @@ Copyright © 2006 par Christophe Dumez<br> La recherche est terminée - + Search plugin update -- qBittorrent Mise à jour du greffon de recherche -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -1102,17 +1102,17 @@ Changemets: - + Sorry, update server is temporarily unavailable. Désolé, le serveur de mise à jour est temporairement indisponible. - + Your search plugin is already up to date. Votre greffon de recherche est déjà à jour. - + Results Résultats @@ -1142,7 +1142,7 @@ Changemets: Vitesse UP - + Status Statut @@ -1162,7 +1162,7 @@ Changemets: Sources partielles - + Search engine Moteur de recherche @@ -1173,17 +1173,17 @@ Changemets: En attente - + Paused En pause - + Preview process already running Processus de prévisualisation inachevé - + There is already another preview process running. Please close the other one first. Il y a déjà un processus de prévisualisation en cours d'exécution. @@ -1213,12 +1213,12 @@ Veuillez d'abord le quitter. Veuillez patienter... - + Transfers Transferts - + Download finished Téléchargement terminé @@ -1229,225 +1229,225 @@ Veuillez d'abord le quitter. est fini de télécharger. - + Search Engine Moteur de recherche - + Are you sure you want to quit qBittorrent? Etes-vous certain de vouloir quitter qBittorrent ? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Etes-vous certain de vouloir supprimer les fichiers sélectionnés depuis la liste de téléchargement ainsi que le disque dur ? - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Statut de la connexion : - + Offline Déconnecté - + No peers found... Aucune source trouvée... - + Name i.e: file name Nom - + Size i.e: file size Taille - + Progress i.e: % downloaded Progression - + DL Speed i.e: Download speed Vitesse DL - + UP Speed i.e: Upload speed Vitesse UP - + Seeds/Leechs i.e: full/partial sources Seeds/Leechs - + ETA i.e: Estimated Time of Arrival / Time left Restant - + Seeders i.e: Number of full sources Sources complètes - + Leechers i.e: Number of partial sources Sources partielles - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 démarré. - + qBittorrent qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Vitesse DL : %1 Ko/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Vitesse UP : %1 Ko/s - + Finished i.e: Torrent has finished downloading Terminé - + Checking... i.e: Checking already downloaded parts... Vérification... - + Stalled i.e: State of a torrent whose download speed is 0kb/s En attente - + Are you sure you want to quit? Etes vous certain de vouloir quitter ? - + '%1' was removed. 'xxx.avi' was removed. '%1' a été supprimé. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' a été ajouté à la liste de téléchargement. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' a été relancé. (relancement rapide) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' est déjà présent dans la liste de téléchargement. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Impossible de décoder le torrent : '%1' - + None i.e: No error message Aucun - + Listening on port: %1 e.g: Listening on port: 1666 En écoute sur le port: %1 - + All downloads were paused. Tous les téléchargements ont été mis en pause. - + '%1' paused. xxx.avi paused. '%1' a été mis en pause. - + Connecting... i.e: Connecting to the tracker... Connexion... - + All downloads were resumed. Tous les téléchargements ont été relancés. - + '%1' resumed. e.g: xxx.avi resumed. '%1' a été relancé. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. Le téléchargement de %1 est terminé. - + I/O Error i.e: Input/Output Error Erreur E/S - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Une erreur s'est produite lors de la lecture ou l'écriture de %1. Le disque dur est probablement plein, le téléchargement a été mis en pause @@ -1459,55 +1459,55 @@ Veuillez d'abord le quitter. Une erreur s'est produite (disque plein ?), '%1' a été mis en pause. - + Connection Status: Etat de la connexion : - + Online Connecté - + Firewalled? i.e: Behind a firewall/router? Derrière un pare-feu ou un routeur ? - + No incoming connections... Aucune connexion entrante... - + No search engine selected Aucun moteur de recherche sélectionné - + Search plugin update Mise à jour du greffon de recherche - + Search has finished Fin de la recherche - + Results i.e: Search results Résultats - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Téléchargement de '%1', veuillez patienter... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Une erreur s'est produite (disque plein ?), '%1' a été mis en pause. @@ -2067,42 +2067,42 @@ Veuillez d'abord le quitter. createtorrent - + Select destination torrent file Sélectionner le torrent à créer - + Torrent Files Fichiers Torrent - + Select input directory or file Sélectionner le dossier ou le fichier à inclure - + No destination path set Aucun chemin de destination défini - + Please type a destination path first Veuillez entrer un chemin de destination d'abord - + No input path set Aucun fichier inclu - + Please type an input path first Veuillez sélectionner un fichier ou un dossier à inclure d'abord - + Input path does not exist Le fichier ou le dossier à inclure est introuvable @@ -2112,17 +2112,17 @@ Veuillez d'abord le quitter. Veuillez vérifier la chemin du fichier/dossier à inclure - + Torrent creation Création d'un torrent - + Torrent was created successfully: Le torrent a été créé avec succès : - + Please type a valid input path first Veuillez entrer répertoire correct en entrée @@ -2163,31 +2163,31 @@ Veuillez d'abord le quitter. misc - + B bytes o - + KiB kibibytes (1024 bytes) Ko - + MiB mebibytes (1024 kibibytes) Mo - + GiB gibibytes (1024 mibibytes) Go - + TiB tebibytes (1024 gibibytes) To @@ -2211,7 +2211,7 @@ Veuillez d'abord le quitter. j - + Unknown Inconnu @@ -2228,31 +2228,31 @@ Veuillez d'abord le quitter. j - + Unknown Unknown (size) Inconnue - + < 1m < 1 minute < 1min - + %1m e.g: 10minutes %1min - + %1h%2m e.g: 3hours 5minutes %1h%2min - + %1d%2h%3m e.g: 2days 10hours 2minutes %1j%2h%3min @@ -2311,12 +2311,12 @@ Veuillez d'abord le quitter. est mal formée. - + Range Start IP IP de début dans la rangée - + Start IP: IP de début : @@ -2331,22 +2331,22 @@ Veuillez d'abord le quitter. Cette IP est incorrecte. - + Range End IP IP de fin dans la rangée - + End IP: IP de fin : - + IP Range Comment Commentaire de la rangée - + Comment: Commentaire : @@ -2357,48 +2357,48 @@ Veuillez d'abord le quitter. à - + Choose your favourite preview program Sélectionner votre logiciel de prévisualisation préféré - + Invalid IP IP Incorrecte - + This IP is invalid. Cette adresse IP est incorrecte. - + Options were saved successfully. Préférences sauvegardées avec succès. - + Choose scan directory Choisir le dossier à surveiller - + Choose an ipfilter.dat file Choisir un fichier ipfilter.dat - + Choose a save directory Choisir un répertoire de sauvegarde - + I/O Error Input/Output Error Erreur E/S - + Couldn't open %1 in read mode. Impossible d'ouvrir %1 en lecture. diff --git a/src/lang/qbittorrent_it.ts b/src/lang/qbittorrent_it.ts index 29d1c1861..c50f7e2be 100644 --- a/src/lang/qbittorrent_it.ts +++ b/src/lang/qbittorrent_it.ts @@ -484,12 +484,12 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files Apri file torrent - + This file is either corrupted or this isn't a torrent. Questo file è corrotto o non è un torrent @@ -499,17 +499,17 @@ Copyright © 2006 by Christophe Dumez<br> Sei sicuro di voler cancellare tutti i file nella lista di download? - + &Yes &Si - + &No &No - + Are you sure you want to delete the selected item(s) in download list? Sei sicuro di voler cancellare gli elementi selezionati dalla lista dei download? @@ -524,12 +524,12 @@ Copyright © 2006 by Christophe Dumez<br> Controllo in corso... - + Connecting... Connessione in corso... - + Downloading... Download in corso... @@ -564,7 +564,7 @@ Copyright © 2006 by Christophe Dumez<br> Impossibile creare la directory: - + Torrent Files Files torrent @@ -618,7 +618,7 @@ Copyright © 2006 by Christophe Dumez<br> qBittorrent - + Are you sure? -- qBittorrent Sei sicuro? -- qBittorrent @@ -648,7 +648,7 @@ Copyright © 2006 by Christophe Dumez<br> ha finito il dowload. - + Couldn't listen on any of the given ports. Impossibile mettersi in ascolto sulle porte scelte. @@ -658,12 +658,12 @@ Copyright © 2006 by Christophe Dumez<br> Nessuno - + Empty search pattern Pattern di ricerca vuoto - + Please type a search pattern first Per favore inserire prima un patter di ricerca @@ -673,12 +673,12 @@ Copyright © 2006 by Christophe Dumez<br> Nessun motore di ricerca selezionato - + You must select at least one search engine. Devi scegliere almeno un motore di ricerca. - + Searching... Ricerca... @@ -703,27 +703,27 @@ Copyright © 2006 by Christophe Dumez<br> Ricerca completata - + An error occured during search... Un errore si è presentato durante la ricerca... - + Search aborted Ricerca annullata - + Search returned no results La ricerca non ha prodotto risultati - + Search plugin update -- qBittorrent Aggiornamento del plugin di ricerca -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -733,17 +733,17 @@ Changelog: Changelog: - + Sorry, update server is temporarily unavailable. Spiacenti, il server principale è momentaneamente irraggiungibile. - + Your search plugin is already up to date. Il plugin di Ricerca è già aggiornato. - + Results Risultati @@ -773,7 +773,7 @@ Changelog: Velocità upload - + Status Status @@ -793,7 +793,7 @@ Changelog: Leechers - + Search engine Motore di ricerca @@ -804,17 +804,17 @@ Changelog: In stallo - + Paused In pausa - + Preview process already running Processo di anteprima già in esecuzione - + There is already another preview process running. Please close the other one first. C'è già un altro processo di anteprima avviato. Per favore chiuderlo. @@ -844,7 +844,7 @@ Example: Downloading www.example.com/test.torrent Attendere prego... - + Transfers Trasferimenti @@ -855,7 +855,7 @@ Example: Downloading www.example.com/test.torrent Downloading - + Download finished Download finito @@ -866,17 +866,17 @@ Example: Downloading www.example.com/test.torrent ha finito il download. - + Search Engine Motore di Ricerca - + Are you sure you want to quit qBittorrent? Sicuro di voler uscire da qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Sei sicuro di voler rimuovere i selezionati Downloads e i relativi files incompleti? @@ -886,264 +886,264 @@ Example: Downloading www.example.com/test.torrent Errore I/O - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Status di connessione: - + Offline Non connesso - + No peers found... Nessun peer... - + Name i.e: file name Nome - + Size i.e: file size Dimensione - + Progress i.e: % downloaded Progresso - + DL Speed i.e: Download speed Velocità DL - + UP Speed i.e: Upload speed Velocità UP - + Seeds/Leechs i.e: full/partial sources Seeds/Leechs - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 avviato. - + qBittorrent qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Velocità DL: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Velocità UP: %1 KiB/s - + Finished i.e: Torrent has finished downloading Completato - + Checking... i.e: Checking already downloaded parts... Controllo in corso... - + Stalled i.e: State of a torrent whose download speed is 0kb/s In Stallo - + Are you sure you want to quit? Sei sicuro di voler uscire? - + '%1' was removed. 'xxx.avi' was removed. '%1' è stato rimosso - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' aggiunto alla lista downloads. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' ripreso. (fast resume) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' è già nella lista downloads - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Impossibile decifrare il file torrent: '%1' - + None i.e: No error message Nessun - + Listening on port: %1 e.g: Listening on port: 1666 In ascolto sulla porta: %1 - + All downloads were paused. Tutti i downloads sono stati fermati. - + '%1' paused. xxx.avi paused. '%1' fermato. - + Connecting... i.e: Connecting to the tracker... Connessione in corso... - + All downloads were resumed. Tutti i downloads sono stati ripresi. - + '%1' resumed. e.g: xxx.avi resumed. '%1' ripreso. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 scaricato. - + I/O Error i.e: Input/Output Error Errore I/O - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused C'è stato un errore di scrittura o di lettura con %1. Probabilmente il disco rigido è pieno, il download è stato fermato - + Connection Status: Status connessione: - + Online Online - + Firewalled? i.e: Behind a firewall/router? Firewalled? - + No incoming connections... Nessuna connession in entrata... - + No search engine selected Non hai selezionato nessun motore di ricerca - + Search plugin update Aggiornato il plugin di ricerca - + Search has finished La ricerca è terminata - + Results i.e: Search results Risultati - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Download di '%1' in corso... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. C'è stato un errore (disco pieno?), '%1' fermato. @@ -1590,42 +1590,42 @@ Example: Downloading www.example.com/test.torrent createtorrent - + Select destination torrent file Scegliere la destinazione del file torrent - + Torrent Files Files torrent - + Select input directory or file File o directory da aggiungere - + No destination path set Nessun percorso di salvataggio definito - + Please type a destination path first Per favore inserire un percorso di destinazione - + No input path set Nessun percorso da aggiungere specificata - + Please type an input path first Per favore inserire un percorso da aggiungere - + Input path does not exist Il percorso da aggiungere non esiste @@ -1635,17 +1635,17 @@ Example: Downloading www.example.com/test.torrent Per favore inserire un percorso da aggiungere corretto - + Torrent creation Creazione di un torrent - + Torrent was created successfully: Il torrent è stato creato correttamente: - + Please type a valid input path first Per favore inserire un percorso da aggiungere corretto @@ -1681,31 +1681,31 @@ Example: Downloading www.example.com/test.torrent misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -1723,7 +1723,7 @@ Example: Downloading www.example.com/test.torrent gg - + Unknown Sconosciuto @@ -1740,31 +1740,31 @@ Example: Downloading www.example.com/test.torrent h - + Unknown Unknown (size) Sconosciuta - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + %1h%2m e.g: 3hours 5minutes %1h%2m - + %1d%2h%3m e.g: 2days 10hours 2minutes %1d%2h%3m @@ -1823,12 +1823,12 @@ Example: Downloading www.example.com/test.torrent è malformata. - + Range Start IP Inizio range IP - + Start IP: IP iniziale: @@ -1843,22 +1843,22 @@ Example: Downloading www.example.com/test.torrent Questo IP non è corretto - + Range End IP Fine range IP: - + End IP: IP finale: - + IP Range Comment Commento range IP - + Comment: Commento: @@ -1869,48 +1869,48 @@ Example: Downloading www.example.com/test.torrent a - + Choose your favourite preview program Scegliere il programma di anteprima preferito - + Invalid IP IP invalido - + This IP is invalid. Questo IP è invalido. - + Options were saved successfully. Le Opzioni sono state salvate. - + Choose scan directory Scegli una directiory - + Choose an ipfilter.dat file Scegli un file ipfilter.dat - + Choose a save directory Scegli una directory di salvataggio - + I/O Error Input/Output Error Errore I/O - + Couldn't open %1 in read mode. Impossibile aprire %1 in lettura. diff --git a/src/lang/qbittorrent_ko.ts b/src/lang/qbittorrent_ko.ts index 62711e7b1..076308a64 100644 --- a/src/lang/qbittorrent_ko.ts +++ b/src/lang/qbittorrent_ko.ts @@ -573,12 +573,12 @@ list: 업로딩 속도: - + Open Torrent Files 토런트 파일 열기 - + Torrent Files 토런트 파일 @@ -643,12 +643,12 @@ list? 파일을 지우고 싶으세요? - + &Yes &예 - + &No &아니요 @@ -724,12 +724,12 @@ download list? 확인중... - + Connecting... 연결중... - + Downloading... 다운로딩 중... @@ -752,7 +752,7 @@ download list? - + This file is either corrupted or this isn't a torrent. 이 파일은 오류가 있거나 토런트 파일이 아닙니다. @@ -762,7 +762,7 @@ download list? 다운로드 목록에 있는 모든 파일을 지우고 싶으세요? - + Are you sure you want to delete the selected item(s) in download list? 다운로딩 목록에서 선택하신 모든 아이템을 삭제하시겠습니까? @@ -777,12 +777,12 @@ download list? 개발자: 크리스토프 두메스 :: Copyright (c) 2006 - + qBittorrent 큐비토런트 - + Are you sure? -- qBittorrent 재확인해주십시요? -- 큐비토런트 @@ -818,7 +818,7 @@ download list? 가 완료되었습니다. - + Couldn't listen on any of the given ports. 설정하신 포트에 연결할수 없습니다. @@ -828,12 +828,12 @@ download list? 없음 - + Empty search pattern 빈 검색 양식 - + Please type a search pattern first 검색 양식을 작성해주십시오 @@ -843,12 +843,12 @@ download list? 검색엔진이 선택되지 않았음 - + You must select at least one search engine. 적어도 하나 이상의 검색 엔진을 선택해야 합니다. - + Searching... 검색중... @@ -938,17 +938,17 @@ download list? 검색 완료 - + An error occured during search... 검색 중 오류 발생... - + Search aborted 검색이 중단됨 - + Search returned no results 검색 결과가 없음 @@ -958,12 +958,12 @@ download list? 검색 종료 - + Search plugin update -- qBittorrent 검색 플로그인 업데이트 -- 큐비토런트 - + Search plugin can be updated, do you want to update it? Changelog: @@ -974,17 +974,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. 죄송합니다. 현재 임시적으로 업데이트 서버가 접속이 불가능합니다. - + Your search plugin is already up to date. 현재 최신 검색 엔진 플로그인을 사용중에 있습니다. - + Results 결과 @@ -1014,7 +1014,7 @@ Changelog: 업로드 속도 - + Status 상태 @@ -1034,7 +1034,7 @@ Changelog: 부분 공유 - + Search engine 검색 엔진 @@ -1045,17 +1045,17 @@ Changelog: 대기중 - + Paused 정지됨 - + Preview process already running 미리보기가 진행중입니다 - + There is already another preview process running. Please close the other one first. 미리보기가 진행중입니다. @@ -1085,22 +1085,22 @@ Please close the other one first. 기다려주십시오... - + Transfers 전송 - + Are you sure you want to quit qBittorrent? 정말로 큐비토런트를 종료하시겠습니까? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? 정말로 지금 선택하신 파일들을 다운로드 목록과 하드 드라이브에서 삭제하시겠습니까? - + Download finished 다운로드 완료 @@ -1111,210 +1111,210 @@ Please close the other one first. 가 완료되었습니다. - + Search Engine 검색 엔진 - + qBittorrent %1 e.g: qBittorrent v0.x 큐비토런트 %1 - + Connection status: 연결 상태: - + Offline 오프라인 - + No peers found... 피어가 없습니다... - + Name i.e: file name 파일 이름 - + Size i.e: file size 크기 - + Progress i.e: % downloaded 진행상황 - + DL Speed i.e: Download speed 다운로드 속도 - + UP Speed i.e: Upload speed 업로드 속도 - + Seeds/Leechs i.e: full/partial sources 완전체 공유/부분 공유 - + ETA i.e: Estimated Time of Arrival / Time left 남은시간 - + Seeders i.e: Number of full sources 완전체 공유자 - + Leechers i.e: Number of partial sources 부분 공유 - + qBittorrent %1 started. e.g: qBittorrent v0.x started. 큐비토런트 %1가 시작되었습니다. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s 다운로딩 속도: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s 업로딩 속도: %1 KiB/s - + Finished i.e: Torrent has finished downloading 완료되었습니다 - + Checking... i.e: Checking already downloaded parts... 확인중... - + Stalled i.e: State of a torrent whose download speed is 0kb/s 대기중 - + Are you sure you want to quit? 정말로 종료하시겠습니까? - + '%1' was removed. 'xxx.avi' was removed. '%1' 가 삭제되었습니다. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1'가 다운로드 목록에 추가되었습니다. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1'가 다시 시작되었습니다. (빠른 재개) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1'는/은 이미 다운로드 목록에 포함되어 있습니다. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' 다음 파일을 디코드할수 없습니다: '%1' - + None i.e: No error message 없음 - + Listening on port: %1 e.g: Listening on port: 1666 이미 연결 된 포트: %1 - + All downloads were paused. 모든 다운로드가 멈추었습니다. - + '%1' paused. xxx.avi paused. '%1'가 정지 되었습니다. - + Connecting... i.e: Connecting to the tracker... 연결중... - + All downloads were resumed. 모든 다운로드가 다시 시작되었습니다. - + '%1' resumed. e.g: xxx.avi resumed. '%1' 가 다운로드를 다시 시작되었습니다. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1가 다운로드를 완료하였습니다. - + I/O Error i.e: Input/Output Error I/O 에러 - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused %1을 사용하려고 하던 중 오류가 발생했습니다. 디스크 용량이 꽉찼고 다운로드가 중지되었습니다 @@ -1326,55 +1326,55 @@ Please close the other one first. 오류 발생 (디스크가 꽉찼습니까?), '%1'가 정지 되었습니다. - + Connection Status: 연결 상태: - + Online 온라인 - + Firewalled? i.e: Behind a firewall/router? 방화벽이 설치되어있습니까? - + No incoming connections... 받는 연결이 없습니다... - + No search engine selected 검색엔진이 선택되지 않았음 - + Search plugin update 검색 엔진 플러그인 업데이트 - + Search has finished 검색 완료 - + Results i.e: Search results 결과 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1'을 다운 중입니다, 잠시 기다려 주세요... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. 오류 발생 (디스크가 꽉찼습니까?), '%1'가 정지 되었습니다. @@ -1949,42 +1949,42 @@ Please close the other one first. createtorrent - + Select destination torrent file 토렌트 파일을 저장할 위치 지정 - + Torrent Files 토런트 파일 - + Select input directory or file 변환할 파일 위치 지정 - + No destination path set 저장 경로가 없음 - + Please type a destination path first 저장 경로를 설정해 주십시오 - + No input path set 변환할 파일 경로가 설정되지 않았습니다 - + Please type an input path first 파일 경로를 설정해 주십시오 - + Input path does not exist 변환할 파일 경로가 존재하지 않습니다 @@ -1994,17 +1994,17 @@ Please close the other one first. 변환할 파일 경로를 재설정해 주십시오 - + Torrent creation 토렌트 생성 - + Torrent was created successfully: 토렌트가 성공적으로 생성되었습니다: - + Please type a valid input path first 먼저 변환 될 파일의 경로를 설정해 주십시오 @@ -2040,31 +2040,31 @@ Please close the other one first. misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) @@ -2088,7 +2088,7 @@ Please close the other one first. - + Unknown 알수 없음 @@ -2105,31 +2105,31 @@ Please close the other one first. - + Unknown Unknown (size) 알수 없음 - + < 1m < 1 minute < 1분 - + %1m e.g: 10minutes %1분 - + %1h%2m e.g: 3hours 5minutes %1시간%2분 - + %1d%2h%3m e.g: 2days 10hours 2minutes %1일%2시간%3분 @@ -2188,12 +2188,12 @@ Please close the other one first. 이 잘못되었습니다. - + Range Start IP 시작하는 IP의 범위 - + Start IP: 시작 IP: @@ -2208,22 +2208,22 @@ Please close the other one first. 잘못된 IP입니다. - + Range End IP 끝나는 IP의 범위 - + End IP: 끝 IP: - + IP Range Comment IP 범위 설명 - + Comment: 설명: @@ -2234,48 +2234,48 @@ Please close the other one first. ~ - + Choose your favourite preview program 미리보기를 할 프로그램을 선택해 주십시오 - + Invalid IP 유효하지 않은 IP - + This IP is invalid. 유효하지 않은 IP 입니다. - + Options were saved successfully. 환경설정이 성공적으로 저장되었습니다. - + Choose scan directory 스켄할 곳을 선택해주세요 - + Choose an ipfilter.dat file ipfilter.dat의 경로를 선택해주세요 - + Choose a save directory 파일을 저장할 경로를 선택해주세요 - + I/O Error Input/Output Error I/O 에러 - + Couldn't open %1 in read mode. %1을 읽기전용 모드로 열수 없습니다. diff --git a/src/lang/qbittorrent_nb.ts b/src/lang/qbittorrent_nb.ts index 8a531af8c..4c345f45f 100644 --- a/src/lang/qbittorrent_nb.ts +++ b/src/lang/qbittorrent_nb.ts @@ -473,12 +473,12 @@ Copyright © 2006 av Christophe Dumez<br> GUI - + Open Torrent Files Åpne torrentfiler - + This file is either corrupted or this isn't a torrent. Denne filen er enten ødelagt, eller det er ikke en torrent. @@ -488,17 +488,17 @@ Copyright © 2006 av Christophe Dumez<br> Ønsker du å slette alle filene in nedlastingslisten? - + &Yes &Ja - + &No &Nei - + Are you sure you want to delete the selected item(s) in download list? Ønsker du å slette valgt(e) element(er) i nedlastingslisten? @@ -513,12 +513,12 @@ Copyright © 2006 av Christophe Dumez<br> Kontrollerer... - + Connecting... Kobler til... - + Downloading... Laster ned... @@ -553,7 +553,7 @@ Copyright © 2006 av Christophe Dumez<br> Klarte ikke å opprette mappen: - + Torrent Files Torrentfiler @@ -607,7 +607,7 @@ Copyright © 2006 av Christophe Dumez<br> qBittorrent - + Are you sure? -- qBittorrent Er du sikker? -- qBittorrent @@ -637,7 +637,7 @@ Copyright © 2006 av Christophe Dumez<br> er ferdig lastet ned. - + Couldn't listen on any of the given ports. Klarte ikke å lytte på noen av de oppgitte portene. @@ -647,12 +647,12 @@ Copyright © 2006 av Christophe Dumez<br> Ingen - + Empty search pattern Ingen søketekst - + Please type a search pattern first Skriv en tekst å søke etter først @@ -662,12 +662,12 @@ Copyright © 2006 av Christophe Dumez<br> Ingen søkemotor valgt - + You must select at least one search engine. Du må velge minst en søkemotor. - + Searching... Søker... @@ -692,27 +692,27 @@ Copyright © 2006 av Christophe Dumez<br> Søket er ferdig - + An error occured during search... Det oppstod en feil under søket... - + Search aborted Søket er avbrutt - + Search returned no results Søket ga ingen resultater - + Search plugin update -- qBittorrent Oppdatering av søkeprogramtillegg -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -722,17 +722,17 @@ Changelog: Endringer: - + Sorry, update server is temporarily unavailable. Oppdateringstjeneren er midlertidig utilgjengelig. - + Your search plugin is already up to date. Ditt søkeprogramtillegg er allerede oppdatert. - + Results Resultater @@ -762,7 +762,7 @@ Endringer: Opplastingshastighet - + Status Status @@ -782,7 +782,7 @@ Endringer: Nedlastere - + Search engine Søkemotor @@ -793,17 +793,17 @@ Endringer: Laster ikke ned - + Paused Pauset - + Preview process already running Forhåndsvisningen kjører allerede - + There is already another preview process running. Please close the other one first. En annen forhåndsvisning kjører alt. @@ -833,22 +833,22 @@ Vennligst avslutt denne først. Vent litt... - + Transfers Overføringer - + Are you sure you want to quit qBittorrent? Ønsker du å avslutte qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Ønsker du å slette valgte element(er) i nedlastningslisten, og fra lagringsenheten? - + Download finished Nedlastingen er fullført @@ -859,7 +859,7 @@ Vennligst avslutt denne først. er ferdig lastet ned. - + Search Engine Søkemotor @@ -869,210 +869,210 @@ Vennligst avslutt denne først. Lese/Skrive feil - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Tilkoblingsstatus: - + Offline Frakoblet - + No peers found... Ingen tjenere funnet... - + Name i.e: file name Navn - + Size i.e: file size Størrelse - + Progress i.e: % downloaded Fremgang - + DL Speed i.e: Download speed Nedlastingshastighet - + UP Speed i.e: Upload speed Opplastingshastighet - + Seeds/Leechs i.e: full/partial sources Delere/Nedlastere - + ETA i.e: Estimated Time of Arrival / Time left Gjenværende tid - + Seeders i.e: Number of full sources Delere - + Leechers i.e: Number of partial sources Nedlastere - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 er startet. - + qBittorrent qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Nedlastingshastighet: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Opplastingshastighet: %1 KiB/s - + Finished i.e: Torrent has finished downloading Ferdig - + Checking... i.e: Checking already downloaded parts... Kontrollerer... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Laster ikke ned - + Are you sure you want to quit? Ønsker du å avslutte qBittorrent? - + '%1' was removed. 'xxx.avi' was removed. '%1' ble fjernet. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' ble lagt til i nedlastingslisten. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' ble gjenopptatt (hurtig gjenopptaging) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' finnes allerede i nedlastingslisten. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Klarte ikke å dekode torrentfilen: '%1' - + None i.e: No error message Ingen - + Listening on port: %1 e.g: Listening on port: 1666 Lytter på port: %1 - + All downloads were paused. Alle nedlastinger ble pauset. - + '%1' paused. xxx.avi paused. '%1' pauset. - + Connecting... i.e: Connecting to the tracker... Kobler til... - + All downloads were resumed. Alle nedlastinger ble gjenopptatt. - + '%1' resumed. e.g: xxx.avi resumed. '%1' gjenopptatt. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 er ferdig nedlastet. - + I/O Error i.e: Input/Output Error Lese/Skrive feil - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Det oppsto en feil ved lesing eller skriving til %1. Disken er mest sannsynelig full, nedlastingen har blitt pauset @@ -1084,55 +1084,55 @@ Vennligst avslutt denne først. Det har oppstått en feil (full disk?), '%1' er pauset. - + Connection Status: Tilkoblingsstatus: - + Online Tilkoblet - + Firewalled? i.e: Behind a firewall/router? Beskyttet av en brannmur? - + No incoming connections... Ingen innkommende tilkoblinger... - + No search engine selected Ingen søkemotor valgt - + Search plugin update Oppdatering av søkeprogramtillegget - + Search has finished Søket er ferdig - + Results i.e: Search results Resultater - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Laster ned '%1'... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Det har oppstått en feil (full disk?), '%1' er pauset. @@ -1584,42 +1584,42 @@ Vennligst avslutt denne først. createtorrent - + Select destination torrent file Velg torrent-målfil - + Torrent Files Torrentfiler - + Select input directory or file Velg inndata eller mappe - + No destination path set Ingen målsti er angitt - + Please type a destination path first Velg en målsti først - + No input path set Ingen filsti for inndata er valgt - + Please type an input path first Velg en filsti for inndata først - + Input path does not exist Filstien til inndataene eksisterer ikke @@ -1629,17 +1629,17 @@ Vennligst avslutt denne først. Vennligst skriv en gyldig filsti til inndataene først - + Torrent creation Torrentfilen blir opprettet - + Torrent was created successfully: Vellykket opprettelse av torrentfil: - + Please type a valid input path first Velg en gyldig filsti for inndata først @@ -1675,31 +1675,31 @@ Vennligst avslutt denne først. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -1717,7 +1717,7 @@ Vennligst avslutt denne først. timer - + Unknown ukjent @@ -1734,31 +1734,31 @@ Vennligst avslutt denne først. dager - + Unknown Unknown (size) Ukjent - + < 1m < 1 minute < 1 min - + %1m e.g: 10minutes %1min - + %1h%2m e.g: 3hours 5minutes %1time(r) %2min - + %1d%2h%3m e.g: 2days 10hours 2minutes %1dag(er) %2time(r) %3min @@ -1817,12 +1817,12 @@ Vennligst avslutt denne først. er ugyldig. - + Range Start IP Områdets start IP - + Start IP: Start IP: @@ -1837,22 +1837,22 @@ Vennligst avslutt denne først. Denne IPen er ugyldig. - + Range End IP Områdets slutt IP - + End IP: Slutt IP: - + IP Range Comment IP område kommentarer - + Comment: Kommentar: @@ -1863,48 +1863,48 @@ Vennligst avslutt denne først. til - + Choose your favourite preview program Velg program for forhåndsvisning - + Invalid IP Ugyldig IP - + This IP is invalid. Denne IP adressen er ugyldig. - + Options were saved successfully. Innstillingene ble lagret. - + Choose scan directory Velg mappe for gjennomsøking - + Choose an ipfilter.dat file Velg en ipfilter.dat fil - + Choose a save directory Velg mappe for lagring - + I/O Error Input/Output Error Lese/Skrive feil - + Couldn't open %1 in read mode. Klarte ikke å åpne %1 i lesemodus. diff --git a/src/lang/qbittorrent_nl.ts b/src/lang/qbittorrent_nl.ts index 03360aa97..7f7169657 100644 --- a/src/lang/qbittorrent_nl.ts +++ b/src/lang/qbittorrent_nl.ts @@ -642,7 +642,7 @@ Copyright 2006 door Christophe Dumez<br> gestart. - + qBittorrent qBittorrent @@ -662,12 +662,12 @@ Copyright 2006 door Christophe Dumez<br> UP snelheid: - + Open Torrent Files Open Torrent bestanden - + Torrent Files Torrent bestanden @@ -708,12 +708,12 @@ Copyright 2006 door Christophe Dumez<br> Torrentfile kan niet gedecodeerd worden: - + This file is either corrupted or this isn't a torrent. Dit bestand is corrupt of is geen torrent. - + Are you sure? -- qBittorrent Weet u het zeker? -- qBittorrent @@ -723,12 +723,12 @@ Copyright 2006 door Christophe Dumez<br> Weet u zeker dat u alle bestanden uit de downloadlijst wilt verwijderen? - + &Yes &Ja - + &No &Nee @@ -738,7 +738,7 @@ Copyright 2006 door Christophe Dumez<br> Downloadlijst leeg gemaakt. - + Are you sure you want to delete the selected item(s) in download list? Weet u zeker dat u de geselecteerde bestanden uit de downloadlijst wilt verwijderen? @@ -806,7 +806,7 @@ Copyright 2006 door Christophe Dumez<br> is klaar met downloaden. - + Couldn't listen on any of the given ports. Kan niet luisteren op de aangegeven poorten. @@ -832,12 +832,12 @@ Copyright 2006 door Christophe Dumez<br> Controleren... - + Connecting... Verbinding maken... - + Downloading... Downloaden... @@ -865,12 +865,12 @@ Copyright 2006 door Christophe Dumez<br> Geen - + Empty search pattern Leeg zoekpatroon - + Please type a search pattern first Type alstublieft eerst een zoekpatroon @@ -880,12 +880,12 @@ Copyright 2006 door Christophe Dumez<br> Geen zoekmachine gekozen - + You must select at least one search engine. U moet tenminste een zoekmachine kiezen. - + Searching... Zoeken... @@ -935,17 +935,17 @@ Copyright 2006 door Christophe Dumez<br> Zoeken is klaar - + An error occured during search... Een fout trad op tijdens zoeken... - + Search aborted Zoeken afgebroken - + Search returned no results Zoeken gaf geen resultaten @@ -955,12 +955,12 @@ Copyright 2006 door Christophe Dumez<br> Zoeken is Klaar - + Search plugin update -- qBittorrent Zoeken plugin update -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -971,17 +971,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Sorry, update server is tijdelijk niet bereikbaar. - + Your search plugin is already up to date. Uw zoeken plugin is al bijgewerkt. - + Results Resultaten @@ -1011,7 +1011,7 @@ Changelog: UP snelheid - + Status Status @@ -1031,7 +1031,7 @@ Changelog: Downloaders - + Search engine Zoekmachine @@ -1042,17 +1042,17 @@ Changelog: Stilstand - + Paused Gepauzeerd - + Preview process already running Vooruitkijk proccess is al bezig - + There is already another preview process running. Please close the other one first. Er is al een ander vooruitkijk proccess actief. @@ -1083,12 +1083,12 @@ Stop het eerste proccess eerst. Wachten... - + Transfers Overdrachten - + Download finished Download afgerond @@ -1099,274 +1099,274 @@ Stop het eerste proccess eerst. is klaar met downloaden. - + Search Engine Zoekmachine - + Are you sure you want to quit qBittorrent? Weet u zeker dat u qBittorrent af wil sluiten? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Weet u zeker dat u de geselecteerde onderdelen in de download lijst en van harde schijf wil verwijderen? - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Verbindingsstatus: - + Offline Offline - + No peers found... Geen peers gevonden... - + Name i.e: file name Naam - + Size i.e: file size Grootte - + Progress i.e: % downloaded Voortgang - + DL Speed i.e: Download speed DL snelheid - + UP Speed i.e: Upload speed UP snelheid - + Seeds/Leechs i.e: full/partial sources Up-/Downloaders - + ETA i.e: Estimated Time of Arrival / Time left Geschatte resterende tijd - + Seeders i.e: Number of full sources Uploaders - + Leechers i.e: Number of partial sources Downloaders - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 gestart. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s DL snelheid: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s UP snelheid: %1 KiB/s - + Finished i.e: Torrent has finished downloading Voltooid - + Checking... i.e: Checking already downloaded parts... Controleren... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Stilstaand - + Are you sure you want to quit? Weet u zeker dat u wilt afsluiten? - + '%1' was removed. 'xxx.avi' was removed. '%1' is verwijderd. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' toegevoegd aan de downloadlijst. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' hervat. (snelle hervatting) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' staat al in de downloadlijst. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Torrentbestand kan niet worden gedecodeerd: '%1' - + None i.e: No error message Geen - + Listening on port: %1 e.g: Listening on port: 1666 Aan het luisteren op poort: %1 - + All downloads were paused. Alle downloads gepauzeerd. - + '%1' paused. xxx.avi paused. '%1' gepauzeerd. - + Connecting... i.e: Connecting to the tracker... Verbinding maken... - + All downloads were resumed. Alle downloads hervat. - + '%1' resumed. e.g: xxx.avi resumed. '%1' hervat. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 is klaar met downloaden. - + I/O Error i.e: Input/Output Error I/O Fout - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Een fout is opgetreden tijdens het lezen of schrijven van %1. De schijf is waarschijnlijk vol, de download is gepauzeerd - + Connection Status: Verbindingsstatus: - + Online Online - + Firewalled? i.e: Behind a firewall/router? Geblokkeerd? - + No incoming connections... Geen inkomende verbindingen... - + No search engine selected Geen zoekmachine gekozen - + Search plugin update Zoekplugin update - + Search has finished Zoeken is klaar - + Results i.e: Search results Resultaten - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Bezig met downloaden van '%1', even geduld alstublieft... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Er is een fout opgetreden (schijf vol?), '%1' gepauzeerd. @@ -1906,42 +1906,42 @@ Stop het eerste proccess eerst. createtorrent - + Select destination torrent file Kies torrent doelbestand - + Torrent Files Torrent bestanden - + Select input directory or file Kies bron map of bestand - + No destination path set Geen doel pad gekozen - + Please type a destination path first Geef alstublieft eerst een doel pad - + No input path set Geen bron pad gekozen - + Please type an input path first Geef alstublieft eerst een doel pad - + Input path does not exist Bron pad bestaat niet @@ -1951,17 +1951,17 @@ Stop het eerste proccess eerst. Geef alstublieft eerst een geldig bron pad - + Torrent creation Torrent maken - + Torrent was created successfully: Torrent was succesvol gemaakt: - + Please type a valid input path first Geef alstublieft eerst een geldig invoer pad @@ -1997,31 +1997,31 @@ Stop het eerste proccess eerst. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -2045,7 +2045,7 @@ Stop het eerste proccess eerst. d - + Unknown Onbekend @@ -2062,31 +2062,31 @@ Stop het eerste proccess eerst. d - + Unknown Unknown (size) Onbekend - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + %1h%2m e.g: 3hours 5minutes %1u%2m - + %1d%2h%3m e.g: 2days 10hours 2minutes %1d%2u%3m @@ -2145,12 +2145,12 @@ Stop het eerste proccess eerst. is onjuist geformuleerd. - + Range Start IP Reeks Begin IP - + Start IP: Begin IP: @@ -2165,22 +2165,22 @@ Stop het eerste proccess eerst. Dit IP is incorrect. - + Range End IP Reeks Einde IP - + End IP: Einde IP: - + IP Range Comment IP Reeks Opmerkingen - + Comment: Opmerkingen: @@ -2191,48 +2191,48 @@ Stop het eerste proccess eerst. naar - + Choose your favourite preview program Kies uw favoriete vooruitblik programma - + Invalid IP Ongeldig IP - + This IP is invalid. Dit IP is ongeldig. - + Options were saved successfully. Opties zijn succesvol opgeslagen. - + Choose scan directory Kies scandirectory - + Choose an ipfilter.dat file Kies een ipfilter.dat bestand - + Choose a save directory Kies een opslagmap - + I/O Error Input/Output Error I/O Fout - + Couldn't open %1 in read mode. Kon %1 niet openen om te lezen. diff --git a/src/lang/qbittorrent_pl.ts b/src/lang/qbittorrent_pl.ts index 1dbe80973..71ed8b5ca 100644 --- a/src/lang/qbittorrent_pl.ts +++ b/src/lang/qbittorrent_pl.ts @@ -635,12 +635,12 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Prędkość UP: - + Open Torrent Files Otwórz pliki Torrent - + Torrent Files Pliki Torrent @@ -681,7 +681,7 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Problem z odkodowaniem pliku torrent: - + This file is either corrupted or this isn't a torrent. Plik jest uszkodzony lub nie jest plikiem torrent. @@ -691,12 +691,12 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Czy chcesz usunać wszystkie pliki z listy pobierania? - + &Yes &Tak - + &No &Nie @@ -706,7 +706,7 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> List pobierania wyczyszczona. - + Are you sure you want to delete the selected item(s) in download list? Czy chcesz usunać wybrane elementy z listy pobierania? @@ -764,12 +764,12 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Sprawdzanie.... - + Connecting... Łączenie... - + Downloading... Ściąganie... @@ -797,12 +797,12 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Jesteś pewny? -- qBittorrent @@ -843,7 +843,7 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> zakończył sciąganie. - + Couldn't listen on any of the given ports. Nie można nasłuchiwać na zaðnym z podanych portów. @@ -853,12 +853,12 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Brak - + Empty search pattern Pusty wzorzec wyszukiwania - + Please type a search pattern first Proszę podać wzorzec wyszukiwania @@ -868,12 +868,12 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Nie wybrano wyszukiwarki - + You must select at least one search engine. Musisz wybrać przynajmniej jedną wyszukiwarkę. - + Searching... Wyszukiwanie... @@ -968,17 +968,17 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Wyszukiwanie zakończone - + An error occured during search... Wystąpił błąd podczas wyszukiwania... - + Search aborted Wyszukiwanie przerwane - + Search returned no results Nic nie znaleziono @@ -988,12 +988,12 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br> Wyszukiwanie jest zakończone - + Search plugin update -- qBittorrent Aktualizacja wtyczki wyszukującej -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -1001,17 +1001,17 @@ Changelog: Dostępna jest nowa wersja wtyczki wyszukiwania, czy chcesz zaktualizować? Zmiany: - + Sorry, update server is temporarily unavailable. Przepraszamy, serwer aktualizacji jest tymczasowo niedostepny. - + Your search plugin is already up to date. Posiadasz najnowszą wersję wtyczki wyszukiwania. - + Results Wyniki @@ -1041,7 +1041,7 @@ Changelog: Prędkość UP - + Status Status @@ -1061,7 +1061,7 @@ Changelog: Leechers - + Search engine Wyszukiwarka @@ -1072,17 +1072,17 @@ Changelog: Zablokowany - + Paused Zatrzymany - + Preview process already running Podgląd jest już uruchomiony - + There is already another preview process running. Please close the other one first. Podgląd jest już uruchomiony. @@ -1112,22 +1112,22 @@ Zamknij najpierw okno podglądu. Proszę czekać... - + Transfers Prędkość - + Are you sure you want to quit qBittorrent? Czy na pewno chcesz zakończyć aplikację qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Czy na pewno chcesz usunać wybrany element z listy i z dysku? - + Download finished Pobieranie zakończone @@ -1138,210 +1138,210 @@ Zamknij najpierw okno podglądu. zakończył sciąganie. - + Search Engine Wyszukiwarka - + qBittorrent %1 e.g: qBittorrent v0.x qBittorent %1 - + Connection status: Status połączenia: - + Offline Niepołączony - + No peers found... Nie znaleziono perów... - + Name i.e: file name Nazwa - + Size i.e: file size Rozmiar - + Progress i.e: % downloaded Postęp - + DL Speed i.e: Download speed Prędkość DL - + UP Speed i.e: Upload speed Prędkość UP - + Seeds/Leechs i.e: full/partial sources Seeds/Leechs - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 uruchomiony. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s DL prędkość: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s UP prędkość: %1 KiB/ - + Finished i.e: Torrent has finished downloading Zakończono - + Checking... i.e: Checking already downloaded parts... Sprawdzanie.... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Zablokowany - + Are you sure you want to quit? Czy na pewno chcesz zakończyć aplikację? - + '%1' was removed. 'xxx.avi' was removed. '%1' został usunięty. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' dodany do listy pobierania. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' wzniowiony. (szybkie wznawianie) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' jest już na liście pobierania. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Problem z odczytem pliku torrent: '%1' - + None i.e: No error message Brak - + Listening on port: %1 e.g: Listening on port: 1666 Nasłuchuje na porcie: %1 - + All downloads were paused. Wszystkie zadania pobierania wstrzymane. - + '%1' paused. xxx.avi paused. '%1' wstrzymany. - + Connecting... i.e: Connecting to the tracker... Łączenie... - + All downloads were resumed. Wszystkie zadania pobierania wzniowione. - + '%1' resumed. e.g: xxx.avi resumed. '%1' wznowiony. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 został pobrany. - + I/O Error i.e: Input/Output Error Błąd We/Wy - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Wystąpił błąd podczas próby odczytu lub zapisu %1. Prawdopodobnie brak miejsca na dysku, zadania pobierania zostały wstrzymane @@ -1353,55 +1353,55 @@ Zamknij najpierw okno podglądu. Wystąpił błąd (brak miejsca?), '%1' wstrzymany. - + Connection Status: Status połączenia: - + Online Połączony - + Firewalled? i.e: Behind a firewall/router? Zablokowany? - + No incoming connections... Brak połączeń przychodzących... - + No search engine selected Nie wybrano wyszukiwarki - + Search plugin update Aktualizacja wtyczki wyszukiwania - + Search has finished Wyszukiwanie zakończone - + Results i.e: Search results Wyniki - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Pobieranie '%1', proszę czekać... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Wystąpił błąd (brak miejsca?), '%1' wstrzymany. @@ -1976,42 +1976,42 @@ Zamknij najpierw okno podglądu. createtorrent - + Select destination torrent file Wybierz plik docelowy - + Torrent Files Pliki Torrent - + Select input directory or file Wybierz katalog lub plik źródłowy - + No destination path set Katalog docelowy nie ustawiony - + Please type a destination path first Proszę podać katalog docelowy - + No input path set Katalog źródłowy nie zdefiniowany - + Please type an input path first Proszę podać katalog żródłowy - + Input path does not exist Katalog źródłowy nie istnieje @@ -2021,17 +2021,17 @@ Zamknij najpierw okno podglądu. Proszę podać poprawną ścieżkę źródłową - + Torrent creation Tworzenie torrent-a - + Torrent was created successfully: Utworzono plik torrent: - + Please type a valid input path first Prosze podać prawidłowy katalog źródłowy @@ -2067,31 +2067,31 @@ Zamknij najpierw okno podglądu. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -2115,7 +2115,7 @@ Zamknij najpierw okno podglądu. d - + Unknown Nieznany @@ -2132,31 +2132,31 @@ Zamknij najpierw okno podglądu. d - + Unknown Unknown (size) Nieznany - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes < 1m - + %1h%2m e.g: 3hours 5minutes < 1m - + %1d%2h%3m e.g: 2days 10hours 2minutes < 1m @@ -2215,12 +2215,12 @@ Zamknij najpierw okno podglądu. is malformed. - + Range Start IP Zakres początkowy IP - + Start IP: Początkowe IP: @@ -2235,22 +2235,22 @@ Zamknij najpierw okno podglądu. To jest nieprawidłowe IP. - + Range End IP Końcowy zakres IP - + End IP: Końcowe IP: - + IP Range Comment Komentarz zakresu IP - + Comment: Komentarz: @@ -2261,48 +2261,48 @@ Zamknij najpierw okno podglądu. do - + Choose your favourite preview program Wybierz program którym zawsze chcesz otwierać dany typ plików - + Invalid IP Niepoprawny adres IP - + This IP is invalid. Ten adres IP jest niepoprawny. - + Options were saved successfully. Ustawienia zapisane. - + Choose scan directory Wybierz katalog przeszukiwania - + Choose an ipfilter.dat file Wybierz plik ipfilter.dat - + Choose a save directory Wybierz katalog docelowy - + I/O Error Input/Output Error Błąd We/Wy - + Couldn't open %1 in read mode. Nie można otworzyć %1 w trybie odczytu. diff --git a/src/lang/qbittorrent_pt.ts b/src/lang/qbittorrent_pt.ts index 5e4c35c27..74a0f0d12 100644 --- a/src/lang/qbittorrent_pt.ts +++ b/src/lang/qbittorrent_pt.ts @@ -483,7 +483,7 @@ Copyright ©2007 por Christophe Dumez<br> GUI - + Open Torrent Files Abrir Arquivos Torrent @@ -493,7 +493,7 @@ Copyright ©2007 por Christophe Dumez<br> Desconhecido - + This file is either corrupted or this isn't a torrent. Este arquivo está corrompido ou não é um torrent. @@ -503,17 +503,17 @@ Copyright ©2007 por Christophe Dumez<br> Tem certeza que deseja apagar todos os arquivos na lista de downloads? - + &Yes &Sim - + &No &Não - + Are you sure you want to delete the selected item(s) in download list? Tem certeza que deseja apagar o(s) arquivo(s) selecionado(s) na lista de downloads? @@ -538,12 +538,12 @@ Copyright ©2007 por Christophe Dumez<br> Checando... - + Connecting... Conectando... - + Downloading... Baixando... @@ -583,7 +583,7 @@ Copyright ©2007 por Christophe Dumez<br> Não pode criar o diretório: - + Torrent Files Arquivos Torrent @@ -637,12 +637,12 @@ Copyright ©2007 por Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Tem certeza? -- qBittorrent @@ -672,7 +672,7 @@ Copyright ©2007 por Christophe Dumez<br> download finalizado. - + Couldn't listen on any of the given ports. Não foi possível escutar pelas portas dadas. @@ -682,12 +682,12 @@ Copyright ©2007 por Christophe Dumez<br> Nenhum - + Empty search pattern Padrão de busca vazio - + Please type a search pattern first Por favor digite um padrão de busca primeiro @@ -697,12 +697,12 @@ Copyright ©2007 por Christophe Dumez<br> Nenhum mecanismo de busca selecionado - + You must select at least one search engine. Você deve selecionar pelo menos um mecanismo de busca. - + Searching... Buscando... @@ -767,17 +767,17 @@ Copyright ©2007 por Christophe Dumez<br> Busca finalizada - + An error occured during search... Um erro ocorreu durante a busca... - + Search aborted Busca abortada - + Search returned no results A busca não retornou resultados @@ -787,12 +787,12 @@ Copyright ©2007 por Christophe Dumez<br> Busca finalizada - + Search plugin update -- qBittorrent Atualização do plugin de busca -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -802,17 +802,17 @@ Changelog: Registro de mudanças: - + Sorry, update server is temporarily unavailable. Desculpe, servidor de atualizações está temporariamente indisponível. - + Your search plugin is already up to date. Seu plugin de busca já está atualizado. - + Results Resultados @@ -842,7 +842,7 @@ Registro de mudanças: Velocidade de Upload - + Status Estado @@ -857,7 +857,7 @@ Registro de mudanças: Leechers (Pessoas que têm partes de arquivos) - + Search engine Mecanismo de busca @@ -868,17 +868,17 @@ Registro de mudanças: Parado - + Paused Pausado - + Preview process already running Processo de pré-visualização já está rodando - + There is already another preview process running. Please close the other one first. Há um outro processo de pré-visualização rodando. @@ -891,12 +891,12 @@ Por favor feche o outro primeiro. Baixando - + Transfers Transferências - + Download finished Download finalizado @@ -907,17 +907,17 @@ Por favor feche o outro primeiro. download finalizado. - + Search Engine Mecanismo de Busca - + Are you sure you want to quit qBittorrent? Você tem certeza que quer sair do qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Você tem certeza que quer deletar o(s) arquivo(s) selecionado(s) da lista de download e do seu disco rígido? @@ -927,205 +927,205 @@ Por favor feche o outro primeiro. Erro de Entrada/Saída - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Estado da conexão: - + Offline Offline - + No peers found... Peers não encontrados... - + Name i.e: file name Nome - + Size i.e: file size Tamanho - + Progress i.e: % downloaded Progresso - + DL Speed i.e: Download speed Velocidade de download - + UP Speed i.e: Upload speed Velocidade de Upload - + Seeds/Leechs i.e: full/partial sources Seeds/Leechs - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 iniciado. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Velocidade de download: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Velocidade de Upload: %1 KiB/s - + Finished i.e: Torrent has finished downloading Concluído - + Checking... i.e: Checking already downloaded parts... Checando... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Parado - + Are you sure you want to quit? Você tem certeza que quer sair? - + '%1' was removed. 'xxx.avi' was removed. '%1' foi deletado. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' adicionado a lista de download. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' continuando. (continue rápido) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' já está na lista de download. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Incapaz de decodificar arquivo torrent: '%1' - + None i.e: No error message Nenhum - + Listening on port: %1 e.g: Listening on port: 1666 Escutando a porta: %1 - + All downloads were paused. Todos os downloads pausados. - + '%1' paused. xxx.avi paused. '%1' pausado. - + Connecting... i.e: Connecting to the tracker... Conectando... - + All downloads were resumed. Todos os downloads foram resumidos. - + '%1' resumed. e.g: xxx.avi resumed. '%1' resumido. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 download finalizado. - + I/O Error i.e: Input/Output Error Erro de Entrada/Saída - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Ocorreu um erro quando tentava ler ou escrever %1. Provavelmente o seu disco está cheio, o download foi pausado @@ -1137,55 +1137,55 @@ Por favor feche o outro primeiro. Ocorreu um erro (disco cheio?), '%1' pausado. - + Connection Status: Estado da conexão: - + Online Online - + Firewalled? i.e: Behind a firewall/router? Sob firewall? - + No incoming connections... Sem conexão... - + No search engine selected Nenhum mecanismo de busca selecionado - + Search plugin update Atualização de plugin de busca - + Search has finished Busca finalizada - + Results i.e: Search results Resultados - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... baixando '%1', por favor espere... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Ocorreu um erro (disco cheio?), '%1' pausado. @@ -1839,42 +1839,42 @@ Copyright ©2007 por Christophe Dumez<br> createtorrent - + Select destination torrent file Selecione o arquivo torrent de destino - + Torrent Files Arquivos Torrent - + Select input directory or file Selecione o diretório ou arquivo de entrada - + No destination path set Nenhum caminho de destino selecionado - + Please type a destination path first Digite primeiro um caminho de destino - + No input path set Nenhum caminho de entrada selecionado - + Please type an input path first Digite primeiro um caminho de entrada - + Input path does not exist Caminho de entrada não existe @@ -1884,17 +1884,17 @@ Copyright ©2007 por Christophe Dumez<br> Digite primeiro um caminho de entrada correto - + Torrent creation Criação de torrent - + Torrent was created successfully: Torrent foi criado com sucesso: - + Please type a valid input path first Por favor insira um caminho válido primeiro @@ -1930,31 +1930,31 @@ Copyright ©2007 por Christophe Dumez<br> misc - + B bytes B - + KiB kibibytes (1024 bytes) Kib - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -1972,7 +1972,7 @@ Copyright ©2007 por Christophe Dumez<br> h - + Unknown Desconhecido @@ -1989,31 +1989,31 @@ Copyright ©2007 por Christophe Dumez<br> d - + Unknown Unknown (size) Desconhecido - + < 1m < 1 minute < 1 minuto - + %1m e.g: 10minutes %1m - + %1h%2m e.g: 3hours 5minutes %1h%2m - + %1d%2h%3m e.g: 2days 10hours 2minutes %1d%2h%3m @@ -2072,12 +2072,12 @@ Copyright ©2007 por Christophe Dumez<br> está corrompido. - + Range Start IP IP do começo da escala - + Start IP: Iniciar IP: @@ -2092,22 +2092,22 @@ Copyright ©2007 por Christophe Dumez<br> Este IP está incorreto. - + Range End IP IP do fim da escala - + End IP: Finalizar IP: - + IP Range Comment Comentário Range de IP - + Comment: Comentário: @@ -2118,48 +2118,48 @@ Copyright ©2007 por Christophe Dumez<br> a - + Choose your favourite preview program Selecione seu programa preferido para pré-visualizar - + Invalid IP IP inválido - + This IP is invalid. Este IP é inválido. - + Options were saved successfully. Opções salvas com sucesso. - + Choose scan directory Selecione diretório para varredura - + Choose an ipfilter.dat file Selecione um arquivo ipfilter.dat - + Choose a save directory Selecione um diretório de salvamento - + I/O Error Input/Output Error Erro de Entrada/Saída - + Couldn't open %1 in read mode. Não posso abrir %1 no modo de leitura. diff --git a/src/lang/qbittorrent_ro.ts b/src/lang/qbittorrent_ro.ts index 5e86dfea9..84d266d63 100644 --- a/src/lang/qbittorrent_ro.ts +++ b/src/lang/qbittorrent_ro.ts @@ -493,7 +493,7 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files Deschide Fişiere Torrent @@ -503,7 +503,7 @@ Copyright © 2006 by Christophe Dumez<br> Necunoscut - + This file is either corrupted or this isn't a torrent. Acest fişier este deteriorat sau nu este torrent. @@ -513,17 +513,17 @@ Copyright © 2006 by Christophe Dumez<br> Sunteţi siguri să ştergeţi toate fişierele din lista de download? - + &Yes &Yes - + &No &No - + Are you sure you want to delete the selected item(s) in download list? Sunteţi siguri să ştergeţi itemii selectaţi din lista download? @@ -548,12 +548,12 @@ Copyright © 2006 by Christophe Dumez<br> Verificare... - + Connecting... Conectare... - + Downloading... Downloading... @@ -593,7 +593,7 @@ Copyright © 2006 by Christophe Dumez<br> Nu pot crea directoriul: - + Torrent Files Fişiere Torrent @@ -647,12 +647,12 @@ Copyright © 2006 by Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Sunteţi siguri? -- qBittorrent @@ -682,7 +682,7 @@ Copyright © 2006 by Christophe Dumez<br> am terminat descărcarea. - + Couldn't listen on any of the given ports. Nu pot asculta pe orice port dat. @@ -692,12 +692,12 @@ Copyright © 2006 by Christophe Dumez<br> Nimic - + Empty search pattern Şablonul de căutat este vid - + Please type a search pattern first Vă rugăm să completaţi şablonul de căutare @@ -707,12 +707,12 @@ Copyright © 2006 by Christophe Dumez<br> Nu aţi selectat motorul de căutare - + You must select at least one search engine. Trebuie să selectaţi cel puţin un motor de căutare. - + Searching... Căutare... @@ -777,17 +777,17 @@ Copyright © 2006 by Christophe Dumez<br> Cautarea este terminata - + An error occured during search... Eroare în timpul căutării... - + Search aborted Cautarea abordată - + Search returned no results Cautarea nu a returnat rezultate @@ -797,12 +797,12 @@ Copyright © 2006 by Christophe Dumez<br> Cautarea terminata - + Search plugin update -- qBittorrent Cautarea plugin înoire -- qBittorent - + Search plugin can be updated, do you want to update it? Changelog: @@ -813,17 +813,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Ne cerem ertare, serverul este temporar inaccesibil. - + Your search plugin is already up to date. Plugin-ul cautat este de acum înnoit. - + Results Rezultate @@ -853,7 +853,7 @@ Changelog: Viteză UP - + Status Stare @@ -873,7 +873,7 @@ Changelog: Leecheri - + Search engine Motorul de căutare @@ -884,17 +884,17 @@ Changelog: Oprit - + Paused Pauzat - + Preview process already running Procesul de preview de acum este pornit - + There is already another preview process running. Please close the other one first. De acum alt proces de preview este pornit. @@ -924,22 +924,22 @@ Vă rugăm să-l opriţi. Vă rugăm să aşteptaţi... - + Transfers Transferuri - + Are you sure you want to quit qBittorrent? Doriti să eşiţi din qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Doriti să ştergeţi item(ii) selectaţi? - + Download finished @@ -950,7 +950,7 @@ Vă rugăm să-l opriţi. am terminat descărcarea. - + Search Engine Motor de Căutare @@ -960,259 +960,259 @@ Vă rugăm să-l opriţi. Eroare de intrare/eşire - + qBittorrent %1 e.g: qBittorrent v0.x - + Connection status: - + Offline - + No peers found... - + Name i.e: file name Nume - + Size i.e: file size Capacitate - + Progress i.e: % downloaded Progress - + DL Speed i.e: Download speed Viteză DL - + UP Speed i.e: Upload speed Viteză UP - + Seeds/Leechs i.e: full/partial sources - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Seederi - + Leechers i.e: Number of partial sources - + qBittorrent %1 started. e.g: qBittorrent v0.x started. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s - + Finished i.e: Torrent has finished downloading Finişat - + Checking... i.e: Checking already downloaded parts... Verificare... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Oprit - + Are you sure you want to quit? - + '%1' was removed. 'xxx.avi' was removed. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' - + None i.e: No error message Nimic - + Listening on port: %1 e.g: Listening on port: 1666 - + All downloads were paused. - + '%1' paused. xxx.avi paused. - + Connecting... i.e: Connecting to the tracker... Conectare... - + All downloads were resumed. - + '%1' resumed. e.g: xxx.avi resumed. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. - + I/O Error i.e: Input/Output Error Eroare de intrare/eşire - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused - + Connection Status: - + Online - + Firewalled? i.e: Behind a firewall/router? - + No incoming connections... - + No search engine selected - + Search plugin update - + Search has finished - + Results i.e: Search results Rezultate - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. @@ -1762,42 +1762,42 @@ Vă rugăm să-l opriţi. createtorrent - + Select destination torrent file Selectează fişierul de destinare - + Torrent Files Fişiere Torrent - + Select input directory or file Selectează directoriul sau fişierul de intrare - + No destination path set Nu este setată calea de destinaţie - + Please type a destination path first Vă rugăm să arătaţi calea de destinaţie - + No input path set Nu sunt selectate fişiere de intrare - + Please type an input path first Vă rugăm să arătaţi calea de intrare - + Input path does not exist Calea de intrare nu există @@ -1807,17 +1807,17 @@ Vă rugăm să-l opriţi. Vă rugăm să introduceţi corect calea de intrare - + Torrent creation Crearea torentului - + Torrent was created successfully: Torrentul a fost creat cu success: - + Please type a valid input path first Introduceţi o cale validă @@ -1853,31 +1853,31 @@ Vă rugăm să-l opriţi. misc - + B bytes B - + KiB kibibytes (1024 bytes) Kib - + MiB mebibytes (1024 kibibytes) Mib - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -1895,7 +1895,7 @@ Vă rugăm să-l opriţi. h - + Unknown Necunoscut @@ -1912,31 +1912,31 @@ Vă rugăm să-l opriţi. d - + Unknown Unknown (size) Necunoscut - + < 1m < 1 minute - + %1m e.g: 10minutes - + %1h%2m e.g: 3hours 5minutes - + %1d%2h%3m e.g: 2days 10hours 2minutes @@ -1995,12 +1995,12 @@ Vă rugăm să-l opriţi. este neformată. - + Range Start IP Domeniul de Start IP - + Start IP: IP-ul de start: @@ -2015,22 +2015,22 @@ Vă rugăm să-l opriţi. Acest IP este incorrect. - + Range End IP Domeniul de sfirşit IP - + End IP: IP-ul de sfirşit: - + IP Range Comment Comentarii la domeniul de IP - + Comment: Comentarii: @@ -2041,48 +2041,48 @@ Vă rugăm să-l opriţi. la - + Choose your favourite preview program Alegeţi programul dvs. favorit pentru preview - + Invalid IP IP greşit - + This IP is invalid. Acest IP este valid. - + Options were saved successfully. - + Choose scan directory - + Choose an ipfilter.dat file - + Choose a save directory - + I/O Error Input/Output Error Eroare de intrare/eşire - + Couldn't open %1 in read mode. diff --git a/src/lang/qbittorrent_ru.ts b/src/lang/qbittorrent_ru.ts index d9cc512e2..510a890d9 100644 --- a/src/lang/qbittorrent_ru.ts +++ b/src/lang/qbittorrent_ru.ts @@ -565,7 +565,7 @@ Copyright © 2006 by Christophe Dumez<br> начат. - + qBittorrent qBittorrent @@ -585,12 +585,12 @@ Copyright © 2006 by Christophe Dumez<br> Скорость Загр.: - + Open Torrent Files Открыть файлы Torrent - + Torrent Files Файлы Torrent @@ -631,12 +631,12 @@ Copyright © 2006 by Christophe Dumez<br> Невозможно декодировать torrent файл: - + This file is either corrupted or this isn't a torrent. Этот файл либо поврежден, либо не torrent типа. - + Are you sure? -- qBittorrent Вы уверены? -- qBittorrent @@ -646,12 +646,12 @@ Copyright © 2006 by Christophe Dumez<br> Вы уверены что хотите удалить все файлы из списка закачек? - + &Yes &Да - + &No &Нет @@ -661,7 +661,7 @@ Copyright © 2006 by Christophe Dumez<br> Список закачек очищен. - + Are you sure you want to delete the selected item(s) in download list? Вы уверены что хотите удалить выделенные пункты из списка закачек? @@ -729,7 +729,7 @@ Copyright © 2006 by Christophe Dumez<br> скачивание завершено. - + Couldn't listen on any of the given ports. Невозможно прослушать ни один из заданных портов. @@ -755,12 +755,12 @@ Copyright © 2006 by Christophe Dumez<br> Проверка... - + Connecting... Подключение... - + Downloading... Скачивание... @@ -788,12 +788,12 @@ Copyright © 2006 by Christophe Dumez<br> Нет - + Empty search pattern Закончено - + Please type a search pattern first Пожалуйста, наберите сначала шаблон поиска @@ -803,7 +803,7 @@ Copyright © 2006 by Christophe Dumez<br> Не выбрано ни одного поискового двигателя - + You must select at least one search engine. Вы должны выбрать по меньшей мере один поисковый двигатель. @@ -813,7 +813,7 @@ Copyright © 2006 by Christophe Dumez<br> Невозможно создать плагин поиска. - + Searching... Поиск... @@ -878,17 +878,17 @@ Copyright © 2006 by Christophe Dumez<br> Поиск завершен - + An error occured during search... Во время поиска произошла ошибка... - + Search aborted Поиск прерван - + Search returned no results Поиск не дал результатов @@ -898,12 +898,12 @@ Copyright © 2006 by Christophe Dumez<br> Поиск завершен - + Search plugin update -- qBittorrent Обновление поискового плагина -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -914,17 +914,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Извините, сервер обновлений временно недоступен. - + Your search plugin is already up to date. Ваш поисковый плагин не нуждается в обновлении. - + Results Результаты @@ -954,7 +954,7 @@ Changelog: Скорость загр - + Status Статус @@ -974,7 +974,7 @@ Changelog: Личеры - + Search engine Поисковои сэрвис @@ -985,17 +985,17 @@ Changelog: Заглохло - + Paused Пауза - + Preview process already running Процесс предпросмотра уже работает - + There is already another preview process running. Please close the other one first. Есть уже другой процесс предпросмотра. @@ -1025,22 +1025,22 @@ Please close the other one first. Пожалуйста подождите... - + Transfers Передачи - + Are you sure you want to quit qBittorrent? Вы действительно хотите покинуть qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Вы действительно хотите удалить выбранный(-е) элемент(ы) из списка скачек и с жесткого диска? - + Download finished Скачивание завершено @@ -1051,210 +1051,210 @@ Please close the other one first. скачивание завершено. - + Search Engine Поисковый движок - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Состояние связи: - + Offline Не в сети - + No peers found... Не найдено пиров... - + Name i.e: file name Имя - + Size i.e: file size Размер - + Progress i.e: % downloaded Состояние - + DL Speed i.e: Download speed Скорость скач - + UP Speed i.e: Upload speed Скорость загр - + Seeds/Leechs i.e: full/partial sources Раздающих/Качающих - + ETA i.e: Estimated Time of Arrival / Time left Оцен. время - + Seeders i.e: Number of full sources Раздающие - + Leechers i.e: Number of partial sources Качающие - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 запущен. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Скорость скач.: %1 KiB/с - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Скорость загр.: %1 KiB/с - + Finished i.e: Torrent has finished downloading Завершено - + Checking... i.e: Checking already downloaded parts... Проверка... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Простаивает - + Are you sure you want to quit? Вы действительно хотите выйти? - + '%1' was removed. 'xxx.avi' was removed. '%1' был удален. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' добавлен в список закачек. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' запущен. (быстрый запуск) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' уже присутствует в списке закачек. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Не удалось раскодировать torrent файл: '%1' - + None i.e: No error message Нет - + Listening on port: %1 e.g: Listening on port: 1666 Прослушивание порта: %1 - + All downloads were paused. Все закачки были приостановлены. - + '%1' paused. xxx.avi paused. '%1' приостановлен. - + Connecting... i.e: Connecting to the tracker... Подключение... - + All downloads were resumed. Все закачки были запущены. - + '%1' resumed. e.g: xxx.avi resumed. '%1' запущена. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. скачивание %1 завершено. - + I/O Error i.e: Input/Output Error Ошибка ввода/вывода - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused При попытке чтения/записи %1 произошла ошибка. Возможно, на диске не хватает места, закачка приостановлена @@ -1266,55 +1266,55 @@ Please close the other one first. Произошла ошибка (нет места?), '%1' остановлен. - + Connection Status: Состояние связи: - + Online В сети - + Firewalled? i.e: Behind a firewall/router? Файерволл? - + No incoming connections... Нет входящих соединений... - + No search engine selected Не выбран движок для поиска - + Search plugin update Проверить наличие обновлений для плагинов - + Search has finished Поиск завершен - + Results i.e: Search results Результаты - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Скачивание '%1', подождите... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Произошла ошибка (нет места?), '%1' остановлен. @@ -1859,42 +1859,42 @@ Please close the other one first. createtorrent - + Select destination torrent file Выберите torrent файл назначения - + Torrent Files Файлы Torrent - + Select input directory or file Выберите входной файл или папку - + No destination path set Не установлен путь назначения - + Please type a destination path first Пожалуйста, сначала введите путь назначения - + No input path set Не установлен входной путь - + Please type an input path first Пожалуйста, сначала введите путь назначения - + Input path does not exist Несуществующий входной путь @@ -1904,17 +1904,17 @@ Please close the other one first. Пожалуйста, сначала введите правильный входной путь - + Torrent creation Создание Torrent'а - + Torrent was created successfully: Torrent успешно создан: - + Please type a valid input path first Пожалуйста, введите сначала правильный путь входа @@ -1950,31 +1950,31 @@ Please close the other one first. misc - + B bytes Б - + KiB kibibytes (1024 bytes) КиБ - + MiB mebibytes (1024 kibibytes) МиБ - + GiB gibibytes (1024 mibibytes) ГиБ - + TiB tebibytes (1024 gibibytes) ТиБ @@ -1998,7 +1998,7 @@ Please close the other one first. д - + Unknown Неизвестно @@ -2015,31 +2015,31 @@ Please close the other one first. д - + Unknown Unknown (size) Неизвестно - + < 1m < 1 minute < 1м - + %1m e.g: 10minutes %1м - + %1h%2m e.g: 3hours 5minutes %1ч%2м - + %1d%2h%3m e.g: 2days 10hours 2minutes %1д%2ч%3м @@ -2098,12 +2098,12 @@ Please close the other one first. поврежден. - + Range Start IP Начальный IP диапазона - + Start IP: Начальный IP: @@ -2118,22 +2118,22 @@ Please close the other one first. Этот IP некорректен. - + Range End IP Конечный IP диапазона - + End IP: Конечный IP: - + IP Range Comment Комментарий к диапазону IP - + Comment: Комментарий: @@ -2144,48 +2144,48 @@ Please close the other one first. кому - + Choose your favourite preview program Выберите вашу любимую программу для предпросмотра - + Invalid IP Неверный IP - + This IP is invalid. Этот IP неправилен. - + Options were saved successfully. Настройки были успешно сохранены. - + Choose scan directory Выберите директорию для сканирования - + Choose an ipfilter.dat file Выберите файл ipfilter.dat - + Choose a save directory Выберите путь сохранения - + I/O Error Input/Output Error Ошибка ввода/вывода - + Couldn't open %1 in read mode. Невозможно открыть %1 в режиме чтения. diff --git a/src/lang/qbittorrent_sk.ts b/src/lang/qbittorrent_sk.ts index 3694e1e32..68309715d 100644 --- a/src/lang/qbittorrent_sk.ts +++ b/src/lang/qbittorrent_sk.ts @@ -500,7 +500,7 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files Otvoriť torrent súbory @@ -510,7 +510,7 @@ Copyright © 2006 by Christophe Dumez<br> Nezne - + This file is either corrupted or this isn't a torrent. Tento súbor je buď poškodený alebo to nie je torrent. @@ -520,17 +520,17 @@ Copyright © 2006 by Christophe Dumez<br> Určite chcete zmazať všetky súbory v zozname sťahovaných? - + &Yes &Áno - + &No &Nie - + Are you sure you want to delete the selected item(s) in download list? Určite chcete zmazať vybrané položky v zozname sťahovaných? @@ -555,12 +555,12 @@ Copyright © 2006 by Christophe Dumez<br> kontroluje sa... - + Connecting... pripája sa... - + Downloading... sťahuje sa... @@ -600,7 +600,7 @@ Copyright © 2006 by Christophe Dumez<br> Nebolo možné vytvoriť adresár: - + Torrent Files Torrent súbory @@ -650,12 +650,12 @@ Copyright © 2006 by Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Ste si istý? -- qBittorrent @@ -685,7 +685,7 @@ Copyright © 2006 by Christophe Dumez<br> skončilo sťahovanie. - + Couldn't listen on any of the given ports. Nepodarilo sa počúvať na žiadnom zo zadaných portov. @@ -695,12 +695,12 @@ Copyright © 2006 by Christophe Dumez<br> Žiadny - + Empty search pattern Prázdny vyhľadávací vzor - + Please type a search pattern first Prosím, najprv zadajte vyhľadávací vzor @@ -710,12 +710,12 @@ Copyright © 2006 by Christophe Dumez<br> Nebol zvolený vyhľadávač - + You must select at least one search engine. Musíte zvoliť aspoň jeden vyhľadávač. - + Searching... Hľadá sa... @@ -804,27 +804,27 @@ Copyright © 2006 by Christophe Dumez<br> Vyhľadávanie skočilo - + An error occured during search... Počas vyhľadávania sa vyskytla chyba... - + Search aborted Vyhľadávanie preušené - + Search returned no results Vyhľadávanie nevrátilo žiadne výsledky - + Search plugin update -- qBittorrent Aktualizácia zásuvného modulu vyhľadávania -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -834,17 +834,17 @@ Changelog: Záznam zmien: - + Sorry, update server is temporarily unavailable. Je mi ľúto, aktualizačný server je dočasne nedostupný. - + Your search plugin is already up to date. Váš vyhľadávací zásuvný modul je aktuálny. - + Results Výsledky @@ -874,7 +874,7 @@ Záznam zmien: rýchlosť nahrávania - + Status Status @@ -894,7 +894,7 @@ Záznam zmien: Leecheri - + Search engine Vyhľadávač @@ -905,22 +905,22 @@ Záznam zmien: Bez pohybu - + Paused Pozastavený - + Transfers Prenosy - + Preview process already running Proces náhľadu už beží - + There is already another preview process running. Please close the other one first. Iný proces náhľadu už beží. @@ -950,17 +950,17 @@ Najskôr ho prosím zatvorte. Čakajte prosím... - + Are you sure you want to quit qBittorrent? Ste si istý, že chcete zatvoriť qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Ste si istý, že chcete zmazať vybrané položky v zozname sťahovaných a na pevnom disku? - + Download finished Sťahovanie dokončené @@ -971,7 +971,7 @@ Najskôr ho prosím zatvorte. skončilo sťahovanie. - + Search Engine Vyhľadávač @@ -981,205 +981,205 @@ Najskôr ho prosím zatvorte. V/V Chyba - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Stav spojenia: - + Offline Offline - + No peers found... Neboli nájdení rovesníci... - + Name i.e: file name Názov - + Size i.e: file size Veľkosť - + Progress i.e: % downloaded Priebeh - + DL Speed i.e: Download speed Rýchlosť sťahovania - + UP Speed i.e: Upload speed Rýchlosť nahrávania - + Seeds/Leechs i.e: full/partial sources Seederi/Leecheri - + ETA i.e: Estimated Time of Arrival / Time left Odhadované - + Seeders i.e: Number of full sources Seederi - + Leechers i.e: Number of partial sources Leecheri - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 spustený. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Rýchlosť sťahovania: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Rýchlosť nahrávania: %1 KiB/s - + Finished i.e: Torrent has finished downloading Skončené - + Checking... i.e: Checking already downloaded parts... kontroluje sa... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Bez pohybu - + Are you sure you want to quit? Ste si istý, že chcete skončiť? - + '%1' was removed. 'xxx.avi' was removed. '%1' bol odstránený. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' bol pridaný do zoznamu na sťahovanie. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' bol obnovený. (rýchle obnovenie) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' sa už nachádza v zozname sťahovaných. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Nebol omožné dekodovať torrent súbor: '%1' - + None i.e: No error message Žiadna - + Listening on port: %1 e.g: Listening on port: 1666 Počúvam na porte: %1 - + All downloads were paused. Všetky sťahovania pozastavené. - + '%1' paused. xxx.avi paused. '%1' pozastavené. - + Connecting... i.e: Connecting to the tracker... pripája sa... - + All downloads were resumed. Všetky sťahovania obnovené. - + '%1' resumed. e.g: xxx.avi resumed. '%1' obnovené. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 je stiahnutý. - + I/O Error i.e: Input/Output Error V/V Chyba - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Vyskytla sa chyba pri pokuse o čítanie alebo zapisovanie do %1. Disk je pravdepodobne plný, sťahovanie bolo pozastavené @@ -1191,55 +1191,55 @@ Najskôr ho prosím zatvorte. Vyskytla sa chyba (plný disk?), '%1' pozastavené. - + Connection Status: Stav spojenia: - + Online Online - + Firewalled? i.e: Behind a firewall/router? Za firewallom? - + No incoming connections... Žiadne prichádzajúce spojenia... - + No search engine selected Nebol zvolený žiadny vyhľadávač - + Search plugin update Aktualizácia zásuvného modulu vyhľadávača - + Search has finished Hľadanie skončené - + Results i.e: Search results Výsledky - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Sťahuje sa '%1', čakajte prosím... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Vyskytla sa chyba (plný disk?), '%1' pozastavené. @@ -1789,42 +1789,42 @@ Najskôr ho prosím zatvorte. createtorrent - + Select destination torrent file Vybrať cieľový torrent súbor - + Torrent Files Torrent súbory - + Select input directory or file Vyberte vstupný adresár alebo súbor - + No destination path set Nebola nastavená cieľová cesta - + Please type a destination path first Napíšte prosím najprv cieľovú cestu - + No input path set Nebola zadaná vstupná cesta - + Please type an input path first Napíšte prosím najprv vstupnú cestu - + Input path does not exist Vstupná cesta neexistuje @@ -1834,17 +1834,17 @@ Najskôr ho prosím zatvorte. Prosím, napíšte správnu vstupnú cestu - + Torrent creation Vytvorenie torrentu - + Torrent was created successfully: Torrent bol úspešne vytvorený: - + Please type a valid input path first Prosím, najprv napíšte platnú cestu pre vstup @@ -1915,7 +1915,7 @@ Najskôr ho prosím zatvorte. h - + Unknown Neznámy @@ -1930,31 +1930,31 @@ Najskôr ho prosím zatvorte. d - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -1984,31 +1984,31 @@ Najskôr ho prosím zatvorte. h - + Unknown Unknown (size) Neznáma - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + %1h%2m e.g: 3hours 5minutes %1h%2m - + %1d%2h%3m e.g: 2days 10hours 2minutes %1d%2h%3m @@ -2067,12 +2067,12 @@ Najskôr ho prosím zatvorte. je v zlom tvare. - + Range Start IP Počiatočná IP rozsahu - + Start IP: Počiatočná IP: @@ -2087,22 +2087,22 @@ Najskôr ho prosím zatvorte. Táto IP je nesprávna. - + Range End IP Koncová IP rozsahu - + End IP: Koncová IP: - + IP Range Comment Komentár k IP rozsahu - + Comment: Komentár: @@ -2118,48 +2118,48 @@ Najskôr ho prosím zatvorte. - + Choose your favourite preview program Zvoľte si obľúbený program pre náhľad - + Invalid IP Neplatná IP - + This IP is invalid. Táto IP je neplatná. - + Options were saved successfully. Nastavenia úspešne uložené. - + Choose scan directory Zvoliť adresár pre prezeranie - + Choose an ipfilter.dat file Vyberte súbor ipfilter.dat - + Choose a save directory Vyberte adresár, kde sa bude ukladať - + I/O Error Input/Output Error V/V Chyba - + Couldn't open %1 in read mode. Nebolo možné otvoriť %1 v režime pre čítanie. diff --git a/src/lang/qbittorrent_sv.ts b/src/lang/qbittorrent_sv.ts index 1e5b02eba..edd457cb2 100644 --- a/src/lang/qbittorrent_sv.ts +++ b/src/lang/qbittorrent_sv.ts @@ -451,97 +451,97 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files Öppna Torrent-filer - + This file is either corrupted or this isn't a torrent. Denna fil är antingen skadad eller så är den inte en torrent-fil. - + &Yes &Ja - + &No &Nej - + Are you sure you want to delete the selected item(s) in download list? Är du säker på att du vill ta bort de markerade post(erna) i hämtningslistan? - + Connecting... Ansluter... - + Downloading... Hämtar... - + Torrent Files Torrent-filer - + Are you sure? -- qBittorrent Är du säker? -- qBittorrent - + Couldn't listen on any of the given ports. Kunde inte lyssna på någon av de angivna portarna. - + Empty search pattern Tomt sökmönster - + Please type a search pattern first Ange ett sökmönster först - + You must select at least one search engine. Du måste välja åtminstone en sökmotor. - + Searching... Söker... - + An error occured during search... Ett fel inträffade under sökningen... - + Search aborted Sökningen avbröts - + Search returned no results Sökningen returnerade inga träffar - + Search plugin update -- qBittorrent Uppdatering av sökinstick -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -551,277 +551,277 @@ Changelog: Ändringslogg: - + Sorry, update server is temporarily unavailable. Tyvärr, uppdateringsservern är inte tillgänglig för tillfället. - + Your search plugin is already up to date. Din sökinsticksmodul är redan uppdaterad. - + Results Resultat - + Status Status - + Search engine Sökmotor - + Paused Pausad - + Preview process already running Förhandsvisningsprocess kör redan - + There is already another preview process running. Please close the other one first. Det finns redan en annan förhandsvisningsprocess. Stäng den först. - + Transfers Överföringar - + Are you sure you want to quit qBittorrent? Är du säker på att du vill avsluta qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Är du säker på att du vill ta bort de markerade objekten i hämtningslistan och på hårddisken? - + Download finished Hämtningen är färdig - + Search Engine Sökmotor - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Anslutningsstatus: - + Offline Frånkopplad - + No peers found... Inga parter hittades... - + Name i.e: file name Namn - + Size i.e: file size Storlek - + Progress i.e: % downloaded Förlopp - + DL Speed i.e: Download speed Hämtningshastighet - + UP Speed i.e: Upload speed Sändningshastighet - + Seeds/Leechs i.e: full/partial sources Dist/Repr - + ETA i.e: Estimated Time of Arrival / Time left Färdig om - + Seeders i.e: Number of full sources Distributörer - + Leechers i.e: Number of partial sources Reciprokörer - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 startad. - + qBittorrent qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Hämtning: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Sändning: %1 KiB/s - + Finished i.e: Torrent has finished downloading Färdig - + Checking... i.e: Checking already downloaded parts... Kontrollerar... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Avstannad - + Are you sure you want to quit? Är du säker på att du vill avsluta? - + '%1' was removed. 'xxx.avi' was removed. \"%1\" togs bort. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. \"%1\" lades till i hämtningslistan. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) \"%1\" återupptogs. (snabbt läge) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. \"%1\" finns redan i hämtningslistan. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Kunde inte avkoda torrent-fil: \"%1\" - + None i.e: No error message Ingen - + Listening on port: %1 e.g: Listening on port: 1666 Lyssnar på port: %1 - + All downloads were paused. Alla hämtningar har pausats. - + '%1' paused. xxx.avi paused. \"%1\" pausad. - + Connecting... i.e: Connecting to the tracker... Ansluter... - + All downloads were resumed. Alla hämtningar har återupptagits. - + '%1' resumed. e.g: xxx.avi resumed. \"%1\" återupptogs. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. %1 har hämtats färdigt. - + I/O Error i.e: Input/Output Error In/Ut-fel - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Ett fel inträffade vid försök att läsa eller skriva %1. Disken är antagligen full, hämtningen har pausats @@ -833,55 +833,55 @@ Stäng den först. Ett fel inträffade (full disk?), \"%1\" pausad. - + Connection Status: Anslutningsstatus: - + Online Ansluten - + Firewalled? i.e: Behind a firewall/router? Brandvägg? - + No incoming connections... Inga inkommande anslutningar... - + No search engine selected Ingen sökmotor vald - + Search plugin update Uppdatering av sökinstick - + Search has finished Sökningen är färdig - + Results i.e: Search results Resultat - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Hämtar \"%1\", vänta... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Ett fel inträffade (full disk?), \"%1\" pausad. @@ -1303,57 +1303,57 @@ Stäng den först. createtorrent - + Select destination torrent file Välj mål för torrent-fil - + Torrent Files Torrent-filer - + Select input directory or file Välj katalog eller fil för indata - + No destination path set Ingen målsökväg inställd - + Please type a destination path first Ange en målsökväg först - + No input path set Ingen sökväg inställd för indata - + Please type an input path first Ange en sökväg för indata först - + Input path does not exist Sökvägen för indata finns inte - + Torrent creation Skapa torrent - + Torrent was created successfully: Torrentfilen skapades: - + Please type a valid input path first Ange en giltig inmatningssökväg först @@ -1389,66 +1389,66 @@ Stäng den först. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Unknown Okänd - + Unknown Unknown (size) Okänd - + < 1m < 1 minute < 1 min - + %1m e.g: 10minutes %1 min - + %1h%2m e.g: 3hours 5minutes %1h %2min - + %1d%2h%3m e.g: 2days 10hours 2minutes %1d %2h %3min @@ -1457,32 +1457,32 @@ Stäng den först. options_imp - + Range Start IP Omfång start-IP - + Start IP: Start-IP: - + Range End IP Omfång slut-IP - + End IP: Slut-IP: - + IP Range Comment Kommentar om IP-omfång - + Comment: Kommentar: @@ -1493,48 +1493,48 @@ Stäng den först. till - + Choose your favourite preview program Välj ditt favoritprogram för förhandsvisning - + Invalid IP Ogiltigt IP - + This IP is invalid. Detta IP är ogiltigt. - + Options were saved successfully. Inställningarna har sparats. - + Choose scan directory Välj en avsökningskatalog - + Choose an ipfilter.dat file Välj en ipfilter.dat-fil - + Choose a save directory Välj en katalog att spara i - + I/O Error Input/Output Error In/Ut-fel - + Couldn't open %1 in read mode. Kunde inte öppna %1 i läsläge. diff --git a/src/lang/qbittorrent_tr.ts b/src/lang/qbittorrent_tr.ts index c1eac7a1f..591c62219 100644 --- a/src/lang/qbittorrent_tr.ts +++ b/src/lang/qbittorrent_tr.ts @@ -616,7 +616,7 @@ Telif Hakkı © 2006 Christophe Dumez<br> GUI - + Open Torrent Files Torrent Dosyasını Aç @@ -631,7 +631,7 @@ Telif Hakkı © 2006 Christophe Dumez<br> Bilinmeyen - + This file is either corrupted or this isn't a torrent. Bu dosya bozuk ya da torrent dosyası değil. @@ -641,17 +641,17 @@ Telif Hakkı © 2006 Christophe Dumez<br> Download listesindeki bütün dosyaları silmek istediğinizden emin misiniz? - + &Yes &Evet - + &No &Hayır - + Are you sure you want to delete the selected item(s) in download list? Download listesindeki seçili öğeleri silmek istediğinize emin misiniz? @@ -681,12 +681,12 @@ Telif Hakkı © 2006 Christophe Dumez<br> Kontrol ediliyor... - + Connecting... Bağlanılıyor... - + Downloading... Download ediliyor... @@ -726,7 +726,7 @@ Telif Hakkı © 2006 Christophe Dumez<br> Klasör yaratılamıyor: - + Torrent Files Torrent Dosyaları @@ -798,12 +798,12 @@ Telif Hakkı © 2006 Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Emin misiniz? -- qBittorrent @@ -844,7 +844,7 @@ Telif Hakkı © 2006 Christophe Dumez<br> download tamamlandı. - + Couldn't listen on any of the given ports. Verilen portların hiçbiri dinlenemedi. @@ -854,12 +854,12 @@ Telif Hakkı © 2006 Christophe Dumez<br> Yok - + Empty search pattern Boş arama sorgusu - + Please type a search pattern first Lütfen önce bir arama sorgusu girin @@ -869,12 +869,12 @@ Telif Hakkı © 2006 Christophe Dumez<br> Arama motoru seçilmedi - + You must select at least one search engine. En az bir arama motoru seçmelisiniz. - + Searching... Aranıyor... @@ -974,17 +974,17 @@ Telif Hakkı © 2006 Christophe Dumez<br> Arama tamamlandı - + An error occured during search... Arama yapılırken bir hata oluştu... - + Search aborted Arama iptal edildi - + Search returned no results Arama sonuç bulamadı @@ -994,12 +994,12 @@ Telif Hakkı © 2006 Christophe Dumez<br> Arama Tamamlandı - + Search plugin update -- qBittorrent Arama plugini güncellemesi -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -1010,17 +1010,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Üzgünüz, güncelleme sunucusu geçici olarak servis dışı. - + Your search plugin is already up to date. Arama plugini zaten güncel durumda. - + Results Sonuçlar @@ -1050,7 +1050,7 @@ Changelog: UP Hızı - + Status Durum @@ -1070,7 +1070,7 @@ Changelog: Leechers - + Search engine Arama motoru @@ -1081,17 +1081,17 @@ Changelog: Hız kaybetti - + Paused Duraklatıldı - + Preview process already running Önizleme işlemi zaten çalışıyor - + There is already another preview process running. Please close the other one first. Zaten başka bir önizleme işlemi çalışıyor. @@ -1121,22 +1121,22 @@ Lütfen önce diğerini kapatın. Lütfen bekleyin... - + Transfers Aktarımlar - + Are you sure you want to quit qBittorrent? qBittorrent ten çıkmak istediğinize emin misiniz? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Seçilenleri download listesinden ve sabit diskinizden silmek istediğinize emin misiniz? - + Download finished @@ -1147,264 +1147,264 @@ Lütfen önce diğerini kapatın. download tamamlandı. - + Search Engine Arama Motoru - + qBittorrent %1 e.g: qBittorrent v0.x - + Connection status: - + Offline - + No peers found... - + Name i.e: file name İsim - + Size i.e: file size Boyut - + Progress i.e: % downloaded İlerleme - + DL Speed i.e: Download speed DL Hızı - + UP Speed i.e: Upload speed UP Hızı - + Seeds/Leechs i.e: full/partial sources - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + qBittorrent %1 started. e.g: qBittorrent v0.x started. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s - + Finished i.e: Torrent has finished downloading Tamamlandı - + Checking... i.e: Checking already downloaded parts... Kontrol ediliyor... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Hız kaybetti - + Are you sure you want to quit? - + '%1' was removed. 'xxx.avi' was removed. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' - + None i.e: No error message Yok - + Listening on port: %1 e.g: Listening on port: 1666 - + All downloads were paused. - + '%1' paused. xxx.avi paused. - + Connecting... i.e: Connecting to the tracker... Bağlanılıyor... - + All downloads were resumed. - + '%1' resumed. e.g: xxx.avi resumed. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. - + I/O Error i.e: Input/Output Error I/O Hatası - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused - + Connection Status: - + Online - + Firewalled? i.e: Behind a firewall/router? - + No incoming connections... - + No search engine selected - + Search plugin update - + Search has finished - + Results i.e: Search results Sonuçlar - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. @@ -1979,42 +1979,42 @@ Lütfen önce diğerini kapatın. createtorrent - + Select destination torrent file Kaynak Torrent dosyasını seç - + Torrent Files Torrent Dosyaları - + Select input directory or file Girdi klasörü veya dosyası seç - + No destination path set Kaynak yolu seçilmemiş - + Please type a destination path first Lütfen önce bir kaynak yolu seçin - + No input path set Girdi yolu seçilmedi - + Please type an input path first LLütfen önce bir kayıt yolu seçin - + Input path does not exist Kayıt yolu bulunamadı @@ -2024,17 +2024,17 @@ Lütfen önce diğerini kapatın. Lütfen önce düzgün bir girdi yolu seçin - + Torrent creation Torrent oluşturumu - + Torrent was created successfully: Torrent başarıyla oluşturuldu: - + Please type a valid input path first Lütfen önce geçerli bir kayıt yolu seçin @@ -2070,31 +2070,31 @@ Lütfen önce diğerini kapatın. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB @@ -2118,7 +2118,7 @@ Lütfen önce diğerini kapatın. g - + Unknown Bilinmeyen @@ -2135,31 +2135,31 @@ Lütfen önce diğerini kapatın. g - + Unknown Unknown (size) Bilinmeyen - + < 1m < 1 minute - + %1m e.g: 10minutes - + %1h%2m e.g: 3hours 5minutes - + %1d%2h%3m e.g: 2days 10hours 2minutes @@ -2218,12 +2218,12 @@ Lütfen önce diğerini kapatın. bozulmuş. - + Range Start IP IP Başlangıç Aralığı - + Start IP: Başlangıç IP: @@ -2238,22 +2238,22 @@ Lütfen önce diğerini kapatın. Bu IP Adresi yanlıştır. - + Range End IP IP Bitiş Aralığı - + End IP: Bitiş IP: - + IP Range Comment IP Aralığı Yorumu - + Comment: Yorum: @@ -2264,48 +2264,48 @@ Lütfen önce diğerini kapatın. dan - + Choose your favourite preview program Favori önizleme programınızı seçin - + Invalid IP Geçersiz IP - + This IP is invalid. Bu IP geçersizdir. - + Options were saved successfully. - + Choose scan directory - + Choose an ipfilter.dat file - + Choose a save directory - + I/O Error Input/Output Error I/O Hatası - + Couldn't open %1 in read mode. diff --git a/src/lang/qbittorrent_uk.ts b/src/lang/qbittorrent_uk.ts index 7c0f9d520..38db3433b 100644 --- a/src/lang/qbittorrent_uk.ts +++ b/src/lang/qbittorrent_uk.ts @@ -545,7 +545,7 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files Відкрити Torrent-файли @@ -555,7 +555,7 @@ Copyright © 2006 by Christophe Dumez<br> Невідомо - + This file is either corrupted or this isn't a torrent. Цей файл пошкоджено, або він не є torrent-файлом. @@ -565,17 +565,17 @@ Copyright © 2006 by Christophe Dumez<br> Ви впевнені що хочете видалити всі файли зі списку завантажень? - + &Yes &Так - + &No &Ні - + Are you sure you want to delete the selected item(s) in download list? Ви впевнені що хочете видалити вибрані файли зі списку завантажень? @@ -600,12 +600,12 @@ Copyright © 2006 by Christophe Dumez<br> Перевіряю... - + Connecting... З'єднуюсь... - + Downloading... Завантажую... @@ -645,7 +645,7 @@ Copyright © 2006 by Christophe Dumez<br> Неможливо створити директорію: - + Torrent Files Torrent файли @@ -717,12 +717,12 @@ Copyright © 2006 by Christophe Dumez<br> qBittorrent - + qBittorrent qBittorrent - + Are you sure? -- qBittorrent Ви впевнені? -- qBittorrent @@ -758,7 +758,7 @@ Copyright © 2006 by Christophe Dumez<br> завантажено. - + Couldn't listen on any of the given ports. Не можу слухати по жодному з вказаних портів. @@ -768,12 +768,12 @@ Copyright © 2006 by Christophe Dumez<br> Немає - + Empty search pattern Пустий шаблон пошуку - + Please type a search pattern first Будь-ласка спочатку введіть шаблон пошуку @@ -783,12 +783,12 @@ Copyright © 2006 by Christophe Dumez<br> Не вибрано пошуковика - + You must select at least one search engine. Ви повинні вибрати хоча б один пошуковик. - + Searching... Шукаю... @@ -888,17 +888,17 @@ Copyright © 2006 by Christophe Dumez<br> Пошук завершено - + An error occured during search... Під час пошуку сталася помилка... - + Search aborted Пошук скасовано - + Search returned no results Пошук не дав результів @@ -908,12 +908,12 @@ Copyright © 2006 by Christophe Dumez<br> Пошук завершено - + Search plugin update -- qBittorrent Оновлення пошукового плагіну -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -924,17 +924,17 @@ Changelog: - + Sorry, update server is temporarily unavailable. Пробачте, сервер оновлень тимчасово недоступний. - + Your search plugin is already up to date. Ви вже маєте останню версію пошукового плагіну. - + Results Результати @@ -964,7 +964,7 @@ Changelog: UP швидкість - + Status Статус @@ -984,7 +984,7 @@ Changelog: Лічери - + Search engine Пошуковик @@ -995,17 +995,17 @@ Changelog: Заглохло - + Paused Призупинено - + Preview process already running Процес перегляду вже запущений - + There is already another preview process running. Please close the other one first. Вже запущений інший процес перегляду. @@ -1035,22 +1035,22 @@ Please close the other one first. Будь-ласка, зачекайте... - + Transfers Трансфери - + Are you sure you want to quit qBittorrent? Ви впевнені, що хочете вийти з qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? Ви впевнені, що хочете видалити вибрані завантаження зі списку та з вінчестера? - + Download finished Завантаження завершено @@ -1061,210 +1061,210 @@ Please close the other one first. завантажено. - + Search Engine Пошуковик - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: Статус з'єднання: - + Offline Офлайн - + No peers found... Не знайдено пірів... - + Name i.e: file name Ім'я - + Size i.e: file size Розмір - + Progress i.e: % downloaded Прогрес - + DL Speed i.e: Download speed Швидкість прийому - + UP Speed i.e: Upload speed Швидкість віддачі - + Seeds/Leechs i.e: full/partial sources Сідерів/Лічерів - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources Сідери - + Leechers i.e: Number of partial sources Лічери - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1 запущено. - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s Швидкість прийому: %1 КіБ/с - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s Швидкість віддачі: %1 КіБ/с - + Finished i.e: Torrent has finished downloading Закінчено - + Checking... i.e: Checking already downloaded parts... Перевіряю... - + Stalled i.e: State of a torrent whose download speed is 0kb/s Заглохло - + Are you sure you want to quit? Ви впевнені, що хочете вийти? - + '%1' was removed. 'xxx.avi' was removed. '%1' було видалено. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1' додано до списку завантажень. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1' відновлено. (швидке відновлення) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1' вже є у списку завантажень. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' Неможливо декодувати торрент-файл: '%1' - + None i.e: No error message Немає - + Listening on port: %1 e.g: Listening on port: 1666 Прослуховую порт: %1 - + All downloads were paused. Всі завантаження були призупинені. - + '%1' paused. xxx.avi paused. '%1' призупинено. - + Connecting... i.e: Connecting to the tracker... З'єднуюсь... - + All downloads were resumed. Всі завантаження було відновлено. - + '%1' resumed. e.g: xxx.avi resumed. '%1' відновлено. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. Завантаження '%1' закінчилось. - + I/O Error i.e: Input/Output Error Помилка вводу/виводу - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused Сталася помилка під час запису чи зчитування %1. Можливо диск заповнено, завантаження було призупинено @@ -1276,55 +1276,55 @@ Please close the other one first. Сталася помилка (заповнено диск?), '%1' призупинено. - + Connection Status: Статус з'єднання: - + Online Онлайн - + Firewalled? i.e: Behind a firewall/router? Захищено фаєрволом? - + No incoming connections... Немає вхідних з'єднань... - + No search engine selected Не вибрано пошуковик - + Search plugin update Оновити пошуковий плагін - + Search has finished Пошук закінчено - + Results i.e: Search results Результати - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Завантажую '%1', будь-ласка зачекайте... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. Сталася помилка (заповнено диск?), '%1' призупинено. @@ -1879,42 +1879,42 @@ Please close the other one first. createtorrent - + Select destination torrent file Виберіть цільовий torrent-файл - + Torrent Files Torrent файли - + Select input directory or file Виберіть вхідну директорію чи файл - + No destination path set Не задано шлях призначення - + Please type a destination path first Будь-ласка, спочатку введіть шлях призначення - + No input path set Не задано вхідний шлях - + Please type an input path first Будь-ласка, спочатку введіть вхідний шлях - + Input path does not exist Вхідний шлях не існує @@ -1924,17 +1924,17 @@ Please close the other one first. Будь-ласка, спочатку введіть правильний вхідний шлях - + Torrent creation Створення торренту - + Torrent was created successfully: Торрент було успішно створено: - + Please type a valid input path first Будь-ласка, спочатку введіть правильний вхідний шлях @@ -1970,31 +1970,31 @@ Please close the other one first. misc - + B bytes Б - + KiB kibibytes (1024 bytes) КіБ - + MiB mebibytes (1024 kibibytes) МіБ - + GiB gibibytes (1024 mibibytes) ГіБ - + TiB tebibytes (1024 gibibytes) ТіБ @@ -2018,7 +2018,7 @@ Please close the other one first. д - + Unknown Невідомо @@ -2035,31 +2035,31 @@ Please close the other one first. д - + Unknown Unknown (size) Невідомо - + < 1m < 1 minute < 1хв - + %1m e.g: 10minutes %1хв - + %1h%2m e.g: 3hours 5minutes %1г%2хв - + %1d%2h%3m e.g: 2days 10hours 2minutes %1д%2г%3хв @@ -2118,12 +2118,12 @@ Please close the other one first. сформована неправильно. - + Range Start IP Початокова IP-адреса діапазону - + Start IP: Початкова IP-адреса: @@ -2138,22 +2138,22 @@ Please close the other one first. Цей IP невірний. - + Range End IP Кінцева IP-адреса - + End IP: Кінцева IP-адреса діапазону: - + IP Range Comment Коментарій для діапазону IP-адрес - + Comment: Коментарій: @@ -2164,48 +2164,48 @@ Please close the other one first. до - + Choose your favourite preview program Виберіть вашу улюблену програму перегляду - + Invalid IP Неправильний IP - + This IP is invalid. Цей IP неправильний. - + Options were saved successfully. Опції були успішно збережені. - + Choose scan directory Виберіть ддиректорію для сканування - + Choose an ipfilter.dat file Виберіть файл ipfilter.dat - + Choose a save directory Виберіть директорію для збереження - + I/O Error Input/Output Error Помилка вводу/виводу - + Couldn't open %1 in read mode. Не вдалося відкрити %1 у режимі читання. diff --git a/src/lang/qbittorrent_zh.ts b/src/lang/qbittorrent_zh.ts index d486edd22..0aca88ecc 100644 --- a/src/lang/qbittorrent_zh.ts +++ b/src/lang/qbittorrent_zh.ts @@ -529,7 +529,7 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files 打开Torrent文件 @@ -539,7 +539,7 @@ Copyright © 2006 by Christophe Dumez<br> 无效 - + This file is either corrupted or this isn't a torrent. 该文件不是torrent文件或已经损坏. @@ -549,17 +549,17 @@ Copyright © 2006 by Christophe Dumez<br> 确定删除下载列表中的所有文件? - + &Yes &是 - + &No &否 - + Are you sure you want to delete the selected item(s) in download list? 确定删除所选中的文件? @@ -584,12 +584,12 @@ Copyright © 2006 by Christophe Dumez<br> 检查中... - + Connecting... 连接中... - + Downloading... 下载中... @@ -629,7 +629,7 @@ Copyright © 2006 by Christophe Dumez<br> 无法创建文档: - + Torrent Files Torrent文件 @@ -678,7 +678,7 @@ Copyright © 2006 by Christophe Dumez<br> 使用端口: - + Are you sure? -- qBittorrent 确定? -- qBittorrent @@ -708,7 +708,7 @@ Copyright © 2006 by Christophe Dumez<br> 下载完毕. - + Couldn't listen on any of the given ports. 所给端口无响应. @@ -718,12 +718,12 @@ Copyright © 2006 by Christophe Dumez<br> - + Empty search pattern 无关键词 - + Please type a search pattern first 请先输入关键词 @@ -733,12 +733,12 @@ Copyright © 2006 by Christophe Dumez<br> 无选中的搜索引擎 - + You must select at least one search engine. 请选择至少一个搜索引擎. - + Searching... 搜索中... @@ -828,17 +828,17 @@ Copyright © 2006 by Christophe Dumez<br> 搜索完毕 - + An error occured during search... 搜索中出现错误... - + Search aborted 搜索失败 - + Search returned no results 搜索无结果 @@ -848,12 +848,12 @@ Copyright © 2006 by Christophe Dumez<br> 搜索完毕 - + Search plugin update -- qBittorrent 更新搜索插件 - + Search plugin can be updated, do you want to update it? Changelog: @@ -863,17 +863,17 @@ Changelog: 更改记录: - + Sorry, update server is temporarily unavailable. 对不起,服务器暂时不可用. - + Your search plugin is already up to date. 您的搜索插件已是最新的. - + Results 结果 @@ -903,7 +903,7 @@ Changelog: 上传速度 - + Status 状态 @@ -923,7 +923,7 @@ Changelog: 不完整种子 - + Search engine 搜索引擎 @@ -934,17 +934,17 @@ Changelog: 等待中 - + Paused 暂停中 - + Preview process already running 预览程序已存在 - + There is already another preview process running. Please close the other one first. 另一预览程序正在运行中. @@ -974,22 +974,22 @@ Please close the other one first. 请稍等... - + Transfers 传输 - + Are you sure you want to quit qBittorrent? 确实要退出qBittorrent吗? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? 确定从硬盘及下载列表中删除所选中的项目? - + Download finished 下载完毕 @@ -1000,7 +1000,7 @@ Please close the other one first. 下载完毕. - + Search Engine 搜索引擎 @@ -1010,264 +1010,264 @@ Please close the other one first. 完整种子/不完整种子 - + qBittorrent %1 e.g: qBittorrent v0.x qBittorrent %1 - + Connection status: 连接状态: - + Offline 离线 - + No peers found... 找不到资源... - + Name i.e: file name 名称 - + Size i.e: file size 大小 - + Progress i.e: % downloaded 进度 - + DL Speed i.e: Download speed 下载速度 - + UP Speed i.e: Upload speed 上传速度 - + Seeds/Leechs i.e: full/partial sources 完整种子/不完整种子 - + ETA i.e: Estimated Time of Arrival / Time left 剩余时间 - + Seeders i.e: Number of full sources 完整种子 - + Leechers i.e: Number of partial sources 不完整种子 - + qBittorrent %1 started. e.g: qBittorrent v0.x started. qBittorrent %1开始. - + qBittorrent qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s 下载速度: %1 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s 上传速度: %1 KiB/s - + Finished i.e: Torrent has finished downloading 完成 - + Checking... i.e: Checking already downloaded parts... 检查中... - + Stalled i.e: State of a torrent whose download speed is 0kb/s 等待中 - + Are you sure you want to quit? 确实要退出吗? - + '%1' was removed. 'xxx.avi' was removed. '%1'已移除. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. '%1'添加到下载列表. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) '%1'重新开始(快速) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. '%1'已存在于下载列表中. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' 无法解码torrent文件:'%1' - + None i.e: No error message - + Listening on port: %1 e.g: Listening on port: 1666 使用端口:'%1' - + All downloads were paused. 所有下载已暂停. - + '%1' paused. xxx.avi paused. '%1'暂停. - + Connecting... i.e: Connecting to the tracker... 连接中... - + All downloads were resumed. 重新开始所有下载. - + '%1' resumed. e.g: xxx.avi resumed. '%1'重新开始. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. '%1'下载完毕. - + I/O Error i.e: Input/Output Error 输入/输出错误 - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused 读或写%1过程中出现错误.磁盘已满,下载被暂停 - + Connection Status: 连接状态: - + Online 联机 - + Firewalled? i.e: Behind a firewall/router? 存在防火墙? - + No incoming connections... 无对内连接... - + No search engine selected 无选中的搜索引擎 - + Search plugin update 更新搜索插件 - + Search has finished 搜索完毕 - + Results i.e: Search results 结果 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1'下载中,请等待... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. 出现错误(磁盘已满?),'%1'暂停. @@ -1807,42 +1807,42 @@ Please close the other one first. createtorrent - + Select destination torrent file 选择torrent文件目的地 - + Torrent Files Torrent文件 - + Select input directory or file 选择输入目录或文件 - + No destination path set 未设置目标路径 - + Please type a destination path first 请先给出目标路经 - + No input path set 未设置输入路径 - + Please type an input path first 请先给出输入路径 - + Input path does not exist 输入路径不存在 @@ -1852,17 +1852,17 @@ Please close the other one first. 请先给出一个正确的输入路径 - + Torrent creation 创建Torrent - + Torrent was created successfully: 成功创建Torrent: - + Please type a valid input path first 请先输入一个有效的路径 @@ -1898,31 +1898,31 @@ Please close the other one first. misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) @@ -1940,7 +1940,7 @@ Please close the other one first. 小时 - + Unknown 未知 @@ -1951,31 +1951,31 @@ Please close the other one first. - + Unknown Unknown (size) 未知 - + < 1m < 1 minute < 1分钟 - + %1m e.g: 10minutes %1分钟 - + %1h%2m e.g: 3hours 5minutes %1小时%2分钟 - + %1d%2h%3m e.g: 2days 10hours 2minutes %1天%2小时%3分钟 @@ -2034,12 +2034,12 @@ Please close the other one first. 有残缺. - + Range Start IP IP列起始 - + Start IP: 起始IP: @@ -2054,22 +2054,22 @@ Please close the other one first. 此IP有误. - + Range End IP IP列截止 - + End IP: 截止IP: - + IP Range Comment IP列注释 - + Comment: 注释: @@ -2080,48 +2080,48 @@ Please close the other one first. - + Choose your favourite preview program 选择您想要的程序以便预览文件 - + Invalid IP 无效IP - + This IP is invalid. 此IP无效. - + Options were saved successfully. 选项保存成功. - + Choose scan directory 选择监视目录 - + Choose an ipfilter.dat file 选择ipfilter.dat文件 - + Choose a save directory 保存到 - + I/O Error Input/Output Error 输入/输出错误 - + Couldn't open %1 in read mode. 无法在读状态下打开%1. diff --git a/src/lang/qbittorrent_zh_HK.ts b/src/lang/qbittorrent_zh_HK.ts index d6ba00c4b..d633264a9 100644 --- a/src/lang/qbittorrent_zh_HK.ts +++ b/src/lang/qbittorrent_zh_HK.ts @@ -519,7 +519,7 @@ Copyright © 2006 by Christophe Dumez<br> GUI - + Open Torrent Files 打開Torrent文件 @@ -529,7 +529,7 @@ Copyright © 2006 by Christophe Dumez<br> 無效 - + This file is either corrupted or this isn't a torrent. 該文件不是torrent文件或已經損壞. @@ -539,17 +539,17 @@ Copyright © 2006 by Christophe Dumez<br> 確定刪除下在列表中的所有文件? - + &Yes &是 - + &No &否 - + Are you sure you want to delete the selected item(s) in download list? 確定刪除所選中的文件? @@ -574,12 +574,12 @@ Copyright © 2006 by Christophe Dumez<br> 檢查中... - + Connecting... 連接中... - + Downloading... 下載中... @@ -619,7 +619,7 @@ Copyright © 2006 by Christophe Dumez<br> 無法建立目錄: - + Torrent Files Torrent檔案 @@ -668,7 +668,7 @@ Copyright © 2006 by Christophe Dumez<br> 使用端口: - + Are you sure? -- qBittorrent 確定? -- qBittorrent @@ -698,7 +698,7 @@ Copyright © 2006 by Christophe Dumez<br> 下載完畢. - + Couldn't listen on any of the given ports. 所給端口無回應. @@ -708,12 +708,12 @@ Copyright © 2006 by Christophe Dumez<br> - + Empty search pattern 無關鍵字 - + Please type a search pattern first 請輸入關鍵字 @@ -723,12 +723,12 @@ Copyright © 2006 by Christophe Dumez<br> 無選中的搜索引擎 - + You must select at least one search engine. 至少選擇一個搜索引擎. - + Searching... 搜索中... @@ -798,17 +798,17 @@ Copyright © 2006 by Christophe Dumez<br> 搜尋結束 - + An error occured during search... 搜尋發生錯誤... - + Search aborted 搜尋中斷 - + Search returned no results 搜尋無結果 @@ -818,12 +818,12 @@ Copyright © 2006 by Christophe Dumez<br> 搜尋結束 - + Search plugin update -- qBittorrent 搜尋 plugin 更新 -- qBittorrent - + Search plugin can be updated, do you want to update it? Changelog: @@ -831,17 +831,17 @@ Changelog: 搜尋 plugin 可更新, 是否更新? - + Sorry, update server is temporarily unavailable. 抱歉, 更新伺服器暫時不能用 - + Your search plugin is already up to date. 您的搜尋 plugin 已是最新 - + Results 結果 @@ -871,7 +871,7 @@ Changelog: 上傳速度 - + Status 狀態 @@ -891,33 +891,33 @@ Changelog: 不完整種子 - + Search engine 搜尋引擎 - + Paused 暫停 - + Preview process already running - + There is already another preview process running. Please close the other one first. - + Transfers - + Download finished @@ -928,279 +928,279 @@ Please close the other one first. 下載完畢. - + Search Engine 搜索引擎 - + Are you sure you want to quit qBittorrent? - + Are you sure you want to delete the selected item(s) in download list and in hard drive? - + qBittorrent %1 e.g: qBittorrent v0.x - + Connection status: - + Offline - + No peers found... - + Name i.e: file name 名稱 - + Size i.e: file size 大小 - + Progress i.e: % downloaded 進度 - + DL Speed i.e: Download speed 下載速度 - + UP Speed i.e: Upload speed 上傳速度 - + Seeds/Leechs i.e: full/partial sources - + ETA i.e: Estimated Time of Arrival / Time left ETA - + Seeders i.e: Number of full sources 種子 - + Leechers i.e: Number of partial sources 不完整種子 - + qBittorrent %1 started. e.g: qBittorrent v0.x started. - + qBittorrent - + DL speed: %1 KiB/s e.g: Download speed: 10 KiB/s - + UP speed: %1 KiB/s e.g: Upload speed: 10 KiB/s - + Finished i.e: Torrent has finished downloading 完成 - + Checking... i.e: Checking already downloaded parts... 檢查中... - + Stalled i.e: State of a torrent whose download speed is 0kb/s - + Are you sure you want to quit? - + '%1' was removed. 'xxx.avi' was removed. - + '%1' added to download list. '/home/y/xxx.torrent' was added to download list. - + '%1' resumed. (fast resume) '/home/y/xxx.torrent' was resumed. (fast resume) - + '%1' is already in download list. e.g: 'xxx.avi' is already in download list. - + Unable to decode torrent file: '%1' e.g: Unable to decode torrent file: '/home/y/xxx.torrent' - + None i.e: No error message - + Listening on port: %1 e.g: Listening on port: 1666 - + All downloads were paused. - + '%1' paused. xxx.avi paused. - + Connecting... i.e: Connecting to the tracker... 連接中... - + All downloads were resumed. - + '%1' resumed. e.g: xxx.avi resumed. - + %1 has finished downloading. e.g: xxx.avi has finished downloading. - + I/O Error i.e: Input/Output Error 輸入/輸出錯誤 - + An error occured when trying to read or write %1. The disk is probably full, download has been paused e.g: An error occured when trying to read or write xxx.avi. The disk is probably full, download has been paused - + Connection Status: - + Online - + Firewalled? i.e: Behind a firewall/router? - + No incoming connections... - + No search engine selected - + Search plugin update - + Search has finished - + Results i.e: Search results 結果 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + An error occured (full disk?), '%1' paused. e.g: An error occured (full disk?), 'xxx.avi' paused. @@ -1700,57 +1700,57 @@ Please close the other one first. createtorrent - + Select destination torrent file - + Torrent Files Torrent檔案 - + Select input directory or file - + No destination path set - + Please type a destination path first - + No input path set - + Please type an input path first - + Input path does not exist - + Torrent creation - + Torrent was created successfully: - + Please type a valid input path first @@ -1786,66 +1786,66 @@ Please close the other one first. misc - + Unknown Unknown (size) 無效 - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) - + Unknown 無效 - + < 1m < 1 minute - + %1m e.g: 10minutes - + %1h%2m e.g: 3hours 5minutes - + %1d%2h%3m e.g: 2days 10hours 2minutes @@ -1865,78 +1865,78 @@ Please close the other one first. 輸入/輸出錯誤 - + Range Start IP - + Start IP: - + Range End IP - + End IP: - + IP Range Comment - + Comment: - + Choose your favourite preview program - + Invalid IP - + This IP is invalid. - + Options were saved successfully. - + Choose scan directory - + Choose an ipfilter.dat file - + Choose a save directory - + I/O Error Input/Output Error 輸入/輸出錯誤 - + Couldn't open %1 in read mode. diff --git a/src/options_imp.cpp b/src/options_imp.cpp index 3c8420742..ab45ad3c4 100644 --- a/src/options_imp.cpp +++ b/src/options_imp.cpp @@ -100,6 +100,10 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){ txt_savePath->setText(home+"qBT_dir"); // Load options loadOptions(); +#ifdef NO_PEX + disablePeX->setChecked(true); + disablePeX->setEnabled(false); +#endif // Connect signals / slots connect(disableUPLimit, SIGNAL(stateChanged(int)), this, SLOT(disableUpload(int))); connect(disableDLLimit, SIGNAL(stateChanged(int)), this, SLOT(disableDownload(int))); @@ -126,7 +130,9 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){ connect(enableScan_checkBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(disableMaxConnec, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(disableDHT, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); +#ifndef NO_PEX connect(disablePeX, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); +#endif connect(spin_dht_port, SIGNAL(valueChanged(QString)), this, SLOT(enableApplyButton())); // Language connect(combo_i18n, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton())); @@ -179,7 +185,9 @@ void options_imp::saveOptions(){ settings.setValue("PortRangeMax", getPorts().second); settings.setValue("ShareRatio", getRatio()); settings.setValue("DHTPort", getDHTPort()); +#ifndef NO_PEX settings.setValue("PeXState", !isPeXDisabled()); +#endif settings.setValue("ScanDir", getScanDir()); // End Main options settings.endGroup(); @@ -254,7 +262,9 @@ bool options_imp::isFilteringEnabled() const{ void options_imp::loadOptions(){ int value; float floatValue; +#ifndef NO_PEX bool boolValue; +#endif QString strValue; QSettings settings("qBittorrent", "qBittorrent"); // Check if min port < max port @@ -312,6 +322,7 @@ void options_imp::loadOptions(){ } spin_dht_port->setValue(value); } +#ifndef NO_PEX boolValue = settings.value("PeXState", 0).toBool(); if(!boolValue){ // Pex disabled @@ -320,6 +331,7 @@ void options_imp::loadOptions(){ // PeX enabled disablePeX->setChecked(false); } +#endif strValue = settings.value("ScanDir", QString()).toString(); if(!strValue.isEmpty()){ enableScan_checkBox->setChecked(true); @@ -461,10 +473,11 @@ bool options_imp::getConfirmOnExit() const{ bool options_imp::isDHTEnabled() const{ return !disableDHT->isChecked(); } - +#ifndef NO_PEX bool options_imp::isPeXDisabled() const{ return disablePeX->isChecked(); } +#endif // Return Download & Upload limits // [download,upload] QPair options_imp::getLimits() const{ diff --git a/src/options_imp.h b/src/options_imp.h index 483405ef1..81cde5eab 100644 --- a/src/options_imp.h +++ b/src/options_imp.h @@ -53,7 +53,9 @@ class options_imp : public QDialog, private Ui::Dialog{ QString getScanDir() const; bool isDHTEnabled() const; int getDHTPort() const; +#ifndef NO_PEX bool isPeXDisabled() const; +#endif // Filter Settings bool isFilteringEnabled() const; ip_filter getFilter() const; diff --git a/src/src.pro b/src/src.pro index 0744ded66..d4f50ec9b 100644 --- a/src/src.pro +++ b/src/src.pro @@ -11,7 +11,7 @@ TARGET = qbittorrent CONFIG += qt thread x11 # Update this VERSION for each release -DEFINES += VERSION=\\\"v0.9.2rc1\\\" +DEFINES += VERSION=\\\"v0.9.2rc2\\\" DEFINES += VERSION_MAJOR=0 DEFINES += VERSION_MINOR=9 DEFINES += VERSION_BUGFIX=2